Package Name: menus

Return to: Package List


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;