comparison tk/types.d @ 7:936feb16eed4

Checkpoint
author "David Bryant <bagnose@gmail.com>"
date Sat, 11 Jul 2009 21:29:03 +0930
parents a27d2093991c
children bf7903435f58
comparison
equal deleted inserted replaced
6:a27d2093991c 7:936feb16eed4
2 2
3 private import std.string; 3 private import std.string;
4 private import std.typecons; 4 private import std.typecons;
5 private import std.algorithm; 5 private import std.algorithm;
6 6
7 mixin(defineEnum!("ButtonPress", 7 mixin(defineEnum!("ButtonAction",
8 "SINGLE", "DOUBLE", "TRIPLE", "RELEASE")); 8 "PRESS_SINGLE", "PRESS_DOUBLE", "PRESS_TRIPLE", "RELEASE"));
9 mixin(defineEnum!("ButtonNumber", 9 mixin(defineEnum!("ButtonName",
10 "BUTTON_1", "BUTTON_2", "BUTTON_3", "BUTTON_4", "BUTTON_5")); 10 "LEFT", "MIDDLE", "RIGHT", "FOUR", "FIVE"));
11 mixin(defineEnum!("ScrollDirection", 11 mixin(defineEnum!("ScrollDirection",
12 "UP", "DOWN", "LEFT", "RIGHT")); 12 "UP", "DOWN", "LEFT", "RIGHT"));
13 mixin(defineEnum!("Modifier", 13 mixin(defineEnum!("Modifier",
14 "SHIFT", "CAPS_LOCK", "CONTROL", "ALT", "NUM_LOCK", "META", 14 "SHIFT", "CAPS_LOCK", "CONTROL", "ALT", "NUM_LOCK", "META",
15 "SCROLL_LOCK", "BUTTON_1", "BUTTON_2", "BUTTON_3", "BUTTON_4", "BUTTON_5")); 15 "SCROLL_LOCK", "BUTTON_LEFT", "BUTTON_MIDDLE", "BUTTON_RIGHT", "BUTTON_FOUR", "BUTTON_FIVE"));
16 16
17 class Mask { 17 class Mask {
18 this(in Modifier[] modifiers) { 18 this(in Modifier[] modifiers) {
19 _modifiers = modifiers.dup; 19 _modifiers = modifiers.dup;
20 } 20 }
46 46
47 private { 47 private {
48 Modifier[] _modifiers; 48 Modifier[] _modifiers;
49 } 49 }
50 } 50 }
51
52 /*
53 class Mask {
54 this() {
55 }
56
57 this(in Mask other) {
58 mBits = other.mBits;
59 }
60
61 void add(Modifier modifier) { mBits |= to_bit(modifier); }
62 void remove(Modifier modifier) { mBits &= ~to_bit(modifier); }
63 bool query(Modifier modifier) const { return cast(bool)(mBits & to_bit(modifier)); }
64
65 override string toString() const {
66 Modifier m = Modifier.SHIFT;
67 return enumToString(m);
68 }
69
70 private {
71 static int to_bit(Modifier modifier) { return 1 << cast(int)modifier; }
72 int mBits;
73 }
74 }
75 */