Import Tk 8.6.6 (as of svn r86089)
This commit is contained in:
148
macosx/tkMacOSXEvent.c
Normal file
148
macosx/tkMacOSXEvent.c
Normal file
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* tkMacOSXEvent.c --
|
||||
*
|
||||
* This file contains the basic Mac OS X Event handling routines.
|
||||
*
|
||||
* Copyright (c) 1995-1997 Sun Microsystems, Inc.
|
||||
* Copyright 2001-2009, Apple Inc.
|
||||
* Copyright (c) 2005-2009 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"
|
||||
|
||||
#pragma mark TKApplication(TKEvent)
|
||||
|
||||
enum {
|
||||
NSWindowWillMoveEventType = 20
|
||||
};
|
||||
|
||||
@implementation TKApplication(TKEvent)
|
||||
/* TODO: replace by +[addLocalMonitorForEventsMatchingMask ? */
|
||||
- (NSEvent *) tkProcessEvent: (NSEvent *) theEvent
|
||||
{
|
||||
#ifdef TK_MAC_DEBUG_EVENTS
|
||||
TKLog(@"-[%@(%p) %s] %@", [self class], self, _cmd, theEvent);
|
||||
#endif
|
||||
NSEvent *processedEvent = theEvent;
|
||||
NSEventType type = [theEvent type];
|
||||
NSInteger subtype;
|
||||
|
||||
switch ((NSInteger)type) {
|
||||
case NSAppKitDefined:
|
||||
subtype = [theEvent subtype];
|
||||
|
||||
switch (subtype) {
|
||||
/* Ignored at the moment. */
|
||||
case NSApplicationActivatedEventType:
|
||||
break;
|
||||
case NSApplicationDeactivatedEventType:
|
||||
break;
|
||||
case NSWindowExposedEventType:
|
||||
break;
|
||||
case NSScreenChangedEventType:
|
||||
break;
|
||||
case NSWindowMovedEventType:
|
||||
break;
|
||||
case NSWindowWillMoveEventType:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break; /* AppkitEvent. Return theEvent */
|
||||
case NSKeyUp:
|
||||
case NSKeyDown:
|
||||
case NSFlagsChanged:
|
||||
processedEvent = [self tkProcessKeyEvent:theEvent];
|
||||
break; /* Key event. Return the processed event. */
|
||||
case NSLeftMouseDown:
|
||||
case NSLeftMouseUp:
|
||||
case NSRightMouseDown:
|
||||
case NSRightMouseUp:
|
||||
case NSLeftMouseDragged:
|
||||
case NSRightMouseDragged:
|
||||
case NSMouseMoved:
|
||||
case NSMouseEntered:
|
||||
case NSMouseExited:
|
||||
case NSScrollWheel:
|
||||
case NSOtherMouseDown:
|
||||
case NSOtherMouseUp:
|
||||
case NSOtherMouseDragged:
|
||||
case NSTabletPoint:
|
||||
case NSTabletProximity:
|
||||
processedEvent = [self tkProcessMouseEvent:theEvent];
|
||||
break; /* Mouse event. Return the processed event. */
|
||||
#if 0
|
||||
case NSSystemDefined:
|
||||
subtype = [theEvent subtype];
|
||||
break;
|
||||
case NSApplicationDefined: {
|
||||
id win;
|
||||
win = [theEvent window];
|
||||
break;
|
||||
}
|
||||
case NSCursorUpdate:
|
||||
break;
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
|
||||
case NSEventTypeGesture:
|
||||
case NSEventTypeMagnify:
|
||||
case NSEventTypeRotate:
|
||||
case NSEventTypeSwipe:
|
||||
case NSEventTypeBeginGesture:
|
||||
case NSEventTypeEndGesture:
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
default:
|
||||
break; /* return theEvent */
|
||||
}
|
||||
return processedEvent;
|
||||
}
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TkMacOSXFlushWindows --
|
||||
*
|
||||
* This routine flushes all the visible windows of the application. It is
|
||||
* called by XSync().
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* Flushes all visible Cocoa windows
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
MODULE_SCOPE void
|
||||
TkMacOSXFlushWindows(void)
|
||||
{
|
||||
NSArray *macWindows = [NSApp orderedWindows];
|
||||
|
||||
for (NSWindow *w in macWindows) {
|
||||
if (TkMacOSXGetXWindow(w)) {
|
||||
[w flushWindow];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: objc
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 79
|
||||
* coding: utf-8
|
||||
* End:
|
||||
*/
|
||||
Reference in New Issue
Block a user