diff dwt/internal/cocoa/NSEvent.d @ 0:380af2bdd8e5

Upload of whole dwt tree
author Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
date Sat, 09 Aug 2008 17:00:02 +0200
parents
children 8b48be5454ce
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/cocoa/NSEvent.d	Sat Aug 09 17:00:02 2008 +0200
@@ -0,0 +1,390 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     
+ * Port to the D Programming language:
+ *     Jacob Carlborg <jacob.carlborg@gmail.com>
+ *******************************************************************************/
+module dwt.internal.cocoa.NSEvent;
+
+import dwt.internal.cocoa.id;
+import dwt.internal.cocoa.CGEventTypes;
+import dwt.internal.cocoa.CGFloat;
+import dwt.internal.cocoa.NSDate : NSTimeInterval;
+import dwt.internal.cocoa.NSGraphicsContext;
+import dwt.internal.cocoa.NSInteger;
+import dwt.internal.cocoa.NSObject;
+import dwt.internal.cocoa.NSPoint;
+import dwt.internal.cocoa.NSString;
+import dwt.internal.cocoa.NSTrackingArea;
+import dwt.internal.cocoa.NSWindow;
+import dwt.internal.cocoa.OS;
+import objc = dwt.internal.objc.runtime;
+
+enum NSEventType
+{
+    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 NSPointingDeviceType
+{
+    NSUnknownPointingDevice = NX_TABLET_POINTER_UNKNOWN,
+    NSPenPointingDevice = NX_TABLET_POINTER_PEN,
+    NSCursorPointingDevice = NX_TABLET_POINTER_CURSOR,
+    NSEraserPointingDevice = NX_TABLET_POINTER_ERASER
+}
+
+public class NSEvent : NSObject
+{
+    public this ()
+    {
+        super();
+    }
+
+    public this (objc.id id)
+    {
+        super(id);
+    }
+
+    public CGEventRef CGEvent ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_CGEvent);
+    }
+
+    public NSInteger absoluteX ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_absoluteX);
+    }
+
+    public NSInteger absoluteY ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_absoluteY);
+    }
+
+    public NSInteger absoluteZ ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_absoluteZ);
+    }
+
+    public NSUInteger buttonMask ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_buttonMask);
+    }
+
+    public NSInteger buttonNumber ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_buttonNumber);
+    }
+
+    public NSUInteger capabilityMask ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_capabilityMask);
+    }
+
+    public NSString characters ()
+    {
+        objc.id result = OS.objc_msgSend(this.id, OS.sel_characters);
+        return result !is null ? new NSString(result) : null;
+    }
+
+    public NSString charactersIgnoringModifiers ()
+    {
+        objc.id result = OS.objc_msgSend(this.id, OS.sel_charactersIgnoringModifiers);
+        return result !is null ? new NSString(result) : null;
+    }
+
+    public NSInteger clickCount ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_clickCount);
+    }
+
+    public NSGraphicsContext context ()
+    {
+        objc.id result = OS.objc_msgSend(this.id, OS.sel_context);
+        return result !is null ? new NSGraphicsContext(result) : null;
+    }
+
+    public NSInteger data1 ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_data1);
+    }
+
+    public NSInteger data2 ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_data2);
+    }
+
+    public CGFloat deltaX ()
+    {
+        return cast(CGFloat) OS.objc_msgSend_fpret(this.id, OS.sel_deltaX);
+    }
+
+    public CGFloat deltaY ()
+    {
+        return cast(CGFloat) OS.objc_msgSend_fpret(this.id, OS.sel_deltaY);
+    }
+
+    public CGFloat deltaZ ()
+    {
+        return cast(CGFloat) OS.objc_msgSend_fpret(this.id, OS.sel_deltaZ);
+    }
+
+    public NSUInteger deviceID ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_deviceID);
+    }
+
+    public static NSEvent enterExitEventWithType (objc.id type, NSPoint location, NSUInteger flags, NSTimeInterval time, NSInteger wNum,
+            NSGraphicsContext context, NSInteger eNum, NSInteger tNum, void* data)
+    {
+        objc.id result = OS.objc_msgSend(OS.class_NSEvent,
+                OS.sel_enterExitEventWithType_1location_1modifierFlags_1timestamp_1windowNumber_1context_1eventNumber_1trackingNumber_1userData_1,
+                type, location, flags, time, wNum, context !is null ? context.id : null, eNum, tNum, data);
+        return result !is null ? new NSEvent(result) : null;
+    }
+
+    public NSInteger eventNumber ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_eventNumber);
+    }
+
+    public /*const*/void* eventRef ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_eventRef);
+    }
+
+    public static NSEvent eventWithCGEvent (CGEvent cgEvent)
+    {
+        objc.id result = OS.objc_msgSend(OS.class_NSEvent, OS.sel_eventWithCGEvent_1, cgEvent);
+        return result !is null ? new NSEvent(result) : null;
+    }
+
+    public static NSEvent eventWithEventRef (/*const*/void* eventRef)
+    {
+        objc.id result = OS.objc_msgSend(OS.class_NSEvent, OS.sel_eventWithEventRef_1, eventRef);
+        return result !is null ? new NSEvent(result) : null;
+    }
+
+    public bool isARepeat ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_isARepeat) !is null;
+    }
+
+    public bool isEnteringProximity ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_isEnteringProximity) !is null;
+    }
+
+    public static bool isMouseCoalescingEnabled ()
+    {
+        return OS.objc_msgSend(OS.class_NSEvent, OS.sel_isMouseCoalescingEnabled) !is null;
+    }
+
+    public short keyCode ()
+    {
+        return cast(short) OS.objc_msgSend(this.id, OS.sel_keyCode);
+    }
+
+    public static NSEvent keyEventWithType (NSEventType type, NSPoint location, NSUInteger flags, NSTimeInterval time, NSInteger wNum,
+            NSGraphicsContext context, NSString keys, NSString ukeys, bool flag, short code)
+    {
+        objc.id
+                result = OS.objc_msgSend(
+                        OS.class_NSEvent,
+                        OS.sel_keyEventWithType_1location_1modifierFlags_1timestamp_1windowNumber_1context_1characters_1charactersIgnoringModifiers_1isARepeat_1keyCode_1,
+                        type, location, flags, time, wNum, context !is null ? context.id : null, keys !is null ? keys.id : null,
+                        ukeys !is null ? ukeys.id : null, flag, code);
+        return result !is null ? new NSEvent(result) : null;
+    }
+
+    public NSPoint locationInWindow ()
+    {
+        NSPoint result;
+        OS.objc_msgSend_struct(result, this.id, OS.sel_locationInWindow);
+        return result;
+    }
+
+    public NSUInteger modifierFlags ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_modifierFlags);
+    }
+
+    public static NSEvent mouseEventWithType (NSEventType type, NSPoint location, NSUInteger flags, NSTimeInterval time, NSInteger wNum,
+            NSGraphicsContext context, NSInteger eNum, NSInteger cNum, float pressure)
+    {
+        objc.id result = OS.objc_msgSend(OS.class_NSEvent,
+                OS.sel_mouseEventWithType_1location_1modifierFlags_1timestamp_1windowNumber_1context_1eventNumber_1clickCount_1pressure_1, type,
+                location, flags, time, wNum, context !is null ? context.id : null, eNum, cNum, pressure);
+        return result !is null ? new NSEvent(result) : null;
+    }
+
+    public static NSPoint mouseLocation ()
+    {
+        NSPoint result;
+        OS.objc_msgSend_struct(result, OS.class_NSEvent, OS.sel_mouseLocation);
+        return result;
+    }
+
+    public static NSEvent otherEventWithType (NSEventType type, NSPoint location, NSUInteger flags, NSTimeInterval time, NSInteger wNum, NSGraphicsContext context,
+            short subtype, NSInteger d1, NSInteger d2)
+    {
+        objc.id result = OS.objc_msgSend(OS.class_NSEvent,
+                OS.sel_otherEventWithType_1location_1modifierFlags_1timestamp_1windowNumber_1context_1subtype_1data1_1data2_1, type, location, flags,
+                time, wNum, context !is null ? context.id : null, subtype, d1, d2);
+        return result !is null ? new NSEvent(result) : null;
+    }
+
+    public NSUInteger pointingDeviceID ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_pointingDeviceID);
+    }
+
+    public NSUInteger pointingDeviceSerialNumber ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_pointingDeviceSerialNumber);
+    }
+
+    public NSPointingDeviceType pointingDeviceType ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_pointingDeviceType);
+    }
+
+    public float pressure ()
+    {
+        return cast(float) OS.objc_msgSend_fpret(this.id, OS.sel_pressure);
+    }
+
+    public float rotation ()
+    {
+        return cast(float) OS.objc_msgSend_fpret(this.id, OS.sel_rotation);
+    }
+
+    public static void setMouseCoalescingEnabled (bool flag)
+    {
+        OS.objc_msgSend(OS.class_NSEvent, OS.sel_setMouseCoalescingEnabled_1, flag);
+    }
+
+    public static void startPeriodicEventsAfterDelay (double delay, double period)
+    {
+        OS.objc_msgSend(OS.class_NSEvent, OS.sel_startPeriodicEventsAfterDelay_1withPeriod_1, delay, period);
+    }
+
+    public static void stopPeriodicEvents ()
+    {
+        OS.objc_msgSend(OS.class_NSEvent, OS.sel_stopPeriodicEvents);
+    }
+
+    public short subtype ()
+    {
+        return cast(short) OS.objc_msgSend(this.id, OS.sel_subtype);
+    }
+
+    public NSUInteger systemTabletID ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_systemTabletID);
+    }
+
+    public NSUInteger tabletID ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_tabletID);
+    }
+
+    public float tangentialPressure ()
+    {
+        return cast(float) OS.objc_msgSend_fpret(this.id, OS.sel_tangentialPressure);
+    }
+
+    public NSPoint tilt ()
+    {
+        NSPoint result;
+        OS.objc_msgSend_stret(result, this.id, OS.sel_tilt);
+        return result;
+    }
+
+    public NSTimeInterval timestamp ()
+    {
+        return OS.objc_msgSend_fpret(this.id, OS.sel_timestamp);
+    }
+
+    public NSTrackingArea trackingArea ()
+    {
+        objc.id result = OS.objc_msgSend(this.id, OS.sel_trackingArea);
+        return result !is null ? new NSTrackingArea(result) : null;
+    }
+
+    public NSInteger trackingNumber ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_trackingNumber);
+    }
+
+    public NSEventType type ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_type);
+    }
+
+    public long uniqueID ()
+    {
+        return cast(long) OS.objc_msgSend(this.id, OS.sel_uniqueID);
+    }
+
+    public void* userData ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_userData);
+    }
+
+    public id vendorDefined ()
+    {
+        objc.id result = OS.objc_msgSend(this.id, OS.sel_vendorDefined);
+        return result !is null ? new id(result) : null;
+    }
+
+    public NSUInteger vendorID ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_vendorID);
+    }
+
+    public NSUInteger vendorPointingDeviceType ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_vendorPointingDeviceType);
+    }
+
+    public NSWindow window ()
+    {
+        objc.id result = OS.objc_msgSend(this.id, OS.sel_window);
+        return result !is null ? new NSWindow(result) : null;
+    }
+
+    public NSInteger windowNumber ()
+    {
+        return OS.objc_msgSend(this.id, OS.sel_windowNumber);
+    }
+
+}