Search documentation of wx

# wxMenuBar (wx v2.6)

Copy Markdown View Source

A menu bar is a series of menus accessible from the top of a frame.

Remark: To respond to a menu selection, provide a handler for EVT_MENU, in the frame that contains the menu bar.

If you have a toolbar which uses the same identifiers as your EVT_MENU entries, events from the toolbar will also be processed by your EVT_MENU event handlers.

Tip: under Windows, if you discover that menu shortcuts (for example, Alt-F to show the file menu) are not working, check any EVT_CHAR events you are handling in child windows. If you are not calling event.Skip() for events that you don't process in these event handlers, menu shortcuts may cease to work.

See:

- `wxMenu`

- Overview events

This class is derived, and can use functions, from:

- `wxWindow`

- `wxEvtHandler`

wxWidgets docs: wxMenuBar

## Summary

### Types

wxMenuBar()

### Functions

append(This, Menu, Title)

Adds the item to the end of the menu bar.

check(This, Id, Check)

Checks or unchecks a menu item.

destroy(This)

Destroys the object

enable(This, Id, Enable)

Enables or disables (greys out) a menu item.

enableTop(This, Pos, Enable)

Enables or disables a whole menu.

findItem(This, Id)

Finds the menu item object associated with the given menu item identifier.

findMenu(This, Title)

Returns the index of the menu with the given `title` or `wxNOT\_FOUND` if no such menu exists in this menubar.

findMenuItem(This, MenuString, ItemString)

Finds the menu item id for a menu name/menu item string pair.

getAutoWindowMenu()
getHelpString(This, Id)

Gets the help string associated with the menu item identifier.

getLabel(This, Id)

Gets the label associated with a menu item.

getLabelTop(This, Pos)

Equivalent to: `getMenuLabel/2`

getMenu(This, MenuIndex)

Returns the menu at `menuIndex` (zero-based).

getMenuCount(This)

Returns the number of menus in this menubar.

getMenuLabel(This, Pos)

Returns the label of a top-level menu.

getMenuLabelText(This, Pos)

Returns the label of a top-level menu.

insert(This, Pos, Menu, Title)

Inserts the menu at the given position into the menu bar.

isChecked(This, Id)

Determines whether an item is checked.

isEnabled(This, Id)

Determines whether an item is enabled.

macGetCommonMenuBar()

Enables you to get the global menubar on Mac, that is, the menubar displayed when the app is running without any frames open.

macSetCommonMenuBar(Menubar)

Enables you to set the global menubar on Mac, that is, the menubar displayed when the app is running without any frames open.

new()

Construct an empty menu bar.

new(Style)
oSXGetAppleMenu(This)

Returns the Apple menu.

remove(This, Pos)

Removes the menu from the menu bar and returns the menu object - the caller is responsible for deleting it.

replace(This, Pos, Menu, Title)

Replaces the menu at the given position with another one.

setAutoWindowMenu(Enable)
setHelpString(This, Id, HelpString)

Sets the help string associated with a menu item.

setLabel(This, Id, Label)

Sets the label of a menu item.

setLabelTop(This, Pos, Label)

Equivalent to: `setMenuLabel/3`

setMenuLabel(This, Pos, Label)

Sets the label of a top-level menu.

## Types

# wxMenuBar()

    -type wxMenuBar() :: wx:wx_object().

## Functions

# append(This, Menu, Title)

    -spec append(This, Menu, Title) -> boolean()
                    when This :: wxMenuBar(), Menu :: wxMenu:wxMenu(), Title :: unicode:chardata().

Adds the item to the end of the menu bar.

Return: true on success, false if an error occurred.

See: `insert/4`

# check(This, Id, Check)

    -spec check(This, Id, Check) -> ok when This :: wxMenuBar(), Id :: integer(), Check :: boolean().

Checks or unchecks a menu item.

Remark: Only use this when the menu bar has been associated with a frame; otherwise, use the `wxMenu` equivalent call.

# destroy(This)

    -spec destroy(This :: wxMenuBar()) -> ok.

Destroys the object

