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:
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
Menu | Definition of main menu and drop-down menus. |
ContextMenu | Definition of context menus. |
InputConfig | Definition of keyboard and mouse shortcuts. |
ToolBarList | Definition 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.
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.
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.