home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a066 / 1.img / MENUDEMO.PRG < prev    next >
Encoding:
Text File  |  1992-03-20  |  2.4 KB  |  73 lines

  1. // MenuDemo.prg
  2.  
  3.  
  4. procedure main
  5.     local oMenuBar, oSaveMenu, oFileMenu, oWindowMenu, oBlockMenu
  6.  
  7.     // to keep the syntax (reasonably) simple, we create the submenus first:
  8.     oSaveMenu := PopupMenu():new( { { " Document ", { || SaveDoc()  } }, ;
  9.                                     { " Text     ", { || SaveText() } }  ;
  10.                                  } )
  11.  
  12.     oFileMenu := PullDnMenu():new( { { " Load ", { || LoadFile() } }, ;
  13.                                      { " Edit ", { || EditFile() } }, ;
  14.                                      { " Save ", oSaveMenu }          ;
  15.                                    } )
  16.  
  17.     oWindowMenu := PullDnMenu():new( { { " Close ", { || CloseWin() } }, ;
  18.                                        { " Split ", { || SplitWin() } }, ;
  19.                                        { " Next  ", { || NextWin()  } }  ;
  20.                                      } )
  21.  
  22.  
  23.     oBlockMenu := PullDnMenu():new( { { " Mark Line      ", { || MarkLine() } }, ;
  24.                                       { " Mark Character ", { || MarkChar() } }, ;
  25.                                       { " Mark Column    ", { || MarkCol()  } }  ;
  26.                                     } )
  27.  
  28.     oMenuBar := MenuBar():new( { { " File ",   oFileMenu   }, ;
  29.                                  { " Window ", oWindowMenu }, ;
  30.                                  { " Block ",  oBlockMenu  }  ;
  31.                                } )
  32.  
  33.     /*
  34.         An alternative technique would be to add items
  35.         to the menus one at a time, as follows:
  36.  
  37.         oMenuBar := MenuBar():new
  38.  
  39.         oMenuBar:addItem(" File ",   oFileMenu)
  40.         oMenuBar:addItem(" Window ", oWindowMenu)
  41.         oMenuBar:addItem(" Block ",  oBlockMenu)
  42.     */
  43.  
  44.     cls
  45.     set wrap on
  46.     setcolor('N/W, W/N')
  47.  
  48.     // execute the menu:
  49.     oMenuBar:exec()
  50.  
  51. return
  52.  
  53. // these are just stubs, so let's cut corners...
  54. procedure SaveDoc;  dummy(); return
  55. procedure SaveText; dummy(); return
  56. procedure LoadFile; dummy(); return
  57. procedure EditFile; dummy(); return
  58. procedure CloseWin; dummy(); return
  59. procedure SplitWin; dummy(); return
  60. procedure NextWin;  dummy(); return
  61. procedure MarkLine; dummy(); return
  62. procedure MarkChar; dummy(); return
  63. procedure MarkCol;  dummy(); return
  64.  
  65. procedure dummy
  66.     @ 24, 0 say procname(1) + ' - press a key...'
  67.     inkey(0)
  68.     @ 24, 0
  69. return
  70.  
  71.  
  72. // menudemo.prg
  73.