comparison doodle/tk/events.d @ 64:eb5436b47d13

Implemented crossing events
author "David Bryant <bagnose@gmail.com>"
date Thu, 12 Aug 2010 22:21:12 +0930
parents 20d6327c4a75
children 31d10176415d
comparison
equal deleted inserted replaced
63:20d6327c4a75 64:eb5436b47d13
4 import doodle.tk.types; 4 import doodle.tk.types;
5 import doodle.tk.geometry; 5 import doodle.tk.geometry;
6 } 6 }
7 7
8 // FIXME 8 // FIXME
9 // Do we need FocusEvent, Enter/LeaveEvent ? 9 // Do we need FocusEvent. Note, it has no mask.
10 // Note, FocusEvent has no mask but Enter/Leave do.
11 // Hence would need to refactor hierarchy slightly, eg InputEvent 10 // Hence would need to refactor hierarchy slightly, eg InputEvent
12 11
13 abstract class Event { 12 abstract class Event {
14 this(in Mask mask) { 13 this(in Mask mask) {
15 _mask = mask; 14 _mask = mask;
56 Point _pixelPoint; 55 Point _pixelPoint;
57 Point _modelPoint; 56 Point _modelPoint;
58 } 57 }
59 } 58 }
60 59
61 /*
62 final class CrossingEvent : PointerEvent { 60 final class CrossingEvent : PointerEvent {
63 this(in Mask mask) { 61 this(in CrossingMode crossingMode,
64 super(mask); 62 in Point pixelPoint,
63 in Point modelPoint,
64 in Mask mask) {
65 super(pixelPoint, modelPoint, mask);
66 _crossingMode = crossingMode;
67 }
68
69 CrossingMode crossingMode() const { return _crossingMode; }
70
71 override string toString() const {
72 return std.string.format("Crossing event: %s, %s, %s, %s", enumToString(_crossingMode), pixelPoint, modelPoint, mask);
65 } 73 }
66 74
67 private { 75 private {
76 CrossingMode _crossingMode;
68 } 77 }
69 } 78 }
70 */
71 79
72 final class ButtonEvent : PointerEvent { 80 final class ButtonEvent : PointerEvent {
73 this(in ButtonAction buttonAction, 81 this(in ButtonAction buttonAction,
74 in ButtonName buttonName, 82 in ButtonName buttonName,
75 in Point pixelPoint, 83 in Point pixelPoint,