Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server (Not)   Client   Old   Guides   Examples
New in version: 6.1   6.2   6.3   6.4   6.5   7.0   7.1   7.2   7.3   7.4    Statistic  

Menu.PopUp

Pops up the menu at the specified location.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
Menu 4.1 Yes Yes No No No

MBS( "Menu.PopUp"; menu; mode { ; x; y; window; item } )

Parameters

Parameter Description Example value
menu The reference to the menu. Please create one with Menu.CreateMenu. $menu
mode The mode to use. Can be "mouse", "screen" or "window". Default is mouse for leaving away the parameter or passing empty text. "mouse"
x Optional
The relative x coordinates for the position relative to the mouse, screen or window.
0
y Optional
The relative y coordinates for the position relative to the mouse, screen or window.
0
window Optional
The window reference for the showing menu relative to a window.
$window
item Optional
The menu item to be positioned at the specified location in the view.
$item

Result

Returns 1, 0 or error.

Description

Pops up the menu at the specified location.
The top left corner of the specified item (if specified, item must be present in the receiver) is positioned at the specified location in the specified view, interpreted in the view's own coordinate system.
If you call this on the server for webdirect, the menu will show on the server, not in the browser.
Returns 1 if item was selected or 0 if not.
If you like to show a context menu only when user did a right mouse click, you can use the EventMonitor.LastMouseClickButton function to check mouse state.

Examples

Show a context menu based on a table with menu entries:

# go to layout with menu entries
Go to Layout [ “REP” (REP Reports) ]
# this script can be called with various groups
Set Variable [ $type ; Value: Get(ScriptParameter) ]
# make a new menu
Set Variable [ $menu ; Value: MBS( "Menu.CreateMenu") ]
# loop over records
Go to Record/Request/Page [ First ]
Loop
    # if group matches
    If [ REP Reports::Group = $type ]
        # add new menu item with title from table
        Set Variable [ $item ; Value: MBS( "MenuItem.CreateMenuItem"; REP Reports::LabelReport) ]
        # define which script to call if menu item is selected
        Set Variable [ $r ; Value: MBS( "MenuItem.SetScriptAction"; $item; Get(FileName); REP Reports::Script ) ]
        # add item to menu
        Set Variable [ $r ; Value: MBS( "Menu.AddItem"; $menu; $item ) ]
    End If
    # next record?
    Go to Record/Request/Page [ Next ; Exit after last ]
End Loop
# switch layout back
Go to Layout [ original layout ]
# Show menu
Set Variable [ $r ; Value: MBS( "Menu.PopUp"; $menu; "mouse") ]
# Cleanup memory
Set Variable [ $r ; Value: MBS( "Menu.Release"; $menu) ]

Show menu and show selection:

Set Variable [$menu; Value:MBS("Menu.CreateMenu")]
# create menu items...
Set Variable [$item; Value:MBS("MenuItem.CreateMenuItem"; "Hello World")]
Set Variable [$r; Value:MBS("MenuItem.SetTag"; $item; "secret value")]
Set Variable [$r; Value:MBS("Menu.AddItem"; $menu; $item)]
#
#show menu
Set Variable [$m; Value:MBS("Menu.PopUp"; $Menu; "mouse")]
#
#you selected something?
If [$m = 1]
    Set Variable [$selectedItem; Value:MBS("Menu.SelectedItem"; $menu)]
    Set Variable [$selectedTitle; Value:MBS("MenuItem.GetTitle"; $selectedItem)]
    Set Variable [$selectedTag; Value:MBS("MenuItem.GetTag"; $selectedItem)]
    #
    Show Custom Dialog ["Auswahl"; $selectedItem & ¶ & $selectedTitle & ¶ & $selectedTag]
End If
Set Variable [$m; Value:MBS("Menu.Release"; $Menu; 1)]

Choose from menu with one Let statement:

// show menu with one let statement
Let ( [
// some list of menu entries
valuelist = "xxx¶yyy¶zzz" ;
// create menu from definition
menu = MBS ( "Menu.DefineQuickMenu"; "x" ; valuelist ) ;
// show menu near mouse
result = MBS ( "Menu.PopUp" ; menu ; "mouse" ) ;
// query selected item number
item = IF ( result = 1 ; MBS("Menu.SelectedItem"; menu) ) ;
// query title for that item
title = IF ( Length ( item > 0 ) ; MBS ( "MenuItem.GetTitle" ; item ) ) ;
// release memory
r = MBS ( "Menu.Release"; menu ) ] ;
// return the selected title
title )

See also

Example Databases


Menu.NumberOfItems   -   Menu.Release

Feedback: Report problem or ask question.




Links
MBS FileMaker blog