cw1dmngr.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:39k
源码类别:

波变换

开发平台:

Matlab

  1. function varargout = cw1dmngr(option,fig,varargin)
  2. %CW1DMNGR Continuous wavelet 1-D drawing manager.
  3. %   CW1DMNGR(OPTION,WIN_CW1DTOOL,IN3)
  4. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  5. %   Last Revision: 07-May-2003.
  6. %   Copyright 1995-2004 The MathWorks, Inc.
  7. %   $Revision: 1.19.4.2 $
  8. % Default values.
  9. %----------------
  10. max_lev_anal = 12;
  11. default_nbcolors = 128;
  12. % Memory bloc of stored values.
  13. %==============================
  14. % MB0.
  15. %-----
  16. n_InfoInit   = 'InfoInit';
  17. ind_filename = 1;
  18. ind_pathname = 2;
  19. nb0_stored   = 2;
  20. % MB1.
  21. %-----
  22. n_param_anal   = 'Par_Anal';
  23. ind_sig_name   = 1;
  24. ind_sig_size   = 2;
  25. ind_wav_name   = 3;
  26. ind_lev_anal   = 4;
  27. ind_act_option = 5;
  28. ind_gra_area   = 6;
  29. nb1_stored     = 6;
  30. % MB2.
  31. %-----
  32. n_coefs_sca    = 'Coefs_Scales';
  33. ind_coefs      = 1;
  34. ind_scales     = 2;
  35. ind_frequences = 3;
  36. ind_sca_OR_frq = 4;
  37. nb2_stored     = 4;
  38. % Handles of objects.
  39. %====================
  40. handles  = wfigmngr('getValue',fig,['CW1D_handles']);
  41. toolATTR = wfigmngr('getValue',fig,'ToolSettings');
  42. toolMode = toolATTR.Mod;
  43. % UIC.
  44. %-----
  45. hdl_UIC = handles.hdl_UIC;
  46.  
  47. % AXES.
  48. %------
  49. hdl_Re_AXES = handles.hdl_Re_AXES;
  50. hdl_Im_AXES = [];
  51. % MENUS.
  52. %-------
  53. men_sav = handles.hdl_MEN(2);
  54. % Separate Real and Complex tools.
  55. %---------------------------------
  56. switch toolMode
  57.   case {'real'}
  58.     hdl_Im_AXES = [];
  59.     dummy = struct2cell(hdl_UIC);
  60.     [...
  61.      fra_sam , txt_sam , edi_sam , ...
  62.      fra_sca , txt_sca , pop_sca , ...
  63.      pus_ana ,                     ...
  64.      txt_min , edi_min ,           ...
  65.      txt_stp , edi_stp ,           ...
  66.      txt_max , edi_max ,           ...
  67.      txt_pow , pop_pow ,           ...
  68.      txt_msc , edi_msc ,           ...
  69.      pus_lin , pus_ref ,           ...
  70.      fra_axe , txt_axe ,           ...
  71.      chk_DEC , chk_LC  , chk_LML , ...
  72.      rad_SCA , rad_FRQ ,           ...
  73.      fra_ccm , txt_ccm , pop_ccm   ...
  74.                                       ] = deal(dummy{:});
  75.   
  76.   case {'abs','arg','all'}
  77.     hdl_Im_AXES = handles.hdl_Im_AXES;
  78.     dummy = struct2cell(hdl_UIC);
  79.     [...
  80.      fra_sam , txt_sam , edi_sam , ...
  81.      fra_sca , txt_sca , pop_sca , ...
  82.      pus_ana ,                     ...
  83.      txt_min , edi_min ,           ...
  84.      txt_stp , edi_stp ,           ...
  85.      txt_max , edi_max ,           ...
  86.      txt_pow , pop_pow ,           ...
  87.      txt_msc , edi_msc ,           ...
  88.      pus_lin , pus_ref ,           ...
  89.      fra_axe , txt_axe ,           ...
  90.      rad_MOD , rad_ANG , rad_ALL,  ...
  91.      chk_DEC , chk_LC  , chk_LML , ...
  92.      rad_SCA , rad_FRQ ,           ...
  93.      fra_ccm , txt_ccm , pop_ccm   ...
  94.                                       ] = deal(dummy{:});
  95. end
  96. chk_for_AXES = [chk_DEC,chk_LC,chk_LML];
  97. switch option
  98.     case 'plotSignal'
  99.       sig_Anal = varargin{1};
  100.       cw1dutil('plotSignal',fig, ...
  101.           hdl_Re_AXES(1),sig_Anal,hdl_Re_AXES(1:4));
  102.       if ~isequal(toolMode,'real')
  103.            cw1dutil('plotSignal',fig, ...
  104.               hdl_Im_AXES(1),sig_Anal,hdl_Im_AXES(1:4));
  105.       end
  106.     case 'setSamPer'
  107.       delta = wstr2num(get(edi_sam,'String'));
  108.       err = isempty(delta);
  109.       if ~err , err = delta<eps; end
  110.       if ~err
  111.           wav_Name = wmemtool('rmb',fig,n_param_anal,ind_wav_name);
  112.           scales   = wmemtool('rmb',fig,n_coefs_sca,ind_scales);
  113.           frequences = scal2frq(scales,wav_Name,delta);
  114.           wmemtool('wmb',fig,n_coefs_sca,ind_frequences,frequences);
  115.           cw1dmngr('newCfsLine',fig);
  116.       else
  117.           set(edi_sam,'String',get(edi_sam,'Userdata'));
  118.       end
  119.     case 'newScaleMode'
  120.       new_mode = get(pop_sca,'Value');
  121.       old_mode = get(pop_sca,'Userdata');
  122.       if new_mode==old_mode ,  return; end
  123.       set(pop_sca,'Userdata',new_mode);
  124.       Y_Spacing = mextglob('get','Y_Spacing');
  125.       win_units = get(fig,'units');
  126.       if strcmp(win_units,'pixels')
  127.           dy = Y_Spacing;
  128.       else
  129.           [dx,dy] = wfigutil('prop_size',fig,1,Y_Spacing);
  130.       end
  131.       p12 = get(pus_ana,'Position');
  132.       switch new_mode
  133.         case 1
  134.           hdl_of = [txt_pow pop_pow txt_msc edi_msc];
  135.           hdl_on = [txt_min,edi_min,txt_stp,edi_stp,txt_max,edi_max];
  136.           p2 = get(edi_max,'Position');
  137.         case 2
  138.           hdl_of = [txt_min,edi_min,txt_stp,edi_stp,txt_max,edi_max,...
  139.                     txt_msc,edi_msc];
  140.           hdl_on = [txt_pow,pop_pow];
  141.           p2 = get(pop_pow,'Position');
  142.         case 3
  143.           hdl_of = [txt_min,edi_min,txt_stp,edi_stp,txt_max,edi_max,...
  144.                     txt_pow,pop_pow];
  145.           hdl_on = [txt_msc,edi_msc];
  146.           p2 = get(edi_msc,'Position');
  147.       end
  148.       pos_fra_sca = get(fra_sca,'Position');
  149.       pos_txt_sca = get(txt_sca,'Position');
  150.       pos_fra_sca(2) = p2(2)-dy;
  151.       pos_fra_sca(4) = pos_txt_sca(2)+pos_txt_sca(4)/2-pos_fra_sca(2);
  152.       hdl_move = [fra_sca,pus_ana];
  153.       set([hdl_of , hdl_move],'Visible','off');
  154.       deltaY = 4*dy;
  155.       p12(2) = p2(2)-p12(4)-deltaY;
  156.       set(fra_sca,'Position',pos_fra_sca);
  157.       set(pus_ana,'Position',p12);
  158.       set([hdl_on,hdl_move],'Visible','on');
  159.     case 'newCfsLine'
  160.       switch toolMode
  161.         case {'real'}
  162.           vis = lower(get(hdl_Re_AXES(3),'Visible'));
  163.           if isequal(vis,'off') , return; end
  164.           axeLIN = hdl_Re_AXES([2 4]);
  165.         case {'abs','arg','all'}
  166.           visRe = lower(get(hdl_Re_AXES(3),'Visible'));
  167.           visIm = lower(get(hdl_Im_AXES(3),'Visible'));
  168.           if isequal(visRe,'off') & isequal(visIm,'off'), return; end
  169.           axeLIN = [hdl_Re_AXES([2 4]) ; hdl_Im_AXES([2 4])];
  170.       end
  171.       scales = wmemtool('rmb',fig,n_coefs_sca,ind_scales);
  172.       if length(varargin)==0
  173.           lHor = mngmbtn('getLines',fig,'Hor');
  174.           if isempty(lHor) , return; end
  175.           par = find(axeLIN==get(lHor,'Parent'));
  176.           if isempty(par) , return; end
  177.  
  178.           ind_sca = get(lHor,'Ydata');
  179.           ind_sca = round(ind_sca(1));
  180.       else
  181.           ind_sca = round(length(scales)/2);
  182.       end
  183.       [coefs,frequences] = wmemtool('rmb',fig,n_coefs_sca, ...
  184.                                           ind_coefs,ind_frequences);
  185.       if (ind_sca<=0) | (ind_sca>size(coefs,1)) , return; end
  186.       scale = scales(ind_sca);
  187.       freq  = frequences(ind_sca);
  188.       coefs = coefs(ind_sca,:);      
  189.       toolATTR.Sca = scale;
  190.       toolATTR.Frq = freq;
  191.       wfigmngr('storeValue',fig,'ToolSettings',toolATTR);
  192.       linTitles = cw1dutil('cfsLineTitle',fig);
  193.       switch toolMode
  194.         case {'real'}          
  195.           cw1dutil('plotCfsLine',fig,hdl_Re_AXES(3),coefs,linTitles);
  196.         case {'abs','arg','all'}
  197.           cw1dutil('plotCfsLine',fig,hdl_Re_AXES(3),abs(coefs),linTitles(1,:));
  198.           cw1dutil('plotCfsLine',fig,hdl_Im_AXES(3),angle(coefs),linTitles(2,:));
  199.       end
  200.     case 'newChainLine'
  201.       switch toolMode
  202.         case {'real'}
  203.           vis = lower(get(hdl_Re_AXES(4),'Visible'));
  204.           if isequal(vis,'off') , return; end
  205.           axeLIN = hdl_Re_AXES([2 4]);
  206.         case {'abs','arg','all'}
  207.           visRe = lower(get(hdl_Re_AXES(4),'Visible'));
  208.           visIm = lower(get(hdl_Im_AXES(4),'Visible'));
  209.           if isequal(visRe,'off') & isequal(visIm,'off'), return; end
  210.           axeLIN = [hdl_Re_AXES([2 4]) ; hdl_Im_AXES([2 4])];
  211.       end
  212.   
  213.       if length(varargin)==0
  214.           lHor = mngmbtn('getLines',fig,'Hor');
  215.           if isempty(lHor) , return; end
  216.           par = find(axeLIN==get(lHor,'Parent'));
  217.           if isempty(par) , return; end
  218.   yInd = get(lHor,'Ydata');
  219.           yInd = round(yInd(1));   
  220.       else
  221.           yInd = [];
  222.       end
  223.   % Begin waiting.
  224.       %----------------
  225.       wwaiting('msg',fig,'Wait ... computing');
  226.   set(pus_ref,'enable','Off');
  227.   [coefs,scales] = wmemtool('rmb',fig,n_coefs_sca, ...
  228.                                       ind_coefs,ind_scales);
  229.       nbRow  = size(coefs,1);
  230.   if isempty(yInd) , yInd = nbRow; end;
  231.       indBeg = nbRow;
  232.       if (0<yInd) & (yInd<=nbRow)
  233.           indBeg = yInd;
  234.           coefs(yInd+1:end,:) = 0;
  235.       end
  236.       switch toolMode
  237.         case 'real'
  238.           [coefs,strTitle] = cw1dutil('computeChainLine',fig, ...
  239.                                    scales,coefs,indBeg);
  240.           cw1dutil('plotChainLine',fig,hdl_Re_AXES(4),scales,coefs,strTitle);
  241.                      
  242.         otherwise
  243.           [tmpCoefs,strTitle] = cw1dutil('computeChainLine',fig, ...
  244.                                     scales,abs(coefs),indBeg);
  245.           cw1dutil('plotChainLine',fig,hdl_Re_AXES(4),scales,tmpCoefs,strTitle);
  246.           [tmpCoefs,strTitle] = cw1dutil('computeChainLine',fig, ...
  247.                                     scales,angle(coefs),indBeg);
  248.           cw1dutil('plotChainLine',fig,hdl_Im_AXES(4),scales,tmpCoefs,strTitle);
  249.       end
  250.       % End waiting.
  251.       %-------------
  252.       wwaiting('off',fig);
  253.     
  254.     case 'setPosAxes'
  255.       % Axes Visibility.
  256.       %-----------------
  257.       % 1 1 1 1 ;
  258.       % 1 1 1 0 ;
  259.       % 1 1 0 1 ;
  260.       % 1 0 1 1 ;
  261.       % 1 1 0 0 ;
  262.       % 1 0 1 0 ;
  263.       % 1 0 0 1 ;
  264.       % 1 0 0 0 ;
  265.       %------------
  266.       if length(varargin)>0 , newTITLE = 1; else , newTITLE = 0; end
  267.       vis = toolATTR.Vis;
  268.       pos = toolATTR.Pos;
  269.       vis = vis(:,2:end);
  270.       flgDEC = get(chk_DEC,'Value');
  271.       flgLC  = get(chk_LC ,'Value');
  272.       flgLML = get(chk_LML,'Value');
  273.       flgVIS = [flgDEC,flgLC,flgLML];
  274.   [flag_lin,flag_ref,hdl_axe] = cw1dmngr('get_Ena_Flag',fig);
  275.   
  276.       if flgLC & flgDEC & flag_lin , ena_lin = 'on'; else ; ena_lin = 'off'; end
  277.   if flgLML & flag_ref , ena_ref = 'on'; else ; ena_ref = 'off'; end  
  278.   set(pus_lin,'enable',ena_lin);
  279.   set(pus_ref,'enable',ena_ref);
  280.       ind = 0;
  281.       for k = 1:size(vis,1)
  282.          ok = isequal(vis(k,:),flgVIS);
  283.          if ok , ind = k; break; end
  284.       end
  285.       toolATTR.Num = ind;
  286.       wfigmngr('storeValue',fig,'ToolSettings',toolATTR);
  287.   % Set View Axes Btn.
  288.   %-------------------
  289.   if (ind==8 ) & ~isequal(toolMode,'all')
  290.   ena_zaxe = 'Off';
  291.   else
  292.   ena_zaxe = 'On';
  293.   end
  294.   dynvtool('dynvzaxe_BtnOnOff',fig,ena_zaxe);
  295.       pos = pos(:,:,ind);
  296.       vis = getonoff([1,flgVIS,flgDEC]);
  297.       switch toolMode
  298.         case 'real'
  299.           hdl_OFF = []; hdl_ON = hdl_Re_AXES; indTitle = [1];
  300.         case 'abs'
  301.           hdl_OFF = hdl_Im_AXES; hdl_ON = hdl_Re_AXES; indTitle = [1];
  302.   if ~isempty(find(hdl_OFF==hdl_axe))
  303.   set([pus_lin,pus_ref],'Enable','Off');
  304.   end
  305.   
  306.     case 'arg' 
  307.           hdl_OFF = hdl_Re_AXES; hdl_ON = hdl_Im_AXES; indTitle = [2];
  308.   if ~isempty(find(hdl_OFF==hdl_axe))
  309.   set([pus_lin,pus_ref],'Enable','Off');
  310.   end
  311.         case 'all'
  312.          hdl_OFF = [];
  313.          hdl_ON  = [hdl_Re_AXES,hdl_Im_AXES];
  314.          indTitle = [1 2];
  315.          pos(:,:,2) = pos;
  316.          bdx   = pos(1,1,1);
  317.          w_axe = pos(1,3,1)/2-bdx;
  318.          pos([1:4],3,[1:2]) = w_axe;
  319.          pos([1:4],1,2)     = bdx+w_axe+2*bdx;
  320.       end
  321.       set(wfindobj([hdl_OFF;hdl_ON]),'Visible','off')
  322.       if newTITLE
  323.           cfsTitles = cw1dutil('cfsColorTitle',fig,toolMode,pop_ccm);
  324.           linTitles = cw1dutil('cfsLineTitle',fig);
  325.           for j = 1:size(hdl_ON,2)
  326.               k = indTitle(j);
  327.               wtitle(cfsTitles(k,:), ...
  328.                   'Parent',hdl_ON(2,j),'Visible','off');
  329.               wtitle(linTitles(k,:), ...
  330.                   'Parent',hdl_ON(3,j),'Visible','off');
  331.           end
  332.       end
  333.       
  334.       for k = 1:4
  335.         for j = 1:size(hdl_ON,2)
  336.             hdl_IN = wfindobj(hdl_ON(k,j));
  337.             set(hdl_ON(k,j),'Position',pos(k,:,j))
  338.             set(hdl_IN,'Visible',vis(k,:))
  339.         end
  340.       end      
  341.       for k = 5
  342.           hdl_IN = wfindobj(hdl_Re_AXES(k));
  343.           set(hdl_Re_AXES(k),'Position',pos(k,:,1))
  344.           set(hdl_IN,'Visible',vis(k,:))
  345.       end
  346.     case 'setPosAxesIMAG'
  347.       if length(varargin)==0
  348.           rad_SEL = gcbo;
  349.           paramSET = {fig,'dummy'};
  350.       else
  351.           rad_SEL = varargin{1};
  352.           paramSET = {fig};
  353.       end       
  354.       rad_OLD = wfindobj([rad_MOD,rad_ANG,rad_ALL],'Userdata',1);
  355.       set([rad_MOD,rad_ANG,rad_ALL],'Value',0,'Userdata',[]);
  356.       set(rad_SEL,'Value',1,'Userdata',1);
  357.       if isequal(rad_SEL,rad_OLD) , return; end
  358.       toolATTR = wfigmngr('getValue',fig,'ToolSettings');
  359.       indMOD = find(rad_SEL==[rad_MOD,rad_ANG,rad_ALL]);
  360.       switch indMOD
  361.         case 1 , toolATTR.Mod = 'abs';
  362.         case 2 , toolATTR.Mod = 'arg';
  363.         case 3 , toolATTR.Mod = 'all';        
  364.       end
  365.       wfigmngr('storeValue',fig,'ToolSettings',toolATTR);
  366.       cw1dmngr('setPosAxes',paramSET{:});    
  367.     case 'sca_OR_frq'
  368.       rad_SEL = gcbo;
  369.       rad_OLD = wfindobj([rad_SCA,rad_FRQ],'Userdata',1);
  370.       set([rad_SCA,rad_FRQ],'Value',0,'Userdata',[]);
  371.       set(rad_SEL,'Value',1,'Userdata',1);
  372.       if isequal(rad_SEL,rad_OLD) , return; end
  373.       if isequal(rad_SEL,rad_SCA)
  374.           sca_OR_frq = ind_scales;
  375.       else
  376.           sca_OR_frq = ind_frequences;
  377.       end
  378.       wmemtool('wmb',fig,n_coefs_sca,ind_sca_OR_frq,sca_OR_frq);
  379.       mngmbtn('cleanXYPos',fig);
  380.     case 'getScales'
  381.       % Getting  Analysis parameters.
  382.       %------------------------------
  383.       [sig_Name,wav_Name,sig_Size,lev_Anal] = ...
  384.           wmemtool('rmb',fig,n_param_anal, ...
  385.                          ind_sig_name,ind_wav_name,...
  386.                          ind_sig_size,ind_lev_anal);
  387.       powmax = fix(log(sig_Size)/log(2));
  388.       scamax = 2^(powmax-1);
  389.       levmax = min(powmax,max_lev_anal);
  390.       sca_mod = get(pop_sca,'Value');
  391.       col_mod = get(pop_ccm,'Value');
  392.       set(pop_ccm,'Userdata',col_mod);
  393.       err = 0;
  394.       switch sca_mod
  395.         case 1
  396.           mi = wstr2num(get(edi_min,'String'));
  397.           st = wstr2num(get(edi_stp,'String'));
  398.           ma = wstr2num(get(edi_max,'String'));
  399.           if     isempty(st) , st = 1; err = 1;
  400.           elseif st<=0       , st = 1; err = 1;
  401.           end
  402.           if     isempty(mi) , mi = 1; err = 1;
  403.           elseif mi<sqrt(eps), mi = 1; err = 1;
  404.           end
  405.           if     isempty(ma) , ma = min(32,scamax); err = 1;
  406.           elseif ma>scamax   , ma = min(32,scamax); err = 1;
  407.           end
  408.           if ma<mi
  409.               if     ma<sqrt(eps) , ma = mi;   err = 1;
  410.               elseif mi>scamax    , mi = ma;   err = 1;
  411.               else
  412.                   tmp = mi; mi = ma; ma = tmp; err = 1;
  413.               end
  414.           end
  415.           if err==1
  416.               set(edi_min,'String',num2str(mi));
  417.               set(edi_stp,'String',num2str(st));
  418.               set(edi_max,'String',num2str(ma));
  419.               col = get(edi_min,'ForegroundColor');
  420.               for k=1:10
  421.                   set([edi_min,edi_stp,edi_max],'ForegroundColor','r');
  422.                   pause(0.5);
  423.                   set([edi_min,edi_stp,edi_max],'ForegroundColor',col);
  424.               end
  425.               err = 0;
  426.           end
  427.           level  = [ '[' num2str(mi) ':' num2str(st) ':' num2str(ma) ']'];
  428.           scales = eval(level);
  429.         case 2
  430.           powmax = get(pop_pow,'Value');
  431.           scales = 2.^[1:powmax];
  432.           level  = '';
  433.           for k=1:powmax , level = [level ' ' int2str(scales(k))]; end
  434.         case 3
  435.           level = get(edi_msc,'String');
  436.           eval('levs = eval(level);','err = 1;');
  437.           if err==1
  438.               set(edi_msc,'String',xlate('Error ...'));
  439.               col = get(edi_msc,'ForegroundColor');
  440.               set(edi_msc,'ForegroundColor','r');
  441.               pause(2)
  442.               set(edi_msc,'String','[ ]');
  443.               set(edi_msc,'ForegroundColor',col);
  444.               varargout = {err,[],[]};
  445.               return
  446.           end
  447.           levs = levs(:)';
  448.           scales = levs(levs>0);
  449.           scales = scales(scales<=scamax);
  450.           if ~isequal(levs,scales) , err = 1; end
  451.           if err==1
  452.               if ~isempty(scales)
  453.                   level = [num2str(scales(1)) ' .... ' ...
  454.                            num2str(scales(end))];
  455.               end
  456.               old_txt = get(edi_msc,'String');
  457.               set(edi_msc,'String',xlate('Warning ...'));
  458.               col = get(edi_msc,'ForegroundColor');
  459.               for k=1:10
  460.                   set(edi_msc,'ForegroundColor','r');
  461.                   pause(0.50);
  462.                   set(edi_msc,'ForegroundColor',col);
  463.               end
  464.               set(edi_msc,'String',old_txt);
  465.               err = 0;
  466.           end
  467.       end
  468.       delta = wstr2num(get(edi_sam,'String'));
  469.       frequences = scal2frq(scales,wav_Name,delta);
  470.       err = (err | isempty(scales));
  471.       if ~err , set(pop_ccm,'Userdata',-1); end
  472.       varargout = {err,scales,frequences};
  473.     case 'computeCoefs'
  474.       sig_Anal = varargin{1};
  475.       scales   = varargin{2};
  476.       wav_Name = varargin{3};
  477.       %----------------------
  478.       txt_msg = wwaiting('handle',fig);
  479.       dynvtool('hide',fig);
  480.       drawnow
  481.       precis   = 10;
  482.       len      = length(sig_Anal);
  483.       nbscales = length(scales);
  484.       varargout{1} = zeros(nbscales,len);
  485.       wtype = wavemngr('type',wav_Name);
  486.       numALG   = 1;
  487.       switch numALG
  488.         case 1
  489.           [psi,psi_xval] = intwave(wav_Name,precis);
  490.           if wtype==5 , psi = conj(psi); end
  491.           psi_xval = psi_xval-psi_xval(1);
  492.           dxval = psi_xval(2);
  493.           xmax  = psi_xval(length(psi_xval));
  494.           ind   = 1;
  495.           for a = scales
  496.               msg = strvcat(' ',sprintf('Computing - scale a = %5.3f',a));
  497.               set(txt_msg,'String',msg);
  498.               drawnow
  499.               j = [1+floor([0:a*xmax]/(a*dxval))];
  500.               if length(j)==1 , j = [1 1]; end
  501.               f = fliplr(psi(j));
  502.               varargout{1}(ind,:) = -sqrt(a)*wkeep1(diff(conv(sig_Anal,f)),len);
  503.               ind = ind+1;
  504.           end
  505.         case 2        
  506.           switch wtype
  507.             case {1,3} , [A,psi,psi_xval] = wavefun(wav_Name,precis);
  508.             case 2     , [A,psi,A,A,psi_xval] = wavefun(wav_Name,precis);
  509.             case {4,5} , [psi,psi_xval] = wavefun(wav_Name,precis);
  510.           end
  511.           if wtype==5 , psi = conj(psi); end
  512.           psi_xval = psi_xval-psi_xval(1);
  513.           dxval = psi_xval(2);
  514.           xmax  = psi_xval(end);
  515.           ind   = 1;
  516.           for a = scales
  517.               msg = strvcat(' ',sprintf('Computing - scale a = %5.3f',a));
  518.               set(txt_msg,'String',msg);
  519.               drawnow
  520.               j = [1+floor([0:a*xmax]/(a*dxval))];
  521.               if length(j)==1 , j = [1 1]; end
  522.               f = fliplr(psi(j));
  523.               varargout{1}(ind,:) = wkeep1(conv(sig_Anal,f),len);
  524.               ind = ind+1;
  525.           end
  526.       end
  527.       set(txt_msg,'String','');
  528.       dynvtool('show',fig);
  529.     case 'computeCoefsMNGR'
  530.       % Loading file.
  531.       %-------------
  532.       [pathname,filename] = wmemtool('rmb',fig,n_InfoInit, ...
  533.                                            ind_pathname,ind_filename);
  534.       [sigInfos,sig_Anal,ok] = ...
  535.           utguidiv('load_dem1D',fig,pathname,filename);
  536.       if ~ok, return; end
  537.       % Getting scales and frequences.
  538.       %-------------------------------
  539.       [err,scales,frequences] = cw1dmngr('getScales',fig);
  540.       if err , return; end
  541.       % Setting Dynamic Visualization tool.
  542.       %------------------------------------
  543.       mngmbtn('delLines',fig,'All');
  544.       % Setting Axes.
  545.       %--------------
  546.       sig_Size = length(sig_Anal);
  547.       NB_Img  = size(scales,2);
  548.       xValMin = 1;
  549.       xValMax = sig_Size;
  550.       axeProp = {...
  551.           'Drawmode','fast',         ...
  552.           'Layer','top',             ...
  553.           'Ydir','reverse',          ...
  554.           'Xlim',[xValMin xValMax],  ...
  555.           'Ylim',[0.5 NB_Img+0.5],   ...
  556.           'YTicklabelMode','manual', ...
  557.           'YTick',[],                ...
  558.           'YTicklabel',[],           ...
  559.           'Box','On',                ...
  560.           'XGrid','Off',             ...
  561.           'YGrid','Off',             ...
  562.           'Nextplot','Replace'       ...
  563.           };
  564.       h_AXES = [hdl_Re_AXES,hdl_Im_AXES];
  565.       set(h_AXES(2,:),axeProp{:});
  566.       axes(hdl_Re_AXES(5));
  567.       image([0 1],[0 1],[1:default_nbcolors],'Parent',hdl_Re_AXES(5));
  568.       ud.dynvzaxe.enable = 'off';
  569.       set(hdl_Re_AXES(5),...
  570.               'XTicklabel',[],'YTicklabel',[],...
  571.               'XGrid','Off','YGrid','Off',...
  572.               'userdata',ud);
  573.       wsetxlab(hdl_Re_AXES(5),'Scale of colors from MIN to MAX');
  574.       % Computing coefficients.
  575.       %------------------------
  576.       wav_Name = wmemtool('rmb',fig,n_param_anal,ind_wav_name);
  577.       coefs    = cw1dmngr('computeCoefs',fig,sig_Anal,scales,wav_Name);
  578.       wmemtool('wmb',fig,n_coefs_sca,ind_coefs,coefs,...
  579.                      ind_scales,scales,ind_frequences,frequences);
  580.       % Begin waiting.
  581.       %---------------
  582.       wwaiting('msg',fig,'Wait ... computing');
  583.       % Coloration of coefficients.
  584.       %----------------------------
  585.       cw1dmngr('colorCoefs',fig,'draw');
  586.       % Plot line of coefficients.
  587.       %---------------------------
  588.       cw1dmngr('newCfsLine',fig,'init');
  589.       % Computing local maxima.
  590.       %------------------------
  591.       cw1dmngr('newChainLine',fig,'init');
  592.       % Setting Dynamic Visualization tool.
  593.       %------------------------------------
  594.       axeCMD = h_AXES(1:4,:);
  595.       axeCMD = axeCMD(:)';
  596.       axeCOO = h_AXES([2,4],:);
  597.       axeCOO = axeCOO(:)';
  598.       dynvtool('init',fig,[],axeCMD,[],[1 0],...
  599.                '','','cw1dcoor',axeCOO,'','','r');
  600.       % End waiting.
  601.       %-------------
  602.       wwaiting('off',fig);
  603.     case 'initColorCoefs'
  604.       testFirst = varargin{1};
  605.       continu   = 0;
  606.       varargout = {continu,{},0,0,'',[]};
  607.       img_cfs   = findobj(hdl_Re_AXES(2),'type','image');
  608.       old_para  = get(pop_ccm,'userdata');
  609.       if testFirst & (isempty(img_cfs) | old_para(1)==0) , return; end
  610.       col_mod   = get(pop_ccm,'value');
  611.       switch toolMode
  612.         case 'real'
  613.            switch col_mod
  614.             case 1 , absval = 1; levval = 'row'; view_m = 'gbl';
  615.             case 2 , absval = 0; levval = 'row'; view_m = 'gbl';
  616.             case 3 , absval = 1; levval = 'mat'; view_m = 'gbl';
  617.             case 4 , absval = 0; levval = 'mat'; view_m = 'gbl';
  618.             case 5 , absval = 1; levval = 'row'; view_m = 'cur';
  619.             case 6 , absval = 0; levval = 'row'; view_m = 'cur';
  620.             case 7 , absval = 1; levval = 'mat'; view_m = 'cur';
  621.             case 8 , absval = 0; levval = 'mat'; view_m = 'cur';
  622.           end
  623.         otherwise
  624.           absval = 0;
  625.           switch col_mod
  626.             case 1 , levval = 'row'; view_m = 'gbl';
  627.             case 2 , levval = 'mat'; view_m = 'gbl';
  628.             case 3 , levval = 'row'; view_m = 'cur';
  629.             case 4 , levval = 'mat'; view_m = 'cur';
  630.           end
  631.       end
  632.       sig_Size = wmemtool('rmb',fig,n_param_anal,ind_sig_size);
  633.       xind1 = 1;
  634.       xind2 = sig_Size;
  635.       if isequal(view_m,'cur')
  636.           xlim_selbox = mngmbtn('getbox',fig);
  637.           if ~isempty(xlim_selbox)
  638.               xlim_selbox = [min(xlim_selbox) max(xlim_selbox)];
  639.           else
  640.               xlim_selbox = get(hdl_Re_AXES(1),'XLim');
  641.           end
  642.           xlim_selbox = round(xlim_selbox);
  643.           xind1 = max(1,xlim_selbox(1));
  644.           xind2 = min(sig_Size,xlim_selbox(2));
  645.       end
  646.       new_para = [col_mod xind1 xind2];
  647.       if isequal(new_para,old_para) , return; end
  648.       set(pop_ccm,'userdata',new_para);
  649.       % Axes properties & Ytickslabel construction .
  650.       %---------------------------------------------
  651.       scales = wmemtool('rmb',fig,n_coefs_sca,ind_scales);
  652.       len  = length(scales);
  653.       nb   = ceil(len/20);
  654.       tics = 1:nb:len;
  655.       tmp  = scales(1:nb:nb*length(tics));
  656.       labs = num2str(tmp(:));
  657.       axeProp = {...
  658.         'XGrid','Off',             ...
  659.         'YGrid','Off',             ...
  660.         'YTicklabelMode','manual', ...
  661.         'YTick',tics,              ...
  662.         'YTicklabel',labs,         ...
  663.         'YDir','normal',           ...
  664.         'Box','On'                 ...
  665.        };
  666.       % Setting outputs.
  667.       %------------------
  668.       continu = 1;
  669.       varargout = {continu,axeProp,levval,absval,view_m,[xind1:xind2]};
  670.     case 'plotColorCoefs'
  671.       [type,axeCOEFS,axeProp,levval,absval,view_m,xVal] = deal(varargin{:});
  672.       % Waiting message.
  673.       %-----------------
  674.       msg_ini = 'Wait ... coefficients coloration';
  675.       txt_msg = wwaiting('msg',fig,msg_ini);
  676.       % Getting coefs and scales.
  677.       %--------------------------
  678.       [coefs,scales] = wmemtool('rmb',fig,n_coefs_sca,...
  679.                                       ind_coefs,ind_scales);
  680.       switch type
  681.         case 'abs'   , coefs = abs(coefs);
  682.         case 'angle' , coefs = angle(coefs);
  683.       end
  684.       % Coloration of coefficients.
  685.       %-----------------------------
  686.       if strcmp(view_m,'cur')
  687.           if strcmp(levval,'mat')
  688.               cmin = min(min(coefs(:,xVal)));
  689.               cmax = max(max(coefs(:,xVal)));
  690.               coefs(coefs<cmin) = cmin;
  691.               coefs(coefs>cmax) = cmax;
  692.           else
  693.               cmin = min((coefs(:,xVal)),[],2);
  694.               cmax = max((coefs(:,xVal)),[],2);
  695.               fprf = 'Coloration - scale a = %5.3f';
  696.               for k=1:length(scales)
  697.                   msg = strvcat(' ',sprintf(fprf,scales(k)));
  698.                   set(txt_msg,'String',msg);
  699.                   drawnow
  700.                   ind = find(coefs(k,:)<cmin(k));
  701.                   coefs(k,ind) = cmin(k);
  702.                   ind = find(coefs(k,:)>cmax(k));
  703.                   coefs(k,ind) = cmax(k);
  704.               end
  705.               txt_msg = wwaiting('msg',fig,msg_ini);
  706.               drawnow
  707.           end
  708.       end
  709.       coefs = wcodemat(coefs,default_nbcolors,levval,absval);
  710.       % Plot coefficients.
  711.       %-------------------
  712.       cfsTitles = cw1dutil('cfsColorTitle',fig,toolMode,pop_ccm);
  713.       indTitle = find(axeCOEFS==[hdl_Re_AXES(2);hdl_Im_AXES]);
  714.       if indTitle>1 , indTitle = 2; end
  715.       axes(axeCOEFS);
  716.       vis = get(axeCOEFS,'Visible');
  717.       img_cfs = findobj(axeCOEFS,'type','image');
  718.       if isempty(img_cfs)
  719.           img_cfs = image('Cdata',coefs,'Visible',vis,'Parent',axeCOEFS);
  720.       else
  721.           set(img_cfs,'Cdata',coefs,'Visible',vis);
  722.       end
  723.       set(axeCOEFS,axeProp{:});
  724.       wtitle(cfsTitles(indTitle,:),'Parent',axeCOEFS,'Visible',vis);
  725.     case 'colorCoefs'
  726.       %******************************************%
  727.       %** changing color mode for coefficients **%
  728.       %******************************************%
  729.       testFirst = (length(varargin)<1);
  730.       [continu,axeProp,levval,absval,view_m,xVal] = ...
  731.            cw1dmngr('initColorCoefs',fig,testFirst);
  732.       if ~continu , return; end
  733.       % Waiting message.
  734.       %-----------------
  735.       msg_ini = 'Wait ... coefficients coloration';
  736.       wwaiting('msg',fig,msg_ini);
  737.       switch toolMode
  738.         case 'real'
  739.           cw1dmngr('plotColorCoefs',fig,'real',...
  740.           hdl_Re_AXES(2),axeProp,levval,absval,view_m,xVal)
  741.  
  742.         otherwise
  743.           cw1dmngr('plotColorCoefs',fig,'abs',...
  744.           hdl_Re_AXES(2),axeProp,levval,absval,view_m,xVal);
  745.           cw1dmngr('plotColorCoefs',fig,'angle',...
  746.           hdl_Im_AXES(2),axeProp,levval,absval,view_m,xVal);
  747.       end
  748.       % End waiting.
  749.       %-------------
  750.       wwaiting('off',fig);
  751.     case 'clean'
  752.       calling_opt = varargin{1};
  753.       % Testing first use. End of Cleaning when first is true.
  754.       %-------------------------------------------------------
  755.       active_option = wmemtool('rmb',fig,n_param_anal,ind_act_option);
  756.       if isempty(active_option) , first = 1; else, first = 0; end
  757.       % Cleaning UIC.
  758.       %--------------
  759.       if ~strcmp(calling_opt,'new_anal')
  760.           [sig_nam,sig_len] = wmemtool('rmb',fig,n_param_anal,...
  761.                                 ind_sig_name,ind_sig_size);
  762.           sig_len = max(sig_len);
  763.           sca_def = int2str(min(64,sig_len));
  764.           lev_def = min(6,nextpow2(sig_len+1)-1);
  765.           pow_max = fix(log(sig_len)/log(2));
  766.           sca_max = 2^(pow_max-1);
  767.           lev_max = min(pow_max,max_lev_anal);
  768.           cbanapar('set',fig,'n_s',{sig_nam,sig_len});
  769.           set(edi_sam,'String','1','Userdata','1');
  770.           set(pop_sca,'Value',1,'Userdata',0);
  771.           set(pop_ccm,'Value',1,'Userdata',0);
  772.           str_pop_pow = int2str([1:lev_max]');
  773.           set(pop_pow,'String',str_pop_pow,'Value',lev_def);
  774.           set(edi_min,'String','1');
  775.           set(edi_stp,'String','1');
  776.           set(edi_max,'String',sca_def);
  777.           set(edi_msc,'String',[ '[1:1:' sca_def ']' ]);
  778.           str_txt_max = sprintf('Max  ( <= %.0f )', sca_max); 
  779.           set(txt_max,'String',str_txt_max);
  780.           action = get(pop_sca,'Callback');
  781.           eval(action);
  782.       end
  783.       if first
  784.           switch toolMode
  785.             case 'real' , set(hdl_Re_AXES,'Visible','on');
  786.             otherwise   , cw1dmngr('setPosAxesIMAG',fig,rad_ALL);
  787.           end
  788.           return;
  789.       end
  790.       % Setting enable property of objects.
  791.       %------------------------------------
  792.       cbanapar('enable',fig,'off');
  793.       % Cleaning DynVTool.
  794.       %-------------------
  795.       dynvtool('stop',fig);
  796.       % Cleaning Axes.
  797.       %---------------
  798.       h_AXES = [hdl_Re_AXES , hdl_Im_AXES];
  799.       toDEL = h_AXES(2:4,:);
  800.       toDEL = allchild(toDEL(:));
  801.       toDEL = cat(1,toDEL{:});
  802.       delete(toDEL);
  803.       if ~strcmp(calling_opt,'new_anal')
  804.           toDEL = h_AXES(1,:);
  805.           toDEL = allchild(toDEL(:));
  806.           if iscell(toDEL),  toDEL = cat(1,toDEL{:}); end
  807.           delete(toDEL)
  808.       end
  809.       set(h_AXES([2,4],:), ...
  810.           'YTicklabelMode','manual','YTick',[],'YTicklabel',[]);
  811.       numView  = toolATTR.Num;
  812.       optDRAW  = 'nothing';
  813.       if ~isequal(numView,1) , optDRAW = 'setPosAxes'; end
  814.       if ~isequal(toolMode,'real') & ~isequal(toolMode,'all')
  815.           optDRAW = 'setPosAxesIMAG';
  816.       end
  817.   
  818.       switch optDRAW
  819.         case 'nothing'
  820.           set(h_AXES,'Visible','on');
  821.         case 'setPosAxes'
  822.           set([chk_DEC,chk_LC,chk_LML],'Value',1)
  823.           cw1dmngr('setPosAxes',fig)
  824.         case 'setPosAxesIMAG'
  825.           set([chk_DEC,chk_LC,chk_LML],'Value',1)
  826.           cw1dmngr('setPosAxesIMAG',fig,rad_ALL)
  827.       end
  828.     case 'set_gui'
  829.       calling_opt = varargin{1};
  830.       switch calling_opt
  831.         case {'demo'}
  832.           wav_Name = wmemtool('rmb',fig,n_param_anal,ind_wav_name);
  833.           cbanapar('set',fig,'wav',wav_Name);
  834.           set(edi_min,'String',sprintf('%.0f',varargin{2}));
  835.           set(edi_stp,'String',sprintf('%.0f',varargin{3}));
  836.           set(edi_max,'String',sprintf('%.0f',varargin{4}));
  837.           set(pop_ccm,'Value',varargin{5});
  838.           if length(varargin)>5
  839.               cbcolmap('set',fig,'pal',{'same',varargin{6}});
  840.           end
  841.       end
  842.     case 'enable'
  843.       calling_opt  = varargin{1};
  844.       HDL_1 = [...
  845.         edi_sam , pop_sca , pus_ana , ...
  846.         edi_min , edi_stp , edi_max , ...
  847.         pop_pow , edi_msc             ...
  848.         ];
  849.       HDL_2 = [...
  850.         chk_DEC , chk_LC  , chk_LML , ...
  851.         rad_SCA , rad_FRQ , pop_ccm   ...
  852.         ];
  853.   HDL_3 = [pus_lin , pus_ref];
  854.       switch toolMode
  855.         case {'real'}
  856.         case {'abs','arg','all'}
  857.           HDL_2 = [HDL_2 , rad_MOD , rad_ANG , rad_ALL];
  858.       end
  859.       switch calling_opt
  860.         case 'load'
  861.           cbanapar('enable',fig,'On');
  862.           cbcolmap('enable',fig,'On');
  863.           set(HDL_1,'enable','On');
  864.           set(HDL_2,'enable','Off');
  865.           set(men_sav,'enable','Off');
  866.           set(chk_for_AXES,'enable','On')
  867.         case {'demo','anal'}
  868.           cbanapar('enable',fig,'On');
  869.           cbcolmap('enable',fig,'On');
  870.           set(HDL_1,'enable','On');
  871.           set(HDL_2,'enable','On');
  872.           set(men_sav,'enable','On');
  873.       end
  874.   
  875.   set(HDL_3,'enable','Off');
  876.     case 'load'
  877.       % Loading file.
  878.       %--------------
  879.       [sigInfos,sig_Anal,ok] = ...
  880.          utguidiv('load_sig',fig,'Signal_Mask','Load Signal');
  881.       if ~ok, return; end
  882.       % Setting Analysis parameters.
  883.       %-----------------------------
  884.       wmemtool('wmb',fig,n_param_anal, ...
  885.                      ind_sig_name,sigInfos.name,...
  886.                      ind_sig_size,sigInfos.size ...
  887.                      );
  888.       wmemtool('wmb',fig,n_InfoInit, ...
  889.                      ind_filename,sigInfos.filename, ...
  890.                      ind_pathname,sigInfos.pathname  ...
  891.                      );
  892.       % Get the current view.
  893.       %---------------------     
  894.       old_valCHK = get(chk_for_AXES,'Value');      
  895.       % Cleaning.
  896.       %----------
  897.       wwaiting('msg',fig,'Wait ... cleaning');
  898.       cw1dmngr('clean',fig,option);
  899.       wmemtool('wmb',fig,n_param_anal,ind_act_option,option);
  900.  
  901.       % Drawing.
  902.       %---------
  903.       cw1dmngr('plotSignal',fig,sig_Anal);
  904.       % Setting enabled values.
  905.       %------------------------
  906.       cw1dmngr('enable',fig,option);
  907.       % Restore the previous view.
  908.       %---------------------------
  909.       restoreView(fig,chk_for_AXES,old_valCHK);
  910.       % End waiting.
  911.       %---------------
  912.       wwaiting('off',fig);
  913.     case 'demo'
  914.       % Loading file.
  915.       %--------------
  916.       sig_Name = deblank(varargin{1});
  917.       wav_Name = deblank(varargin{2});
  918.       filename = [sig_Name '.mat'];
  919.       pathname = utguidiv('WTB_DemoPath',filename);
  920.       [sigInfos,sig_Anal,ok] = ...
  921.           utguidiv('load_dem1D',fig,pathname,filename);
  922.       if ~ok, return; end
  923.       % Setting Analysis parameters.
  924.       %-----------------------------
  925.       wmemtool('wmb',fig,n_param_anal, ...
  926.                      ind_sig_name,sigInfos.name,...
  927.                      ind_sig_size,sigInfos.size ...
  928.                      );
  929.       wmemtool('wmb',fig,n_InfoInit, ...
  930.                      ind_filename,sigInfos.filename, ...
  931.                      ind_pathname,sigInfos.pathname  ...
  932.                      );
  933.       % Get the current view.
  934.       %---------------------     
  935.       old_valCHK = get(chk_for_AXES,'Value');      
  936.       % Cleaning.
  937.       %----------      
  938.       wwaiting('msg',fig,'Wait ... cleaning');
  939.       cw1dmngr('clean',fig,option);
  940.       % Setting GUI values.
  941.       %--------------------
  942.       wmemtool('wmb',fig,n_param_anal, ...
  943.                      ind_act_option,option,ind_wav_name,wav_Name);
  944.       cw1dmngr('set_gui',fig,option,varargin{3:end});
  945.       % Drawing & Computing .
  946.       %----------------------
  947.       cw1dmngr('plotSignal',fig,sig_Anal);
  948.       wwaiting('msg',fig,'Wait ... computing');
  949.       cw1dmngr('computeCoefsMNGR',fig);
  950.  
  951.       % Setting enabled values.
  952.       %------------------------
  953.       cw1dmngr('enable',fig,option);
  954.       % Restore the previous view.
  955.       %---------------------------
  956.       restoreView(fig,chk_for_AXES,old_valCHK);
  957.       
  958.       % End waiting.
  959.       %---------------
  960.       wwaiting('off',fig);
  961.     case 'save'
  962.       % Testing file.
  963.       %--------------
  964.       [filename,pathname,ok] = utguidiv('test_save',fig, ...
  965.                                    '*.mat','Save Coefficients (CW1D)');
  966.       if ~ok, return; end
  967.       % Begin waiting.
  968.       %--------------
  969.       wwaiting('msg',fig,'Wait ... saving coefficients');
  970.       % Getting Analysis values.
  971.       %-------------------------
  972.       [coefs,scales] = wmemtool('rmb',fig,n_coefs_sca,ind_coefs,ind_scales);
  973.       wname = wmemtool('rmb',fig,n_param_anal,ind_wav_name);
  974.       % Saving file.
  975.       %--------------
  976.       [name,ext] = strtok(filename,'.');
  977.       if isempty(ext) | isequal(ext,'.')
  978.           ext = '.wc1'; filename = [name ext];
  979.       end
  980.       saveStr = {'coefs','scales','wname'};
  981.       wwaiting('off',fig);
  982.       try
  983.         save([pathname filename],saveStr{:});
  984.       catch
  985.         errargt(mfilename,'Save FAILED !','msg');
  986.       end
  987.     case 'anal'
  988.       active_option = wmemtool('rmb',fig,n_param_anal,ind_act_option);
  989.       % Waiting message.
  990.       %-----------------
  991.       wwaiting('msg',fig,'Wait ... cleaning and computing');
  992.       % Get the current view.
  993.       %---------------------     
  994.       old_valCHK = get(chk_for_AXES,'Value');      
  995.       
  996.       if ~strcmp(active_option,'load')
  997.           % Cleaning.
  998.           %----------
  999.           cw1dmngr('clean',fig,'new_anal');
  1000.           % Setting enabled values.
  1001.           %------------------------
  1002.           cw1dmngr('enable',fig,'load');
  1003.       end
  1004.       % Setting Analysis parameters
  1005.       %-----------------------------
  1006.       wav_Name = cbanapar('get',fig,'wav');
  1007.       wmemtool('wmb',fig,n_param_anal,  ...
  1008.                      ind_act_option,option,ind_wav_name,wav_Name);
  1009.       % Computing & Drawing.
  1010.       %--------------------
  1011.       cw1dmngr('computeCoefsMNGR',fig);
  1012.       % Restore the previous view.
  1013.       %---------------------------
  1014.       restoreView(fig,chk_for_AXES,old_valCHK);
  1015.       % Setting enabled values.
  1016.       %------------------------
  1017.       cw1dmngr('enable',fig,option);
  1018.       % End waiting.
  1019.       %-------------
  1020.       wwaiting('off',fig);
  1021.     case 'WindowButtonUpFcn'
  1022. [flag_lin,flag_ref] = cw1dmngr('get_Ena_Flag',fig);
  1023. if flag_lin , ena_lin = 'On'; else , ena_lin = 'Off'; end
  1024. if flag_ref , ena_ref = 'On'; else , ena_ref = 'Off'; end
  1025. set(pus_lin,'Enable',ena_lin); 
  1026. set(pus_ref,'Enable',ena_ref);
  1027.     case 'get_Ena_Flag'
  1028. flag_lin = 0;
  1029.         flag_ref = 0;
  1030. hdl_axe  = NaN;
  1031. switch toolMode
  1032. case {'real'}
  1033. axeLIN = hdl_Re_AXES([2,4]);
  1034.                 axeFLG = hdl_Re_AXES([3,4]);
  1035. case {'abs','arg','all'}
  1036. axeLIN = [hdl_Re_AXES([2,4]) ; hdl_Im_AXES([2,4])];
  1037.                 axeFLG = [hdl_Re_AXES([3,4]) ; hdl_Im_AXES([3,4])];
  1038.                 axeFLG = axeFLG(:)';
  1039. end
  1040. lHor = mngmbtn('getLines',fig,'Hor');
  1041. if ~isempty(lHor) & ishandle(lHor)
  1042. idx = find(axeLIN==get(lHor,'Parent'));
  1043. if ~isempty(idx)
  1044. hdl_axe  = axeLIN(idx);
  1045.                 visFLG = get(axeFLG,'Visible');
  1046.                 switch toolMode
  1047.                     case {'real'}
  1048.                         flag_lin = isequal(visFLG{1},'on');
  1049.                         flag_ref = isequal(visFLG{2},'on');
  1050.                     case {'abs','arg','all'}
  1051.                         flag_lin = isequal(visFLG{1},'on') | ...
  1052.                                    isequal(visFLG{3},'on');
  1053.                         flag_ref = isequal(visFLG{2},'on') | ...
  1054.                                    isequal(visFLG{4},'on');
  1055.                 end
  1056. end
  1057. end
  1058. varargout = {flag_lin,flag_ref,hdl_axe};
  1059. otherwise
  1060.       errargt(mfilename,'Unknown Option','msg');
  1061.       error('*');
  1062. end
  1063. %---------------------------------------------------------%
  1064. function restoreView(fig,chk_for_AXES,old_valCHK)
  1065. new_valCHK = get(chk_for_AXES,'Value'); 
  1066. if ~isequal(old_valCHK,new_valCHK)
  1067.     for k=1:length(old_valCHK) , 
  1068.         set(chk_for_AXES(k),'Value',old_valCHK{k}); 
  1069.     end
  1070.     cw1dmngr('setPosAxes',fig);   
  1071. end
  1072. %---------------------------------------------------------%