SetMenuBar

From Planimate Knowledge Base
Revision as of 13:49, 21 August 2008 by Jay.Lange (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Routine Operation that interprets columns in table as depth/name/index/unselectable/selected(tick) and builds a custom menu bar.

SetMenuBar enables a complete modeller customsied menubar, with hierarchic menus, to be built in one step. It superceeds the "ClearCustomMenubar" and "AddListToMenu" routine operations.

The operation takes a 5 column table as a parameter (the table can have more than 5 columns but only the first 5 are used). The name of the columns are not important but the positions must be ordered as follows.

The columns are:

depth
sets the depth of the submenu, 0 = top level
label
the text label for the menu item
id
return id for menu item
unavailable
sets the menu item to unselectable (gray), <>0 = unselectable
tick
places a menu tick next to the menu item


The menu structure is defined by enumerating the menu items in prefix order, for example for:

File Edit Tools
New Cut Add ---> Table
Load Paste Label
Save Reset
Quit


depth label id unavailable tick
0 File 0 0 0
1 New 1 0 0
1 Load 2 0 0
1 Save 3 1 0
1 Quit 4 0 0
0 Edit 0 0 0
1 Cut 5 0 0
1 Paste 6 0 0
0 Tools 0 0 0
1 Add 0 0 0
2 Table 7 0 0
2 Label 8 0 0
1 Reset 9 0 0

You can use a label of '-' as a separator between menu items.

When a menu bar selection is made the system broadcast "_Menu Command" is sent and the item attribute "_command" will contain the index (from the index column) of the selected menu item.

Menu items flagged as unavailable will be shown in Grey and cannot be selected.

Useful when creating end user applications with Planimate.