static void mac_clickabout(WindowPtr window, EventRecord *event) { short item; DialogRef dialog; dialog = GetDialogFromWindow(window); if (DialogSelect(event, &dialog, &item)) switch (item) { case wiAboutLicence: mac_openlicence(); break; } }
static void mac_activatekey(WindowPtr window, EventRecord *event) { DialogRef dialog; DialogItemType itemtype; Handle itemhandle; short item; Rect itemrect; int active; dialog = GetDialogFromWindow(window); active = (event->modifiers & activeFlag) != 0; GetDialogItem(dialog, wiKeyGenerate, &itemtype, &itemhandle, &itemrect); HiliteControl((ControlHandle)itemhandle, active ? 0 : 255); DialogSelect(event, &dialog, &item); }
// -------------------------------------------------------------------------------------- void HandleDialogEvents(EventRecord *event) { Boolean eventHandled; DialogRef prefsDialog; DialogItemIndex itemHit; eventHandled = dialogFilter(event, &prefsDialog, &itemHit); // we call this // before and not after DialogSelect to filter out key presses that should simulate // clicks on the OK or Cancel buttons and to respond to menu key equivalents if (!eventHandled) // handle most other events eventHandled = DialogSelect(event, &prefsDialog, &itemHit); if (eventHandled) { handleDialogItemHit(prefsDialog, itemHit); } }
static void mac_clickkey(WindowPtr window, EventRecord *event) { short item; DialogRef dialog; KeyState *ks = mac_windowkey(window); dialog = GetDialogFromWindow(window); if (DialogSelect(event, &dialog, &item)) switch (item) { case wiKeyGenerate: SetControlMaximum(ks->progress, 1024); ks->entropy = snewn(1024, unsigned int); ks->entropy_required = 1024; ks->entropy_got = 0; ks->collecting_entropy = TRUE; /* Do something */ break; } }
Boolean ThermDialog::DisplayTherm(int k,int maxk,unsigned char *st) { Rect r; int maxr; Handle h; short itemType; long temp; GrafPtr tdp; WindowPtr window; short thePart; Rect screenRect, updateRect; Point aPoint = {100, 100}; Boolean QuitFlag = FALSE; short item = 0; EventRecord event; short the_part; DialogPtr hitdp; GetPort(&tdp); SetPort(dp); if (st != NULL) { GetDItem (dp,ids[THERM_TEXT], &itemType, &h, &r); SetIText(h,st); } GetDItem (dp, ids[THERM_BOX], &itemType, &h, &r); if (k == -1) k = old_k; if (maxk == -1) maxk = old_maxk; maxr = r.right; temp = ((long)k*((long)r.right - (long)r.left))/(long)maxk; r.right = r.left + temp; if (r.right>maxr) r.right=maxr; old_k = k; old_maxk = maxk; PenNormal (); PenPat(&qd.gray); PaintRect(&r); PenNormal (); SetPort(tdp); if (GetNextEvent(0xFFFF,&event)) { if (event.what == mouseDown) { the_part = FindWindow(event.where, &window); if (IsDialogEvent(&event)) { DialogSelect(&event,&hitdp,&item); if ((hitdp == dp) && (item == ids[THERM_CANCEL])) { Quit = TRUE; return FALSE; } } else switch (the_part) { case inSysWindow: SystemClick (&event, window); break; case inDrag: screenRect = (**GetGrayRgn()).rgnBBox; DragWindow( window, event.where, &screenRect ); break; } } else if (event.what == keyDown) { if ((event.modifiers & 0x0100) && ( (event.message) & charCodeMask == 0x02E)) { Quit = TRUE; return FALSE; } } else if (event.what == updateEvt) { window = (WindowPtr)event.message; updateRect = (**(window->visRgn)).rgnBBox; SetPort( window ) ; BeginUpdate( window ); DrawDialog( window ); if (dp == window) box_d_item(dp,ids[THERM_BOX]); EndUpdate( window ); } } if (Quit) return FALSE; return TRUE; }