| GUI.CreateMenu | Part of GUI module |
| Syntax | GUI.CreateMenu (name : string) : int
|
| Description | Creates a menu and returns the menu's widget ID. The menu will be added after the other menus in the menu bar. If there are no previous menus, then a menu bar is automatically created and the menu added. The name parameter specifies the text that appears in the menu bar.
![]() Menus are used in most modern interfaces. In order to create a full set of menus, you must create the menu and then create the menu items in that menu. The menus are automatically added to the menu bar of the selected menu. As of the v1.0 release of the GUI Library, it is an error to create a menu item without having created a menu first. In future releases it will be possible to create menus and attach and remove them from menu bars when desired.
|
| Example | The following program creates a series of menus with menu items in them. It then disables the second menu.
import GUI in "%oot/lib/GUI"
View.Set ("graphics:250;150,nobuttonbar")
var first, second : int % The menus.
var item : array 1 .. 12 of int % The menu items.
var name : array 1 .. 12 of string (20) :=
init ("Quit", "---", "A", "B", "---", "C", "D",
"Disable B Menu Item", "Enable B Menu Item", "---",
"Disable Second Menu", "Enable Second Menu")
procedure MenuSelected
for i : 1 .. 12
if item (i) = GUI.GetEventWidgetID then
Text.Locate (maxrow, 1)
put name (i) + " selected " ..
end if
end for
end MenuSelected
procedure DisableB
GUI.Disable (item (4))
end DisableB
procedure EnableB
GUI.Enable (item (4))
end EnableB
procedure DisableFirst
GUI.Disable (first)
end DisableFirst
procedure EnableFirst
GUI.Enable (first)
end EnableFirst
% Create the menus
first := GUI.CreateMenu ("First")
item (1) := GUI.CreateMenuItem (name (1), GUI.Quit)
for cnt : 2 .. 7
item (cnt) := GUI.CreateMenuItem (name (cnt),
MenuSelected)
end for
second := GUI.CreateMenu ("Second")
item (8) := GUI.CreateMenuItem (name (8), DisableB)
item (9) := GUI.CreateMenuItem (name (9), EnableB)
item (10) := GUI.CreateMenuItem (name (10), MenuSelected)
item (11) := GUI.CreateMenuItem (name (11), DisableFirst)
item (12) := GUI.CreateMenuItem (name (12), EnableFirst)
loop
exit when GUI.ProcessEvent
end loop
|
| Execute | |
| Details | When a menu is not enabled, the text in the menu bar is grayed out and clicking on the menu does not cause the menu to appear.
|
| Details | The following GUI subprograms can be called with a menu as the widgetID parameter: GUI.Show, GUI.Hide, GUI.Dispose, GUI.Enable, GUI.Disable
|
| Status | Exported qualified. This means that you can only call the function by calling GUI.CreateMenu, not by calling CreateMenu.
|
| See also | GUI.CreateMenuItem for adding items to a menu. See also GUI.ShowMenuBar and GUI.HideMenuBar for showing and hiding the menu bar.
|