int _handle_user_event( unsigned long ticks) { EventRecord event; if( WaitNextEvent(everyEvent, &event, ticks, nil)){ long menuResult = 0; short menuID, menuItem; WindowPtr window; Str255 daName; switch ( event.what ) { case mouseDown: if( FindWindow(event.where, &window) == inMenuBar) menuResult = MenuSelect(event.where); break; case keyDown: if( event.modifiers & cmdKey ) menuResult = MenuKey((short)event.message & charCodeMask); break; case kHighLevelEvent: AEProcessAppleEvent(&event); break; } menuID = HiWord(menuResult); menuItem = LoWord(menuResult); switch ( menuID ) { case mFile: MLDone = MLAbort = 1; break; case mApple: switch ( menuItem ) { case iAbout: do_about_box(); break; default: GetMenuItemText(GetMenuHandle(mApple), menuItem, daName); break; } HiliteMenu(0); } } return MLDone; }
P1(PUBLIC pascal trap, INTEGER, OpenDeskAcc, Str255, acc) /* IMI-440 */ { INTEGER retval; DCtlHandle dctlh; WindowPtr wp; if (EqualString (acc, about_box_menu_name_pstr, TRUE, TRUE)) { do_about_box (); retval = 0; goto done; } if (OpenDriver(acc, &retval) == noErr) { retval = CW(retval); dctlh = GetDCtlEntry(retval); if (dctlh) { wp = HxP(dctlh, dCtlWindow); if (wp) { ShowWindow(wp); SelectWindow(wp); } } } done: SEvtEnb = TRUE; return retval; }