# enable(This, Id, Enable)

    -spec enable(This, Id, Enable) -> ok when This :: wxMenuBar(), Id :: integer(), Enable :: boolean().

Enables or disables (greys out) a menu item.

Remark: Only use this when the menu bar has been associated with a frame; otherwise, use the `wxMenu` equivalent call.

# enableTop(This, Pos, Enable)

    -spec enableTop(This, Pos, Enable) -> ok when This :: wxMenuBar(), Pos :: integer(), Enable :: boolean().

Enables or disables a whole menu.

Remark: Only use this when the menu bar has been associated with a frame.

# findItem(This, Id)

    -spec findItem(This, Id) -> wxMenuItem:wxMenuItem() when This :: wxMenuBar(), Id :: integer().

Finds the menu item object associated with the given menu item identifier.

Return: The found menu item object, or NULL if one was not found.

# findMenu(This, Title)

    -spec findMenu(This, Title) -> integer() when This :: wxMenuBar(), Title :: unicode:chardata().

Returns the index of the menu with the given `title` or `wxNOT\_FOUND` if no such menu exists in this menubar.

The `title` parameter may specify either the menu title (with accelerator characters, i.e. `"&File"`) or just the menu label (`"File"`) indifferently.

# findMenuItem(This, MenuString, ItemString)

    -spec findMenuItem(This, MenuString, ItemString) -> integer()
                          when
                              This :: wxMenuBar(),
                              MenuString :: unicode:chardata(),
                              ItemString :: unicode:chardata().

Finds the menu item id for a menu name/menu item string pair.

Return: The menu item identifier, or wxNOT_FOUND if none was found.

Remark: Any special menu codes are stripped out of source and target strings before matching.

# getAutoWindowMenu()

    -spec getAutoWindowMenu() -> boolean().

# getHelpString(This, Id)

    -spec getHelpString(This, Id) -> unicode:charlist() when This :: wxMenuBar(), Id :: integer().

Gets the help string associated with the menu item identifier.

Return: The help string, or the empty string if there was no help string or the menu item was not found.

See: `setHelpString/3`

# getLabel(This, Id)

    -spec getLabel(This, Id) -> unicode:charlist() when This :: wxMenuBar(), Id :: integer().

Gets the label associated with a menu item.

Return: The menu item label, or the empty string if the item was not found.

Remark: Use only after the menubar has been associated with a frame.

# getLabelTop(This, Pos)

    -spec getLabelTop(This, Pos) -> unicode:charlist() when This :: wxMenuBar(), Pos :: integer().

Equivalent to: `getMenuLabel/2`

# getMenu(This, MenuIndex)

    -spec getMenu(This, MenuIndex) -> wxMenu:wxMenu() when This :: wxMenuBar(), MenuIndex :: integer().

Returns the menu at `menuIndex` (zero-based).

# getMenuCount(This)

    -spec getMenuCount(This) -> integer() when This :: wxMenuBar().

Returns the number of menus in this menubar.

# getMenuLabel(This, Pos)

    -spec getMenuLabel(This, Pos) -> unicode:charlist() when This :: wxMenuBar(), Pos :: integer().

Returns the label of a top-level menu.

Note that the returned string includes the accelerator characters that have been specified in the menu title string during its construction.

Return: The menu label, or the empty string if the menu was not found.

Remark: Use only after the menubar has been associated with a frame.

See:

- `getMenuLabelText/2`

- `setMenuLabel/3`

# getMenuLabelText(This, Pos)

    -spec getMenuLabelText(This, Pos) -> unicode:charlist() when This :: wxMenuBar(), Pos :: integer().

Returns the label of a top-level menu.

Note that the returned string does not include any accelerator characters that may have been specified in the menu title string during its construction.

Return: The menu label, or the empty string if the menu was not found.

Remark: Use only after the menubar has been associated with a frame.

See:

- `getMenuLabel/2`

- `setMenuLabel/3`

