diff doodle/gtk/conversions.d @ 28:1754cb773d41

Part-way through getting to compile with configure/builder.
author Graham St Jack <graham.stjack@internode.on.net>
date Sun, 02 Aug 2009 16:27:21 +0930
parents gtk/conversions.d@17c2df87b459
children 1b4c9ba58673
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doodle/gtk/conversions.d	Sun Aug 02 16:27:21 2009 +0930
@@ -0,0 +1,74 @@
+module doodle.gtk.conversions;
+
+public {
+    import doodle.tk.types;
+}
+
+private {
+    static import gdk.Event;
+}
+
+ButtonAction gtk2tk_button_action(gdk.Event.EventType event_type) {
+    switch (event_type) {
+    case gdk.Event.EventType.BUTTON_PRESS:
+        return ButtonAction.SINGLE_PRESS;
+    case gdk.Event.EventType.DOUBLE_BUTTON_PRESS:
+        return ButtonAction.DOUBLE_PRESS;
+    case gdk.Event.EventType.TRIPLE_BUTTON_PRESS:
+        return ButtonAction.TRIPLE_PRESS;
+    case gdk.Event.EventType.BUTTON_RELEASE:
+        return ButtonAction.RELEASE;
+    default:
+        assert(false);
+    }
+}
+
+ButtonName gtk2tk_button_name(gdk.Event.guint button) {
+    switch (button) {
+    case 1:
+        return ButtonName.LEFT;
+    case 2:
+        return ButtonName.MIDDLE;
+    case 3:
+        return ButtonName.RIGHT;
+    case 4:
+        return ButtonName.FOUR;
+    case 5:
+        return ButtonName.FIVE;
+    default:
+        assert(false);
+    }
+}
+
+Mask gtk2tk_mask(gdk.Event.guint state) {
+    Modifier[] modifiers;
+
+    if (state & gdk.Event.GdkModifierType.SHIFT_MASK)   modifiers ~= Modifier.SHIFT;
+    if (state & gdk.Event.GdkModifierType.CONTROL_MASK) modifiers ~= Modifier.CONTROL;
+    if (state & gdk.Event.GdkModifierType.MOD1_MASK)    modifiers ~= Modifier.ALT;
+    if (state & gdk.Event.GdkModifierType.MOD2_MASK)    modifiers ~= Modifier.META;
+    if (state & gdk.Event.GdkModifierType.BUTTON1_MASK) modifiers ~= Modifier.LEFT_BUTTON;
+    if (state & gdk.Event.GdkModifierType.BUTTON2_MASK) modifiers ~= Modifier.MIDDLE_BUTTON;
+    if (state & gdk.Event.GdkModifierType.BUTTON3_MASK) modifiers ~= Modifier.RIGHT_BUTTON;
+    if (state & gdk.Event.GdkModifierType.BUTTON4_MASK) modifiers ~= Modifier.UNUSED_BUTTON_1;
+    if (state & gdk.Event.GdkModifierType.BUTTON5_MASK) modifiers ~= Modifier.UNUSED_BUTTON_2;
+
+    Mask m = Mask(modifiers);
+
+    return Mask(modifiers);
+}
+
+ScrollDirection gtk2tk_direction(gdk.Event.ScrollDirection direction) {
+    switch (direction) {
+    case gdk.Event.ScrollDirection.UP:
+        return ScrollDirection.UP;
+    case gdk.Event.ScrollDirection.DOWN:
+        return ScrollDirection.DOWN;
+    case gdk.Event.ScrollDirection.LEFT:
+        return ScrollDirection.LEFT;
+    case gdk.Event.ScrollDirection.RIGHT:
+        return ScrollDirection.RIGHT;
+    default:
+        assert(false);
+    }
+}