Mercurial > projects > doodle
comparison doodle/tk/events.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 | tk/events.d@c643c04e3f5e |
children | 157b4ad5615d |
comparison
equal
deleted
inserted
replaced
27:f3d91579bb28 | 28:1754cb773d41 |
---|---|
1 module doodle.tk.events; | |
2 | |
3 public { | |
4 import doodle.tk.types; | |
5 import doodle.tk.geometry; | |
6 } | |
7 | |
8 abstract class Event { | |
9 this(in Mask mask) { | |
10 mMask = mask; | |
11 } | |
12 | |
13 Mask mask() const { return mMask; } | |
14 | |
15 private { | |
16 Mask mMask; | |
17 } | |
18 } | |
19 | |
20 final class CrossingEvent : Event { | |
21 this(in Mask mask) { | |
22 super(mask); | |
23 } | |
24 | |
25 private { | |
26 } | |
27 } | |
28 | |
29 final class KeyEvent : Event { | |
30 this(in string str, in uint value, in Mask mask) { | |
31 super(mask); | |
32 mStr = str; | |
33 mValue = value; | |
34 } | |
35 | |
36 string str() const { return mStr; } | |
37 | |
38 override string toString() const { | |
39 return std.string.format("Key event: %s, %d, %s", mStr, mValue, mMask); | |
40 } | |
41 | |
42 private { | |
43 string mStr; | |
44 uint mValue; | |
45 } | |
46 } | |
47 | |
48 abstract class PointerEvent : Event { | |
49 this(in Point pixel_point, in Point model_point, in Mask mask) { | |
50 super(mask); | |
51 mPixelPoint = pixel_point; | |
52 mModelPoint = model_point; | |
53 } | |
54 | |
55 Point pixel_point() const { return mPixelPoint; } | |
56 Point model_point() const { return mModelPoint; } | |
57 | |
58 private { | |
59 Point mPixelPoint; | |
60 Point mModelPoint; | |
61 } | |
62 } | |
63 | |
64 final class ButtonEvent : PointerEvent { | |
65 this(in ButtonAction button_action, | |
66 in ButtonName button_name, | |
67 in Point pixel_point, | |
68 in Point model_point, | |
69 in Mask mask) { | |
70 super(pixel_point, model_point, mask); | |
71 mButtonAction = button_action; | |
72 mButtonName = button_name; | |
73 } | |
74 | |
75 override string toString() const { | |
76 return std.string.format("Button event: %s, %s, %s, %s, %s", | |
77 enumToString(mButtonAction), enumToString(mButtonName), | |
78 mPixelPoint, mModelPoint, mMask); | |
79 } | |
80 | |
81 ButtonAction button_action() const { return mButtonAction; } | |
82 ButtonName button_name() const { return mButtonName; } | |
83 | |
84 private { | |
85 ButtonAction mButtonAction; | |
86 ButtonName mButtonName; | |
87 } | |
88 } | |
89 | |
90 final class MotionEvent : PointerEvent { | |
91 this(in Point pixel_point, | |
92 in Point model_point, | |
93 in Mask mask) { | |
94 super(pixel_point, model_point, mask); | |
95 } | |
96 | |
97 override string toString() const { | |
98 return std.string.format("Motion event: %s, %s, %s", | |
99 mPixelPoint, mModelPoint, mMask); | |
100 } | |
101 } | |
102 | |
103 final class ScrollEvent : PointerEvent { | |
104 this(in ScrollDirection scroll_direction, | |
105 in Point pixel_point, | |
106 in Point model_point, | |
107 in Mask mask) { | |
108 super(pixel_point, model_point, mask); | |
109 mScrollDirection = scroll_direction; | |
110 } | |
111 | |
112 override string toString() const { | |
113 return std.string.format("Scroll event: %s, %s, %s, %s", | |
114 enumToString(mScrollDirection), mPixelPoint, mModelPoint, mMask); | |
115 } | |
116 | |
117 ScrollDirection scroll_direction() const { return mScrollDirection; } | |
118 | |
119 private { | |
120 ScrollDirection mScrollDirection; | |
121 } | |
122 } |