Mercurial > projects > doodle
comparison doodle/tk/events.d @ 101:523269b36711
Update to dmd 2.050
author | David Bryant <bagnose@gmail.com> |
---|---|
date | Thu, 28 Oct 2010 16:35:11 +1030 |
parents | d92b9f04b1e8 |
children | 7abaf5c3959f |
comparison
equal
deleted
inserted
replaced
100:a274d16ab6ce | 101:523269b36711 |
---|---|
5 import doodle.tk.screen_model; | 5 import doodle.tk.screen_model; |
6 import gtkc.gdktypes; | 6 import gtkc.gdktypes; |
7 } | 7 } |
8 | 8 |
9 private { | 9 private { |
10 import std.typecons; | 10 import std.conv; |
11 } | 11 } |
12 | 12 |
13 mixin(defineEnum!("ButtonAction", | 13 enum ButtonAction { SINGLE_PRESS, DOUBLE_PRESS, TRIPLE_PRESS, RELEASE } |
14 "SINGLE_PRESS", "DOUBLE_PRESS", "TRIPLE_PRESS", "RELEASE")); | 14 enum ButtonName { LEFT, MIDDLE, RIGHT, FOUR, FIVE } |
15 enum ScrollDirection { UP, DOWN, LEFT, RIGHT } | |
16 enum Modifier { SHIFT, CAPS_LOCK, CONTROL, ALT, NUM_LOCK, META, SCROLL_LOCK, LEFT_BUTTON, MIDDLE_BUTTON, RIGHT_BUTTON, UNUSED_BUTTON_1, UNUSED_BUTTON_2 } | |
15 | 17 |
16 mixin(defineEnum!("ButtonName", | 18 // FIXME what to do about GRAB2/UNGRAB2 |
17 "LEFT", "MIDDLE", "RIGHT", "FOUR", "FIVE")); | 19 enum CrossingMode { NORMAL, GRAB, UNGRAB, GRAB2, UNGRAB2, STATE_CHANGED } |
18 | |
19 mixin(defineEnum!("ScrollDirection", | |
20 "UP", "DOWN", "LEFT", "RIGHT")); | |
21 | |
22 mixin(defineEnum!("Modifier", | |
23 "SHIFT", "CAPS_LOCK", "CONTROL", "ALT", "NUM_LOCK", "META", | |
24 "SCROLL_LOCK", "LEFT_BUTTON", "MIDDLE_BUTTON", "RIGHT_BUTTON", | |
25 "UNUSED_BUTTON_1", "UNUSED_BUTTON_2")); | |
26 | |
27 mixin(defineEnum!("CrossingMode", // FIXME what to do about GRAB2/UNGRAB2 | |
28 "NORMAL", "GRAB", "UNGRAB", "GRAB2", "UNGRAB2", "STATE_CHANGED")); | |
29 | 20 |
30 struct Mask { | 21 struct Mask { |
31 this(in Modifier[] modifiers) { | 22 this(in Modifier[] modifiers) { |
32 foreach (m; modifiers) { | 23 foreach (m; modifiers) { |
33 _bits |= 1 << m; | 24 _bits |= 1 << m; |
42 string s = ""; | 33 string s = ""; |
43 | 34 |
44 for (int i = 0; i < _bits.sizeof * 8; ++i) { | 35 for (int i = 0; i < _bits.sizeof * 8; ++i) { |
45 if (_bits & (1 << i)) { | 36 if (_bits & (1 << i)) { |
46 if (s.length != 0) s ~= "|"; | 37 if (s.length != 0) s ~= "|"; |
47 s ~= enumToString(cast(Modifier)i); | 38 s ~= to!string(cast(Modifier)i); |
48 } | 39 } |
49 } | 40 } |
50 | 41 |
51 return s; | 42 return s; |
52 } | 43 } |
83 | 74 |
84 string str() const { return _str; } | 75 string str() const { return _str; } |
85 uint value() const { return _value; } | 76 uint value() const { return _value; } |
86 | 77 |
87 override string toString() const { | 78 override string toString() const { |
88 return std.string.format("Key event: %s, %d, %s", _str, _value, _mask); | 79 return std.string.format("Key event: %s, %d, %s", |
80 _str, _value, _mask); | |
89 } | 81 } |
90 | 82 |
91 private { | 83 private { |
92 string _str; | 84 string _str; |
93 uint _value; | 85 uint _value; |
120 } | 112 } |
121 | 113 |
122 CrossingMode crossingMode() const { return _crossingMode; } | 114 CrossingMode crossingMode() const { return _crossingMode; } |
123 | 115 |
124 override string toString() const { | 116 override string toString() const { |
125 return std.string.format("Crossing event: %s, %s, %s, %s", enumToString(_crossingMode), screenPoint, modelPoint, mask); | 117 return std.string.format("Crossing event: %s, %s, %s, %s", |
118 to!string(_crossingMode), screenPoint, modelPoint, mask); | |
126 } | 119 } |
127 | 120 |
128 private { | 121 private { |
129 CrossingMode _crossingMode; | 122 CrossingMode _crossingMode; |
130 } | 123 } |
141 _buttonName = buttonName; | 134 _buttonName = buttonName; |
142 } | 135 } |
143 | 136 |
144 override string toString() const { | 137 override string toString() const { |
145 return std.string.format("Button event: %s, %s, %s, %s, %s", | 138 return std.string.format("Button event: %s, %s, %s, %s, %s", |
146 enumToString(_buttonAction), enumToString(_buttonName), | 139 to!string(_buttonAction), to!string(_buttonName), _screenPoint, _modelPoint, _mask); |
147 _screenPoint, _modelPoint, _mask); | |
148 } | 140 } |
149 | 141 |
150 ButtonAction buttonAction() const { return _buttonAction; } | 142 ButtonAction buttonAction() const { return _buttonAction; } |
151 ButtonName buttonName() const { return _buttonName; } | 143 ButtonName buttonName() const { return _buttonName; } |
152 | 144 |
178 _scrollDirection = scrollDirection; | 170 _scrollDirection = scrollDirection; |
179 } | 171 } |
180 | 172 |
181 override string toString() const { | 173 override string toString() const { |
182 return std.string.format("Scroll event: %s, %s, %s, %s", | 174 return std.string.format("Scroll event: %s, %s, %s, %s", |
183 enumToString(_scrollDirection), _screenPoint, _modelPoint, _mask); | 175 to!string(_scrollDirection), _screenPoint, _modelPoint, _mask); |
184 } | 176 } |
185 | 177 |
186 ScrollDirection scrollDirection() const { return _scrollDirection; } | 178 ScrollDirection scrollDirection() const { return _scrollDirection; } |
187 | 179 |
188 private { | 180 private { |