www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/dw1dtool.m

    function varargout = dw1dtool(option,varargin)
%DW1DTOOL Discrete Wavelet 1-D tool.
%   VARARGOUT = DW1DTOOL(OPTION,VARARGIN)

%   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
%   Last Revision: 22-Sep-2014.
%   Copyright 1995-2014 The MathWorks, Inc.
%   $Revision: 1.19.4.16 $ $Date: 2013/07/05 04:29:59 $

% Test inputs.
%-------------
if nargin==0 , option = 'create'; end
[option,winAttrb] = utguidiv('ini',option,varargin{:});

% Default values.
%----------------
max_lev_anal = 12;
default_nbcolors = 128;

% MemBloc0 of stored values.
%---------------------------
n_InfoInit   = 'DW1D_InfoInit';
% ind_filename =  1;
% ind_pathname =  2;
nb0_stored   =  2;

% MemBloc1 of stored values.
%---------------------------
n_param_anal   = 'DWAn1d_Par_Anal';
% ind_sig_name   = 1;
% ind_sig_size   = 2;
% ind_wav_name   = 3;
% ind_lev_anal   = 4;
% ind_axe_ref    = 5;
% ind_act_option = 6;
% ind_ssig_type  = 7;
% ind_thr_val    = 8;
nb1_stored     = 8;

% MemBloc2 of stored values.
%---------------------------
n_coefs_longs = 'Coefs_and_Longs';
% ind_coefs     = 1;
% ind_longs     = 2;
nb2_stored    = 2;

% MemBloc3 of stored values.
%---------------------------
n_synt_sig = 'Synt_Sig';
% ind_ssig   =  1;
nb3_stored =  1;

% MemBloc4 of stored values.
%---------------------------
n_miscella     = 'DWAn1d_Miscella';
ind_graph_area =  1;
% ind_view_mode  =  2;
% ind_savepath   =  3;
nb4_stored     =  3;

% Tag property of objects.
%-------------------------
tag_m_exp_wrks  = 'm_exp_wrks';
tag_pus_anal    = 'Pus_Anal';
tag_pus_deno    = 'Pus_Deno';
tag_pus_comp    = 'Pus_Comp';
tag_pus_hist    = 'Pus_Hist';
tag_pus_stat    = 'Pus_Stat';
tag_pop_viewm   = 'View_Mode';
tag_pus_dispopt = 'Pus_Options';
tag_valapp_scr  = 'ValApp_Scr';
tag_txtapp_scr  = 'TxtApp_Scr';
tag_valdet_scr  = 'ValDet_Scr';
tag_txtdet_scr  = 'TxtDet_Scr';
tag_declev      = 'Pop_DecLev';
tag_txtdeclev   = 'Txt_DecLev';

