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

波变换

开发平台:

Matlab

  1. function redimfig(option,hFig,varargin)
  2. %REDIMFIG Reset the size for a new figure.
  3. %   REDIMFIG('On',HFIG) resets the size of the figure whose
  4. %   handle is HFIG. The ratio with the default size is 
  5. %   computed and depends on the screen size.
  6. %
  7. %   REDIMFIG('On',HFIG,RATIO) uses the ratio RATIO to compute
  8. %   the new size of the figure.
  9. %
  10. %   After computation of the default ratio, 
  11. %   REDIMFIG('On',HFIG,BOUND_RATIO) computes the default ratio
  12. %   and then uses BOUND_RATIO = [LowRAT, HighRAT] to define
  13. %   the correct ratio.
  14. %
  15. %   REDIMFIG('On',HFIG,BOUND_RATIO,'left') set the figure
  16. %   on the left of the screen.
  17. %
  18. %   REDIMFIG('Off' ,...) do nothing.
  19. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 15-Jul-2003.
  20. %   Last Revision: 15-Jul-2003.
  21. %   Copyright 1995-2004 The MathWorks, Inc.
  22. %   $Revision: 1.1.6.3 $  $Date: 2004/04/13 00:40:04 $
  23. switch lower(option)
  24.     case 'on'  , 
  25.     case 'off' , return
  26.     otherwise  , return
  27. end
  28. ScreenSize = get(0,'ScreenSize');
  29. ScreenSize = ScreenSize(3:4);
  30. if isequal(ScreenSize,[800,600]);
  31.     ratio = 1.05;
  32.     UIC = wfindobj(hFig,'type','uicontrol');
  33.     set(UIC,'FontWeight','normal');
  34. elseif isequal(ScreenSize,[1024,768]) % Base of construction
  35.     ratio = 1;
  36. elseif isequal(ScreenSize,[1152,864])
  37.     ratio = 0.95;
  38. elseif isequal(ScreenSize,[1280,768])
  39.     ratio = 0.95;
  40. elseif isequal(ScreenSize,[1280,960])
  41.     ratio = 0.90;
  42. elseif isequal(ScreenSize,[1280,1024])
  43.     ratio = 0.85;
  44. else
  45.     ratScr = [1024,768]./ScreenSize;
  46.     if max(ratScr)>1
  47.         ratio = min([max(ratScr),1.05]);
  48.     elseif max(ratScr)<1
  49.         ratio = max([max(ratScr),0.85]);
  50.     else
  51.         ratio = 1;
  52.     end
  53. end
  54. leftFLAG = false;
  55. if nargin>2
  56.     Input_1 = varargin{1};
  57.     if isnumeric(Input_1)
  58.         if length(Input_1)==1
  59.             ratio = Input_1; % Force ratio value
  60.         else
  61.             minRatVal = min(Input_1);
  62.             maxRatVal = max(Input_1);
  63.             ratio = min([max([minRatVal,ratio]),maxRatVal]);
  64.         end
  65.     else
  66.         error('## Not Used ##')
  67.     end
  68.     if nargin>3
  69.         Input_2 = varargin{2};
  70.         if isequal(lower(Input_2),'left') , leftFLAG = true; end
  71.     end
  72. end
  73. if ~isequal(ratio,1)
  74.     wtbxmngr('FigRatio',ratio);
  75.     wfigmngr('normalize',hFig);
  76.     wtbxmngr('FigRatio',1);
  77.     if leftFLAG
  78.         uniFIG = get(hFig,'Units');
  79.         posFIG   = get(hFig,'Position');
  80.         switch lower(uniFIG(1:3))
  81.             case 'pix' , posFIG(1) = 5;
  82.             case 'nor' , posFIG(1) = 5/ScreenSize(1);
  83.         end
  84.         set(hFig,'Position',posFIG);
  85.     end
  86. end