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

波变换

开发平台:

Matlab

  1. function varargout = wmachdep(option,varargin)
  2. %WMACHDEP Machine dependent values.
  3. %   VARARGOUT = WMACHDEP(OPTION,VARARGIN)
  4. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 15-Feb-1998.
  5. %   Last Revision: 03-May-1999.
  6. %   Copyright 1995-2002 The MathWorks, Inc.
  7. %   $Revision: 1.7 $  $Date: 2002/04/14 19:42:19 $
  8. switch option
  9.     case 'read_defaultMode'
  10.       varargout{1} = 3;  % Gray Figures.
  11.       return
  12.     case 'test_prefMode'
  13.       allPrefMode = [1:8 , 666];
  14.       if isempty(find(varargin{1}==allPrefMode))
  15.           varargout{1} = wmachdep('read_defaultMode');
  16.       else
  17.           varargout{1} = varargin{1};
  18.       end
  19.       return
  20. end
  21. scrSize = get(0,'ScreenSize');
  22. machine = computer;
  23. machine = machine(1:3);
  24. switch option   
  25.     case 'globals'
  26.         % Globals: Sizes and Colors
  27.         %---------------------------
  28.         if scrSize(4)<600
  29.             sizes.btnHeight = 16;
  30.             sizes.btnWidth  = 60;
  31.             sizes.popWidth  = 50;
  32.             sizes.xSpacing  = 2;
  33.             sizes.ySpacing  = 2;
  34.             switch machine
  35.                 case 'PCW' , sizes.axeFontSize = 8; sizes.txtFontSize = 8;
  36.                 otherwise  , sizes.axeFontSize = 8; sizes.txtFontSize = 8;
  37.             end
  38.             sizes.axeFontSize = 8;
  39.             sizes.txtFontSize = 8;
  40.             sizes.uicFontWeight = 'normal';
  41.             sizes.axeFontWeight = 'normal';
  42.             sizes.txtFontWeight = 'normal';
  43.             sizes.xGraRatio   = 0.71;
  44.         elseif scrSize(4)<700
  45.             if strcmp(machine,'MAC')
  46.                 sizes.btnHeight = 20;
  47.             else
  48.                 sizes.btnHeight = 18;
  49.             end
  50.             sizes.btnWidth = 60;
  51.             sizes.popWidth = 60;
  52.             sizes.xSpacing = 3;
  53.             sizes.ySpacing = 3;
  54.             switch machine
  55.                 case 'PCW' , sizes.axeFontSize = 8; sizes.txtFontSize = 8;
  56.                 otherwise  , sizes.axeFontSize = 9; sizes.txtFontSize = 9;
  57.             end
  58.             sizes.uicFontWeight = 'normal';
  59.             sizes.axeFontWeight = 'normal';
  60.             sizes.txtFontWeight = 'normal';
  61.             sizes.xGraRatio   = 0.72;
  62.         elseif scrSize(4)<1200
  63.             sizes.btnHeight = 22;
  64.             sizes.btnWidth  = 80;
  65.             sizes.popWidth  = 60;
  66.             sizes.xSpacing  = 8;
  67.             sizes.ySpacing  = 5;
  68.             switch machine
  69.                 case 'PCW' , sizes.axeFontSize = 8; sizes.txtFontSize = 8;
  70.                 otherwise  , sizes.axeFontSize = 9; sizes.txtFontSize = 9;
  71.             end
  72.             sizes.uicFontWeight = 'bold';
  73.             sizes.axeFontWeight = 'bold';
  74.             sizes.txtFontWeight = 'bold';
  75.             sizes.xGraRatio   = 0.71;
  76.         else
  77.             sizes.btnHeight = 22;
  78.             sizes.btnWidth  = 90;
  79.             sizes.popWidth  = 70;
  80.             sizes.xSpacing  =  8;
  81.             sizes.ySpacing  =  6;
  82.             switch machine
  83.                 case 'PCW' , sizes.axeFontSize = 8; sizes.txtFontSize = 8;
  84.                 otherwise  , sizes.axeFontSize = 9; sizes.txtFontSize = 9;
  85.             end
  86.             sizes.uicFontWeight = 'bold';
  87.             sizes.axeFontWeight = 'bold';
  88.             sizes.txtFontWeight = 'bold';
  89.             sizes.xGraRatio     = 0.71;
  90.         end
  91.         sizes.txtHeight   = 16;
  92.         sizes.sliYProp    = 2/3;
  93.         colors.uicBkColor = get(0,'DefaultUicontrolBackgroundcolor');
  94.         switch machine
  95.             case 'PCW'
  96.                 sizes.termProp     = scrSize(3:4);
  97.                 sizes.figShiftTop  = 40;
  98.                 if scrSize(4)>=1200 , sizes.figShiftTop  = 55; end
  99.                 colors.uicBkColor = 0.7529*[1 1 1];
  100.                 colors.txtBkColor = 0.6*[1 1 1];
  101.                 colors.fraBkColor = colors.uicBkColor;
  102.             case 'MAC'
  103.                 sizes.termProp    = scrSize(3:4);
  104.                 sizes.figShiftTop = 40;
  105.                 colors.txtBkColor = [0.90 0.90 0.90];
  106.                 colors.fraBkColor = [0.77 0.77 0.77];
  107.                 
  108.             otherwise
  109.                 sizes.termProp    = get(0,'TerminalDimension');
  110.                 sizes.figShiftTop = 55;
  111.                 colors.txtBkColor = [0.90 0.90 0.90];
  112.                 colors.fraBkColor = colors.uicBkColor;
  113.         end
  114.         colors.ediBkColor  = [1 1 1];
  115.         colors.lstColorMap = ...
  116.                 strvcat(...
  117.                         'pink','cool','gray','hot','jet','bone',      ...
  118.                         'copper','hsv','prism','1 - pink','1 - cool', ...
  119.                         '1 - gray','1 - hot','1 - jet','1 - bone',    ...
  120.                         'autumn ','spring','winter','summer'          ...
  121.                         );
  122.         varargout = {sizes , colors};
  123.     case 'colors'
  124.         % Globals: Colors
  125.         %-----------------
  126.         prefMode = varargin{1};
  127.         colors   = varargin{2};
  128.         colors.defColor = 'white';
  129.         switch prefMode
  130.             case {'white','black','none'}
  131.                 colors.defColor = prefMode;
  132.             case {1,2,3,4,5}
  133.                 colors.defColor = 'black';
  134.                 switch prefMode
  135.                     case 1   , colors.figColor = [0 0 0];
  136.                     case 2   , colors.figColor = [0.2 0.3 0.5];
  137.                     case 3   , colors.figColor = [0.5 0.5 0.5];
  138.                     case 4   , colors.figColor = [0.5 0.3 0.2];
  139.                     case 5   , colors.figColor = [0.3 0.5 0.2];
  140.                 end
  141.                 xyz_Color = 'w';
  142.                 if strcmp(machine,'PCW')
  143.                     colors.uicBkColor = 0.7529*[1 1 1];
  144.                     colors.txtBkColor = 0.6*[1 1 1];
  145.                     colors.fraBkColor = colors.uicBkColor;
  146.                 elseif prefMode==1 | prefMode==3 | prefMode==9
  147.                     colors.txtBkColor = [0.90 0.90 0.90];
  148.                     colors.fraBkColor = colors.uicBkColor;
  149.  
  150.                 else
  151.                     colors.txtBkColor = colors.figColor.^0.3;
  152.                     colors.fraBkColor = colors.figColor.^0.4;
  153.                 end
  154.             case {666}
  155.                 colors.defColor = 'white';
  156.                 colors.figColor = [0.6 0.6 0.6];
  157.                 xyz_Color = 'k';
  158.                 colors.uicBkColor = 0.7529*[1 1 1];
  159.                 colors.txtBkColor = 0.7*[1 1 1];
  160.                 colors.fraBkColor = colors.uicBkColor;
  161.             case {6,7,8}
  162.                 colors.defColor = 'white';
  163.                 if     prefMode==6 , colors.figColor = 'w';
  164.                 elseif prefMode==7 , colors.figColor = [1 0.9 0.8];
  165.                 elseif prefMode==8 , colors.figColor = [0.9 0.9 1];
  166.                 end
  167.                 xyz_Color = 'k';
  168.                 if strcmp(machine,'PCW')
  169.                     colors.txtBkColor = [247/255 247/255 247/255];
  170.                     colors.fraBkColor = colors.uicBkColor;
  171.                 elseif prefMode==6
  172.                     colors.txtBkColor = [0.90 0.90 0.90];
  173.                     colors.fraBkColor = [0.77 0.77 0.77];
  174.                 else
  175.                     colors.txtBkColor = colors.figColor.^4;
  176.                     colors.fraBkColor = colors.figColor.^3;
  177.                 end
  178.             case 'm'    % monochrome
  179.                 colors.figColor = get(0,'DefaultFigureColor');
  180.                 xyz_Color = 'w';
  181.                 colors.txtBkColor = [0.90 0.90 0.90];
  182.                 colors.fraBkColor = [0.77 0.77 0.77];
  183.         end
  184.         txt_Color = xyz_Color;
  185.         colors.axeXColor = xyz_Color;
  186.         colors.axeYColor = xyz_Color;
  187.         colors.axeZColor = xyz_Color;
  188.         colors.txtColor  = txt_Color;
  189.         varargout{1} = colors;
  190.     case 'fontsize'
  191.         switch varargin{1}
  192.             case 'normal'
  193.                 if     scrSize(4)<600 , siz = 16;
  194.                 elseif scrSize(4)<700 , siz = 18;
  195.                 elseif scrSize(4)<800 , siz = 20;
  196.                 else                  , siz = 20;
  197.                 end
  198.                 if nargin>2
  199.                     % in3 = font threshold or value threshold
  200.                     % in4 = value (optional).
  201.                     %-----------------------------------------
  202.                     if nargin==3
  203.                         siz = min(siz,varargin{2});
  204.                     elseif nargin==4
  205.                         if varargin{3}>varargin{2} , siz = siz-2; end
  206.                     end
  207.                 end
  208.             case 'winfo'
  209.                 switch machine
  210.                    case {'SOL','SUN'} ,        siz = 12;
  211.                    case {'PCW'}
  212.                        if     scrSize(4)<500 , siz =  8;
  213.                        elseif scrSize(4)<700 , siz =  9;
  214.                        else                  , siz = 10;
  215.                        end
  216.                    otherwise ,                 siz = 10;
  217.                 end
  218.         end
  219.         CurScrPixPerInch = get(0,'ScreenPixelsPerInch');
  220.         StdScrPixPerInch = 72;
  221.         RatScrPixPerInch = StdScrPixPerInch / CurScrPixPerInch;
  222.         varargout{1}     = floor(RatScrPixPerInch*siz);
  223.     case 'center_txt'
  224.         if scrSize(4)<700
  225.             varargout{1} = strvcat('Center','  On  ');
  226.         else
  227.             varargout{1} = strvcat(' ','Center On',' ');
  228.         end
  229.     case 'btnZoomAxes'
  230.         if scrSize(4)>=1200
  231.             varargout{1} = 20/36;
  232.         else
  233.             varargout{1} = 15/36;
  234.         end
  235.     case 'PCWDepSize'
  236.         % in2 = [mulPCW mulOthers].
  237.         % in3 = vector of sizes.
  238.         %--------------------------
  239.         switch machine
  240.             case 'PCW' , ind = 1;
  241.             otherwise  , ind = 2;
  242.         end
  243.         varargout{1} = varargin{1}(ind)*varargin{2};
  244.     case 'markersize'
  245.         switch machine
  246.           case {'SUN','SOL'} , MSize = 25;
  247.           otherwise , MSize = 24;
  248.         end
  249. end