40 documentation |
40 documentation |
41 " |
41 " |
42 abstract class for event listeners. EventListeners can be used to intercept |
42 abstract class for event listeners. EventListeners can be used to intercept |
43 incoming events (keyboard & mouse) directly from a sensor, or even |
43 incoming events (keyboard & mouse) directly from a sensor, or even |
44 for a complete display device. |
44 for a complete display device. |
45 One application is the automatic help, which tracks entering/leaving |
45 A concrete application is the bubble help, which tracks entering/leaving |
46 views, to popup some help message. See concrete code in ActiveHelp. |
46 views, and pops up some help message. |
|
47 See concrete code in ActiveHelp. |
|
48 |
47 For each intercepted event, a corresponding method is called for in instances |
49 For each intercepted event, a corresponding method is called for in instances |
48 of myself - these should return true, if the event is to be ignored (i.e. |
50 of myself - these MUST return true, if the event is to be ignored (i.e. |
49 assumed to be processed and consumed by the reader, or false, if the normal |
51 assumed to be processed and consumed by the reader, |
50 event procedure should be performed. Since this is an abstract class, |
52 and MUST return false, if the normal event procedure should be performed. |
51 all of my intercept methods return false. They are meant to be redefined |
53 Since this is an abstract class, |
52 in concrete subclasses. |
54 all of my intercept methods return false. |
|
55 They are meant to be redefined in concrete subclasses. |
53 |
56 |
54 [see also:] |
57 [see also:] |
55 WindowSensor WindowEvent WindowGroup |
58 WindowSensor WindowEvent WindowGroup |
56 |
59 |
57 [author:] |
60 [author:] |
58 Claus Gittinger |
61 Claus Gittinger |
59 " |
62 " |
60 ! ! |
63 ! ! |
61 |
64 |
62 !EventListener methodsFor:'events'! |
65 !EventListener methodsFor:'events'! |
63 |
66 |
64 buttonMotion:state x:x y:y view:aView |
67 buttonMotion:state x:x y:y view:aView |
65 "not handled here - should be redefined in a concrete subclas" |
68 "not handled here - should be redefined in a concrete subclass" |
66 |
69 |
67 ^ false |
70 ^ false |
68 |
71 |
69 "Modified: 23.4.1996 / 21:57:54 / cg" |
72 "Modified: 23.4.1996 / 21:57:54 / cg" |
70 ! |
73 ! |
71 |
74 |
72 buttonMultiPress:button x:x y:y view:aView |
75 buttonMultiPress:button x:x y:y view:aView |
73 "not handled here - should be redefined in a concrete subclas" |
76 "not handled here - should be redefined in a concrete subclass" |
74 |
77 |
75 ^ false |
78 ^ false |
76 |
79 |
77 "Modified: 23.4.1996 / 21:57:58 / cg" |
80 "Modified: 23.4.1996 / 21:57:58 / cg" |
78 ! |
81 ! |
79 |
82 |
80 buttonPress:button x:x y:y view:aView |
83 buttonPress:button x:x y:y view:aView |
81 "not handled here - should be redefined in a concrete subclas" |
84 "not handled here - should be redefined in a concrete subclass" |
82 |
85 |
83 ^ false |
86 ^ false |
84 |
87 |
85 "Modified: 23.4.1996 / 21:58:01 / cg" |
88 "Modified: 23.4.1996 / 21:58:01 / cg" |
86 ! |
89 ! |
87 |
90 |
88 buttonRelease:button x:x y:y view:aView |
91 buttonRelease:button x:x y:y view:aView |
89 "not handled here - should be redefined in a concrete subclas" |
92 "not handled here - should be redefined in a concrete subclass" |
90 |
93 |
91 ^ false |
94 ^ false |
92 |
95 |
93 "Modified: 23.4.1996 / 21:58:03 / cg" |
96 "Modified: 23.4.1996 / 21:58:03 / cg" |
94 ! |
97 ! |
95 |
98 |
96 keyPress:key x:x y:y view:aView |
99 keyPress:key x:x y:y view:aView |
97 "not handled here - should be redefined in a concrete subclas" |
100 "not handled here - should be redefined in a concrete subclass" |
98 |
101 |
99 ^ false |
102 ^ false |
100 |
103 |
101 "Modified: 23.4.1996 / 21:58:08 / cg" |
104 "Modified: 23.4.1996 / 21:58:08 / cg" |
102 ! |
105 ! |
103 |
106 |
104 keyRelease:key x:x y:y view:aView |
107 keyRelease:key x:x y:y view:aView |
105 "not handled here - should be redefined in a concrete subclas" |
108 "not handled here - should be redefined in a concrete subclass" |
106 |
109 |
107 ^ false |
110 ^ false |
108 |
111 |
109 "Modified: 23.4.1996 / 21:58:11 / cg" |
112 "Modified: 23.4.1996 / 21:58:11 / cg" |
110 ! |
113 ! |
111 |
114 |
112 pointerEnter:state x:x y:y view:view |
115 pointerEnter:state x:x y:y view:view |
113 "not handled here - should be redefined in a concrete subclas" |
116 "not handled here - should be redefined in a concrete subclass" |
114 |
117 |
115 ^ false |
118 ^ false |
116 |
119 |
117 "Modified: 23.4.1996 / 21:58:14 / cg" |
120 "Modified: 23.4.1996 / 21:58:14 / cg" |
118 ! |
121 ! |
119 |
122 |
120 pointerLeave:state view:view |
123 pointerLeave:state view:view |
121 "not handled here - should be redefined in a concrete subclas" |
124 "not handled here - should be redefined in a concrete subclass" |
122 |
125 |
123 ^ false |
126 ^ false |
124 |
127 |
125 "Modified: 23.4.1996 / 21:58:17 / cg" |
128 "Modified: 23.4.1996 / 21:58:17 / cg" |
|
129 ! ! |
|
130 |
|
131 !EventListener methodsFor:'events - window creation'! |
|
132 |
|
133 preCreateView:aView origin:org |
|
134 "invoked right before a view is about to be physically created. |
|
135 May return a new origin." |
|
136 |
|
137 ^ org |
|
138 ! |
|
139 |
|
140 postCreateView:aView |
|
141 "invoked right after a view was physically created." |
|
142 |
|
143 ^ self |
126 ! ! |
144 ! ! |
127 |
145 |
128 !EventListener methodsFor:'listen'! |
146 !EventListener methodsFor:'listen'! |
129 |
147 |
130 listen |
148 listen |