Package Name: menus
with Interfaces.C.Strings; use Interfaces.C.Strings;
with Types; use Types;
with Quickdraw; use Quickdraw;
package Menus is
--
-- File: Menus.h
--
-- Contains: Menu Manager Interfaces.
--
-- Version: Technology: System 7.5
-- Package: Universal Interfaces 2.1 in ÒMPW LatestÓ on ETO #18
--
-- Copyright: © 1984-1995 by Apple Computer, Inc.
-- All rights reserved.
--
STRICT_MENUS : constant := 0;
type MenuInfo is
record
menuID : Short_Integer;
menuWidth : Short_Integer;
menuHeight : Short_Integer;
menuProc : Handle;
enableFlags : Long_Integer;
menuData : Str255;
end record;
type MenuPtr is Access MenuInfo;
type MenuHandle is Access MenuPtr;
subtype MenuRef is MenuHandle;
type MenuDefProcPtr is access procedure
(message : in Short_Integer;
theMenu : in MenuRef;
menuRect : access Rect;
hitPt : in Point;
whichItem : access Short_Integer);
type MenuBarDefProcPtr is access function
(selector : in Short_Integer;
message : in Short_Integer;
parameter1 : in Short_Integer;
parameter2 : in Long_Integer) return Long_Integer;
type MenuHookProcPtr is access procedure ;
type MBarHookProcPtr is access function
(menuRect : access Rect)
return Short_Integer;
subtype MenuDefUPP is UniversalProcPtr;
subtype MenuBarDefUPP is UniversalProcPtr;
subtype MenuHookUPP is UniversalProcPtr;
subtype MBarHookUPP is UniversalProcPtr;
type MCEntry is
record
mctID : Short_Integer; -- menu ID. ID = 0 is the menu bar
mctItem : Short_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 : Short_Integer; -- reserved for internal use
end record;
type MCEntry_Vec_1 is array (0 .. 0) of MCEntry;
type MCTablePtr is Access MCEntry;
type MCTableHandle is Access MCTablePtr;
subtype MCTable is MCEntry_Vec_1;
type MenuCRsrc is
record
numEntries : Short_Integer; -- number of entries
mcEntryRecs : MCTable; -- ARRAY [1..numEntries] of MCEntry
end record;
type MenuCRsrcPtr is Access MenuCRsrc;
type MenuCRsrcHandle is Access MenuCRsrcPtr;
function GetMBarHeight
return Short_Integer;
pragma Import (C, GetMBarHeight, "GetMBarHeight", "GetMBarHeight");
procedure InitMenus;
pragma Import (C, InitMenus, "InitMenus", "InitMenus");
function NewMenu
(menuID : in Short_Integer;
menuTitle : access Str255)
return MenuRef;
pragma Import (C, NewMenu, "NewMenu", "NewMenu");
function GetMenu
(resourceID : in Short_Integer)
return MenuRef;
pragma Import (C, GetMenu, "GetMenu", "GetMenu");
procedure DisposeMenu
(theMenu : in MenuRef);
pragma Import (C, DisposeMenu, "DisposeMenu", "DisposeMenu");
procedure AppendMenu
(menu : in MenuRef;
data : access Str255);
pragma Import (C, AppendMenu, "AppendMenu", "AppendMenu");
procedure AppendResMenu
(theMenu : in MenuRef;
theType : in ResType);
pragma Import (C, AppendResMenu, "AppendResMenu", "AppendResMenu");
procedure InsertResMenu
(theMenu : in MenuRef;
theType : in ResType;
afterItem : in Short_Integer);
pragma Import (C, InsertResMenu, "InsertResMenu", "InsertResMenu");
procedure InsertMenu
(theMenu : in MenuRef;
beforeID : in Short_Integer);
pragma Import (C, InsertMenu, "InsertMenu", "InsertMenu");
procedure DrawMenuBar;
pragma Import (C, DrawMenuBar, "DrawMenuBar", "DrawMenuBar");
procedure InvalMenuBar;
pragma Import (C, InvalMenuBar, "InvalMenuBar", "InvalMenuBar");
procedure DeleteMenu
(menuID : in Short_Integer);
pragma Import (C, DeleteMenu, "DeleteMenu", "DeleteMenu");
procedure ClearMenuBar;
pragma Import (C, ClearMenuBar, "ClearMenuBar", "ClearMenuBar");
function GetNewMBar
(menuBarID : in Short_Integer)
return Handle;
pragma Import (C, GetNewMBar, "GetNewMBar", "GetNewMBar");
function GetMenuBar
return Handle;
pragma Import (C, GetMenuBar, "GetMenuBar", "GetMenuBar");
procedure SetMenuBar
(menuList : in Handle);
pragma Import (C, SetMenuBar, "SetMenuBar", "SetMenuBar");
procedure InsertMenuItem
(theMenu : in MenuRef;
itemString : access Str255;
afterItem : in Short_Integer);
pragma Import (C, InsertMenuItem, "InsertMenuItem", "InsertMenuItem");
procedure DeleteMenuItem
(theMenu : in MenuRef;
item : in Short_Integer);
pragma Import (C, DeleteMenuItem, "DeleteMenuItem", "DeleteMenuItem");
function MenuKey
(ch : in Short_Integer)
return Long_Integer;
pragma Import (C, MenuKey, "MenuKey", "MenuKey");
procedure HiliteMenu
(menuID : in Short_Integer);
pragma Import (C, HiliteMenu, "HiliteMenu", "HiliteMenu");
procedure SetMenuItemText
(theMenu : in MenuRef;
item : in Short_Integer;
itemString : access Str255);
pragma Import (C, SetMenuItemText, "SetMenuItemText", "SetMenuItemText");
procedure GetMenuItemText
(theMenu : in MenuRef;
item : in Short_Integer;
itemString : access Str255);
pragma Import (C, GetMenuItemText, "GetMenuItemText", "GetMenuItemText");
procedure DisableItem
(theMenu : in MenuRef;
item : in Short_Integer);
pragma Import (C, DisableItem, "DisableItem", "DisableItem");
procedure EnableItem
(theMenu : in MenuRef;
item : in Short_Integer);
pragma Import (C, EnableItem, "EnableItem", "EnableItem");
procedure CheckItem
(theMenu : in MenuRef;
item : in Short_Integer;
checked : in Boolean);
pragma Import (C, CheckItem, "CheckItem", "CheckItem");
procedure SetItemMark
(theMenu : in MenuRef;
item : in Short_Integer;
markChar : in Short_Integer);
pragma Import (C, SetItemMark, "SetItemMark", "SetItemMark");
procedure GetItemMark
(theMenu : in MenuRef;
item : in Short_Integer;
markChar : access Short_Integer);
pragma Import (C, GetItemMark, "GetItemMark", "GetItemMark");
procedure SetItemIcon
(theMenu : in MenuRef;
item : in Short_Integer;
iconIndex : in Short_Integer);
pragma Import (C, SetItemIcon, "SetItemIcon", "SetItemIcon");
procedure GetItemIcon
(theMenu : in MenuRef;
item : in Short_Integer;
iconIndex : access Short_Integer);
pragma Import (C, GetItemIcon, "GetItemIcon", "GetItemIcon");
procedure SetItemStyle
(theMenu : in MenuRef;
item : in Short_Integer;
chStyle : in Short_Integer);
pragma Import (C, SetItemStyle, "SetItemStyle", "SetItemStyle");
procedure GetItemStyle
(theMenu : in MenuRef;
item : in Short_Integer;
chStyle : access Style);
pragma Import (C, GetItemStyle, "GetItemStyle", "GetItemStyle");
procedure CalcMenuSize
(theMenu : in MenuRef);
pragma Import (C, CalcMenuSize, "CalcMenuSize", "CalcMenuSize");
function CountMItems
(theMenu : in MenuRef)
return Short_Integer;
pragma Import (C, CountMItems, "CountMItems", "CountMItems");
function GetMenuHandle
(menuID : in Short_Integer)
return MenuRef;
pragma Import (C, GetMenuHandle, "GetMenuHandle", "GetMenuHandle");
procedure FlashMenuBar
(menuID : in Short_Integer);
pragma Import (C, FlashMenuBar, "FlashMenuBar", "FlashMenuBar");
procedure SetMenuFlash
(count : in Short_Integer);
pragma Import (C, SetMenuFlash, "SetMenuFlash", "SetMenuFlash");
function MenuSelect
(startPt : in Point)
return Long_Integer;
pragma Import (C, MenuSelect, "MenuSelect", "MenuSelect");
procedure InitProcMenu
(resID : in Short_Integer);
pragma Import (C, InitProcMenu, "InitProcMenu", "InitProcMenu");
procedure GetItemCmd
(theMenu : in MenuRef;
item : in Short_Integer;
cmdChar : access Short_Integer);
pragma Import (C, GetItemCmd, "GetItemCmd", "GetItemCmd");
procedure SetItemCmd
(theMenu : in MenuRef;
item : in Short_Integer;
cmdChar : in Short_Integer);
pragma Import (C, SetItemCmd, "SetItemCmd", "SetItemCmd");
function PopUpMenuSelect
(menu : in MenuRef;
top : in Short_Integer;
left : in Short_Integer;
popUpItem : in Short_Integer)
return Long_Integer;
pragma Import (C, PopUpMenuSelect, "PopUpMenuSelect", "PopUpMenuSelect");
function MenuChoice
return Long_Integer;
pragma Import (C, MenuChoice, "MenuChoice", "MenuChoice");
procedure DeleteMCEntries
(menuID : in Short_Integer;
menuItem : in Short_Integer);
pragma Import (C, DeleteMCEntries, "DeleteMCEntries", "DeleteMCEntries");
function GetMCInfo
return MCTableHandle;
pragma Import (C, GetMCInfo, "GetMCInfo", "GetMCInfo");
procedure SetMCInfo
(menuCTbl : in MCTableHandle);
pragma Import (C, SetMCInfo, "SetMCInfo", "SetMCInfo");
procedure DisposeMCInfo
(menuCTbl : in MCTableHandle);
pragma Import (C, DisposeMCInfo, "DisposeMCInfo", "DisposeMCInfo");
function GetMCEntry
(menuID : in Short_Integer;
menuItem : in Short_Integer)
return MCTablePtr;
pragma Import (C, GetMCEntry, "GetMCEntry", "GetMCEntry");
procedure SetMCEntries
(numEntries : in Short_Integer;
menuCEntries : in MCTablePtr);
pragma Import (C, SetMCEntries, "SetMCEntries", "SetMCEntries");
procedure InsertFontResMenu
(theMenu : in MenuRef;
afterItem : in Short_Integer;
scriptFilter : in Short_Integer);
pragma Import (C, InsertFontResMenu, "InsertFontResMenu", "InsertFontResMenu");
procedure InsertIntlResMenu
(theMenu : in MenuRef;
theType : in ResType;
afterItem : in Short_Integer;
scriptFilter : in Short_Integer);
pragma Import (C, InsertIntlResMenu, "InsertIntlResMenu", "InsertIntlResMenu");
function SystemEdit
(editCmd : in Short_Integer)
return Boolean;
pragma Import (C, SystemEdit, "SystemEdit", "SystemEdit");
procedure SystemMenu
(menuResult : in Long_Integer);
pragma Import (C, SystemMenu, "SystemMenu", "SystemMenu");
function newmenuC
(menuID : in Short_Integer;
menuTitle : in Chars_Ptr)
return MenuRef;
pragma Import (C, newmenuC, "newmenu", "newmenu");
function newmenu
(menuID : in Short_Integer;
menuTitle : in Chars_Ptr)
return MenuRef
renames newmenuC;
function newmenu
(menuID : in Short_Integer;
menuTitle : in String)
return MenuRef;
procedure appendmenuC
(menu : in MenuRef;
data : in Chars_Ptr);
pragma Import (C, appendmenuC, "appendmenu", "appendmenu");
procedure appendmenu
(menu : in MenuRef;
data : in Chars_Ptr)
renames appendmenuC;
procedure appendmenu
(menu : in MenuRef;
data : in String);
procedure insertmenuitemC
(theMenu : in MenuRef;
itemString : in Chars_Ptr;
afterItem : in Short_Integer);
pragma Import (C, insertmenuitemC, "insertmenuitem", "insertmenuitem");
procedure insertmenuitem
(theMenu : in MenuRef;
itemString : in Chars_Ptr;
afterItem : in Short_Integer)
renames insertmenuitemC;
procedure insertmenuitem
(theMenu : in MenuRef;
itemString : in String;
afterItem : in Short_Integer);
procedure setmenuitemtextC
(menu : in MenuRef;
item : in Short_Integer;
itemString : in Chars_Ptr);
pragma Import (C, setmenuitemtextC, "setmenuitemtext", "setmenuitemtext");
procedure setmenuitemtext
(menu : in MenuRef;
item : in Short_Integer;
itemString : in Chars_Ptr)
renames setmenuitemtextC;
procedure setmenuitemtext
(menu : in MenuRef;
item : in Short_Integer;
itemString : in String);
procedure getmenuitemtextC
(menu : in MenuRef;
item : in Short_Integer;
itemString : in Chars_Ptr);
pragma Import (C, getmenuitemtextC, "getmenuitemtext", "getmenuitemtext");
procedure getmenuitemtext
(menu : in MenuRef;
item : in Short_Integer;
itemString : in Chars_Ptr)
renames getmenuitemtextC;
end Menus;