# HG changeset patch # User "David Bryant " # Date 1281883099 -34200 # Node ID 0314b2e03f9b0f1e2667cdbc04db4761f5babc42 # Parent d92b9f04b1e8e3fe7ebb001697a8254865b4b5d5 Moved gtk/conversions.d int gtk/events.d Nearly done with the housekeeping... diff -r d92b9f04b1e8 -r 0314b2e03f9b doodle/gtk/canvas.d --- a/doodle/gtk/canvas.d Mon Aug 16 00:04:27 2010 +0930 +++ b/doodle/gtk/canvas.d Mon Aug 16 00:08:19 2010 +0930 @@ -9,7 +9,6 @@ import doodle.core.logging; import doodle.tk.screen_model; import doodle.dia.layer_stack; - import doodle.gtk.conversions; import doodle.gtk.cairo; import cairo.Surface; diff -r d92b9f04b1e8 -r 0314b2e03f9b doodle/gtk/conversions.d --- a/doodle/gtk/conversions.d Mon Aug 16 00:04:27 2010 +0930 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -module doodle.gtk.conversions; - -public { - import doodle.tk.events; -} - -private { - static import gdk.Event; -} - -ButtonAction gtk2tkButtonAction(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 gtk2tkButtonName(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 gtk2tkMask(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; - // Note, MOD 3-5 are currently omitted - 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 gtk2tkDirection(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); - } -} - -CrossingMode gtk2tkCrossingMode(gdk.Event.CrossingMode crossingMode) { - switch (crossingMode) { - case crossingMode.NORMAL: return CrossingMode.NORMAL; - case crossingMode.GRAB: return CrossingMode.GRAB; - case crossingMode.UNGRAB: return CrossingMode.UNGRAB; - case crossingMode.GTK_GRAB: return CrossingMode.GRAB2; - case crossingMode.GTK_UNGRAB: return CrossingMode.UNGRAB2; - case crossingMode.STATE_CHANGED: return CrossingMode.STATE_CHANGED; - default: - assert(false); - } -} diff -r d92b9f04b1e8 -r 0314b2e03f9b doodle/gtk/events.d --- a/doodle/gtk/events.d Mon Aug 16 00:04:27 2010 +0930 +++ b/doodle/gtk/events.d Mon Aug 16 00:08:19 2010 +0930 @@ -5,10 +5,79 @@ } private { - import doodle.gtk.conversions; import core.stdc.string : strlen; + static import gdk.Event; } +private { + + ButtonAction gtk2tkButtonAction(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 gtk2tkButtonName(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 gtk2tkMask(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; + // Note, MOD 3-5 are currently omitted + 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 gtk2tkDirection(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); + } + } + + CrossingMode gtk2tkCrossingMode(gdk.Event.CrossingMode crossingMode) { + switch (crossingMode) { + case crossingMode.NORMAL: return CrossingMode.NORMAL; + case crossingMode.GRAB: return CrossingMode.GRAB; + case crossingMode.UNGRAB: return CrossingMode.UNGRAB; + case crossingMode.GTK_GRAB: return CrossingMode.GRAB2; + case crossingMode.GTK_UNGRAB: return CrossingMode.UNGRAB2; + case crossingMode.STATE_CHANGED: return CrossingMode.STATE_CHANGED; + default: + assert(false); + } + } + +} // Functions for creating the events