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 }