Mercurial > projects > doodle
diff gtk/gtk_conversions.d @ 21:993ac3a183c8
Checkpoint
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Wed, 15 Jul 2009 23:23:57 +0930 |
parents | tk/gtk_support.d@9e63308b749c |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/gtk_conversions.d Wed Jul 15 23:23:57 2009 +0930 @@ -0,0 +1,74 @@ +module gtk.conversions; + +public { + import 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); + } +}