Mercurial > projects > doodle
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); + } +}