[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 FT_MENU1()
 Pulldown menu system
------------------------------------------------------------------------------

 Syntax

      FT_MENU1( <acBarNames>, <acOptions>, <acAction>,
                <acColors> [, <nTopRow> ], [ <lShadow> ] ) -> NIL

 Arguments

     <acBarNames> is a character array containing the names to appear
     on the menu bar.

     <acOptions> is a multi-dimensional array with one element for each
     selection to appear on the pulldown menus.

     <acColors> is an array containing the colors for the menu groups.

     <nTopRow> is a numeric value that determines the row for the menu
     bar.  If omitted, it defaults to 0.

     <lShadow> is a logical variable.  If true (.T.) or omitted, it
     uses FT_SHADOW() to add a transparent shadow to the each
     pulldown menu.  If false (.F.), the menu is drawn without
     the shadow.

     All arguments except nTopRow and lShadow are required.

 Returns

     NIL

 Description

     FT_MENU1() is a function that displays a pulldown menu for each item
     on the menu bar and executes the corresponding function for the item
     selected.  When a called function returns false, FT_MENU1 returns
     control to the calling program.

     Valid keystrokes and their corresponding actions:

     Home             -  Activates Pulldown for first item on the menu bar
     End              -  Activates Pulldown for last item on the menu bar
     Left Arrow       -  Activates next Pulldown to the left
     Right Arrow      -  Activates next Pulldown to the right
     Tab              -  Same as Right Arrow
     Shift-Tab        -  Same as Left Arrow
     Page Up          -  Top item on current Pulldown menu
     Page Down        -  Bottom item on current Pulldown menu
     Enter            -  Selects current item
     Alpha Character  -  Moves to closest match and selects
     Alt-<Key>        -  Moves to corresponding menu bar item
     Escape           -  Prompts for confirmation and either returns to
                         the calling routine or resumes

 Examples

     // Declare arrays
     LOCAL aColors  := {}
     LOCAL aBar     := { " ENTER/EDIT ", " REPORTS ", " DISPLAY " }

     // Include the following two lines of code in your program, as is.
     // The first creates aOptions with the same length as aBar.  The
     // second assigns a three-element array to each element of aOptions.
     LOCAL aOptions[ LEN( aBar ) ]
     AEVAL( aBar, { |x,i| aOptions[i] := { {},{},{} } } )

     // fill color array
     // Box Border, Menu Options, Menu Bar, Current Selection, Unselected
     aColors := IF( lColor, {"W+/G", "N/G", "N/G", "N/W", "N+/G"}, ;
                            {"W+/N", "W+/N", "W/N", "N/W","W/N"} )

  // array for first pulldown menu
  FT_FILL( aOptions[1], 'A. Execute A Dummy Procedure' , {|| fubar()}, .t. )
  FT_FILL( aOptions[1], 'B. Enter Daily Charges'       , {|| .t.},     .f. )
  FT_FILL( aOptions[1], 'C. Enter Payments On Accounts', {|| .t.},     .t. )

  // array for second pulldown menu
  FT_FILL( aOptions[2], 'A. Print Member List'         , {|| .t.},     .t. )
  FT_FILL( aOptions[2], 'B. Print Active Auto Charges' , {|| .t.},     .t. )

  // array for third pulldown menu
  FT_FILL( aOptions[3], 'A. Transaction Totals Display', {|| .t.},     .t. )
  FT_FILL( aOptions[3], 'B. Display Invoice Totals'    , {|| .t.},     .t. )
  FT_FILL( aOptions[3], 'C. Exit To DOS'               , {|| .f.},     .t. )

     Call FT_FILL() once for each item on each pulldown menu, passing it
     three parameters:

        FT_FILL( <cMenuSelection>, <bCodeBlock>, <lSelectable>

     <cMenuSelection> is a character string which will be displayed on
      the pulldown menu.

     <bCodeBlock> should contain one of the following:

        A function name to execute, which in turn should return .T. or .F.
        FT_MENU1 WILL RETURN CONTROL TO THE CALLING PROGRAM IF .F. IS
        RETURNED OR CONTINUE IF .T. IS RETURNED.

        .F. WHICH WILL CAUSE FT_MENU1 TO RETURN CONTROL TO THE CALLING
        PROGRAM.

        .T. WHICH WILL DO NOTHING.  THIS ALLOWS THE DEVELOPER TO DESIGN A
        SKELETON MENU STRUCTURE PRIOR TO COMPLETING ALL OF THE SUBROUTINES.

     // CALL FT_MENU1
     FT_MENU1( aBar, aOptions, aColors, 0 )

     NOTE: FT_MENU1() disables Alt-C and Alt-D in order to make them
           available for the menu bar.  It enables Alt-D and resets
           Alt-C to its previous state prior to calling each function.

 Source: MENU1.PRG

 Author: Paul Ferrara

See Also: FT_FILL()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson