mac-rom/Interfaces/PInterfaces/Menus.p

245 lines
8.3 KiB
OpenEdge ABL
Raw Normal View History

{
Created: Saturday, July 27, 1991 at 9:45 PM
Menus.p
Pascal Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1985-1992
All rights reserved
Change History (most recent first):
<24> 6/26/92 DCL Miner Formatting Changes. Digging deep for things to do. Getting
the file ready for ETO 8.
<23> 3/27/92 DC number not known <KSM> - added InsertIntlResMenu and
reindtroduced InsertFontResMenu
<22> 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].
<21> 2/28/92 DCL Moved GetMBarHeight from Script.p to Menus.p
<20> 2/17/92 MH Remove defintion of InsertFontResMenu. Not part of public
interface (yet?)
<19> 9/17/91 MH params of InsertFontResMenu to standard DB output format
<18> 8/22/91 KSM DCC,#Bruges: Added utility routine InsertFontResMenu for Finder.
<17> 7/30/91 JL Updated Copyright.
<16> 6/14/91 JL Moved SavedBits to the Private Interface File: MenuMgrPriv.p.
<15> 2/4/91 JL changed parameter name iconNum to iconIndex.
<14> 1/30/91 gbm abcdfsn: Well, when you move identifiers to another file I think
you should remove them from the one they are in...
<13> 1/29/91 JL Moved SaveBits, RestoreBits, and DiscardBits to MenuMgrPriv
<12> 1/28/91 LN Checked in Database Generated File from DSG. Added
<11> 11/3/90 JAL Fixing MCTable putting back to an Array [0..0].
<10> 10/3/90 JAL Updated MenuCRsrc.
<9> 5/31/90 KSM Now that I did the thing in the To Do section, remove the To Do
reminder comment...
<8> 5/31/90 KSM Forgot to declare type for SaveBits.
<7> 5/31/90 KSM Add Save/Restore/Discard Bits calls.
<6> 4/11/90 KSM Add the InvalMenuBar trap.
<5> 3/5/90 BBH Added mDrawItemMsg and mCalcItemMsg
<4> 3/2/90 BBH Added mDrawItemMsg and mCalcItemMsg
To Do:
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT Menus;
INTERFACE
{$ENDC}
{$IFC UNDEFINED UsingMenus}
{$SETC UsingMenus := 1}
{$I+}
{$SETC MenusIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingQuickdraw}
{$I $$Shell(PInterfaces)Quickdraw.p}
{$ENDC}
{$SETC UsingIncludes := MenusIncludes}
CONST
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}
TYPE
MenuPtr = ^MenuInfo;
MenuHandle = ^MenuPtr;
MenuInfo = RECORD
menuID: INTEGER;
menuWidth: INTEGER;
menuHeight: INTEGER;
menuProc: Handle;
enableFlags: LONGINT;
menuData: Str255;
END;
MCEntryPtr = ^MCEntry;
MCEntry = RECORD
mctID: INTEGER; {menu ID. ID = 0 is the menu bar}
mctItem: INTEGER; {menu Item. Item = 0 is a title}
mctRGB1: RGBColor; {usage depends on ID and Item}
mctRGB2: RGBColor; {usage depends on ID and Item}
mctRGB3: RGBColor; {usage depends on ID and Item}
mctRGB4: RGBColor; {usage depends on ID and Item}
mctReserved: INTEGER; {reserved for internal use}
END;
MCTablePtr = ^MCTable;
MCTableHandle = ^MCTablePtr;
MCTable = ARRAY [0..0] OF MCEntry; { the entries themselves }
MenuCRsrcPtr = ^MenuCRsrc;
MenuCRsrcHandle = ^MenuCRsrcPtr;
MenuCRsrc = RECORD
numEntries: INTEGER; {number of entries}
mcEntryRecs: MCTable; {ARRAY [1..numEntries] of MCEntry}
END;
PROCEDURE InitMenus;
INLINE $A930;
FUNCTION NewMenu(menuID: INTEGER;menuTitle: Str255): MenuHandle;
INLINE $A931;
FUNCTION GetMenu(resourceID: INTEGER): MenuHandle;
INLINE $A9BF;
PROCEDURE DisposeMenu(theMenu: MenuHandle);
INLINE $A932;
PROCEDURE AppendMenu(menu: MenuHandle;data: Str255);
INLINE $A933;
PROCEDURE AddResMenu(theMenu: MenuHandle;theType: ResType);
INLINE $A94D;
PROCEDURE AppendResMenu(theMenu: MenuHandle;theType: ResType);
INLINE $A94D;
PROCEDURE InsertResMenu(theMenu: MenuHandle;theType: ResType;afterItem: INTEGER);
INLINE $A951;
PROCEDURE InsertMenu(theMenu: MenuHandle;beforeID: INTEGER);
INLINE $A935;
PROCEDURE DrawMenuBar;
INLINE $A937;
PROCEDURE InvalMenuBar;
INLINE $A81D;
PROCEDURE DeleteMenu(menuID: INTEGER);
INLINE $A936;
PROCEDURE ClearMenuBar;
INLINE $A934;
FUNCTION GetNewMBar(menuBarID: INTEGER): Handle;
INLINE $A9C0;
FUNCTION GetMenuBar: Handle;
INLINE $A93B;
FUNCTION GetMBarHeight: INTEGER;
INLINE $3EB8,$0BAA;
PROCEDURE SetMenuBar(menuList: Handle);
INLINE $A93C;
PROCEDURE InsMenuItem(theMenu: MenuHandle;itemString: Str255;afterItem: INTEGER);
INLINE $A826;
PROCEDURE InsertMenuItem(theMenu: MenuHandle;itemString: Str255;afterItem: INTEGER);
INLINE $A826;
PROCEDURE DelMenuItem(theMenu: MenuHandle;item: INTEGER);
INLINE $A952;
PROCEDURE DeleteMenuItem(theMenu: MenuHandle;item: INTEGER);
INLINE $A952;
FUNCTION MenuKey(ch: CHAR): LONGINT;
INLINE $A93E;
PROCEDURE HiliteMenu(menuID: INTEGER);
INLINE $A938;
PROCEDURE SetItem(theMenu: MenuHandle;item: INTEGER;itemString: Str255);
INLINE $A947;
PROCEDURE SetMenuItemText(theMenu: MenuHandle;item: INTEGER;itemString: Str255);
INLINE $A947;
PROCEDURE GetItem(theMenu: MenuHandle;item: INTEGER;VAR itemString: Str255);
INLINE $A946;
PROCEDURE GetMenuItemText(theMenu: MenuHandle;item: INTEGER;VAR itemString: Str255);
INLINE $A946;
PROCEDURE DisableItem(theMenu: MenuHandle;item: INTEGER);
INLINE $A93A;
PROCEDURE EnableItem(theMenu: MenuHandle;item: INTEGER);
INLINE $A939;
PROCEDURE CheckItem(theMenu: MenuHandle;item: INTEGER;checked: BOOLEAN);
INLINE $A945;
PROCEDURE SetItemMark(theMenu: MenuHandle;item: INTEGER;markChar: CHAR);
INLINE $A944;
PROCEDURE GetItemMark(theMenu: MenuHandle;item: INTEGER;VAR markChar: CHAR);
INLINE $A943;
PROCEDURE SetItemIcon(theMenu: MenuHandle;item: INTEGER;iconIndex: Byte);
INLINE $A940;
PROCEDURE GetItemIcon(theMenu: MenuHandle;item: INTEGER;VAR iconIndex: Byte);
INLINE $A93F;
PROCEDURE SetItemStyle(theMenu: MenuHandle;item: INTEGER;chStyle: Style);
INLINE $A942;
PROCEDURE GetItemStyle(theMenu: MenuHandle;item: INTEGER;VAR chStyle: Style);
PROCEDURE CalcMenuSize(theMenu: MenuHandle);
INLINE $A948;
FUNCTION CountMItems(theMenu: MenuHandle): INTEGER;
INLINE $A950;
FUNCTION GetMHandle(menuID: INTEGER): MenuHandle;
INLINE $A949;
FUNCTION GetMenuHandle(menuID: INTEGER): MenuHandle;
INLINE $A949;
PROCEDURE FlashMenuBar(menuID: INTEGER);
INLINE $A94C;
PROCEDURE SetMenuFlash(count: INTEGER);
INLINE $A94A;
FUNCTION MenuSelect(startPt: Point): LONGINT;
INLINE $A93D;
PROCEDURE InitProcMenu(resID: INTEGER);
INLINE $A808;
PROCEDURE GetItemCmd(theMenu: MenuHandle;item: INTEGER;VAR cmdChar: CHAR);
INLINE $A84E;
PROCEDURE SetItemCmd(theMenu: MenuHandle;item: INTEGER;cmdChar: CHAR);
INLINE $A84F;
FUNCTION PopUpMenuSelect(menu: MenuHandle;top: INTEGER;left: INTEGER;popUpItem: INTEGER): LONGINT;
INLINE $A80B;
FUNCTION MenuChoice: LONGINT;
INLINE $AA66;
PROCEDURE DelMCEntries(menuID: INTEGER;menuItem: INTEGER);
INLINE $AA60;
PROCEDURE DeleteMCEntries(menuID: INTEGER;menuItem: INTEGER);
INLINE $AA60;
FUNCTION GetMCInfo: MCTableHandle;
INLINE $AA61;
PROCEDURE SetMCInfo(menuCTbl: MCTableHandle);
INLINE $AA62;
PROCEDURE DispMCInfo(menuCTbl: MCTableHandle);
INLINE $AA63;
PROCEDURE DisposeMCInfo(menuCTbl: MCTableHandle);
INLINE $AA63;
FUNCTION GetMCEntry(menuID: INTEGER;menuItem: INTEGER): MCEntryPtr;
INLINE $AA64;
PROCEDURE SetMCEntries(numEntries: INTEGER; menuCEntries: MCTablePtr);
INLINE $AA65;
PROCEDURE InsertFontResMenu(theMenu: MenuHandle; afterItem: INTEGER;scriptFilter: INTEGER);
INLINE $303C, $0400, $A825;
PROCEDURE InsertIntlResMenu(theMenu: MenuHandle; theType: ResType;afterItem: INTEGER;
scriptFilter: INTEGER);
INLINE $303C, $0601, $A825;
{$ENDC} { UsingMenus }
{$IFC NOT UsingIncludes}
END.
{$ENDC}