Mercurial > projects > dstep
view dstep/appkit/NSEvent.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | |
children | b9de51448c6b |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Sep 24, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.appkit.NSEvent; import dstep.appkit.NSGraphicsContext; import dstep.appkit.NSTrackingArea; import dstep.appkit.NSWindow; import dstep.applicationservices.ApplicationServices; import dstep.foundation.NSCoder; import dstep.foundation.NSDate; import dstep.foundation.NSGeometry; import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSObject; import dstep.foundation.NSString; import dstep.foundation.NSZone; //import dstep.iokit.hidsystem.IOLLEvent; import dstep.internal.Version; import dstep.objc.bridge.Bridge; import dstep.objc.objc; typedef NSUInteger NSEventType; typedef NSUInteger NSPointingDeviceType; enum : NSUInteger { NSLeftMouseDown = 1, NSLeftMouseUp = 2, NSRightMouseDown = 3, NSRightMouseUp = 4, NSMouseMoved = 5, NSLeftMouseDragged = 6, NSRightMouseDragged = 7, NSMouseEntered = 8, NSMouseExited = 9, NSKeyDown = 10, NSKeyUp = 11, NSFlagsChanged = 12, NSAppKitDefined = 13, NSSystemDefined = 14, NSApplicationDefined = 15, NSPeriodic = 16, NSCursorUpdate = 17, NSScrollWheel = 22, NSTabletPoint = 23, NSTabletProximity = 24, NSOtherMouseDown = 25, NSOtherMouseUp = 26, NSOtherMouseDragged = 27 } enum : NSUInteger { NSLeftMouseDownMask = 1 << NSLeftMouseDown, NSLeftMouseUpMask = 1 << NSLeftMouseUp, NSRightMouseDownMask = 1 << NSRightMouseDown, NSRightMouseUpMask = 1 << NSRightMouseUp, NSMouseMovedMask = 1 << NSMouseMoved, NSLeftMouseDraggedMask = 1 << NSLeftMouseDragged, NSRightMouseDraggedMask = 1 << NSRightMouseDragged, NSMouseEnteredMask = 1 << NSMouseEntered, NSMouseExitedMask = 1 << NSMouseExited, NSKeyDownMask = 1 << NSKeyDown, NSKeyUpMask = 1 << NSKeyUp, NSFlagsChangedMask = 1 << NSFlagsChanged, NSAppKitDefinedMask = 1 << NSAppKitDefined, NSSystemDefinedMask = 1 << NSSystemDefined, NSApplicationDefinedMask = 1 << NSApplicationDefined, NSPeriodicMask = 1 << NSPeriodic, NSCursorUpdateMask = 1 << NSCursorUpdate, NSScrollWheelMask = 1 << NSScrollWheel, NSTabletPointMask = 1 << NSTabletPoint, NSTabletProximityMask = 1 << NSTabletProximity, NSOtherMouseDownMask = 1 << NSOtherMouseDown, NSOtherMouseUpMask = 1 << NSOtherMouseUp, NSOtherMouseDraggedMask = 1 << NSOtherMouseDragged, NSAnyEventMask = (2147483647L * 2UL + 1UL) } version (D_LP64) { enum : ulong { NSAlphaShiftKeyMask = 1 << 16, NSShiftKeyMask = 1 << 17, NSControlKeyMask = 1 << 18, NSAlternateKeyMask = 1 << 19, NSCommandKeyMask = 1 << 20, NSNumericPadKeyMask = 1 << 21, NSHelpKeyMask = 1 << 22, NSFunctionKeyMask = 1 << 23, NSDeviceIndependentModifierFlagsMask = 0xffff0000UL } } else { enum : uint { NSAlphaShiftKeyMask = 1 << 16, NSShiftKeyMask = 1 << 17, NSControlKeyMask = 1 << 18, NSAlternateKeyMask = 1 << 19, NSCommandKeyMask = 1 << 20, NSNumericPadKeyMask = 1 << 21, NSHelpKeyMask = 1 << 22, NSFunctionKeyMask = 1 << 23, NSDeviceIndependentModifierFlagsMask = 0xffff0000U } } enum { NSUnknownPointingDevice = 0, NSPenPointingDevice = 1, NSCursorPointingDevice = 2, NSEraserPointingDevice = 3 } enum { NSPenTipMask = 0x0001, NSPenLowerSideMask = 0x0002, NSPenUpperSideMask = 0x0004 } enum { NSUpArrowFunctionKey = 0xF700, NSDownArrowFunctionKey = 0xF701, NSLeftArrowFunctionKey = 0xF702, NSRightArrowFunctionKey = 0xF703, NSF1FunctionKey = 0xF704, NSF2FunctionKey = 0xF705, NSF3FunctionKey = 0xF706, NSF4FunctionKey = 0xF707, NSF5FunctionKey = 0xF708, NSF6FunctionKey = 0xF709, NSF7FunctionKey = 0xF70A, NSF8FunctionKey = 0xF70B, NSF9FunctionKey = 0xF70C, NSF10FunctionKey = 0xF70D, NSF11FunctionKey = 0xF70E, NSF12FunctionKey = 0xF70F, NSF13FunctionKey = 0xF710, NSF14FunctionKey = 0xF711, NSF15FunctionKey = 0xF712, NSF16FunctionKey = 0xF713, NSF17FunctionKey = 0xF714, NSF18FunctionKey = 0xF715, NSF19FunctionKey = 0xF716, NSF20FunctionKey = 0xF717, NSF21FunctionKey = 0xF718, NSF22FunctionKey = 0xF719, NSF23FunctionKey = 0xF71A, NSF24FunctionKey = 0xF71B, NSF25FunctionKey = 0xF71C, NSF26FunctionKey = 0xF71D, NSF27FunctionKey = 0xF71E, NSF28FunctionKey = 0xF71F, NSF29FunctionKey = 0xF720, NSF30FunctionKey = 0xF721, NSF31FunctionKey = 0xF722, NSF32FunctionKey = 0xF723, NSF33FunctionKey = 0xF724, NSF34FunctionKey = 0xF725, NSF35FunctionKey = 0xF726, NSInsertFunctionKey = 0xF727, NSDeleteFunctionKey = 0xF728, NSHomeFunctionKey = 0xF729, NSBeginFunctionKey = 0xF72A, NSEndFunctionKey = 0xF72B, NSPageUpFunctionKey = 0xF72C, NSPageDownFunctionKey = 0xF72D, NSPrintScreenFunctionKey = 0xF72E, NSScrollLockFunctionKey = 0xF72F, NSPauseFunctionKey = 0xF730, NSSysReqFunctionKey = 0xF731, NSBreakFunctionKey = 0xF732, NSResetFunctionKey = 0xF733, NSStopFunctionKey = 0xF734, NSMenuFunctionKey = 0xF735, NSUserFunctionKey = 0xF736, NSSystemFunctionKey = 0xF737, NSPrintFunctionKey = 0xF738, NSClearLineFunctionKey = 0xF739, NSClearDisplayFunctionKey = 0xF73A, NSInsertLineFunctionKey = 0xF73B, NSDeleteLineFunctionKey = 0xF73C, NSInsertCharFunctionKey = 0xF73D, NSDeleteCharFunctionKey = 0xF73E, NSPrevFunctionKey = 0xF73F, NSNextFunctionKey = 0xF740, NSSelectFunctionKey = 0xF741, NSExecuteFunctionKey = 0xF742, NSUndoFunctionKey = 0xF743, NSRedoFunctionKey = 0xF744, NSFindFunctionKey = 0xF745, NSHelpFunctionKey = 0xF746, NSModeSwitchFunctionKey = 0xF747 } enum { NSWindowExposedEventType = 0, NSApplicationActivatedEventType = 1, NSApplicationDeactivatedEventType = 2, NSWindowMovedEventType = 4, NSScreenChangedEventType = 8, NSAWTEventType = 16 } enum { NSPowerOffEventType = 1 } enum { NSMouseEventSubtype = 0, NSTabletPointEventSubtype = 1, NSTabletProximityEventSubtype = 2 } class NSEvent : NSObject, INSCopying, INSCoding { mixin (ObjcWrap); this (NSCoder aDecoder) { super(typeof(this).alloc.initWithCoder(aDecoder).objcObject); } void encodeWithCoder (NSCoder aCoder) { return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder); } typeof(this) initWithCoder (NSCoder aDecoder) { return invokeObjcSelf!(typeof(this), "initWithCoder:", NSCoder)(aDecoder); } typeof(this) copyWithZone (NSZone* zone) { return invokeObjcSelf!(typeof(this), "copyWithZone:", NSZone*)(zone); } uint type () { return invokeObjcSelf!(uint, "type"); } NSUInteger modifierFlags () { return invokeObjcSelf!(NSUInteger, "modifierFlags"); } double timestamp () { return invokeObjcSelf!(double, "timestamp"); } NSWindow window () { return invokeObjcSelf!(NSWindow, "window"); } NSInteger windowNumber () { return invokeObjcSelf!(NSInteger, "windowNumber"); } NSGraphicsContext context () { return invokeObjcSelf!(NSGraphicsContext, "context"); } NSInteger clickCount () { return invokeObjcSelf!(NSInteger, "clickCount"); } NSInteger buttonNumber () { return invokeObjcSelf!(NSInteger, "buttonNumber"); } NSInteger eventNumber () { return invokeObjcSelf!(NSInteger, "eventNumber"); } float pressure () { return invokeObjcSelf!(float, "pressure"); } NSPoint locationInWindow () { return invokeObjcSelf!(NSPoint, "locationInWindow"); } CGFloat deltaX () { return invokeObjcSelf!(CGFloat, "deltaX"); } CGFloat deltaY () { return invokeObjcSelf!(CGFloat, "deltaY"); } CGFloat deltaZ () { return invokeObjcSelf!(CGFloat, "deltaZ"); } NSString characters () { return invokeObjcSelf!(NSString, "characters"); } NSString charactersIgnoringModifiers () { return invokeObjcSelf!(NSString, "charactersIgnoringModifiers"); } bool isARepeat () { return invokeObjcSelf!(bool, "isARepeat"); } ushort keyCode () { return invokeObjcSelf!(ushort, "keyCode"); } NSInteger trackingNumber () { return invokeObjcSelf!(NSInteger, "trackingNumber"); } void* userData () { return invokeObjcSelf!(void*, "userData"); } NSTrackingArea trackingArea () { return invokeObjcSelf!(NSTrackingArea, "trackingArea"); } short subtype () { return invokeObjcSelf!(short, "subtype"); } NSInteger data1 () { return invokeObjcSelf!(NSInteger, "data1"); } NSInteger data2 () { return invokeObjcSelf!(NSInteger, "data2"); } void* eventRef () { return invokeObjcSelf!(void*, "eventRef"); } static NSEvent eventWithEventRef (void* eventRef) { return invokeObjcSelfClass!(NSEvent, "eventWithEventRef:", void*)(eventRef); } CGEventRef CGEvent () { return invokeObjcSelf!(CGEventRef, "CGEvent"); } static NSEvent eventWithCGEvent (CGEventRef cgEvent) { return invokeObjcSelfClass!(NSEvent, "eventWithCGEvent:", CGEventRef)(cgEvent); } static void setMouseCoalescingEnabled (bool flag) { return invokeObjcSelfClass!(void, "setMouseCoalescingEnabled:", bool)(flag); } static bool isMouseCoalescingEnabled () { return invokeObjcSelfClass!(bool, "isMouseCoalescingEnabled"); } NSUInteger deviceID () { return invokeObjcSelf!(NSUInteger, "deviceID"); } NSInteger absoluteX () { return invokeObjcSelf!(NSInteger, "absoluteX"); } NSInteger absoluteY () { return invokeObjcSelf!(NSInteger, "absoluteY"); } NSInteger absoluteZ () { return invokeObjcSelf!(NSInteger, "absoluteZ"); } NSUInteger buttonMask () { return invokeObjcSelf!(NSUInteger, "buttonMask"); } NSPoint tilt () { return invokeObjcSelf!(NSPoint, "tilt"); } float rotation () { return invokeObjcSelf!(float, "rotation"); } float tangentialPressure () { return invokeObjcSelf!(float, "tangentialPressure"); } Object vendorDefined () { return invokeObjcSelf!(Object, "vendorDefined"); } NSUInteger vendorID () { return invokeObjcSelf!(NSUInteger, "vendorID"); } NSUInteger tabletID () { return invokeObjcSelf!(NSUInteger, "tabletID"); } NSUInteger pointingDeviceID () { return invokeObjcSelf!(NSUInteger, "pointingDeviceID"); } NSUInteger systemTabletID () { return invokeObjcSelf!(NSUInteger, "systemTabletID"); } NSUInteger vendorPointingDeviceType () { return invokeObjcSelf!(NSUInteger, "vendorPointingDeviceType"); } NSUInteger pointingDeviceSerialNumber () { return invokeObjcSelf!(NSUInteger, "pointingDeviceSerialNumber"); } ulong uniqueID () { return invokeObjcSelf!(ulong, "uniqueID"); } NSUInteger capabilityMask () { return invokeObjcSelf!(NSUInteger, "capabilityMask"); } uint pointingDeviceType () { return invokeObjcSelf!(uint, "pointingDeviceType"); } bool isEnteringProximity () { return invokeObjcSelf!(bool, "isEnteringProximity"); } static void startPeriodicEventsAfterDelay (double delay, double period) { return invokeObjcSelfClass!(void, "startPeriodicEventsAfterDelay:withPeriod:", double, double)(delay, period); } static void stopPeriodicEvents () { return invokeObjcSelfClass!(void, "stopPeriodicEvents"); } static NSEvent mouseEventWithType (uint type, NSPoint location, NSUInteger flags, double time, NSInteger wNum, NSGraphicsContext context, NSInteger eNum, NSInteger cNum, float pressure) { return invokeObjcSelfClass!(NSEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", uint, NSPoint, NSUInteger, double, NSInteger, NSGraphicsContext, NSInteger, NSInteger, float)(type, location, flags, time, wNum, context, eNum, cNum, pressure); } static NSEvent keyEventWithType (uint type, NSPoint location, NSUInteger flags, double time, NSInteger wNum, NSGraphicsContext context, NSString keys, NSString ukeys, bool flag, ushort code) { return invokeObjcSelfClass!(NSEvent, "keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", uint, NSPoint, NSUInteger, double, NSInteger, NSGraphicsContext, NSString, NSString, bool, ushort)(type, location, flags, time, wNum, context, keys, ukeys, flag, code); } static NSEvent enterExitEventWithType (uint type, NSPoint location, NSUInteger flags, double time, NSInteger wNum, NSGraphicsContext context, NSInteger eNum, NSInteger tNum, void* data) { return invokeObjcSelfClass!(NSEvent, "enterExitEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:trackingNumber:userData:", uint, NSPoint, NSUInteger, double, NSInteger, NSGraphicsContext, NSInteger, NSInteger, void*)(type, location, flags, time, wNum, context, eNum, tNum, data); } static NSEvent otherEventWithType (uint type, NSPoint location, NSUInteger flags, double time, NSInteger wNum, NSGraphicsContext context, short subtype, NSInteger d1, NSInteger d2) { return invokeObjcSelfClass!(NSEvent, "otherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:", uint, NSPoint, NSUInteger, double, NSInteger, NSGraphicsContext, short, NSInteger, NSInteger)(type, location, flags, time, wNum, context, subtype, d1, d2); } static NSPoint mouseLocation () { return invokeObjcSelfClass!(NSPoint, "mouseLocation"); } }