home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-04-20 | 2.8 KB | 132 lines | [TEXT/PJMM] |
- unit OOMenus;
-
- { This program was written by Peter N Lewis, Mar 1992 in THINK Pascal 4.0.1 }
-
- interface
-
- var
- editEnabled: boolean;
-
- procedure InitOOMenus (defaultproc: procptr; hstr: str31);
- procedure FinishOOMenus;
- procedure DoDefaultMenu (themenu, theitem: integer);
- function SetOOMenuBar: boolean;
-
- implementation
-
- uses
- Traps, Balloons, MyTypes, MyUtils, MyUtilities, BaseGlobals, MyFMenus, OOMainLoop, OOAboutHelp;
-
- function SetOOMenuBar: boolean;
- begin
- SetOOMenuBar := FrontObject.SetMenuBar;
- end;
-
- procedure DoDefaultMenu (themenu, theitem: integer);
- var
- save: grafPtr;
- DAName: str255;
- oe: OSErr;
- begin
- if themenu = M_Apple then begin
- GetPort(save);
- GetItem(GetMHandle(M_apple), theitem, DAName);
- oe := OpenDeskAcc(DAName);
- SetPort(save);
- end
- else if themenu = M_Edit then begin
- FrontObject.DoEditMenu(theitem);
- end;
- end;
-
- procedure SetAboutMenu (themenu, theitem: integer);
- begin
- SetIDItemEnable(themenu, theitem, not ISWObjectFront(about_object));
- end;
-
- procedure SetHelpMenu (themenu, theitem: integer);
- begin
- SetIDItemEnable(themenu, theitem, not ISWObjectFront(help_object));
- end;
-
- procedure DoClose;
- begin
- FrontObject.DoClose
- end;
-
- procedure SetCloseMenu (themenu, theitem: integer);
- var
- fw: windowPtr;
- begin
- fw := FrontWindow;
- if fw = nil then
- SetIDItemEnable(themenu, theitem, false)
- else
- SetIDItemEnable(themenu, theitem, windowPeek(fw)^.goAwayFlag);
- end;
-
- procedure SetEditMenus (menu, item: integer);
- begin
- FrontObject.SetEditMenuItem(item);
- end;
-
- procedure DoQuit;
- begin
- quitNow := true;
- end;
-
- {$S Init}
- procedure InitOOMenus (defaultproc: procptr; hstr: str31);
- var
- mh: menuHandle;
- oe: OSErr;
- dummyb: boolean;
- begin
- quitNow := false;
- editEnabled := true;
- if defaultproc = nil then
- defaultproc := @DoDefaultMenu;
-
- InitFMenus(defaultproc);
- InitOOAboutHelp;
-
- MH_Apple := GetFMenu(M_Apple);
- AddResMenu(MH_Apple, 'DRVR');
- InsertMenu(MH_Apple, 0);
- MH_File := GetFMenu(M_File);
- InsertMenu(MH_File, 0);
- MH_Edit := GetFMenu(M_Edit);
- InsertMenu(MH_Edit, 0);
-
- M_HM_Help_I := -1;
- if has_HelpMgr and (hstr <> '') then begin
- oe := HMGetHelpMenuHandle(mh);
- if (oe = noErr) and (mh <> nil) then begin
- AppendMenu(mh, hstr);
- M_HM_Help_I := CountMItems(mh);
- AddFCommand(kHMHelpMenuID, M_HM_Help_I, CHelp);
- end;
- end;
-
- SetFBoth(Cabout, @DoOOAbout, @SetAboutMenu);
- SetFBoth(Chelp, @DoOOHelp, @SetHelpMenu);
- SetFBoth(Cclose, @DoClose, @SetCloseMenu);
- SetFCommand(Cquit, @DoQuit);
- SetFSetMenu(Cundo, @SetEditMenus);
- SetFSetMenu(Ccut, @SetEditMenus);
- SetFSetMenu(Ccopy, @SetEditMenus);
- SetFSetMenu(Cpaste, @SetEditMenus);
- SetFSetMenu(Cclear, @SetEditMenus);
- SetFSetMenu(Cselectall, @SetEditMenus);
- SetFMenus;
- dummyb := SetOOMenuBar;
- DrawMenuBar;
- end;
-
- {$S Term}
- procedure FinishOOMenus;
- begin
- FinishFMenus;
- end;
-
- end.