# insert(This, Pos, Menu, Title)

    -spec insert(This, Pos, Menu, Title) -> boolean()
                    when
                        This :: wxMenuBar(),
                        Pos :: integer(),
                        Menu :: wxMenu:wxMenu(),
                        Title :: unicode:chardata().

Inserts the menu at the given position into the menu bar.

Inserting menu at position 0 will insert it in the very beginning of it, inserting at position `getMenuCount/1` is the same as calling `append/3`.

Return: true on success, false if an error occurred.

See: `append/3`

# isChecked(This, Id)

    -spec isChecked(This, Id) -> boolean() when This :: wxMenuBar(), Id :: integer().

Determines whether an item is checked.

Return: true if the item was found and is checked, false otherwise.

# isEnabled(This, Id)

    -spec isEnabled(This, Id) -> boolean() when This :: wxMenuBar(), Id :: integer().

Determines whether an item is enabled.

Return: true if the item was found and is enabled, false otherwise.

# macGetCommonMenuBar()

    -spec macGetCommonMenuBar() -> wxMenuBar().

Enables you to get the global menubar on Mac, that is, the menubar displayed when the app is running without any frames open.

Return: The global menubar.

Remark: Only exists on Mac, other platforms do not have this method.

Only for:wxosx

# macSetCommonMenuBar(Menubar)

    -spec macSetCommonMenuBar(Menubar) -> ok when Menubar :: wxMenuBar().

Enables you to set the global menubar on Mac, that is, the menubar displayed when the app is running without any frames open.

Remark: Only exists on Mac, other platforms do not have this method.

Only for:wxosx

# new()

    -spec new() -> wxMenuBar().

Construct an empty menu bar.

# new(Style)

    -spec new(Style) -> wxMenuBar() when Style :: integer().

# oSXGetAppleMenu(This)

    -spec oSXGetAppleMenu(This) -> wxMenu:wxMenu() when This :: wxMenuBar().

Returns the Apple menu.

This is the leftmost menu with application's name as its title. You shouldn't remove any items from it, but it is safe to insert extra menu items or submenus into it.

Only for:wxosx

Since: 3.0.1

# remove(This, Pos)

    -spec remove(This, Pos) -> wxMenu:wxMenu() when This :: wxMenuBar(), Pos :: integer().

Removes the menu from the menu bar and returns the menu object - the caller is responsible for deleting it.

This function may be used together with `insert/4` to change the menubar dynamically.

See: `replace/4`

# replace(This, Pos, Menu, Title)

    -spec replace(This, Pos, Menu, Title) -> wxMenu:wxMenu()
                     when
                         This :: wxMenuBar(),
                         Pos :: integer(),
                         Menu :: wxMenu:wxMenu(),
                         Title :: unicode:chardata().

Replaces the menu at the given position with another one.

Return: The menu which was previously at position pos. The caller is responsible for deleting it.

See:

- `insert/4`

- `remove/2`

# setAutoWindowMenu(Enable)

    -spec setAutoWindowMenu(Enable) -> ok when Enable :: boolean().

# setHelpString(This, Id, HelpString)

    -spec setHelpString(This, Id, HelpString) -> ok
                           when This :: wxMenuBar(), Id :: integer(), HelpString :: unicode:chardata().

Sets the help string associated with a menu item.

See: `getHelpString/2`

# setLabel(This, Id, Label)

    -spec setLabel(This, Id, Label) -> ok
                      when This :: wxMenuBar(), Id :: integer(), Label :: unicode:chardata().

Sets the label of a menu item.

Remark: Use only after the menubar has been associated with a frame.

See: `getLabel/2`

# setLabelTop(This, Pos, Label)

    -spec setLabelTop(This, Pos, Label) -> ok
                         when This :: wxMenuBar(), Pos :: integer(), Label :: unicode:chardata().

Equivalent to: `setMenuLabel/3`

# setMenuLabel(This, Pos, Label)

    -spec setMenuLabel(This, Pos, Label) -> ok
                          when This :: wxMenuBar(), Pos :: integer(), Label :: unicode:chardata().

Sets the label of a top-level menu.

Remark: Use only after the menubar has been associated with a frame.