mac-rom/Interfaces/CIncludes/Menus.h
Elliot Nunn 4325cdcc78 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 09:52:23 +08:00

257 lines
8.2 KiB
C

/************************************************************
Created: Saturday, July 27, 1991 at 4:33 PM
Menus.h
C Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1985-1992
All rights reserved.
Change History (most recent first):
<23> 6/26/92 DCL Miner Formatting Changes. Digging deep for things to do. Getting
the file ready for ETO 8.
<22> 3/27/92 DC number not known <KSM> - added InsertIntlResMenu and
reindtroduced InsertFontResMenu
<21> 3/9/92 DCL For New Improved Inside Mac: Added Call names without Abbrevs.:
AppendResMenu (AddResMenu), DeleteMCEntries (DelMCEntries),
DeleteMenuItem (DelMenuItem), DisposeMCInfo (DispMCInfo),
GetMenuHandle (GetMHandle), InsertMenuItem (InsMenuItem),
SetMenuItemText (SetItem), GetMenuItemText (GetItem). Affected
Files: Menus.[ph], Traps.[aph].
<20> 2/28/92 DCL Moved GetMBarHeight from Script.h to Menus.h
<19> 2/17/92 MH Remove defintion of InsertFontResMenu. Not part of public
interface (yet?)
<18> 9/17/91 MH params of InsertFontResMenu to standard DB output format
<17> 8/22/91 KSM DCC,#Bruges: Added utility routine InsertFontResMenu for Finder.
<16> 7/30/91 JL Updated Copyright.
<15> 2/5/91 stb gs: remove SaveBits, RestoreBits, DiscardBits
<14> 1/28/91 LN Checked in Database generate file from DSG. Grouping enums into
groups of 20. Used type SavedBits instead of long to match .p
file.
<13> 1/25/91 stb JDR: change long bits in SaveBits to long *bits
<12> 12/20/90 JL changed constStr255Parameter to ConstStr255Param
<11> 11/28/90 JL Put formal parameter names back.
<10> 11/14/90 JL Changing InvalidMenuBar back to InvalMenuBar because Invalid is
misleading. All InvalÉ calls should be expanded to Invalidate if
they are expanded at all.
<9> 11/7/90 JL Changed all #defines to anonymous enums
<8> 11/4/90 dba used constStr255Parameter; got rid of some extraneous parameter
names
<7> 10/11/90 JL changed InvalMenuBar to InvalidMenuBar and fixed MenuCRsrc.
<6> 5/31/90 KSM Add InvalMenuBar and Save/Restore/Discard Bits calls.
<5> 3/5/90 BBH fixed mCalcItemMsg and mDrawItemMsg
<4> 3/2/90 BBH added mCalcItemMsg and mDrawItemMsg
<2> JAL 02/08/90 Added MenuCRsrc data structure
************************************************************/
#ifndef __MENUS__
#define __MENUS__
#ifndef __QUICKDRAW__
#include <Quickdraw.h>
#endif
enum {
#define noMark '\0' /*mark symbol for MarkItem*/
/* menu defProc messages */
mDrawMsg = 0,
mChooseMsg = 1,
mSizeMsg = 2,
mDrawItemMsg = 4,
mCalcItemMsg = 5,
textMenuProc = 0,
hMenuCmd = 27, /*itemCmd == 0x001B ==> hierarchical menu*/
hierMenu = -1, /*a hierarchical menu - for InsertMenu call*/
mPopUpMsg = 3, /*menu defProc messages - place yourself*/
mctAllItems = -98, /*search for all Items for the given ID*/
mctLastIDIndic = -99 /*last color table entry has this in ID field*/
};
struct MenuInfo {
short menuID;
short menuWidth;
short menuHeight;
Handle menuProc;
long enableFlags;
Str255 menuData;
};
typedef struct MenuInfo MenuInfo;
typedef MenuInfo *MenuPtr, **MenuHandle;
struct MCEntry {
short mctID; /*menu ID. ID = 0 is the menu bar*/
short mctItem; /*menu Item. Item = 0 is a title*/
RGBColor mctRGB1; /*usage depends on ID and Item*/
RGBColor mctRGB2; /*usage depends on ID and Item*/
RGBColor mctRGB3; /*usage depends on ID and Item*/
RGBColor mctRGB4; /*usage depends on ID and Item*/
short mctReserved; /*reserved for internal use*/
};
typedef struct MCEntry MCEntry;
typedef MCEntry *MCEntryPtr;
typedef MCEntry MCTable[1], *MCTablePtr, **MCTableHandle;
struct MenuCRsrc {
short numEntries; /*number of entries*/
MCTable mcEntryRecs; /*ARRAY [1..numEntries] of MCEntry*/
};
typedef struct MenuCRsrc MenuCRsrc;
typedef MenuCRsrc *MenuCRsrcPtr, **MenuCRsrcHandle;
#ifdef __cplusplus
extern "C" {
#endif
pascal void InitMenus(void)
= 0xA930;
pascal MenuHandle NewMenu(short menuID,const Str255 menuTitle)
= 0xA931;
pascal MenuHandle GetMenu(short resourceID)
= 0xA9BF;
pascal void DisposeMenu(MenuHandle theMenu)
= 0xA932;
pascal void AppendMenu(MenuHandle menu,ConstStr255Param data)
= 0xA933;
pascal void AddResMenu(MenuHandle theMenu,ResType theType)
= 0xA94D;
pascal void AppendResMenu(MenuHandle theMenu,ResType theType)
= 0xA94D;
pascal void InsertResMenu(MenuHandle theMenu,ResType theType,short afterItem)
= 0xA951;
pascal void InsertMenu(MenuHandle theMenu,short beforeID)
= 0xA935;
pascal void DrawMenuBar(void)
= 0xA937;
pascal void InvalMenuBar(void)
= 0xA81D;
pascal void DeleteMenu(short menuID)
= 0xA936;
pascal void ClearMenuBar(void)
= 0xA934;
pascal Handle GetNewMBar(short menuBarID)
= 0xA9C0;
pascal Handle GetMenuBar(void)
= 0xA93B;
#define GetMBarHeight() (* (short*) 0x0BAA)
pascal void SetMenuBar(Handle menuList)
= 0xA93C;
pascal void InsMenuItem(MenuHandle theMenu,ConstStr255Param itemString,
short afterItem)
= 0xA826;
pascal void InsertMenuItem(MenuHandle theMenu,ConstStr255Param itemString,
short afterItem)
= 0xA826;
pascal void DelMenuItem(MenuHandle theMenu,short item)
= 0xA952;
pascal void DeleteMenuItem(MenuHandle theMenu,short item)
= 0xA952;
pascal long MenuKey(short ch)
= 0xA93E;
pascal void HiliteMenu(short menuID)
= 0xA938;
pascal void SetItem(MenuHandle theMenu,short item,ConstStr255Param itemString)
= 0xA947;
pascal void SetMenuItemText(MenuHandle theMenu,short item,ConstStr255Param itemString)
= 0xA947;
pascal void GetItem(MenuHandle theMenu,short item,Str255 itemString)
= 0xA946;
pascal void GetMenuItemText(MenuHandle theMenu,short item,Str255 itemString)
= 0xA946;
pascal void DisableItem(MenuHandle theMenu,short item)
= 0xA93A;
pascal void EnableItem(MenuHandle theMenu,short item)
= 0xA939;
pascal void CheckItem(MenuHandle theMenu,short item,Boolean checked)
= 0xA945;
pascal void SetItemMark(MenuHandle theMenu,short item,short markChar)
= 0xA944;
pascal void GetItemMark(MenuHandle theMenu,short item,short *markChar)
= 0xA943;
pascal void SetItemIcon(MenuHandle theMenu,short item,short iconIndex)
= 0xA940;
pascal void GetItemIcon(MenuHandle theMenu,short item,short *iconIndex)
= 0xA93F;
pascal void SetItemStyle(MenuHandle theMenu,short item,short chStyle)
= 0xA942;
pascal void GetItemStyle(MenuHandle theMenu,short item,Style *chStyle);
pascal void CalcMenuSize(MenuHandle theMenu)
= 0xA948;
pascal short CountMItems(MenuHandle theMenu)
= 0xA950;
pascal MenuHandle GetMHandle(short menuID)
= 0xA949;
pascal MenuHandle GetMenuHandle(short menuID)
= 0xA949;
pascal void FlashMenuBar(short menuID)
= 0xA94C;
pascal void SetMenuFlash(short count)
= 0xA94A;
pascal long MenuSelect(Point startPt)
= 0xA93D;
pascal void InitProcMenu(short resID)
= 0xA808;
pascal void GetItemCmd(MenuHandle theMenu,short item,short *cmdChar)
= 0xA84E;
pascal void SetItemCmd(MenuHandle theMenu,short item,short cmdChar)
= 0xA84F;
pascal long PopUpMenuSelect(MenuHandle menu,short top,short left,short popUpItem)
= 0xA80B;
pascal long MenuChoice(void)
= 0xAA66;
pascal void DelMCEntries(short menuID,short menuItem)
= 0xAA60;
pascal void DeleteMCEntries(short menuID,short menuItem)
= 0xAA60;
pascal MCTableHandle GetMCInfo(void)
= 0xAA61;
pascal void SetMCInfo(MCTableHandle menuCTbl)
= 0xAA62;
pascal void DispMCInfo(MCTableHandle menuCTbl)
= 0xAA63;
pascal void DisposeMCInfo(MCTableHandle menuCTbl)
= 0xAA63;
pascal MCEntryPtr GetMCEntry(short menuID,short menuItem)
= 0xAA64;
pascal void SetMCEntries(short numEntries,MCTablePtr menuCEntries)
= 0xAA65;
pascal void InsertFontResMenu(MenuHandle theMenu, short afterItem,
short scriptFilter)
= {0x303C, 0x0400, 0xA825};
pascal void InsertIntlResMenu(MenuHandle theMenu, ResType theType,
short afterItem, short scriptFilter)
= {0x303C, 0x0601, 0xA825};
MenuHandle newmenu(short menuID,char *menuTitle);
void getitem(MenuHandle menu,short item,char *itemString);
void appendmenu(MenuHandle menu,char *data);
void insmenuitem(MenuHandle theMenu,char *itemString,short afterItem);
long menuselect(Point *startPt);
void setitem(MenuHandle menu,short item,char *itemString);
#ifdef __cplusplus
}
#endif
#endif