[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
FUNCTION BUNGEE() *new*
Short:
------
BUNGEE() Mouseable, multi-level dropdown menu with triggers
Returns:
--------
NIL
Syntax:
-------
BUNGEE(<nTop>,<nLeft>,<nRight>,<aMenu>,[aColumns],;
[aColors],[aHotMice],[aHotKeys],[bExitCheck],;
[lImmediate],[lDropped],[nHideLevel] )
Description:
------------
Creates and activates a dropdown menu (bungee style)
<nTop> Row of menu bar
<nLeft> Left side of menu bar
<nRight> Right side of menu bar
<aMenu> A menu definition array of arrays
You use the BUNGEE() menu array definition functions:
BUNGSTART(), BUNGEND(), BUNGOPTION(),BUNGDROP(),
BUNGUNDROP() together to create a menu definition array
for BUNGEE( ). This basically defines the menu options,
boxes and actions
[aColumns] An array of columns to determine the column
positions for the top bar options. Optional, as
this is automatically determined otherwise.
[aColors] An array of seven elements describing 6 colors
and the box drawing frame string
BACKGROUND COLOR 1
SELECTED OPTION COLOR 2
UNSELECTED OPTION COLOR 3
INACTIVE OPTION COLOR 4
SELECTED TRIGGER COLOR 5
UNSELECTED TRIGGER COLOR 6
BOX FRAME STRING 7 (as in "+-+|+-+| ")
Defaults are extracted from the current
values in SETCOLOR(), and adjusted to
account for trigger letters and inactive
colors.
[aHotMice] An array of hot areas where, should the
mouse click, a codeblock will be evaluated.
The array is an array of arrays, where each
sub-array is in the form:
{nTop,nLeft,nBottom,nRight,bCodeblock}
Where nTop..nRight refer to the screen
coordinates of the hot area.
i.e.
@24,0 say "<Help>"
aHotMice := { {24,0,24,5,{||dohelp}} }
[aHotKeys] An array of hotkey values, which, if one of
the keys is pressed, a codeblock will be
evaluated on the spot.
The array is an array of arrays, where each
sub-array is of the form:
{nASCIIValue,bCodeblock}
@24,0 say "<Help>"
aHotKeys := { {K_F1,{||dohelp()} } }
[bExitBlock] This is a codeblock which returns a LOGICAL
which is evaluated before a menu exit is
allowed. If it returns .f., a menu exit will
not be allowed.
i.e. {||MESSYN("Really exit?")}
[lImmediate] Do mouse clicks or hot keys on options other
than current option cause an immediate action
request? Default = True
[lDropped] Should the menu start up in dropped mode (boxes
are already dropped from top bar) Default is
True.
[nHideLevel] This indicates the level to which the menu hides
itself when executing an option action, a mouse
hot button or a hot key.
0 - does not hide itself at all
1 - hides everything except the top bar (default)
2 - hides everything
Examples:
---------
(Also see S3META2.PRG in the sample files for a good example)
bungstart()
bungoption("Files")
bungdrop()
bungoption("Open" ,{} ,{||!lFileIsOpen} )
bungoption("Close",{||nil},{||lFileIsOpen } )
bungundrop()
bungoption("Edit")
bungdrop()
bungoption("DBF" ,{||nil},nil )
bungoption("Ascii",{||nil},nil )
bungundrop()
bungoption("Quit",{||bungeequit()},nil)
aMenu := bungend()
@24,0 say "[ALT-X=exit]" // set up Alt-X as a hotkey exit also
aHotKeys := { {K_ALT_X,{||bungeequit()} }
aHotMice := { {24,0,24,11,{||bungeequit()} } }
bungee(0,0,79,aMenu,nil,nil,aHotMice,aHotKeys, { ||messyn("Exit now?") } )
Example 2
---------
bungstart()
bungoption("Next",{||dbskip(1)})
bungoption("Prev",{||dbskip(-1)})
bungoption("Edit",{||doedit()})
bungoption("Add ",{||doadd()})
bungoption("Delete",{||dodelete()})
bungoption("Table",{||editdb(.t.)})
bungoption("Search")
bungdrop()
bungoption("Field Search",{||searchme()} )
bungoption("Key Search",{||SPOPSEEK()} )
bungoption("Query ",{||query()} )
bungundrop()
bungoption("Memo")
bungdrop()
bungoption("View",{||viewmemo()} )
bungoption("Edit",{||editmemo()} )
bungundrop()
bungoption("Hardcopy")
bungdrop()
bungoption("Record",{||hcrecord()})
bungoption("Memo",{||hcmemo()})
bungundrop()
bungoption("Quit",{||bungeequit()},nil)
aMenu := bungend()
bungee(0,0,79,aMenu)
Notes:
------
Notes: Dropdown boxes will adjust for 'too far right' or 'too far down',
but there is no adjustment for 'too many options in the box to fit on
screen'
---------------------------------------------------------------------
Source:
-------
S_BUNGEE.PRG, S_BUNGDE.PRG
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson