Mercurial > projects > dwt-mac
comparison dwt/widgets/TypedListener.d @ 0:380af2bdd8e5
Upload of whole dwt tree
author | Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com> |
---|---|
date | Sat, 09 Aug 2008 17:00:02 +0200 |
parents | |
children | ab8b5765e3d1 2952d5604c0a |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:380af2bdd8e5 |
---|---|
1 /******************************************************************************* | |
2 * Copyright (c) 2000, 2007 IBM Corporation and others. | |
3 * All rights reserved. This program and the accompanying materials | |
4 * are made available under the terms of the Eclipse Public License v1.0 | |
5 * which accompanies this distribution, and is available at | |
6 * http://www.eclipse.org/legal/epl-v10.html | |
7 * | |
8 * Contributors: | |
9 * IBM Corporation - initial API and implementation | |
10 *******************************************************************************/ | |
11 module dwt.widgets.TypedListener; | |
12 | |
13 import dwt.dwthelper.utils; | |
14 | |
15 | |
16 import dwt.DWT; | |
17 import dwt.events.ArmEvent; | |
18 import dwt.events.ArmListener; | |
19 import dwt.events.ControlEvent; | |
20 import dwt.events.ControlListener; | |
21 import dwt.events.DisposeEvent; | |
22 import dwt.events.DisposeListener; | |
23 import dwt.events.DragDetectEvent; | |
24 import dwt.events.DragDetectListener; | |
25 import dwt.events.ExpandEvent; | |
26 import dwt.events.ExpandListener; | |
27 import dwt.events.FocusEvent; | |
28 import dwt.events.FocusListener; | |
29 import dwt.events.HelpEvent; | |
30 import dwt.events.HelpListener; | |
31 import dwt.events.KeyEvent; | |
32 import dwt.events.KeyListener; | |
33 import dwt.events.MenuDetectEvent; | |
34 import dwt.events.MenuDetectListener; | |
35 import dwt.events.MenuEvent; | |
36 import dwt.events.MenuListener; | |
37 import dwt.events.ModifyEvent; | |
38 import dwt.events.ModifyListener; | |
39 import dwt.events.MouseEvent; | |
40 import dwt.events.MouseListener; | |
41 import dwt.events.MouseMoveListener; | |
42 import dwt.events.MouseTrackListener; | |
43 import dwt.events.MouseWheelListener; | |
44 import dwt.events.PaintEvent; | |
45 import dwt.events.PaintListener; | |
46 import dwt.events.SelectionEvent; | |
47 import dwt.events.SelectionListener; | |
48 import dwt.events.ShellEvent; | |
49 import dwt.events.ShellListener; | |
50 import dwt.events.TraverseEvent; | |
51 import dwt.events.TraverseListener; | |
52 import dwt.events.TreeEvent; | |
53 import dwt.events.TreeListener; | |
54 import dwt.events.VerifyEvent; | |
55 import dwt.events.VerifyListener; | |
56 import dwt.internal.DWTEventListener; | |
57 | |
58 /** | |
59 * Instances of this class are <em>internal DWT implementation</em> | |
60 * objects which provide a mapping between the typed and untyped | |
61 * listener mechanisms that DWT supports. | |
62 * <p> | |
63 * <b>IMPORTANT:</b> This class is <em>not</em> part of the DWT | |
64 * public API. It is marked public only so that it can be shared | |
65 * within the packages provided by DWT. It should never be | |
66 * referenced from application code. | |
67 * </p> | |
68 * | |
69 * @see Listener | |
70 */ | |
71 public class TypedListener implements Listener { | |
72 | |
73 /** | |
74 * The receiver's event listener | |
75 */ | |
76 protected DWTEventListener eventListener; | |
77 | |
78 /** | |
79 * Constructs a new instance of this class for the given event listener. | |
80 * <p> | |
81 * <b>IMPORTANT:</b> This method is <em>not</em> part of the DWT | |
82 * public API. It is marked public only so that it can be shared | |
83 * within the packages provided by DWT. It should never be | |
84 * referenced from application code. | |
85 * </p> | |
86 * | |
87 * @param listener the event listener to store in the receiver | |
88 */ | |
89 public TypedListener (DWTEventListener listener) { | |
90 eventListener = listener; | |
91 } | |
92 | |
93 /** | |
94 * Returns the receiver's event listener. | |
95 * <p> | |
96 * <b>IMPORTANT:</b> This method is <em>not</em> part of the DWT | |
97 * public API. It is marked public only so that it can be shared | |
98 * within the packages provided by DWT. It should never be | |
99 * referenced from application code. | |
100 * </p> | |
101 * | |
102 * @return the receiver's event listener | |
103 */ | |
104 public DWTEventListener getEventListener () { | |
105 return eventListener; | |
106 } | |
107 | |
108 /** | |
109 * Handles the given event. | |
110 * <p> | |
111 * <b>IMPORTANT:</b> This method is <em>not</em> part of the DWT | |
112 * public API. It is marked public only so that it can be shared | |
113 * within the packages provided by DWT. It should never be | |
114 * referenced from application code. | |
115 * </p> | |
116 * @param e the event to handle | |
117 */ | |
118 public void handleEvent (Event e) { | |
119 switch (e.type) { | |
120 case DWT.Activate: { | |
121 ((ShellListener) eventListener).shellActivated(new ShellEvent(e)); | |
122 break; | |
123 } | |
124 case DWT.Arm: { | |
125 ((ArmListener) eventListener).widgetArmed (new ArmEvent (e)); | |
126 break; | |
127 } | |
128 case DWT.Close: { | |
129 /* Fields set by Decorations */ | |
130 ShellEvent event = new ShellEvent (e); | |
131 ((ShellListener) eventListener).shellClosed(event); | |
132 e.doit = event.doit; | |
133 break; | |
134 } | |
135 case DWT.Collapse: { | |
136 if (eventListener instanceof TreeListener) { | |
137 ((TreeListener) eventListener).treeCollapsed(new TreeEvent(e)); | |
138 } else { | |
139 ((ExpandListener) eventListener).itemCollapsed(new ExpandEvent(e)); | |
140 } | |
141 break; | |
142 } | |
143 case DWT.Deactivate: { | |
144 ((ShellListener) eventListener).shellDeactivated(new ShellEvent(e)); | |
145 break; | |
146 } | |
147 case DWT.Deiconify: { | |
148 ((ShellListener) eventListener).shellDeiconified(new ShellEvent(e)); | |
149 break; | |
150 } | |
151 case DWT.DefaultSelection: { | |
152 ((SelectionListener)eventListener).widgetDefaultSelected(new SelectionEvent(e)); | |
153 break; | |
154 } | |
155 case DWT.Dispose: { | |
156 ((DisposeListener) eventListener).widgetDisposed(new DisposeEvent(e)); | |
157 break; | |
158 } | |
159 case DWT.DragDetect: { | |
160 ((DragDetectListener) eventListener).dragDetected(new DragDetectEvent(e)); | |
161 break; | |
162 } | |
163 case DWT.Expand: { | |
164 if (eventListener instanceof TreeListener) { | |
165 ((TreeListener) eventListener).treeExpanded(new TreeEvent(e)); | |
166 } else { | |
167 ((ExpandListener) eventListener).itemExpanded(new ExpandEvent(e)); | |
168 } | |
169 break; | |
170 } | |
171 case DWT.FocusIn: { | |
172 ((FocusListener) eventListener).focusGained(new FocusEvent(e)); | |
173 break; | |
174 } | |
175 case DWT.FocusOut: { | |
176 ((FocusListener) eventListener).focusLost(new FocusEvent(e)); | |
177 break; | |
178 } | |
179 case DWT.Help: { | |
180 ((HelpListener) eventListener).helpRequested (new HelpEvent (e)); | |
181 break; | |
182 } | |
183 case DWT.Hide: { | |
184 ((MenuListener) eventListener).menuHidden(new MenuEvent(e)); | |
185 break; | |
186 } | |
187 case DWT.Iconify: { | |
188 ((ShellListener) eventListener).shellIconified(new ShellEvent(e)); | |
189 break; | |
190 } | |
191 case DWT.KeyDown: { | |
192 /* Fields set by Control */ | |
193 KeyEvent event = new KeyEvent(e); | |
194 ((KeyListener) eventListener).keyPressed(event); | |
195 e.doit = event.doit; | |
196 break; | |
197 } | |
198 case DWT.KeyUp: { | |
199 /* Fields set by Control */ | |
200 KeyEvent event = new KeyEvent(e); | |
201 ((KeyListener) eventListener).keyReleased(event); | |
202 e.doit = event.doit; | |
203 break; | |
204 } | |
205 case DWT.Modify: { | |
206 ((ModifyListener) eventListener).modifyText(new ModifyEvent(e)); | |
207 break; | |
208 } | |
209 case DWT.MenuDetect: { | |
210 MenuDetectEvent event = new MenuDetectEvent(e); | |
211 ((MenuDetectListener) eventListener).menuDetected(event); | |
212 e.x = event.x; | |
213 e.y = event.y; | |
214 e.doit = event.doit; | |
215 break; | |
216 } | |
217 case DWT.MouseDown: { | |
218 ((MouseListener) eventListener).mouseDown(new MouseEvent(e)); | |
219 break; | |
220 } | |
221 case DWT.MouseDoubleClick: { | |
222 ((MouseListener) eventListener).mouseDoubleClick(new MouseEvent(e)); | |
223 break; | |
224 } | |
225 case DWT.MouseEnter: { | |
226 ((MouseTrackListener) eventListener).mouseEnter (new MouseEvent (e)); | |
227 break; | |
228 } | |
229 case DWT.MouseExit: { | |
230 ((MouseTrackListener) eventListener).mouseExit (new MouseEvent (e)); | |
231 break; | |
232 } | |
233 case DWT.MouseHover: { | |
234 ((MouseTrackListener) eventListener).mouseHover (new MouseEvent (e)); | |
235 break; | |
236 } | |
237 case DWT.MouseMove: { | |
238 ((MouseMoveListener) eventListener).mouseMove(new MouseEvent(e)); | |
239 return; | |
240 } | |
241 case DWT.MouseWheel: { | |
242 ((MouseWheelListener) eventListener).mouseScrolled(new MouseEvent(e)); | |
243 return; | |
244 } | |
245 case DWT.MouseUp: { | |
246 ((MouseListener) eventListener).mouseUp(new MouseEvent(e)); | |
247 break; | |
248 } | |
249 case DWT.Move: { | |
250 ((ControlListener) eventListener).controlMoved(new ControlEvent(e)); | |
251 break; | |
252 } | |
253 case DWT.Paint: { | |
254 /* Fields set by Control */ | |
255 PaintEvent event = new PaintEvent (e); | |
256 ((PaintListener) eventListener).paintControl (event); | |
257 e.gc = event.gc; | |
258 break; | |
259 } | |
260 case DWT.Resize: { | |
261 ((ControlListener) eventListener).controlResized(new ControlEvent(e)); | |
262 break; | |
263 } | |
264 case DWT.Selection: { | |
265 /* Fields set by Sash */ | |
266 SelectionEvent event = new SelectionEvent (e); | |
267 ((SelectionListener) eventListener).widgetSelected (event); | |
268 e.x = event.x; | |
269 e.y = event.y; | |
270 e.doit = event.doit; | |
271 break; | |
272 } | |
273 case DWT.Show: { | |
274 ((MenuListener) eventListener).menuShown(new MenuEvent(e)); | |
275 break; | |
276 } | |
277 case DWT.Traverse: { | |
278 /* Fields set by Control */ | |
279 TraverseEvent event = new TraverseEvent (e); | |
280 ((TraverseListener) eventListener).keyTraversed (event); | |
281 e.detail = event.detail; | |
282 e.doit = event.doit; | |
283 break; | |
284 } | |
285 case DWT.Verify: { | |
286 /* Fields set by Text, RichText */ | |
287 VerifyEvent event = new VerifyEvent (e); | |
288 ((VerifyListener) eventListener).verifyText (event); | |
289 e.text = event.text; | |
290 e.doit = event.doit; | |
291 break; | |
292 } | |
293 } | |
294 } | |
295 | |
296 } |