Home > Articles > Home & Office Computing > Mac OS X

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

Main Menu Manager Constants, Data Types, and Functions


For markChar Parameter of SetItemMark Calls
noMark  = 0
commandMark = 17
checkMark = 18
diamondMark = 19
appleMark = 20
For beforeID Parameter of InsertMenu to Insert a Submenu into the Submenu Portion of the Menu List
hierMenu  = -1
For options Parameter of CreateStandardFontMenu Calls
KHierarchicalFontMenuOption = 0x00000001
Modifier Key Masks for GetMenuItemModifiers and SetMenuItemModifiers Calls
kMenuCommandModifiers = 0   If no bit is set, only the Command key is used.
kMenuShiftModifier  = (1 << 0) If this bit (bit 0) is set, the Shift key is used.
kMenuOptionModifier = (1 << 1) If this bit (bit 1) is set, the Option key is used.
kMenuControlModifier = (1 << 2) If this bit (bit 2) is set, the Control key is used.
kMenuNoCommandModifier = (1 << 3) If this bit (bit 3) is set, the Command key is not used.
Menu Icon Handle Constants for GetMenuItemIconHandle and SetMenuItemIconHandle Calls
kMenuNoIcon   = 0 No icon.
kMenuIconType   = 1 'ICON' handle.
kMenuShrinkIconType = 2 32-by-32 'ICON' handle shrunk (at display time) to 16-by-16.
kMenuSmallIconType  = 3 'SICN' handle.
kMenuColorIconType  = 4 'cicn' handle.
kMenuIconSuiteType  = 5 Icon suite handle.
Menu Attributes
kMenuAttrExcludesMarkColumn = (1 << 0)
kMenuAttrAutoDisable  = (1 << 2)

Data Types

typedef struct OpaqueMenuHandle* MenuHandle;
typedef MenuHandle MenuRef;
typedef SInt16  MenuID;
typedef UInt16  MenuItemIndex;
typedef UInt32  MenuCommand;
typedef Handle  MenuBarHandle;
typedef UInt32  MenuAttributes;


Creating and Disposing of Menus
MenuRef NewMenu(MenuID menuID, ConstStr255Param menuTitle);
MenuRef GetMenu(short resourceID);
void  DisposeMenu(MenuRef theMenu);
Creating a Help Menu (Mac OS X)
OSStatus HMGetHelpMenu(MenuRef *outHelpMenu,MenuItemIndex *outFirstCustomItemIndex);
Adding Menus to and Removing Menus from the Current Menu List
void  InsertMenu(MenuRef theMenu,MenuID beforeID);
void  DeleteMenu(MenuID menuID);
void  ClearMenuBar(void);
Getting a MenuBar Description from an 'MBAR' resource
MenuBarHandle GetNewMBar(short menuBarID);
Getting, Setting and Disposing of the Menu Bar
MenuBarHandle GetMenuBar(void);
void   SetMenuBar(MenuBarHandle mbar);
OSStatus  DisposeMenuBar(MenuBarHandle mbar);
short   GetMBarHeight(void);
Drawing the Menu Bar
void  DrawMenuBar(void);
void  InvalMenuBar(void);
Controlling Menu Bar Visibility
void  HideMenuBar(void);
void  ShowMenuBar(void);
Boolean IsMenuBarVisible(void);
Modifying the Menu Width
Boolean GetMenuExcludesMarkColumn(MenuRef menu);
OSStatus SetMenuExcludesMarkColumn(MenuRef menu,Boolean excludesMark);
Responding to User Choice of a Menu Command
Uint32 MenuEvent(const EventRecord *inEvent);
long  MenuSelect(Point startPt);
long  MenuChoice(void);
void  HiliteMenu(MenuID menuID);
long  PopUpMenuSelect(MenuRef menu,short top,short left,short popUpItem);
Getting a Reference to a Menu object
MenuRef GetMenuRef(MenuID menuID);
Adding and Deleting Menu Items
void  AppendMenu(MenuRef menu,ConstStr255Param data);
void  InsertMenuItem(MenuRef theMenu,ConstStr255Param itemString,short afterItem);
OSStatus AppendMenuItemText(MenuRef menu,ConstStr255Param inString);
OSStatus AppendMenuItemTextWithCFString(MenuRef menu,CFStringRef inString,
   MenuItemAttributes inAttributes,MenuCommand inCommandID,MenuItemIndex *outNewItem);