switch option
    case 'create'
        % Get Globals.
        %--------------
        [Def_Btn_Height,Def_Btn_Width,Pop_Min_Width,  ...
         Def_Txt_Height,X_Spacing,Y_Spacing,Def_FraBkColor ] = ...
            mextglob('get',...
                'Def_Btn_Height','Def_Btn_Width','Pop_Min_Width',  ...
                'Def_Txt_Height','X_Spacing','Y_Spacing','Def_FraBkColor' ...
                );

        % Wavelet 1-D window initialization.
        %-----------------------------------
        win_title = getWavMSG('Wavelet:dw1dRF:NamWinDW1D');
        [win_dw1dtool,pos_win,win_units,str_numwin,...
            pos_frame0,Pos_Graphic_Area] = ...
                wfigmngr('create',win_title,winAttrb,'ExtFig_Tool',mfilename,1,1,0);
        if nargout>0 , varargout{1} = win_dw1dtool; end
		
		% Add Help for Tool.
		%------------------
		wfighelp('addHelpTool',win_dw1dtool,getWavMSG('Wavelet:dw1dRF:HLP_OneDim'),'DW1D_GUI');

		% Add Help Item.
		%----------------
		wfighelp('addHelpItem',win_dw1dtool,getWavMSG('Wavelet:dw1dRF:HLP_WavInAct'),'DW1D_INACTION');
		wfighelp('addHelpItem',win_dw1dtool,getWavMSG('Wavelet:dw1dRF:HLP_General'),'DW1D_GENERAL');
		wfighelp('addHelpItem',win_dw1dtool,getWavMSG('Wavelet:dw1dRF:HLP_WavDec'),'DW1D_DECOMPOS');
		wfighelp('addHelpItem',win_dw1dtool,getWavMSG('Wavelet:dw1dRF:HLP_LoadSave'),'DW1D_LOADSAVE');	
		
        % Menu construction for current figure.
        %--------------------------------------
		[m_files,m_load,m_save,m_view] = ...
			wfigmngr('getmenus',win_dw1dtool,'file','load','save','view');
        set(m_save,'Enable','Off');
        m_demo = uimenu(m_files,...
                   'Label',getWavMSG('Wavelet:commongui:Lab_Example'),'Position',3,'Separator','Off');
        m_imp_wrks = uimenu(m_files,...
            'Label',getWavMSG('Wavelet:commongui:Lab_Import'), ...
            'Position',4,'Separator','On'    ...
            );
        m_exp_wrks = uimenu(m_files,...
            'Label',getWavMSG('Wavelet:commongui:Lab_Export'),  ...
            'Position',5,'Enable','Off','Separator','Off', ...
            'Tag',tag_m_exp_wrks  ...
            );
                
        uimenu(m_load,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_Signal'),   ...
            'Position',1,'Tag','Load_Sig',        ...
            'Callback',['dw1dmngr(''load_sig'',' str_numwin ');'] ...
            );
        uimenu(m_load,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_Coefficients'),  ...
            'Position',2,             ...
            'Callback',['dw1dmngr(''load_cfs'',' str_numwin ');']  ...
            );
        uimenu(m_load,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_Decomposition'), ...
            'Position',3,             ...
            'Callback',['dw1dmngr(''load_dec'',' str_numwin ');']  ...
            );
		uimenu(m_save,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_Signal'),...
            'Position',1,                 ...
            'Callback',['dw1dmngr(''save_synt'',' str_numwin ');']  ...
            );
        uimenu(m_save,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_Coefficients'), ...
            'Position',2,            ...
            'Callback',['dw1dmngr(''save_cfs'',' str_numwin ');']  ...
            );
        uimenu(m_save,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_Decomposition'), ...
            'Position',3,             ...
            'Callback',['dw1dmngr(''save_dec'',' str_numwin ');']  ...
            );
        Men_Save_APP = uimenu(m_save,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_App'), ...
            'Position',4,             ...
            'Separator','On',...
            'Tag','Men_Save_APP' ...
            );
        uimenu(Men_Save_APP,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_AppAtLev',1), ...
            'Position',1,             ...
            'Callback',['dw1dmngr(''save_app'',' str_numwin ');']  ...
            );
         Men_Save_APP_CFS = uimenu(m_save,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_AppCfs'), ...
            'Position',5,             ...
            'Separator','On',...
            'Tag','Men_Save_APP_CFS' ...
            );
        uimenu(Men_Save_APP_CFS,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_AppCfsOf',1), ...
            'Position',1,             ...
            'Callback',['dw1dmngr(''save_app_cfs'',' str_numwin ');']  ...
            );
        
        m_demo_1 = uimenu(m_demo, ...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_Demo_1'), ...
            'Tag','Basic_Sig');
        m_demo_2 = uimenu(m_demo,'Label',getWavMSG('Wavelet:dw1dRF:Lab_Demo_2'));
        m_demo_3 = uimenu(m_demo,'Label',getWavMSG('Wavelet:dw1dRF:Lab_Demo_3'));

        % Submenu of test signals.
        %-------------------------
        names = { ...
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_sumsin');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_freqbrk');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_whitnois');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_warma');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_noispol');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_noispol');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_wstep');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_nearbrk');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_nearbrk');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_scddvbrk');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_scddvbrk');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_wnoislop');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_cnoislop');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_noissin');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_trsin');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_wntrsin');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_leleccum');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_wcantor');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_vonkoch')
            };
        
        files = [ 'sumsin  ' ; 'freqbrk ' ; 'whitnois' ; 'warma   ' ; ...
                  'noispol ' ; 'noispol ' ; 'wstep   ' ; 'nearbrk ' ; ...
                  'nearbrk ' ; 'scddvbrk' ; 'scddvbrk' ; 'wnoislop' ; ...
                  'cnoislop' ; 'noissin ' ; 'trsin   ' ; 'wntrsin ' ; ...
                  'leleccum' ; 'wcantor ' ; 'vonkoch '                    ];    

        waves = ['db3' ; 'db5' ; 'db3' ; 'db3' ; 'db2' ; 'db3' ; 'db2' ; ...
                 'db2' ; 'db7' ; 'db1' ; 'db4' ; 'db3' ; 'db3' ; 'db5' ; ...
                 'db5' ; 'db5' ; 'db3' ; 'db1' ; 'db1'                      ];

        levels = ['5';'5';'5';'5';'4';'4';'5';'5';'5';'2';'2';'6';'6';'5';...
                        '6';'7';'5';'5';'5'];

        beg_call_str = ['dw1dmngr(''demo'',' str_numwin ','''];
        for i=1:size(files,1)
            libel = getWavMSG('Wavelet:dw1dRF:Example_DW1D', ...
                    waves(i,:),levels(i,:),names{i});
            action = [beg_call_str files(i,:) ''',''' ...
                waves(i,:) ''',' levels(i,:) ');'];
            uimenu(m_demo_1,'Label',libel,'Callback',action);
        end
        names = {...
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NBlocks');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NBumps');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NHeavySin');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NDoppler');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NQdchirp');
            getWavMSG('Wavelet:moreMSGRF:EX1D_Name_Nmishmash')
            };
        files   = [ 'noisbloc' ; 'noisbump' ; 'heavysin' ; ...
                        'noisdopp' ; 'noischir' ; 'noismima'      ];
        waves   = ['sym8';'sym4';'sym8';'sym4';'db1 ';'db3 '];
        levels  = ['5';'5';'5';'5';'5';'5'];
        beg_call_str = ['dw1dmngr(''demo'',' str_numwin ','''];
        for i=1:size(files,1)
            libel = getWavMSG('Wavelet:dw1dRF:Example_DW1D', ...
                    waves(i,:),levels(i,:),names{i});
            action = [beg_call_str files(i,:) ''',''' ...
                            waves(i,:) ''',' levels(i,:) ');'];
            uimenu(m_demo_2,'Label',libel,'Callback',action);
        end
        demoSET = {...
          getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NBlocks_I'), ...
                'nblocr1' , 'sym4', 5 , 3  ; ...
          getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NBlocks_II'), ...
                'nblocr2' , 'sym4', 5 , 3  ; ...
          getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NDoppler_I'), ...
                'ndoppr1' , 'sym4', 5 , 3  ; ...
          getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NBumps_I'), ...
                'nbumpr1' , 'sym4', 5 , 3  ; ...
          getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NBumps_II'), ...
                'nbumpr2' , 'sym4', 5 , 2  ; ...
          getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NBumps_III'), ...
                'nbumpr3' , 'sym4', 5 , 4  ; ...
          getWavMSG('Wavelet:moreMSGRF:EX1D_Name_NElec'), ...
                'nelec'   , 'sym4', 5 , 3    ...
          };
        for k=1:length(demoSET)
            nam = demoSET{k,1};
            fil = demoSET{k,2};
            wav = demoSET{k,3};
            lev = int2str(demoSET{k,4});
            libel = getWavMSG('Wavelet:dw1dRF:Example_DW1D',wav,lev,nam);
            action = [beg_call_str fil ''',''' wav ''',' lev ');'];
            uimenu(m_demo_3,'Label',libel,'Callback',action);
        end

        uimenu(m_imp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ImportSig'), ...
            'Tag','Import_Sig', ...
            'Callback',['dw1dmngr(''import_sig'',' str_numwin ');'] ...
            );
        uimenu(m_imp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ImportCfs'), ...
            'Tag','Import_Cfs', ...
            'Callback',['dw1dmngr(''import_cfs'',' str_numwin ');'] ...            
            );
        uimenu(m_imp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ImportDec'),...
            'Tag','Import_Dec', ...            
            'Callback',['dw1dmngr(''import_dec'',' str_numwin ');'] ...
            );
        
        cb_beg = ['dw1dmngr(''exp_wrks'',' str_numwin];
        uimenu(m_exp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ExportSig'), ...
            'Tag','Export_Sig','Callback',[cb_beg ',''sig'');'] ...
            );
        uimenu(m_exp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ExportCfs'), ...
            'Tag','Export_Cfs','Callback',[cb_beg ',''cfs'');'] ...
            );
        uimenu(m_exp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ExportDec'), ...
            'Tag','Export_Dec','Callback',[cb_beg ',''dec'');'] ...
            );
        uimenu(m_exp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ExportAll_APP'),...
            'Separator','on','Callback',[cb_beg ',''app'');'] ...
            );
        uimenu(m_exp_wrks,...
            'Label',getWavMSG('Wavelet:dw1dRF:Lab_ExportAll_DET'),...
            'Callback',[cb_beg ',''det'');'] ...
            );
        

        % Adding option for choosing Default Display Mode.
        %-------------------------------------------------
        viewmode_Names  = {...
             getWavMSG('Wavelet:dw1dRF:DW1D_SCRM'); ...
             getWavMSG('Wavelet:dw1dRF:DW1D_DECM'); ...
             getWavMSG('Wavelet:dw1dRF:DW1D_SEPM'); ...
             getWavMSG('Wavelet:dw1dRF:DW1D_SUPM'); ...
             getWavMSG('Wavelet:dw1dRF:DW1D_TREM'); ...
             getWavMSG('Wavelet:dw1dRF:DW1D_CFSM') ...
            };
        DW1D_Display_Mode = 2;
        m_disp = uimenu(m_view,                         ...
                        'Label',getWavMSG('Wavelet:dw1dRF:Lab_DefDispMode'), ...
                        'Separator','On'                ...
                        );
        nbm     = length(viewmode_Names);
        dm      = zeros(1,nbm);
        for k=1:nbm
            dm(k) = uimenu(m_disp,                    ...
                          'Label',viewmode_Names{k},  ...
                          'Checked','Off'             ...
                          );
        end
        dmstr = num2mstr(dm);
        for k = 1:nbm
            set(dm(k),            ...
                    'UserData',k, ...
                    'CallBack',   ...
                    ['dw1dvdrv(''default'',' str_numwin ...
                    ','  dmstr ',' sprintf('%.0f',k) ');']);
        end
        dw1dvdrv('default',win_dw1dtool,dm,DW1D_Display_Mode);

        % Begin waiting.
        %---------------
        wwaiting('msg',win_dw1dtool,getWavMSG('Wavelet:commongui:WaitInit'));

        % Borders and double borders.
        %----------------------------
        dx = X_Spacing;   dx2 = 2*dx;
        dy = Y_Spacing;   dy2 = 1.5*dy;  %2*dy
        d_txt = (Def_Btn_Height-Def_Txt_Height);

        % Position property of objects.
        %------------------------------
        x_frame0    = pos_frame0(1);
        cmd_width   = pos_frame0(3);
        xlocINI     = pos_frame0([1 3]);
        ybottomINI  = pos_win(4)-4*Def_Btn_Height-dy2; %-3.5 High DPI 

        y_low       = ybottomINI-2.5*Def_Btn_Height-dy2;
        w_uic       = 1.5*Def_Btn_Width;
        h_uic       = 1.5*Def_Btn_Height;
        bdx         = (cmd_width-w_uic)/2;
        x_left      = x_frame0+bdx;
        pos_anal    = [x_left, y_low, w_uic, h_uic];

        x_left      = x_frame0+dx2;
        y_low       = pos_anal(2)-h_uic-2*dy2;
        push_width  = (cmd_width-3*dx2)/2;
        pos_stat    = [x_left, y_low, push_width, h_uic];
        pos_comp    = pos_stat;
        pos_comp(1) = pos_stat(1)+pos_stat(3)+dx2;
        y_low       = y_low-h_uic-dy; 
        pos_hist    = [x_left, y_low, push_width, h_uic];
        pos_deno    = pos_hist;
        pos_deno(1) = pos_hist(1)+pos_hist(3)+dx2;

        y_low           = pos_hist(2)-h_uic-1.5*dy2;
        pos_viewm_txt   = [x_left, y_low, 2*Def_Btn_Width, Def_Btn_Height];

        pop_width       = cmd_width-3*dx2;       
        x_left          = x_frame0+(cmd_width-pop_width)/2;
        y_low           = pos_viewm_txt(2)-Def_Btn_Height;
        pos_pop_viewm   = [x_left, y_low, pop_width, Def_Btn_Height];

        pop_width       = cmd_width-4*dx2;
        x_left          = x_frame0+(cmd_width-pop_width)/2;
        [dyLow,mul_H]   = wtbutils('dw1d_DISP_PREFS');
        y_low           = y_low - dyLow;
        pos_pus_dispopt = [x_left, y_low, pop_width, mul_H*Def_Btn_Height];
        %----------------------------------------
        WIDTH_BTN = 5*Pop_Min_Width + 6*dx; %High DPI 5.2 and 6.2
        WIDTH_FRA = pos_frame0(3);
        while WIDTH_BTN>WIDTH_FRA && dx>1
            dx = dx-1; dx2 = 2*dx;
            WIDTH_BTN = 5*Pop_Min_Width + 6*dx; 
        end
        while WIDTH_BTN>WIDTH_FRA
            Pop_Min_Width = Pop_Min_Width-1;
            WIDTH_BTN = 5.2*Pop_Min_Width + 6.2*dx;
        end

        %----------------------------------------               
        y_low           = pos_pop_viewm(2)-Def_Btn_Height-dy2;
        x_left          = pos_frame0(1)+dx2;
        w_txt           = Pop_Min_Width+dx/3; %High DPI dx/2
        pos_txtapp_scr  = [pos_frame0(1)+dx/2 , y_low-d_txt/2, ...
                                    1.5*w_txt , Def_Btn_Height];  %high DPI dx/2  2 -> 1.5
        
        xl              = pos_txtapp_scr(1)+pos_txtapp_scr(3)+dx/2;
        pos_valapp_scr  = [xl, y_low, Pop_Min_Width, Def_Btn_Height];
        xl              = pos_valapp_scr(1)+pos_valapp_scr(3)+dx;
        
        pos_txtdet_scr  = [xl , y_low-d_txt/2 , 1.2*w_txt , Def_Btn_Height];
        xl              = pos_txtdet_scr(1)+pos_txtdet_scr(3)+dx/2;
        pos_valdet_scr  = [xl, y_low, Pop_Min_Width, Def_Btn_Height];

        y_low           = pos_pop_viewm(2)-Def_Btn_Height-dy2;
        pos_txtlev_dec  = [x_left+3, y_low+d_txt/2, Def_Btn_Width, Def_Txt_Height]; %+3
        xl              = pos_txtlev_dec(1)+Def_Btn_Width+dx2;
        pos_declev      = [xl, y_low, 1.5*Pop_Min_Width, Def_Btn_Height];

        % String property of objects.
        %----------------------------
        str_levels      = int2str((1:max_lev_anal)');
        str_anal        = getWavMSG('Wavelet:commongui:Str_Anal');
        str_stat        = getWavMSG('Wavelet:commongui:Str_STAT');
        str_comp        = getWavMSG('Wavelet:commongui:Str_COMP');
        str_hist        = getWavMSG('Wavelet:commongui:Str_HIST');
        str_deno        = getWavMSG('Wavelet:commongui:Str_DENO');
        str_viewm_txt   = getWavMSG('Wavelet:dw1dRF:Str_VIEWM_txt');
        str_pop_viewm   = viewmode_Names;
        str_pus_dispopt = getWavMSG('Wavelet:dw1dRF:Str_DISPOPT');
        str_txtapp_scr  = getWavMSG('Wavelet:commongui:Str_Approximation');
        str_valapp_scr  = str_levels;
        str_txtdet_scr  = getWavMSG('Wavelet:commongui:Str_Detail');
        str_valdet_scr  = str_levels;
        str_txtlev_dec  = getWavMSG('Wavelet:dw1dRF:Str_At_LEVELS');
        str_declev      = str_levels;


        % Callback property of objects.
        %------------------------------
        cba_anal    = ['dw1dmngr(''anal'',' str_numwin ');'];
        cba_stat    = ['dw1dmngr(''stat'',' str_numwin ');'];
        cba_comp    = ['dw1dmngr(''comp'',' str_numwin ');'];
        cba_hist    = ['dw1dmngr(''hist'',' str_numwin ');'];
        cba_deno    = ['dw1dmngr(''deno'',' str_numwin ');'];
        cba_viewm   = ['dw1dvmod(''ch_vm'',' str_numwin ');'];
        cba_mdisp   = ['dw1ddisp(''create'',' str_numwin ');'];
        cba_app_scr = ['dw1dtool(''app'',' str_numwin ');'];
        cba_det_scr = ['dw1dtool(''det'',' str_numwin ');'];
        cba_declev  = ['dw1dtool(''dec'',' str_numwin ');'];

        % Command part of the window.
        %============================

        % Data, Wavelet and Level parameters.
        %------------------------------------
        utanapar('create',win_dw1dtool, ...
                 'xloc',xlocINI,'bottom',ybottomINI,...
                 'Enable','off', ...
                 'wtype','dwt'   ...
                 );

        commonProp = {...
            'Parent',win_dw1dtool, ...
            'Style','pushbutton',  ...
            'Units',win_units,     ...
            'Enable','off'         ...
            };
        pus_anal = uicontrol(commonProp{:},...
            'Position',pos_anal,  ...
            'String',str_anal,    ...
            'Tag',tag_pus_anal,   ...
            'Callback',cba_anal,  ...
            'Interruptible','On'  ...
            );

        uicontrol(commonProp{:},...
            'Position',pos_stat,  ...
            'String',str_stat,    ...
            'Tag',tag_pus_stat,   ...
            'Callback',cba_stat   ...
            );

        uicontrol(commonProp{:},...
            'Position',pos_comp,  ...
            'String',str_comp,    ...
            'Tag',tag_pus_comp,   ...
            'Callback',cba_comp   ...
            );

        uicontrol(commonProp{:},...
            'Position',pos_hist,  ...
            'String',str_hist,    ...
            'Tag',tag_pus_hist,   ...
            'Callback',cba_hist   ...
            );

        uicontrol(commonProp{:},...
            'Position',pos_deno,  ...
            'String',str_deno,    ...
            'Tag',tag_pus_deno,   ...
            'Callback',cba_deno   ...
            );

        txt_viewm  = uicontrol(...
            'Parent',win_dw1dtool,          ...
            'Style','text',                 ...
            'Units',win_units,               ...
            'HorizontalAlignment','left',   ...
            'Position',pos_viewm_txt,       ...
            'String',str_viewm_txt,         ...
            'BackgroundColor',Def_FraBkColor...
            );
        view_mode = 1;
        pop_viewm = uicontrol(...
            'Parent',win_dw1dtool,    ...
            'Style','Popup',          ...
            'Units',win_units,         ...
            'Position',pos_pop_viewm, ...
            'String',str_pop_viewm,   ...
            'Value',view_mode,        ...
            'UserData',view_mode,     ...
            'Enable','off',           ...
            'Callback',cba_viewm,     ...
            'Tag',tag_pop_viewm       ...
            );

        pus_dispopt = uicontrol(...
            'Parent',win_dw1dtool,      ...
            'Style','pushbutton',       ...
            'Units',win_units,           ...
            'Position',pos_pus_dispopt, ...
            'String',str_pus_dispopt,   ...
            'Visible','off',            ...
            'Enable','off',             ...
            'Tag',tag_pus_dispopt,      ...
            'Interruptible','On',       ...
            'Callback',cba_mdisp        ...
            );

        txt_txtapp_scr = uicontrol(...
            'Parent',win_dw1dtool,          ...
            'Style','Text',                 ...
            'Units',win_units,               ...
            'Position',pos_txtapp_scr,      ...
            'Visible','Off',                ...
            'String',str_txtapp_scr,        ...
            'BackgroundColor',Def_FraBkColor,...
            'Tag',tag_txtapp_scr            ...
            );
        pop_valapp_scr  = uicontrol(...
            'Parent',win_dw1dtool,          ...
            'Style','Popup',                ...
            'Units',win_units,               ...
            'Position',pos_valapp_scr,      ...
            'Visible','Off',                ...
            'String',str_valapp_scr,        ...
            'Enable','off',                 ...
            'Tag',tag_valapp_scr,           ...
            'Callback',cba_app_scr          ...
            );
        txt_txtdet_scr  = uicontrol(...
            'Parent',win_dw1dtool,          ...
            'Style','Text',                 ...
            'Units',win_units,               ...
            'Position',pos_txtdet_scr,      ...
            'Visible','Off',                ...
            'String',str_txtdet_scr,        ...
            'BackgroundColor',Def_FraBkColor,...
            'Tag',tag_txtdet_scr            ...
            );
        pop_valdet_scr  = uicontrol(...
            'Parent',win_dw1dtool,          ...
            'Style','Popup',                ...
            'Units',win_units,               ...
            'Position',pos_valdet_scr,      ...
            'Visible','Off',                ...
            'String',str_valdet_scr,        ...
            'Enable','off',                 ...
            'Tag',tag_valdet_scr,           ...
            'Callback',cba_det_scr          ...
            );

        uicontrol(...
            'Parent',win_dw1dtool,          ...
            'Style','Text',                 ...
            'Units',win_units,               ...
            'Position',pos_txtlev_dec,      ...
            'Visible','Off',                ...
            'String',str_txtlev_dec,        ...
            'BackgroundColor',Def_FraBkColor,...
            'Tag',tag_txtdeclev             ...
            );
        uicontrol(...
            'Parent',win_dw1dtool, ...
            'Style','Popup',       ...
            'Units',win_units,      ...
            'Position',pos_declev, ...
            'Visible','Off',       ...
            'String',str_declev,   ...
            'Enable','off',        ...
            'Tag',tag_declev,      ...
            'Callback',cba_declev  ...
            );

        % Adding colormap GUI.
        %---------------------
        utcolmap('create',win_dw1dtool, ...
                 'xloc',xlocINI,        ...
                 'Enable','off',        ...
                 'briflag',0,           ...
                 'bkcolor',Def_FraBkColor);

        % Initial Mode.
        %--------------
        pos_txt1   = get(txt_txtapp_scr,'Position');
        pos_opt    = get(pus_dispopt,'Position');
        pos_opt(2) = pos_txt1(2)-Def_Btn_Height-2*dy2;
        set(pus_dispopt,'Position',pos_opt);
        set([txt_txtapp_scr, txt_txtdet_scr,...
             pop_valapp_scr, pop_valdet_scr, pus_dispopt],'Visible','on');

        drawnow

		% Add Context Sensitive Help (CSHelp).
		%-------------------------------------
		hdl_DW1D_DISPMODE = [txt_viewm,pop_viewm];
		hdl_DW1D_MOREDISP = pus_dispopt;
		wfighelp('add_ContextMenu',win_dw1dtool,hdl_DW1D_DISPMODE,'DW1D_DISPMODE');
		wfighelp('add_ContextMenu',win_dw1dtool,hdl_DW1D_MOREDISP,'DW1D_MOREDISP');
		%-------------------------------------

        %  Normalisation.
        %----------------
        Pos_Graphic_Area = wfigmngr('normalize',win_dw1dtool, ...
            Pos_Graphic_Area,'On');

        % Callbacks update.
        %------------------
        utanapar('set_cba_num',win_dw1dtool,[m_files;pus_anal]);

        % Memory for stored values.
        %--------------------------
        wmemtool('ini',win_dw1dtool,n_InfoInit,nb0_stored);
        wmemtool('ini',win_dw1dtool,n_param_anal,nb1_stored);
        wmemtool('ini',win_dw1dtool,n_coefs_longs,nb2_stored);
        wmemtool('ini',win_dw1dtool,n_synt_sig,nb3_stored);
        wmemtool('ini',win_dw1dtool,n_miscella,nb4_stored);
        wmemtool('wmb',win_dw1dtool,n_miscella,...
                       ind_graph_area,Pos_Graphic_Area);

        % Setting Initial Colormap.
        %--------------------------
        cbcolmap('set',win_dw1dtool,'pal',{'pink',default_nbcolors});

        % Initialize View Mode Parameters.
        %---------------------------------
        dw1dvmod('ini_vm',win_dw1dtool);

        % End waiting.
        %---------------
        wwaiting('off',win_dw1dtool);

    case {'app','det'}
        fig = varargin{1};
        pop_viewm = findobj(get(fig,'Children'),'flat','Tag',tag_pop_viewm);
        view_mode = get(pop_viewm,'Value');
        switch view_mode
            case 1 , dw1dscrm(option,fig);
            case 6 , dw1dcfsm(option,fig);
        end

    case 'dec'
        fig = varargin{1};
        dw1ddecm('dec',fig);

    case 'close'
        % in2 = win_dw1dtool
        %--------------------
        fig = varargin{1};
        called_win = wfindobj('figure','UserData',fig);
        delete(called_win);
        if ishandle(fig) , set(fig,'Visible','Off'); end
        drawnow
        feval('dw1dfile','del',fig);

    otherwise
        errargt(mfilename,getWavMSG('Wavelet:moreMSGRF:Unknown_Opt'),'msg');
        error(message('Wavelet:FunctionArgVal:Invalid_Input'));
end