Mercurial > projects > dwt-mac
comparison dwt/widgets/TypedListener.d @ 15:2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
author | Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com> |
---|---|
date | Fri, 29 Aug 2008 21:46:05 +0200 |
parents | 380af2bdd8e5 |
children | 5b53d338c709 |
comparison
equal
deleted
inserted
replaced
14:762fbe6f17d3 | 15:2952d5604c0a |
---|---|
5 * which accompanies this distribution, and is available at | 5 * which accompanies this distribution, and is available at |
6 * http://www.eclipse.org/legal/epl-v10.html | 6 * http://www.eclipse.org/legal/epl-v10.html |
7 * | 7 * |
8 * Contributors: | 8 * Contributors: |
9 * IBM Corporation - initial API and implementation | 9 * IBM Corporation - initial API and implementation |
10 * | |
11 * Port to the D programming language: | |
12 * Jacob Carlborg <jacob.carlborg@gmail.com> | |
10 *******************************************************************************/ | 13 *******************************************************************************/ |
11 module dwt.widgets.TypedListener; | 14 module dwt.widgets.TypedListener; |
12 | 15 |
13 import dwt.dwthelper.utils; | 16 import dwt.dwthelper.utils; |
14 | 17 |
53 import dwt.events.TreeListener; | 56 import dwt.events.TreeListener; |
54 import dwt.events.VerifyEvent; | 57 import dwt.events.VerifyEvent; |
55 import dwt.events.VerifyListener; | 58 import dwt.events.VerifyListener; |
56 import dwt.internal.DWTEventListener; | 59 import dwt.internal.DWTEventListener; |
57 | 60 |
61 import dwt.widgets.Listener; | |
62 | |
58 /** | 63 /** |
59 * Instances of this class are <em>internal DWT implementation</em> | 64 * Instances of this class are <em>internal DWT implementation</em> |
60 * objects which provide a mapping between the typed and untyped | 65 * objects which provide a mapping between the typed and untyped |
61 * listener mechanisms that DWT supports. | 66 * listener mechanisms that DWT supports. |
62 * <p> | 67 * <p> |
66 * referenced from application code. | 71 * referenced from application code. |
67 * </p> | 72 * </p> |
68 * | 73 * |
69 * @see Listener | 74 * @see Listener |
70 */ | 75 */ |
71 public class TypedListener implements Listener { | 76 public class TypedListener : Listener { |
72 | 77 |
73 /** | 78 /** |
74 * The receiver's event listener | 79 * The receiver's event listener |
75 */ | 80 */ |
76 protected DWTEventListener eventListener; | 81 protected DWTEventListener eventListener; |
84 * referenced from application code. | 89 * referenced from application code. |
85 * </p> | 90 * </p> |
86 * | 91 * |
87 * @param listener the event listener to store in the receiver | 92 * @param listener the event listener to store in the receiver |
88 */ | 93 */ |
89 public TypedListener (DWTEventListener listener) { | 94 public this (DWTEventListener listener) { |
90 eventListener = listener; | 95 eventListener = listener; |
91 } | 96 } |
92 | 97 |
93 /** | 98 /** |
94 * Returns the receiver's event listener. | 99 * Returns the receiver's event listener. |
116 * @param e the event to handle | 121 * @param e the event to handle |
117 */ | 122 */ |
118 public void handleEvent (Event e) { | 123 public void handleEvent (Event e) { |
119 switch (e.type) { | 124 switch (e.type) { |
120 case DWT.Activate: { | 125 case DWT.Activate: { |
121 ((ShellListener) eventListener).shellActivated(new ShellEvent(e)); | 126 (cast(ShellListener) eventListener).shellActivated(new ShellEvent(e)); |
122 break; | 127 break; |
123 } | 128 } |
124 case DWT.Arm: { | 129 case DWT.Arm: { |
125 ((ArmListener) eventListener).widgetArmed (new ArmEvent (e)); | 130 (cast(ArmListener) eventListener).widgetArmed (new ArmEvent (e)); |
126 break; | 131 break; |
127 } | 132 } |
128 case DWT.Close: { | 133 case DWT.Close: { |
129 /* Fields set by Decorations */ | 134 /* Fields set by Decorations */ |
130 ShellEvent event = new ShellEvent (e); | 135 ShellEvent event = new ShellEvent (e); |
131 ((ShellListener) eventListener).shellClosed(event); | 136 (cast(ShellListener) eventListener).shellClosed(event); |
132 e.doit = event.doit; | 137 e.doit = event.doit; |
133 break; | 138 break; |
134 } | 139 } |
135 case DWT.Collapse: { | 140 case DWT.Collapse: { |
136 if (eventListener instanceof TreeListener) { | 141 if (cast(TreeListener) eventListener) { |
137 ((TreeListener) eventListener).treeCollapsed(new TreeEvent(e)); | 142 (cast(TreeListener) eventListener).treeCollapsed(new TreeEvent(e)); |
138 } else { | 143 } else { |
139 ((ExpandListener) eventListener).itemCollapsed(new ExpandEvent(e)); | 144 (cast(ExpandListener) eventListener).itemCollapsed(new ExpandEvent(e)); |
140 } | 145 } |
141 break; | 146 break; |
142 } | 147 } |
143 case DWT.Deactivate: { | 148 case DWT.Deactivate: { |
144 ((ShellListener) eventListener).shellDeactivated(new ShellEvent(e)); | 149 (cast(ShellListener) eventListener).shellDeactivated(new ShellEvent(e)); |
145 break; | 150 break; |
146 } | 151 } |
147 case DWT.Deiconify: { | 152 case DWT.Deiconify: { |
148 ((ShellListener) eventListener).shellDeiconified(new ShellEvent(e)); | 153 (cast(ShellListener) eventListener).shellDeiconified(new ShellEvent(e)); |
149 break; | 154 break; |
150 } | 155 } |
151 case DWT.DefaultSelection: { | 156 case DWT.DefaultSelection: { |
152 ((SelectionListener)eventListener).widgetDefaultSelected(new SelectionEvent(e)); | 157 (cast(SelectionListener)eventListener).widgetDefaultSelected(new SelectionEvent(e)); |
153 break; | 158 break; |
154 } | 159 } |
155 case DWT.Dispose: { | 160 case DWT.Dispose: { |
156 ((DisposeListener) eventListener).widgetDisposed(new DisposeEvent(e)); | 161 (cast(DisposeListener) eventListener).widgetDisposed(new DisposeEvent(e)); |
157 break; | 162 break; |
158 } | 163 } |
159 case DWT.DragDetect: { | 164 case DWT.DragDetect: { |
160 ((DragDetectListener) eventListener).dragDetected(new DragDetectEvent(e)); | 165 (cast(DragDetectListener) eventListener).dragDetected(new DragDetectEvent(e)); |
161 break; | 166 break; |
162 } | 167 } |
163 case DWT.Expand: { | 168 case DWT.Expand: { |
164 if (eventListener instanceof TreeListener) { | 169 if (cast(TreeListener) eventListener) { |
165 ((TreeListener) eventListener).treeExpanded(new TreeEvent(e)); | 170 (cast(TreeListener) eventListener).treeExpanded(new TreeEvent(e)); |
166 } else { | 171 } else { |
167 ((ExpandListener) eventListener).itemExpanded(new ExpandEvent(e)); | 172 (cast(ExpandListener) eventListener).itemExpanded(new ExpandEvent(e)); |
168 } | 173 } |
169 break; | 174 break; |
170 } | 175 } |
171 case DWT.FocusIn: { | 176 case DWT.FocusIn: { |
172 ((FocusListener) eventListener).focusGained(new FocusEvent(e)); | 177 (cast(FocusListener) eventListener).focusGained(new FocusEvent(e)); |
173 break; | 178 break; |
174 } | 179 } |
175 case DWT.FocusOut: { | 180 case DWT.FocusOut: { |
176 ((FocusListener) eventListener).focusLost(new FocusEvent(e)); | 181 (cast(FocusListener) eventListener).focusLost(new FocusEvent(e)); |
177 break; | 182 break; |
178 } | 183 } |
179 case DWT.Help: { | 184 case DWT.Help: { |
180 ((HelpListener) eventListener).helpRequested (new HelpEvent (e)); | 185 (cast(HelpListener) eventListener).helpRequested (new HelpEvent (e)); |
181 break; | 186 break; |
182 } | 187 } |
183 case DWT.Hide: { | 188 case DWT.Hide: { |
184 ((MenuListener) eventListener).menuHidden(new MenuEvent(e)); | 189 (cast(MenuListener) eventListener).menuHidden(new MenuEvent(e)); |
185 break; | 190 break; |
186 } | 191 } |
187 case DWT.Iconify: { | 192 case DWT.Iconify: { |
188 ((ShellListener) eventListener).shellIconified(new ShellEvent(e)); | 193 (cast(ShellListener) eventListener).shellIconified(new ShellEvent(e)); |
189 break; | 194 break; |
190 } | 195 } |
191 case DWT.KeyDown: { | 196 case DWT.KeyDown: { |
192 /* Fields set by Control */ | 197 /* Fields set by Control */ |
193 KeyEvent event = new KeyEvent(e); | 198 KeyEvent event = new KeyEvent(e); |
194 ((KeyListener) eventListener).keyPressed(event); | 199 (cast(KeyListener) eventListener).keyPressed(event); |
195 e.doit = event.doit; | 200 e.doit = event.doit; |
196 break; | 201 break; |
197 } | 202 } |
198 case DWT.KeyUp: { | 203 case DWT.KeyUp: { |
199 /* Fields set by Control */ | 204 /* Fields set by Control */ |
200 KeyEvent event = new KeyEvent(e); | 205 KeyEvent event = new KeyEvent(e); |
201 ((KeyListener) eventListener).keyReleased(event); | 206 (cast(KeyListener) eventListener).keyReleased(event); |
202 e.doit = event.doit; | 207 e.doit = event.doit; |
203 break; | 208 break; |
204 } | 209 } |
205 case DWT.Modify: { | 210 case DWT.Modify: { |
206 ((ModifyListener) eventListener).modifyText(new ModifyEvent(e)); | 211 (cast(ModifyListener) eventListener).modifyText(new ModifyEvent(e)); |
207 break; | 212 break; |
208 } | 213 } |
209 case DWT.MenuDetect: { | 214 case DWT.MenuDetect: { |
210 MenuDetectEvent event = new MenuDetectEvent(e); | 215 MenuDetectEvent event = new MenuDetectEvent(e); |
211 ((MenuDetectListener) eventListener).menuDetected(event); | 216 (cast(MenuDetectListener) eventListener).menuDetected(event); |
212 e.x = event.x; | 217 e.x = event.x; |
213 e.y = event.y; | 218 e.y = event.y; |
214 e.doit = event.doit; | 219 e.doit = event.doit; |
215 break; | 220 break; |
216 } | 221 } |
217 case DWT.MouseDown: { | 222 case DWT.MouseDown: { |
218 ((MouseListener) eventListener).mouseDown(new MouseEvent(e)); | 223 (cast(MouseListener) eventListener).mouseDown(new MouseEvent(e)); |
219 break; | 224 break; |
220 } | 225 } |
221 case DWT.MouseDoubleClick: { | 226 case DWT.MouseDoubleClick: { |
222 ((MouseListener) eventListener).mouseDoubleClick(new MouseEvent(e)); | 227 (cast(MouseListener) eventListener).mouseDoubleClick(new MouseEvent(e)); |
223 break; | 228 break; |
224 } | 229 } |
225 case DWT.MouseEnter: { | 230 case DWT.MouseEnter: { |
226 ((MouseTrackListener) eventListener).mouseEnter (new MouseEvent (e)); | 231 (cast(MouseTrackListener) eventListener).mouseEnter (new MouseEvent (e)); |
227 break; | 232 break; |
228 } | 233 } |
229 case DWT.MouseExit: { | 234 case DWT.MouseExit: { |
230 ((MouseTrackListener) eventListener).mouseExit (new MouseEvent (e)); | 235 (cast(MouseTrackListener) eventListener).mouseExit (new MouseEvent (e)); |
231 break; | 236 break; |
232 } | 237 } |
233 case DWT.MouseHover: { | 238 case DWT.MouseHover: { |
234 ((MouseTrackListener) eventListener).mouseHover (new MouseEvent (e)); | 239 (cast(MouseTrackListener) eventListener).mouseHover (new MouseEvent (e)); |
235 break; | 240 break; |
236 } | 241 } |
237 case DWT.MouseMove: { | 242 case DWT.MouseMove: { |
238 ((MouseMoveListener) eventListener).mouseMove(new MouseEvent(e)); | 243 (cast(MouseMoveListener) eventListener).mouseMove(new MouseEvent(e)); |
239 return; | 244 return; |
240 } | 245 } |
241 case DWT.MouseWheel: { | 246 case DWT.MouseWheel: { |
242 ((MouseWheelListener) eventListener).mouseScrolled(new MouseEvent(e)); | 247 (cast(MouseWheelListener) eventListener).mouseScrolled(new MouseEvent(e)); |
243 return; | 248 return; |
244 } | 249 } |
245 case DWT.MouseUp: { | 250 case DWT.MouseUp: { |
246 ((MouseListener) eventListener).mouseUp(new MouseEvent(e)); | 251 (cast(MouseListener) eventListener).mouseUp(new MouseEvent(e)); |
247 break; | 252 break; |
248 } | 253 } |
249 case DWT.Move: { | 254 case DWT.Move: { |
250 ((ControlListener) eventListener).controlMoved(new ControlEvent(e)); | 255 (cast(ControlListener) eventListener).controlMoved(new ControlEvent(e)); |
251 break; | 256 break; |
252 } | 257 } |
253 case DWT.Paint: { | 258 case DWT.Paint: { |
254 /* Fields set by Control */ | 259 /* Fields set by Control */ |
255 PaintEvent event = new PaintEvent (e); | 260 PaintEvent event = new PaintEvent (e); |
256 ((PaintListener) eventListener).paintControl (event); | 261 (cast(PaintListener) eventListener).paintControl (event); |
257 e.gc = event.gc; | 262 e.gc = event.gc; |
258 break; | 263 break; |
259 } | 264 } |
260 case DWT.Resize: { | 265 case DWT.Resize: { |
261 ((ControlListener) eventListener).controlResized(new ControlEvent(e)); | 266 (cast(ControlListener) eventListener).controlResized(new ControlEvent(e)); |
262 break; | 267 break; |
263 } | 268 } |
264 case DWT.Selection: { | 269 case DWT.Selection: { |
265 /* Fields set by Sash */ | 270 /* Fields set by Sash */ |
266 SelectionEvent event = new SelectionEvent (e); | 271 SelectionEvent event = new SelectionEvent (e); |
267 ((SelectionListener) eventListener).widgetSelected (event); | 272 (cast(SelectionListener) eventListener).widgetSelected (event); |
268 e.x = event.x; | 273 e.x = event.x; |
269 e.y = event.y; | 274 e.y = event.y; |
270 e.doit = event.doit; | 275 e.doit = event.doit; |
271 break; | 276 break; |
272 } | 277 } |
273 case DWT.Show: { | 278 case DWT.Show: { |
274 ((MenuListener) eventListener).menuShown(new MenuEvent(e)); | 279 (cast(MenuListener) eventListener).menuShown(new MenuEvent(e)); |
275 break; | 280 break; |
276 } | 281 } |
277 case DWT.Traverse: { | 282 case DWT.Traverse: { |
278 /* Fields set by Control */ | 283 /* Fields set by Control */ |
279 TraverseEvent event = new TraverseEvent (e); | 284 TraverseEvent event = new TraverseEvent (e); |
280 ((TraverseListener) eventListener).keyTraversed (event); | 285 (cast(TraverseListener) eventListener).keyTraversed (event); |
281 e.detail = event.detail; | 286 e.detail = event.detail; |
282 e.doit = event.doit; | 287 e.doit = event.doit; |
283 break; | 288 break; |
284 } | 289 } |
285 case DWT.Verify: { | 290 case DWT.Verify: { |
286 /* Fields set by Text, RichText */ | 291 /* Fields set by Text, RichText */ |
287 VerifyEvent event = new VerifyEvent (e); | 292 VerifyEvent event = new VerifyEvent (e); |
288 ((VerifyListener) eventListener).verifyText (event); | 293 (cast(VerifyListener) eventListener).verifyText (event); |
289 e.text = event.text; | 294 e.text = event.text; |
290 e.doit = event.doit; | 295 e.doit = event.doit; |
291 break; | 296 break; |
292 } | 297 } |
293 } | 298 } |