OSStatus InsertMenuItemText(MenuRef menu,ConstStr255Param inString,UInt16 afterItem);
OSStatus InsertMenuItemTextWithCFString(MenuRef menu,CFStringRef inString,
   MenuItemIndex inAfterItem,MenuItemAttributes inAttributes,MenuCommand inCommandID);
void  DeleteMenuItem(MenuRef theMenu,short item);
void  AppendResMenu(MenuRef theMenu,ResType theType);
void  InsertResMenu(MenuRef theMenu,ResType theType,short afterItem);
Enabling and Disabling Menus, Menu Items, and Menu Item Icons
void  EnableMenuItem(MenuRef theMenu,MenuItemIndex item);
void  DisableMenuItem(MenuRef theMenu,MenuItemIndex item);
Boolean IsMenuItemEnabled(MenuRef menu,MenuItemIndex item);
void  DisableAllMenuItems(MenuRef theMenu);
void  EnableAllMenuItems(MenuRef theMenu);
Boolean MenuHasEnabledItems(MenuRef theMenu);
void  EnableMenuCommand(MenuRef theMenu,MenuCommand commandID);
void  DisableMenuCommand(MenuRef theMenu,MenuCommand commandID);
Boolean IsMenuCommandEnabled(MenuRef menu,MenuCommand commandID);
void  EnableMenuItemIcon(MenuRef theMenu,MenuItemIndex item);
void  DisableMenuItemIcon(MenuRef theMenu,MenuItemIndex item);
Boolean IsMenuItemIconEnabled(MenuRef menu,MenuItemIndex item);
Getting and Setting Menu Item Command IDs
OSErr  GetMenuItemCommandID(MenuRef inMenu,SInt16 inItem,UInt32 *outCommandID);
OSErr  SetMenuItemCommandID(MenuRef inMenu,SInt16 inItem,UInt32 inCommandID);
Menu Object Accessor Functions
MenuID GetMenuID(MenuRef menu);
void  SetMenuID(MenuRef menu,MenuID menuID);
SInt16 GetMenuWidth(MenuRef menu);
void  SetMenuWidth(MenuRef menu,SInt16 width);
SInt16 GetMenuHeight(MenuRef menu);
void  SetMenuHeight(MenuRef menu,SInt16 height);
StringPtr GetMenuTitle(MenuRef menu,Str255 title);
OSStatus SetMenuTitle(MenuRef menu,ConstStr255Param title);
OSStatus SetMenuTitleWithCFString(MenuRef menu,CFStringRef inString);
OSStatus GetMenuDefinition(MenuRef menu,MenuDefSpecPtr outDefSpec);
OSStatus SetMenuDefinition (MenuRef menu,const MenuDefSpec *defSpec);
Manipulating and Accessing Menu Item Characteristics
void  GetMenuItemText(MenuRef menu,short item,Str255 itemString);
void  SetMenuItemText(MenuRef theMenu, short item, ConstStr255Param itemString);
OSStatus SetMenuItemTextWithCFString(MenuRef menu,MenuItemIndex item,CFStringRef inString);
void  GetItemStyle(MenuRef theMenu,short item,Style* chStyle);
void  SetItemStyle(MenuRef theMenu,short item, StyleParameter chStyle);
void  GetItemMark(MenuRef theMenu,short item,CharParameter *markChar);
void  SetItemMark(MenuRef theMenu,short item,CharParameter markChar);
void  CheckMenuItem(MenuRef theMenu,short item,Boolean checked);
OSStatus GetMenuFont(MenuRef menu,SInt16 *outFontID,UInt16 *outFontSize);
OSStatus SetMenuFont(MenuRef menu,SInt16 inFontID,UInt16 inFontSize);
void  GetItemIcon(MenuRef theMenu,short item,short *iconIndex);
void  SetItemIcon(MenuRef theMenu,short item,short iconIndex);
void  GetItemCmd(MenuRef theMenu,short item,short *cmdChar);
void  SetItemCmd(MenuRef theMenu,short item,short cmdChar);
OSErr  GetMenuItemFontID(MenuRef inMenu,SInt16 inItem,SInt16* outFontID);
OSErr  SetMenuItemFontID(MenuRef inMenu,SInt16 inItem,SInt16 inFontID);
OSErr  GetMenuItemHierarchicalID(MenuRef inMenu,SInt16 inItem,SInt16 *outHierID);
OSErr  SetMenuItemHierarchicalID(MenuRef inMenu,SInt16 inItem,SInt16 inHierID);
OSErr  GetMenuItemIconHandle(MenuRef inMenu,SInt16 inItem,MenuIconType outIconType,
   Handle* outIconHandle);
