convmenu.m
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:4k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function rarg = convmenu (action);
  2. % generates menu
  3. global Buttons;
  4. global menuwinh;
  5. global buttonh;
  6. global MenuWinPos;
  7. Buttons = 6;
  8. ButtonText1 = 'NRZ Rectangular * NRZ Rectangular';
  9. ButtonText2 = 'Raised-Cosine * Raised-Cosine';
  10. ButtonText3 = 'Root-RC * Root-RC';
  11. ButtonText4 = 'NRZ Rectangular * Butterworth';
  12. ButtonText5 = 'Menu Pulse Shape';
  13. ButtonText6 = 'Main Menu';
  14. if nargin < 1                                           % no argument -> init 
  15.   action = 'init';
  16. end;
  17. % -----------------------------------------------------------------
  18. % init
  19. % initialize variables and open window
  20. if strcmp (action, 'init')
  21.   % constants and definitions
  22.      set(0,'Units','pixels');
  23.    scnsize = get(0,'ScreenSize');
  24.   MenuWinPos  = [10 (scnsize(4) - (Buttons*28+50)-40)];  % window position
  25.   convmenu ('openmenuwin');                                % open window
  26. end;
  27. % -----------------------------------------------------------------
  28. % openmenuwin
  29. if strcmp (action, 'openmenuwin')
  30.  
  31.   menuwinh = figure ('Color', 'white', ...              % open window
  32.     'Position', [MenuWinPos 230 (Buttons*28+50)], ... 
  33.     'Name', 'Tutorial', ...
  34.     'NumberTitle', 'off', ...
  35.     'MenuBar', 'none', ...
  36.     'Resize', 'off', ...
  37.     'UserData', 'convmenu');
  38.   uicontrol (menuwinh, ...
  39.     'Style', 'text', ...
  40.     'Position', [5 (Buttons*28+10) 230 25], ...
  41.     'BackgroundColor', 'white', ...
  42.     'HorizontalAlignment', 'center', ...
  43.     'String', 'Convolution');
  44.   for k = 1:Buttons
  45.     ypos = (Buttons- k) * 28 + 10;
  46.     ButtonTextString = eval (['ButtonText'  num2str(k)]);
  47.     CallBackFunction = ['Button' num2str(k)];
  48.     createbutton = ['buttonh(' num2str(k) ') = uicontrol (menuwinh, ' ...
  49.                         '''Position'', [5 ' num2str(ypos) ' 220 22], ' ...
  50.                          '''String'', ''' ButtonTextString ''', ' ...
  51.                          '''BackgroundColor'', ''white'', ' ...
  52.                          '''CallBack'', ''convmenu (''''' CallBackFunction ''''')'');'];
  53.    eval (createbutton);
  54.   end;
  55.   clear createbutton ypos ButtonTextStr CallBackFunction;
  56. end;
  57. % -----------------------------------------------------------------
  58. % Button1
  59. if strcmp (action, 'Button1')
  60.   delete(menuwinh);
  61.   % close all Matlab windows
  62.   delete(get (0, 'Children'));
  63.   convnrz;
  64.   convmenu;
  65. end;
  66. % -----------------------------------------------------------------
  67. % Button2
  68. if strcmp (action, 'Button2')
  69.   delete(menuwinh);
  70.   % close all Matlab windows
  71.   delete(get (0, 'Children'));
  72.   convnyq(0);
  73.   convmenu;
  74. end;
  75. % -----------------------------------------------------------------
  76. % Button3
  77. if strcmp (action, 'Button3')
  78.   delete(menuwinh);
  79.   % close all Matlab windows
  80.   delete(get (0, 'Children'));
  81.   convwny(0);
  82.   convmenu;
  83. end;
  84. % -----------------------------------------------------------------
  85. % Button4
  86. if strcmp (action, 'Button4')
  87.   delete(menuwinh);
  88.   % close all Matlab windows
  89.   delete(get (0, 'Children'));
  90.   bwthui;
  91.   convmenu;
  92. end;
  93. % -----------------------------------------------------------------
  94. % Button5
  95. if strcmp (action, 'Button5')
  96.   delete(menuwinh);
  97.   % close all Matlab windows
  98.   delete(get (0, 'Children'));
  99.   pshapemenu;
  100. end;
  101. % -----------------------------------------------------------------
  102. % Button6
  103. if strcmp (action, 'Button6')
  104.   delete(menuwinh);
  105.   % close all Matlab windows
  106.   delete(get (0, 'Children'));
  107. DigModTutorial;
  108. end;