= Menus = Menus allow the user to view or choose from a list of choices and commands. Each menu has one or more menu items associated with it. A menu item may also be a submenu, sometimes called a hierarchical menu. {{{menu-item (view view-action-mixin view-text-mixin) [class]}}} An abstract class representing menu items. A menu item can have a view-action which is invoked when the item is selected, and a view-text which is the name of the menu item. Additional initargs: '':menu-item-updater'' -- intializes the function call to update the menu item, see set-menu-item-updater. '':menu-item-key'' -- initializes the menu items command key equivalent, see set-menu-item-key. '':menu-item-check'' -- initializes the check mark of the menu item, see set-menu-item-check. '':menu-item-style'' -- initializes the font style in which the item text appears, see set-menu-item-style. ''TODO: can also set the font family.'' ''TODO: can also have icons.'' ''TODO: menu items are not first class objects in Carbon. I guess we'll just return ''nil'' from view-ref. Also will need some hack for getting the item info through command handler so can find the menu-item object.'' {{{(set-menu-item-updater menu-item updater) [method]}}} Sets the menu item's updater function to ''updater'', which must be either ''nil'' or a funcallable object (function or symbol). If non-''nil'', it is invoked with one argument, the menu item, to allow it to be adjusted in the current program context (e.g. enabled/disabled) before it is displayed. {{{(menu-item-updater menu-item updater) [method]}}} Returns the menu item's updater function. {{{(set-menu-item-key menu-item key) [method]}}} Sets the keyboard equivalent for the menu item to key (which may be ''nil'' to remove the keyboard equivalent). {{{(menu-item-key menu-item) [method]}}} Returns the keyboard equivalent of the menu item. {{{(set-menu-item-check menu-item check) [method]}}} Sets the check mark character that appears next to the menu item text. If check is ''nil'', no check mark appears. If check is ''t'', then a standard check-mark symbol is used. Otherwise it should be a character to be used as the check mark. {{{(menu-item-check menu-item) [method]}}} Returns the check mark character that appears next to the menu item text, or ''t'' if the standard check-mark symbol is used, or ''nil'' if no check mark appears. {{{(set-menu-item-style menu-item style) [method]}}} Sets the style in which the item text appears, one of :normal or :plain, :bold, :italic, :shadow, :outline, :underline, :condense, and :extend. {{{(menu-item-style menu-item) [method]}}} Returns the style in which the item text appears, one of - :normal, :bold, :italic, :shadow, :outline, :underline, :condense, and :extend. {{{separator-menu-item (menu-item) [class]}}} A permanently disabled menu item consisting of a long line, used as a separator. ''TODO: window-menu-item (menu-item) [class] ? '' ''TODO: font-menu-item (menu-item) [class] ? '' {{{menu (menu-item view-nib-mixin) [class]}}} The class of menus. Additional initargs: '':menu-items'' -- initializes the menu's menu items, see set-menu-items. {{{(set-menu-items menu items) [method]}}} Sets the menu items associated with menu to ''items'', which must be a sequence of menu-item's. {{{(menu-items menu) [method]}}} Returns a freshly consed list of menu-item's associated with menu. {{{(set-menubar menu) [method]}}} Sets the root menu, also known as the menubar, to menu. {{{(menubar) [method]}}} Returns the menu object that is the current menubar.