OSErr  SetMenuItemIconHandle(MenuRef inMenu,SInt16 inItem,MenuIconType inIconType,
   Handle inIconHandle);
OSErr  GetMenuItemKeyGlyph(MenuRef inMenu,SInt16 inItem,SInt16 *outGlyph);
OSErr  SetMenuItemKeyGlyph(MenuRef inMenu,SInt16 inItem,SInt16 inGlyph);
OSErr  GetMenuItemModifiers(MenuRef inMenu,SInt16 inItem,SInt16* outModifiers);
OSErr  SetMenuItemModifiers(MenuRef inMenu,SInt16 inItem,SInt16 inModifiers);
OSErr  GetMenuItemRefCon(MenuRef inMenu,SInt16 inItem,SInt32* outRefCon);
OSErr  SetMenuItemRefCon(MenuRef inMenu,SInt16 inItem,SInt32 inRefCon);
OSErr  GetMenuItemTextEncoding(MenuRef inMenu,SInt16 inItem,TextEncoding* outScriptID);
OSErr  SetMenuItemTextEncoding(MenuRef inMenu,SInt16 inItem,TextEncoding inScriptID);
Getting a Menu Reference and Menu ID from a Command ID
OSStatus GetIndMenuItemWithCommandID(MenuRef menu,MenuCommand commandID,UInt32 itemIndex,
   MenuRef *outMenu,MenuItemIndex *outIndex);
Associating Data with Menu Items
OSStatus SetMenuCommandProperty(MenuRef menu,MenuCommand commandID,OSType propertyCreator,
   OSType propertyTag,ByteCount propertySize,const void *propertyData);
OSStatus GetMenuCommandPropertySize(MenuRef menu,MenuCommand commandID,OSType propertyCreator,
   OSType propertyTag,ByteCount *size);
OSStatus GetMenuCommandProperty(MenuRef menu,MenuCommand commandID,OSType propertyCreator,
   OSType propertyTag,ByteCount bufferSize,ByteCount *actualSize,void *propertyBuffer);
OSStatus RemoveMenuCommandProperty(MenuRef menu,MenuCommand commandID,OSType propertyCreator,
   OSType propertyTag);
Counting Items in a Menu
short  CountMenuItems(MenuRef theMenu);
ItemCount CountMenuItemsWithCommandID(MenuRef menu,MenuCommand commandID);
Building and Updating Font Menus and Obtaining Font Family and Style
OSStatus CreateStandardFontMenu(MenuRef menu,MenuItemIndex afterItem,MenuID firstHierMenuID,
   OptionBits options,ItemCount *outHierMenuCount);
OSStatus UpdateStandardFontMenu(MenuRef menu,ItemCount *outHierMenuCount);
OSStatus GetFontFamilyFromMenuSelection(MenuRef menu,MenuItemIndex item,
   FMFontFamily *outFontFamily,FMFontStyle *outStyle);
Recalculating Menu Dimensions
void  CalcMenuSize(MenuRef theMenu);
Highlighting the Menu Bar
void  FlashMenuBar(MenuID menuID);
  • + Share This
  • 🔖 Save To Your Account