0
|
1 module tk.types;
|
|
2
|
|
3 private import std.string;
|
|
4
|
|
5 enum ButtonPress {
|
|
6 SINGLE,
|
|
7 DOUBLE,
|
|
8 TRIPLE,
|
|
9 RELEASE
|
|
10 }
|
|
11
|
|
12 enum ButtonNumber {
|
|
13 BUTTON_1,
|
|
14 BUTTON_2,
|
|
15 BUTTON_3,
|
|
16 BUTTON_4,
|
|
17 BUTTON_5,
|
|
18 }
|
|
19
|
|
20 enum ScrollDirection {
|
|
21 UP,
|
|
22 DOWN,
|
|
23 LEFT,
|
|
24 RIGHT
|
|
25 }
|
|
26
|
|
27 enum Modifier {
|
|
28 SHIFT,
|
|
29 CAPS_LOCK,
|
|
30 CONTROL,
|
|
31 ALT,
|
|
32 NUM_LOCK,
|
|
33 META,
|
|
34 SCROLL_LOCK,
|
|
35 BUTTON_1,
|
|
36 BUTTON_2,
|
|
37 BUTTON_3,
|
|
38 BUTTON_4,
|
|
39 BUTTON_5
|
|
40 }
|
|
41
|
|
42 class Mask {
|
|
43 void add(Modifier modifier) { mBits |= bit(modifier); }
|
|
44 void remove(Modifier modifier) { mBits &= ~bit(modifier); }
|
|
45 bool query(Modifier modifier) { return cast(bool)(mBits & bit(modifier)); }
|
|
46
|
|
47 override string toString() {
|
|
48 return format("%d", mBits);
|
|
49 }
|
|
50
|
|
51 private {
|
|
52 static int bit(Modifier modifier) { return 1 << cast(int)modifier; }
|
|
53 int mBits;
|
|
54 }
|
|
55 }
|
|
56
|