Bootstrap code cleanups.
[cslatevm.git] / src / ui / event.slate
blob5e9c528feb9a0a1c27316ee6a45b530cf41c2b6c
1 "Events are designed to handle both UI events and Commands."
3 prototypes ensureNamespace: #events &delegate: True.
5 events define: #Event &slots: {#timeStamp. #source}.
7 events define: #FocusEvent &parents: {Event}.
9 events define: #RequestFocusEvent &parents: {FocusEvent}.
10 events define: #DropFocusEvent &parents: {FocusEvent}.
12 events define: #WindowEvent &parents: {Event} 
13   &slots: {#region "The damage region associated with the event.". #window}.
15 events define: #InputEvent &parents: {WindowEvent}.
17 events define: #DeviceInputEvent &parents: {InputEvent}.
19 events define: #KeyboardEvent &parents: {InputEvent} &slots: {#key. #modifiers}.
21 e@(KeyboardEvent traits) character
22 [e key as: ASCIICharacter].
24 e@(KeyboardEvent traits) isControl
25 [(e modifiers bitAnd: 4) = 4].
27 e@(KeyboardEvent traits) isControlOnly
28 [e modifiers = 4].
30 e@(KeyboardEvent traits) isAlt
31 [(e modifiers bitAnd: 8) = 8].
33 e@(KeyboardEvent traits) isAltOnly
34 [e modifiers = 8].
36 events define: #KeyboardPressEvent &parents: {KeyboardEvent}.
38 events define: #KeyboardReleaseEvent &parents: {KeyboardEvent}.
40 events define: #PointerEvent &parents: {InputEvent}
41   &slots: {#pointer. #position. #button. #modifiers}.
43 event@(PointerEvent traits) copyOffset: offset
45   event copy `>> [position: c position + offset. ]
48 events define: #MouseEvent &parents: {PointerEvent}.
50 events define: #MouseButtonEvent &parents: {MouseEvent}.
52 events define: #MouseButtonPressEvent &parents: {MouseButtonEvent}.
54 events define: #MouseButtonReleaseEvent &parents: {MouseButtonEvent}.
56 events define: #MouseButtonHoldEvent &parents: {MouseButtonEvent}.
58 events define: #MouseButtonClickEvent &parents: {MouseButtonEvent}.
60 events define: #MouseButtonClickHoldEvent &parents: {MouseButtonEvent}.
62 events define: #MouseButtonDoubleClickEvent &parents: {MouseButtonEvent}.
64 events define: #LeftMouseButtonPressEvent &parents: {MouseButtonPressEvent}.
66 events define: #LeftMouseButtonReleaseEvent &parents: {MouseButtonReleaseEvent}.
68 events define: #LeftMouseButtonDoubleClickEvent &parents: {MouseButtonDoubleClickEvent}.
70 events define: #RightMouseButtonPressEvent &parents: {MouseButtonPressEvent}.
72 events define: #RightMouseButtonReleaseEvent &parents: {MouseButtonReleaseEvent}.
74 events define: #RightMouseButtonDoubleClickEvent &parents: {MouseButtonDoubleClickEvent}.
76 events define: #MiddleMouseButtonPressEvent &parents: {MouseButtonPressEvent}.
78 events define: #MiddleMouseButtonReleaseEvent &parents: {MouseButtonReleaseEvent}.
80 events define: #MiddleMouseButtonDoubleClickEvent &parents: {MouseButtonDoubleClickEvent}.
82 events define: #X1MouseButtonPressEvent &parents: {MouseButtonPressEvent}.
84 events define: #X1MouseButtonReleaseEvent &parents: {MouseButtonReleaseEvent}.
86 events define: #X1MouseButtonDoubleClickEvent &parents: {MouseButtonDoubleClickEvent}.
88 events define: #X2MouseButtonPressEvent &parents: {MouseButtonPressEvent}.
90 events define: #X2MouseButtonReleaseEvent &parents: {MouseButtonReleaseEvent}.
92 events define: #X2MouseButtonDoubleClickEvent &parents: {MouseButtonDoubleClickEvent}.
94 events define: #MouseMotionEvent &parents: {MouseEvent}.
96 events define: #MouseEnterEvent &parents: {MouseMotionEvent}.
98 events define: #MouseLeaveEvent &parents: {MouseMotionEvent}.
100 events define: #PenEvent &parents: {PointerEvent}.
102 events define: #PenDownEvent &parents: {PenEvent}.
104 events define: #PenLiftEvent &parents: {PenEvent}.
106 events define: #PenHoldEvent &parents: {PenEvent}.
108 events define: #PenMotionEvent &parents: {PenEvent}.
110 events define: #PenLeaveEvent &parents: {PenMotionEvent}.
112 events define: #PenEnterEvent &parents: {PenMotionEvent}.
114 events define: #WindowConfigEvent &parents: {WindowEvent}.
115 "Corresponds to a window movement or resizing."
117 events define: #WindowResizeEvent &parents: {WindowConfigEvent} &slots: {#width. #height}..
119 events define: #PaintEvent &parents: {WindowEvent}.
120 events define: #WindowRepaintEvent &parents: {WindowEvent}.
121 "A window redraw request."