diff options
Diffstat (limited to 'carbon/tkMacOSXEvent.c')
-rw-r--r-- | carbon/tkMacOSXEvent.c | 294 |
1 files changed, 0 insertions, 294 deletions
diff --git a/carbon/tkMacOSXEvent.c b/carbon/tkMacOSXEvent.c deleted file mode 100644 index d39a347..0000000 --- a/carbon/tkMacOSXEvent.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * tkMacOSXEvent.c -- - * - * This file contains the basic Mac OS X Event handling routines. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-2007 Daniel A. Steffen <das@users.sourceforge.net> - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" -#include "tkMacOSXDebug.h" - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXFlushWindows -- - * - * This routine flushes all the Carbon windows of the application. It is - * called by XSync(). - * - * Results: - * None. - * - * Side effects: - * Flushes all Carbon windows - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXFlushWindows(void) -{ - WindowRef wRef = GetWindowList(); - - while (wRef) { - TK_IF_MAC_OS_X_API (3, HIWindowFlush, - ChkErr(HIWindowFlush, wRef); - ) TK_ELSE_MAC_OS_X (3, - CGrafPtr portPtr = GetWindowPort(wRef); - - if (QDIsPortBuffered(portPtr)) { - QDFlushPortBuffer(portPtr, NULL); - } - ) TK_ENDIF - wRef = GetNextWindow(wRef); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessEvent -- - * - * This dispatches a filtered Carbon event to the appropriate handler - * - * Note on MacEventStatus.stopProcessing: Please be conservative in the - * individual handlers and don't assume the event is fully handled unless - * you *really* need to ensure that other handlers don't see the event - * anymore. Some OS manager or library might be interested in events even - * after they are already handled on the Tk level. - * - * Results: - * 0 on success - * -1 on failure - * - * Side effects: - * Converts a Carbon event to a Tk event - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - switch (eventPtr->eClass) { - case kEventClassMouse: - TkMacOSXProcessMouseEvent(eventPtr, statusPtr); - break; - case kEventClassWindow: - TkMacOSXProcessWindowEvent(eventPtr, statusPtr); - break; - case kEventClassKeyboard: - TkMacOSXProcessKeyboardEvent(eventPtr, statusPtr); - break; - case kEventClassApplication: - TkMacOSXProcessApplicationEvent(eventPtr, statusPtr); - break; - case kEventClassAppearance: - TkMacOSXProcessAppearanceEvent(eventPtr, statusPtr); - break; - case kEventClassMenu: - TkMacOSXProcessMenuEvent(eventPtr, statusPtr); - break; - case kEventClassCommand: - TkMacOSXProcessCommandEvent(eventPtr, statusPtr); - break; - case kEventClassFont: - TkMacOSXProcessFontEvent(eventPtr, statusPtr); - break; - default: { - TkMacOSXDbgMsg("Unrecognised event: %s", - TkMacOSXCarbonEventToAscii(eventPtr->eventRef)); - break; - } - } - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessMenuEvent -- - * - * This routine processes the event in eventPtr, and generates the - * appropriate Tk events from it. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessMenuEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - int menuContext; - OSStatus err; - MenuRef menu; - MenuItemIndex index; - - switch (eventPtr->eKind) { - case kEventMenuBeginTracking: - case kEventMenuEndTracking: - case kEventMenuOpening: - case kEventMenuTargetItem: - break; - default: - return 0; - } - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMenuContext, typeUInt32, NULL, sizeof(menuContext), - NULL, &menuContext); - if (err != noErr) { - return 0; - } - - if ((menuContext & kMenuContextMenuBarTracking) || - (menuContext & kMenuContextPopUpTracking)) { - switch (eventPtr->eKind) { - case kEventMenuBeginTracking: - TkMacOSXClearMenubarActive(); - - /* - * Handle -postcommand - */ - - TkMacOSXPreprocessMenu(); - TkMacOSXTrackingLoop(1); - break; - case kEventMenuEndTracking: - TkMacOSXTrackingLoop(0); - break; - case kEventMenuOpening: - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamDirectObject, typeMenuRef, NULL, sizeof(menu), - NULL, &menu); - if (err != noErr) { - return 0; - } - TkMacOSXClearActiveMenu(menu); - return TkMacOSXGenerateParentMenuSelectEvent(menu); - case kEventMenuTargetItem: - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamDirectObject, typeMenuRef, NULL, sizeof(menu), - NULL, &menu); - if (err != noErr) { - return 0; - } - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMenuItemIndex, typeMenuItemIndex, NULL, - sizeof(index), NULL, &index); - if (err != noErr) { - return 0; - } - return TkMacOSXGenerateMenuSelectEvent(menu, index); - } - } - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessCommandEvent -- - * - * This routine processes the event in eventPtr, and generates the - * appropriate Tk events from it. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessCommandEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - HICommand command; - int menuContext; - OSStatus err; - - switch (eventPtr->eKind) { - case kEventCommandProcess: - case kEventCommandUpdateStatus: - break; - default: - return 0; - } - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamDirectObject, typeHICommand, NULL, sizeof(command), - NULL, &command); - if (err != noErr) { - return 0; - } - - if (command.attributes & kHICommandFromMenu) { - if (eventPtr->eKind == kEventCommandProcess) { - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMenuContext, typeUInt32, NULL, - sizeof(menuContext), NULL, &menuContext); - if (err != noErr) { - return 0; - } - - if ((menuContext & kMenuContextMenuBar) && - (menuContext & kMenuContextMenuBarTracking)) { - TkMacOSXHandleMenuSelect(GetMenuID(command.menu.menuRef), - command.menu.menuItemIndex, - (GetCurrentEventKeyModifiers() & optionKey) != 0); - return 1; - } - } else { - Tcl_CmdInfo dummy; - - if (command.commandID == kHICommandPreferences - && eventPtr->interp != NULL) { - if (Tcl_GetCommandInfo(eventPtr->interp, - "::tk::mac::ShowPreferences", &dummy)) { - if (!IsMenuItemEnabled(command.menu.menuRef, - command.menu.menuItemIndex)) { - EnableMenuItem(command.menu.menuRef, - command.menu.menuItemIndex); - } - } else { - if (IsMenuItemEnabled(command.menu.menuRef, - command.menu.menuItemIndex)) { - DisableMenuItem(command.menu.menuRef, - command.menu.menuItemIndex); - } - } - statusPtr->stopProcessing = 1; - return 1; - } - } - } - return 0; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ |