annotate tk/events.d @ 7:936feb16eed4

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sat, 11 Jul 2009 21:29:03 +0930
parents a27d2093991c
children bf7903435f58
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.events;
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;
3
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
4 import tk.geometry;
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
5
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 // Should we pass the screen and model points into
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
8 // the events or pass a transform in separately to the handler
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
9 //
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
10
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
11 abstract class Event {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
12 this() {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
13 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
14
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
15 private {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
16 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
17 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
18
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
19 final class ExposeEvent : Event {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
20 this() {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
21 super();
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
22 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
23
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
24 private {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
25 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
26 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
27
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
28 abstract class InputEvent : Event {
6
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 5
diff changeset
29 this(Mask mask) {
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 5
diff changeset
30 mMask = mask;
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
31 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
32
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
33 const(Mask) mask() const { return mMask; }
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
34
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
35 private {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
36 Mask mMask;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
37 }
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
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
40 final class CrossingEvent : InputEvent {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
41 this(Mask mask) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
42 super(mask);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
43 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
44
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
45 private {
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 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
48
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
49 final class KeyEvent : InputEvent {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
50 this(string str, uint value, Mask mask) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
51 super(mask);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
52 mStr = str;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
53 mValue = value;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
54 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
55
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
56 string str() const { return mStr; }
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
57
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
58 override string toString() const {
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
59 return std.string.format("Key event: %s, %d", mStr, mValue);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
60 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
61
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
62 private {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
63 string mStr;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
64 uint mValue;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
65 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
66 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
67
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
68 abstract class PointerEvent : InputEvent {
6
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 5
diff changeset
69 this(in Point screen_point, in Point model_point, Mask mask) {
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
70 super(mask);
3
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
71 mScreenPoint = screen_point;
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
72 mModelPoint = model_point;
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
73 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
74
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
75 Point screen_point() const { return mScreenPoint; }
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
76 Point model_point() const { return mModelPoint; }
0
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 private {
3
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
79 Point mScreenPoint;
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
80 Point mModelPoint;
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
81 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
82 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
83
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
84 final class ButtonEvent : PointerEvent {
7
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
85 this(ButtonAction button_action,
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
86 ButtonName button_name,
3
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
87 Point screen_point,
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
88 Point model_point,
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
89 Mask mask) {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
90 super(screen_point, model_point, mask);
7
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
91 mButtonAction = button_action;
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
92 mButtonName = button_name;
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
93 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
94
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
95 override string toString() const {
7
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
96 return std.string.format("Button event: %s, %s, %s, %s, %s", mButtonAction, mButtonName, mScreenPoint, mModelPoint, mMask);
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
97 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
98
7
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
99 ButtonAction button_action() const { return mButtonAction; }
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
100 ButtonName button_name() const { return mButtonName; }
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
101
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
102 private {
7
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
103 ButtonAction mButtonAction;
936feb16eed4 Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 6
diff changeset
104 ButtonName mButtonName;
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
105 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
106 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
107
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
108 final class MotionEvent : PointerEvent {
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
109 this(in Point screen_point,
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
110 in Point model_point,
6
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 5
diff changeset
111 Mask mask) {
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
112 super(screen_point, model_point, mask);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
113 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
114
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
115 override string toString() const {
3
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
116 return std.string.format("Motion event: %s, %s, %s", mScreenPoint, mModelPoint, mMask);
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
117 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
118 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
119
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
120 final class ScrollEvent : PointerEvent {
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
121 this(in ScrollDirection scroll_direction,
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
122 in Point screen_point,
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
123 in Point model_point,
6
a27d2093991c Checkpoint
"David Bryant <bagnose@gmail.com>"
parents: 5
diff changeset
124 Mask mask) {
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
125 super(screen_point, model_point, mask);
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
126 mScrollDirection = scroll_direction;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
127 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
128
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
129 override string toString() const {
3
7d57cae10805 Renamed geometry2 to geometry
David Bryant <daveb@acres.com.au>
parents: 2
diff changeset
130 return std.string.format("Scroll event: %s, %s, %s, %s", mScrollDirection, mScreenPoint, mModelPoint, mMask);
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
131 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
132
5
8a39b13cd3e6 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 3
diff changeset
133 ScrollDirection scroll_direction() const { return mScrollDirection; }
0
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
134
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
135 private {
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
136 ScrollDirection mScrollDirection;
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
137 }
e907d2c54ec3 Initial import
David Bryant <daveb@acres.com.au>
parents:
diff changeset
138 }