annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
1 module tk.gtk_support;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
2
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
3 import tk.types;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
4
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
5 static import gdk.Event;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
6
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
7 ButtonPress gtk2tk_click(gdk.Event.EventType event_type) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
8 switch (event_type) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
9 case gdk.Event.EventType.BUTTON_PRESS:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
10 return ButtonPress.SINGLE;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
11 case gdk.Event.EventType.DOUBLE_BUTTON_PRESS:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
12 return ButtonPress.DOUBLE;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
13 case gdk.Event.EventType.TRIPLE_BUTTON_PRESS:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
14 return ButtonPress.TRIPLE;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
15 case gdk.Event.EventType.BUTTON_RELEASE:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
16 return ButtonPress.RELEASE;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
17 default:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
18 assert(false);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
19 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
20 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
21
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
22 ButtonNumber gtk2tk_button(gdk.Event.guint button) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
23 switch (button) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
24 case 1:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
25 return ButtonNumber.BUTTON_1;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
26 case 2:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
27 return ButtonNumber.BUTTON_2;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
28 case 3:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
29 return ButtonNumber.BUTTON_3;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
30 default:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
31 assert(false);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
32 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
33 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
34
6
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
35 /*
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
36 Mask gtk2tk_mask(gdk.Event.guint state) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
37 auto mask = new Mask();
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
38
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
39 if (state & gdk.Event.GdkModifierType.SHIFT_MASK) mask.add(Modifier.SHIFT);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
40 if (state & gdk.Event.GdkModifierType.CONTROL_MASK) mask.add(Modifier.CONTROL);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
41 if (state & gdk.Event.GdkModifierType.MOD1_MASK) mask.add(Modifier.ALT);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
42 if (state & gdk.Event.GdkModifierType.MOD2_MASK) mask.add(Modifier.META);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
43 if (state & gdk.Event.GdkModifierType.BUTTON1_MASK) mask.add(Modifier.BUTTON_1);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
44 if (state & gdk.Event.GdkModifierType.BUTTON2_MASK) mask.add(Modifier.BUTTON_2);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
45 if (state & gdk.Event.GdkModifierType.BUTTON3_MASK) mask.add(Modifier.BUTTON_3);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
46
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
47 return mask;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
48 }
6
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
49 */
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
50
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
51 Mask gtk2tk_mask(gdk.Event.guint state) {
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
52 Modifier[] modifiers;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
53
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
54 if (state & gdk.Event.GdkModifierType.SHIFT_MASK) modifiers ~= Modifier.SHIFT;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
55 if (state & gdk.Event.GdkModifierType.CONTROL_MASK) modifiers ~= Modifier.CONTROL;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
56 if (state & gdk.Event.GdkModifierType.MOD1_MASK) modifiers ~= Modifier.ALT;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
57 if (state & gdk.Event.GdkModifierType.MOD2_MASK) modifiers ~= Modifier.META;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
58 if (state & gdk.Event.GdkModifierType.BUTTON1_MASK) modifiers ~= Modifier.BUTTON_1;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
59 if (state & gdk.Event.GdkModifierType.BUTTON2_MASK) modifiers ~= Modifier.BUTTON_2;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
60 if (state & gdk.Event.GdkModifierType.BUTTON3_MASK) modifiers ~= Modifier.BUTTON_3;
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
61
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
62 return new Mask(modifiers);
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 0
diff changeset
63 }
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
64
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
65 ScrollDirection gtk2tk_direction(gdk.Event.ScrollDirection direction) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
66 switch (direction) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
67 case gdk.Event.ScrollDirection.UP:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
68 return ScrollDirection.UP;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
69 case gdk.Event.ScrollDirection.DOWN:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
70 return ScrollDirection.DOWN;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
71 case gdk.Event.ScrollDirection.LEFT:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
72 return ScrollDirection.LEFT;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
73 case gdk.Event.ScrollDirection.RIGHT:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
74 return ScrollDirection.RIGHT;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
75 default:
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
76 assert(false);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
77 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
78 }