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

波变换

开发平台:

Matlab

  1. function txt_msg = wwaiting(option,fig,in3,in4)
  2. %WWAITING Wait and display a message.
  3. %   OUT1 = WWAITING(OPTION,FIG,IN3,IN4)
  4. %   fig is the handle of the figure.
  5. %
  6. %   OPTION = 'on' , 'off'
  7. %
  8. %   OPTION = 'msg'    (display a message)
  9. %    IN3 is a string.
  10. %
  11. %   OPTION = 'create' (create a text for messages)
  12. %   IN3 and in4 are optional.
  13. %   IN3 is height of the text (in pixels).
  14. %   IN4 is a string.
  15. %   OUT1 is the handle of the text.
  16. %
  17. %   OPTION = 'handle'
  18. %   OUT1 is the handle of the text.
  19. %
  20. %   OPTION = 'close'  (delete the text)
  21. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-May-96.
  22. %   Last Revision: 11-Feb-2003.
  23. %   Copyright 1995-2004 The MathWorks, Inc.
  24. % $Revision: 1.11.4.2 $
  25. child = wfindobj('figure');
  26. if isempty(child) | isempty(find(child==fig)) , return; end
  27. tag_msg = 'Txt_Message';
  28. txt_msg = findobj(fig,'Style','text','Tag',tag_msg);
  29. switch option
  30.     case {'on','off'}
  31.         if ~isempty(txt_msg) , set(txt_msg,'Visible',option); end
  32.         mousefrm(0,'arrow');
  33.         drawnow;
  34.     case 'msg'
  35.         %  in3 = msg
  36.         %------------------
  37.         if ~isempty(txt_msg)
  38.             mousefrm(0,'watch');
  39.             nblines = size(in3,1);
  40.             if nblines==1 , in3 = strvcat(' ',in3); end
  41.             set(txt_msg,'Visible','On','String',in3);
  42.             drawnow;
  43.         end
  44.     case 'create'
  45.         % in3 = "position"  (optional)
  46.         % in4 = msg         (optional)
  47.         % out1 = txt_msg
  48.         %------------------
  49.         uni = get(fig,'Units');
  50.         pos = get(fig,'Position');
  51.         tmp = get(0,'defaultUicontrolPosition');
  52.         yl  = 2.5*tmp(4);
  53.         if uni(1:3)=='pix'
  54.             xl = pos(3);
  55.         elseif uni(1:3)=='nor'
  56.             xl = 1;
  57.             [nul,yl] = wfigutil('prop_size',fig,1,yl);
  58.         end
  59.         if nargin>2
  60.             xl = xl*in3;
  61.             if nargin==3
  62.                 msg = '';
  63.                 vis = 'off';
  64.             else
  65.                 msg = in4;
  66.                 nblines = size(msg,1);
  67.                 if nblines==1 , msg = strvcat(' ',msg); end
  68.                 vis = 'on';
  69.                 mousefrm(0,'watch');
  70.             end
  71.         end
  72.         pos_txt_msg = [0 0 xl yl];
  73.         txt_msg = uicontrol(...
  74.                         'Parent',fig,...
  75.                         'Style','text',...
  76.                         'Units',uni,...
  77.                         'Position',pos_txt_msg,...
  78.                         'Visible',vis,...
  79.                         'String',msg,...
  80.                         'Tag',tag_msg...
  81.                         );
  82.         if lower(vis(1:2))=='on' , drawnow; end
  83.     case 'handle'
  84.     case 'close'
  85.         delete(txt_msg);
  86.         mousefrm(0,'arrow');
  87.     otherwise
  88.         errargt(mfilename,'Unknown Option','msg');
  89.         error('*');
  90. end