diff tk/gtk_support.d @ 6:a27d2093991c

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sat, 11 Jul 2009 20:44:14 +0930
parents e907d2c54ec3
children 936feb16eed4
line wrap: on
line diff
--- a/tk/gtk_support.d	Fri Jul 10 18:19:16 2009 +0930
+++ b/tk/gtk_support.d	Sat Jul 11 20:44:14 2009 +0930
@@ -32,6 +32,7 @@
     }
 }
 
+/*
 Mask gtk2tk_mask(gdk.Event.guint state) {
     auto mask = new Mask();
 
@@ -45,6 +46,21 @@
 
     return mask;
 }
+*/
+
+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.BUTTON_1;
+    if (state & gdk.Event.GdkModifierType.BUTTON2_MASK) modifiers ~= Modifier.BUTTON_2;
+    if (state & gdk.Event.GdkModifierType.BUTTON3_MASK) modifiers ~= Modifier.BUTTON_3;
+
+    return new Mask(modifiers);
+}
 
 ScrollDirection gtk2tk_direction(gdk.Event.ScrollDirection direction) {
     switch (direction) {