Menuset class

Build 1501 on 14/Nov/2017  This topic last edited on: 22/Mar/2016, at 16:30

Description

Contain definitions of drop-down menus, context menus, keyboard and mouse shortcuts, toolbars.

It appears within the GN4ShellMenus section of the *_TABITEMS.XML filem

This section is different in each GN4 application.

Open the file in an XML enabled editor (Visual Studio Express will be fine) and then locate the GN4ShellMenus section. On the following screenshot, we opened FRED4_TABITEMS.XML.

Collapse all items (for Visual Studio Express: Edit > Outlining > Toggle All Outlining), and then expand first GN4ShellConfiguration and then expand GN4ShellMenus: this shows all Menusets:

gn4menu2

As you can see on the figure above, there are multiple menus for a given GN4 application. A menu is defined within Menuset. Each Menuset section contains a Menu section (that's where you define the main menu bar), and one or more optionals ContextMenu sections (that's where you define context menus).

Note: don't get confused by the fact that menus for Ted4, Fred4, Shell and EdAdmin4 all use the same node name "GN4ShellMenus". That's because all use them same basic mechanism to display menus. You can distinguish menus by the parent file (if menus are in FRED4_TABITEMS.XML, they are Fred4 menus).

Members

MenuDefinition of main menu and drop-down menus.
ContextMenuDefinition of context menus.
InputConfigDefinition of keyboard and mouse shortcuts.
ToolBarListDefinition of toolbars.

Example

Here's an example of the Menuset FredMain in Fred4_TABITEMS.XML file that contains one Menu, one InputConfig, six Context menus, but no ToolbarList nor PanelList.

gn4_tabitems5

This menuset is active when your focus is somewhere in Fred4 main window, but not on page itself, e.g. in the navigator tabs etc.

Another example of PageDesigner Menuset, that does not contain Menu, but it contains InputConfig, two ToolbarList, one PanelList and one ContextMenu. This section is active when your focus is on the page itself.

gn4_tabitems6

 

Each menuset is related to a specific main tab in the TabItemList section. Although main tabs may share the same menuset, generally speaking, each main tab probably needs an independent menu set.

The relation to main tabs is established through the MenuConfigName attribute of the main tab definition in <l:ShellTabItem. For example MenuConfigName="FredPages" informs you that a menuset with the name FredPages is expected to be defined under the GN4ShellMenus > Menuset in Fred4_TabItems.XML.