home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / IDE / SOURCE / MENU.PRG < prev    next >
Text File  |  1994-05-28  |  3KB  |  109 lines

  1. #include "FiveWin.ch"
  2.  
  3. //----------------------------------------------------------------------------//
  4.  
  5. function MnuNew()
  6.  
  7.    local cMnuName := cGetNewFileName( "MENU", "mnu" )
  8.  
  9.    if ! File( cMnuName )
  10.       DbCreate( cMnuName, { { "MENUITEM", "C", 60, 0 },;
  11.                             { "ID",       "N",  4, 0 },;
  12.                             { "MESSAGE",  "C", 60, 0 },;
  13.                             { "ACTION",   "C", 60, 0 } } )
  14.    endif
  15.  
  16.    MnuOpen( cMnuName )
  17.  
  18. return nil
  19.  
  20. //----------------------------------------------------------------------------//
  21.  
  22. function MnuOpen( cMnuName )
  23.  
  24.    local oIco, oWndMenu, oBar, oLbx, oMenuTree, oItem
  25.  
  26.    DEFAULT cMnuName := cGetFile( "FiveWin menu (*.mnu) | *.mnu",;
  27.                                  "Select a menu" )
  28.  
  29.    TREE oMenuTree BITMAPS "PluSmal", "MinSmal"
  30.  
  31.       TREEITEM oItem PROMPT "&First"
  32.       TREE
  33.          TREEITEM "&One"
  34.          TREE
  35.             TREEITEM "&One"
  36.             TREEITEM "&Two"
  37.             TREEITEM "&Three"
  38.          ENDTREE
  39.          TREEITEM "&Two"
  40.          TREEITEM "&Three"
  41.       ENDTREE
  42.  
  43.       TREEITEM "&Second"
  44.       TREE
  45.          TREEITEM "&One"
  46.          TREEITEM "&Two"
  47.          TREEITEM "&Three"
  48.       ENDTREE
  49.  
  50.       TREEITEM "&Third"
  51.       TREE
  52.          TREEITEM "&One"
  53.          TREEITEM "&Two"
  54.          TREEITEM "&Three"
  55.       ENDTREE
  56.    ENDTREE
  57.  
  58.    DEFINE ICON oIco RESOURCE "Menu"
  59.  
  60.    DEFINE WINDOW oWndMenu FROM 1, 1 TO 23, 33 ;
  61.       TITLE "Menu: " + cNoPath( cNoExt( cMnuName ) ) ;
  62.       ICON oIco MDICHILD
  63.  
  64.    DEFINE BUTTONBAR oBar OF oWndMenu
  65.  
  66.    DEFINE BUTTON RESOURCE "New"  OF oBar MESSAGE "Add a new menuitem"
  67.    DEFINE BUTTON RESOURCE "Edit" OF oBar MESSAGE "Edit this menuitem"
  68.    DEFINE BUTTON RESOURCE "Del"  OF oBar MESSAGE "Del this menuitem"
  69.  
  70.    DEFINE BUTTON RESOURCE "Exec" GROUP OF oBar MESSAGE "Test this menu"
  71.  
  72.    DEFINE BUTTON RESOURCE "RC"   OF oBar ;
  73.       MESSAGE "Generates a Windows menu RC"
  74.  
  75.    DEFINE BUTTON RESOURCE "PRG"  OF oBar ;
  76.       MESSAGE "Generates FiveWin menu source code"
  77.  
  78.    DEFINE BUTTON RESOURCE "Font" GROUP OF oBar ;
  79.       ACTION oLbx:SelFont() MESSAGE "Select a new font or text color"
  80.  
  81.    DEFINE BUTTON RESOURCE "Clr" OF oBar ;
  82.       ACTION oLbx:SelColor() MESSAGE "Select a new background color"
  83.  
  84.    @ 0, 0 LISTBOX oLbx ;
  85.       FIELDS OemToAnsi( oItem:GetText() ) ;
  86.       HEADERS "PullDown Menu Items" ;
  87.       SIZES 16, 300 ;
  88.       ON LEFT DBLCLICK ( oItem:Toggle(), oLbx:Refresh() ) ;
  89.       OF oWndMenu ;
  90.       SIZE 400, 400
  91.  
  92.    oLbx:bLine     = { || oItem:GetLabel() }
  93.    oLbx:aColSizes = { || oItem:ColSizes() }
  94.    oLbx:bGoTop    = { || oItem := oMenuTree:oFirst }
  95.    oLbx:bGoBottom = { || oItem := oMenuTree:oLast }
  96.    oLbx:bSkip     = { | n | oItem := oItem:Skip( @n ), n }
  97.    oLbx:bLogicLen = { || oMenuTree:nCount() }
  98.  
  99.    oWndMenu:SetControl( oLbx )
  100.  
  101.    oMenuTree:OpenAll()
  102.    oMenuTree:Draw()
  103.  
  104.    ACTIVATE WINDOW oWndMenu
  105.  
  106. return nil
  107.  
  108. //----------------------------------------------------------------------------//
  109.