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

波变换

开发平台:

Matlab

  1. function [out1,out2,out3,out4] = utsetfon(opt,in2,in3,in4,in5,in6)
  2. %UTSETFON Utilities for Setting Fonts.
  3. %   [OUT1,OUT2,OUT3,OUT4] = UTSETFON(OPT,IN2,IN3,IN4,IN5,IN6)
  4. %
  5. %   OPT = 'define' : Construction
  6. %   IN2  = fig is optional
  7. %   IN3  = [XLeft YDown] is optional
  8. %   OUT1 = Handles , out2 = Position
  9. %
  10. %   OPT = 'read'   : read font parameters of an object
  11. %   IN2  = Handles
  12. %   IN3  = Object handle
  13. %
  14. %   OPT = 'write'  : set font parameters of an object
  15. %   IN2  = Handles
  16. %   IN3  = Object handle
  17. %
  18. %   OPT = 'get'   : get font parameters
  19. %   IN2  = Handles
  20. %   OUT1 = Font Name        OUT2 = Font Size
  21. %   OUT3 = Font Weight      OUT4 = Font Angle
  22. %
  23. %   OPT = 'set'   : set font parameters
  24. %   IN2 = Handles
  25. %   IN3 = Font Name         IN4 = Font Size
  26. %   IN5 = Font Weight       IN6 = Font Angle
  27. %
  28. %   OPT = 'pos'   : change position
  29. %   IN2  = [dx dy]
  30. %   OUT1 = newpos
  31. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-May-96.
  32. %   Last Revision: 14-May-2003.
  33. %   Copyright 1995-2004 The MathWorks, Inc.
  34. % $Revision: 1.10.4.2 $
  35. % Handles = [ ...
  36. %   Ed_font_name Ed_font_size
  37. %   Pop_font_weight Pop_font_angle  hdls];
  38. %
  39. % Frame = hdls(1) , Large = 340 , Hight = 86
  40. switch opt
  41.   case {'change','get','set','read','write'}
  42.     Ed_font_name    = in2(1);
  43.     Ed_font_size    = in2(2);
  44.     Pop_font_weight = in2(3);
  45.     Pop_font_angle  = in2(4);
  46. end
  47. switch opt
  48.     case 'define'
  49.         % Get Globals.
  50.         %--------------
  51.         [Def_TxtBkColor,Def_EdiBkColor,Def_FraBkColor] = ...
  52.            mextglob('get',...
  53.                 'Def_TxtBkColor','Def_EdiBkColor','Def_FraBkColor');
  54.         txt_color = Def_TxtBkColor;
  55.         if nargin<2
  56.             fig = gcf;
  57.             xg  = 10;       yb = 10;
  58.         elseif nargin<3
  59.             fig = in2;
  60.             xg  = 10;       yb = 10;
  61.         else
  62.             fig = in2;
  63.             xg  = in3(1);   yb = in3(2);
  64.         end
  65.         but_High   = 22;
  66.         wid1 =  90;   wid2 = 65;    wid3 = 225;
  67.         dx = 5;         dy = 5;
  68.         lcadre = 340;   hcadre = 3*but_High+4*dy;
  69.         out2 = [xg yb lcadre hcadre];
  70.         hdls = zeros(1,9);
  71.         hdls(1) = uicontrol('Parent',fig,'Style','Frame',...
  72.                         'Position',[xg yb lcadre hcadre]);
  73.         xg = xg+2*dx;
  74.         yb = yb+dy;
  75.         hdls(2) = uicontrol('Parent',fig,'Style','Frame',...
  76.                         'BackGroundColor',txt_color,...
  77.                         'Position',[wid1+wid2 yb wid1 but_High]);
  78.         hdls(3) = uicontrol('Parent',fig,'Style','Text',...
  79.                         'BackGroundColor',txt_color,...
  80.                         'Position',[wid1+wid2+3,yb+3,wid1-6,but_High-6],...
  81.                         'String','Angle');
  82.         Pop_font_angle = uicontrol('Parent',fig,'Style','Popup',...
  83.                         'Position',[wid1+dx+wid1+wid2,yb,wid1,but_High],...
  84.                         'String','normal|italic|oblique');
  85.         yb = yb+dy+but_High;
  86.         hdls(4) = uicontrol('Parent',fig,'Style','Frame',...
  87.                         'BackGroundColor',txt_color,...
  88.                         'Position',[xg yb wid2 but_High]);
  89.         hdls(5) = uicontrol('Parent',fig,'Style','Text',...
  90.                         'BackGroundColor',txt_color,...
  91.                         'Position',[xg+3,yb+3,wid2-6,but_High-6],...
  92.                         'String','Size');
  93.         Ed_font_size = uicontrol('Parent',fig,'Style','Edit',...
  94.                         'BackGroundColor',Def_EdiBkColor,...
  95.                         'Position',[xg+dx+wid2,yb,50,but_High]);
  96.         hdls(6) = uicontrol('Parent',fig,'Style','Frame',...
  97.                         'BackGroundColor',txt_color,...
  98.                         'Position',[wid1+wid2 yb wid1 but_High]);
  99.         hdls(7) = uicontrol('Parent',fig,'Style','Text',...
  100.                         'BackGroundColor',txt_color,...
  101.                         'Position',[wid1+wid2+3,yb+3,wid1-6,but_High-6],...
  102.                         'String','Weight');
  103.         Pop_font_weight = uicontrol('Parent',fig,'Style','Popup',...
  104.                         'Position',[wid1+dx+wid2+wid1,yb,wid1,but_High],...
  105.                         'String','light|normal|demi|bold');
  106.         yb = yb+dy+but_High;
  107.         hdls(8) = uicontrol('Parent',fig,'Style','Frame',...
  108.                         'BackGroundColor',txt_color,...
  109.                         'Position',[xg yb wid1 but_High]);
  110.         hdls(9) = uicontrol('Parent',fig,'Style','Text',...
  111.                         'BackGroundColor',txt_color,...
  112.                         'Position',[xg+3,yb+3,wid1-6,but_High-6],...
  113.                         'String','Font name');
  114.         Ed_font_name = uicontrol('Parent',fig,'Style','Edit',...
  115.                         'BackGroundColor',Def_EdiBkColor,...
  116.                         'Position',[xg+dx+wid1,yb,wid3,but_High]);
  117.         out1 = [Ed_font_name Ed_font_size Pop_font_weight Pop_font_angle hdls];
  118.     case 'read'
  119.         set(Ed_font_name,'String',get(in3,'FontName'));
  120.         set(Ed_font_size,'String',int2str(get(in3,'FontSize')));
  121.         s = get(in3,'FontWeight');
  122.         switch s
  123.             case 'light' ,  val = 1;
  124.             case 'normal' , val = 2;
  125.             case 'demi' ,   val = 3;
  126.             otherwise,      val = 4;
  127.         end
  128.         set(Pop_font_weight,'Value',val);
  129.         s = get(in3,'FontAngle');
  130.         switch s
  131.             case 'normal' , val = 1;
  132.             case 'italic' , val = 2;
  133.             otherwise,      val = 3;
  134.         end
  135.         set(Pop_font_angle,'Value',val);
  136.     case 'write'
  137.         fb = ['light ' ; 'normal' ; 'demi  ' ; 'bold  '];
  138.         fi = ['normal ' ; 'italic ' ; 'oblique'];
  139.         set(in3, ...
  140.                 'FontName',get(Ed_font_name,'String'),          ...
  141.                 'FontSize',wstr2num(get(Ed_font_size,'String')), ...
  142.                 'FontWeight',fb(get(Pop_font_weight,'Value'),:),...
  143.                 'FontAngle',fi(get(Pop_font_angle,'Value'),:)   ...
  144.                 );
  145.     case 'set'
  146.         set(Ed_font_name,'String',in3);
  147.         set(Ed_font_size,'String',int2str(in4));
  148.         set(Pop_font_weight,'Value',in5);
  149.         set(Pop_font_angle,'Value',in6);
  150.     case 'get'
  151.         out1 = get(Ed_font_name,'String');
  152.         out2 = wstr2num(get(Ed_font_size,'String'));
  153.         out3 = get(Pop_font_weight,'Value');
  154.         out4 = get(Pop_font_angle,'Value');
  155.     case 'pos'
  156.         dx = in3(1);    dy = in3(2);
  157.         set(in2,'Visible','Off');
  158.         for k = 1:length(in2)
  159.             pos  = get(in2(k),'Position');
  160.             npos = [pos(1)+dx pos(2)+dy pos(3:4)];
  161.             set(in2(k),'Position',npos);
  162.         end
  163.         set(in2,'Visible','On');
  164.         out1 = get(in2(5),'Position');  % in2(5) = hdls(1) is the Frame
  165. end