BMenu¶
A BMenu
object displays a pull-down or pop-up list of menu
items. A menu can contain simple menu items ( BMenuItem
objects), or other menus (other BMenu
s). To add an item to a
menu, call AddItem()
.
Menu Hierarchy¶
Menus are hierarchically arranged; an item in one menu can control another menu. The controlled menu is a submenu; the menu that contains the item that controls it is its supermenu. A submenu remains hidden until the user operates the item that controls it; it becomes hidden again when the user is finished with it.
The menu at the root of the hierarchy is displayed in a window as a list -
perhaps a list of just one item. Since it, unlike other menus, doesn’t have
a controlling item, it must remain visible. A root menu is therefore a
special kind of menu in that it behaves more like an ordinary view than do
other menus, which stay hidden. Root menus should belong to the
BMenuBar
class, which is derived from BMenu
. The
typical root menu is a menu bar displayed across the top of a window.
Menu Items¶
Each item in a menu is a kind of BMenuItem
object. An item can
be marked (displayed with a check mark to its left), assigned a keyboard
shortcut, enabled and disabled, and given a “trigger” character that the
user can type to invoke the item when its menu is open on-screen.
Every item has a particular job to do. If an item controls a submenu, its
job is to show the submenu on-screen and hide it again. All other items
give instructions to the application. When invoked by the user, they
deliver a BMessage
to a target BHandler
. What the
item does depends on the content of the BMessage
and the
BHandler
’s response to it.