home *** CD-ROM | disk | FTP | other *** search
- // MenuDemo.prg
-
-
- procedure main
- local oMenuBar, oSaveMenu, oFileMenu, oWindowMenu, oBlockMenu
-
- // to keep the syntax (reasonably) simple, we create the submenus first:
- oSaveMenu := PopupMenu():new( { { " Document ", { || SaveDoc() } }, ;
- { " Text ", { || SaveText() } } ;
- } )
-
- oFileMenu := PullDnMenu():new( { { " Load ", { || LoadFile() } }, ;
- { " Edit ", { || EditFile() } }, ;
- { " Save ", oSaveMenu } ;
- } )
-
- oWindowMenu := PullDnMenu():new( { { " Close ", { || CloseWin() } }, ;
- { " Split ", { || SplitWin() } }, ;
- { " Next ", { || NextWin() } } ;
- } )
-
-
- oBlockMenu := PullDnMenu():new( { { " Mark Line ", { || MarkLine() } }, ;
- { " Mark Character ", { || MarkChar() } }, ;
- { " Mark Column ", { || MarkCol() } } ;
- } )
-
- oMenuBar := MenuBar():new( { { " File ", oFileMenu }, ;
- { " Window ", oWindowMenu }, ;
- { " Block ", oBlockMenu } ;
- } )
-
- /*
- An alternative technique would be to add items
- to the menus one at a time, as follows:
-
- oMenuBar := MenuBar():new
-
- oMenuBar:addItem(" File ", oFileMenu)
- oMenuBar:addItem(" Window ", oWindowMenu)
- oMenuBar:addItem(" Block ", oBlockMenu)
- */
-
- cls
- set wrap on
- setcolor('N/W, W/N')
-
- // execute the menu:
- oMenuBar:exec()
-
- return
-
- // these are just stubs, so let's cut corners...
- procedure SaveDoc; dummy(); return
- procedure SaveText; dummy(); return
- procedure LoadFile; dummy(); return
- procedure EditFile; dummy(); return
- procedure CloseWin; dummy(); return
- procedure SplitWin; dummy(); return
- procedure NextWin; dummy(); return
- procedure MarkLine; dummy(); return
- procedure MarkChar; dummy(); return
- procedure MarkCol; dummy(); return
-
- procedure dummy
- @ 24, 0 say procname(1) + ' - press a key...'
- inkey(0)
- @ 24, 0
- return
-
-
- // menudemo.prg
-