Mercurial > projects > dwt-mac
annotate dwt/browser/WebBrowser.d @ 156:969e7de37c3d default tip
Fixes to get dwt to work with dmd and ldc
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Wed, 08 Jul 2009 21:56:44 +0200 |
parents | 38807a925e24 |
children |
rev | line source |
---|---|
125 | 1 /******************************************************************************* |
2 * Copyright (c) 2003, 2007 IBM Corporation and others. | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
5 * which accompanies this distribution, and is available at |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
6 * http://www.eclipse.org/legal/epl-v10.html |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
7 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
8 * Contributors: |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
9 * IBM Corporation - initial API and implementation |
13
f565d3a95c0a
Ported dwt.internal
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
10 * Port to the D programming language: |
125 | 11 * John Reimer <terminal.node@gmail.com> |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
12 *******************************************************************************/ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
13 module dwt.browser.WebBrowser; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
14 |
125 | 15 import dwt.dwthelper.utils; |
16 | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
17 import dwt.DWT; |
125 | 18 import dwt.widgets.Composite; |
19 | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
20 import dwt.browser.Browser; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
21 import dwt.browser.CloseWindowListener; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
22 import dwt.browser.LocationListener; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
23 import dwt.browser.OpenWindowListener; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
24 import dwt.browser.ProgressListener; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
25 import dwt.browser.StatusTextListener; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
26 import dwt.browser.TitleListener; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
27 import dwt.browser.VisibilityWindowListener; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
28 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
29 abstract class WebBrowser { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
30 Browser browser; |
125 | 31 CloseWindowListener[] closeWindowListeners; |
32 LocationListener[] locationListeners; | |
33 OpenWindowListener[] openWindowListeners; | |
34 ProgressListener[] progressListeners; | |
35 StatusTextListener[] statusTextListeners; | |
36 TitleListener[] titleListeners; | |
37 VisibilityWindowListener[] visibilityWindowListeners; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
38 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
39 static Runnable MozillaClearSessions; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
40 static Runnable NativeClearSessions; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
41 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
42 /* Key Mappings */ |
126
38807a925e24
Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents:
125
diff
changeset
|
43 static const int [][] KeyTable = [ |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
44 /* Keyboard and Mouse Masks */ |
125 | 45 [18, DWT.ALT], |
46 [16, DWT.SHIFT], | |
47 [17, DWT.CONTROL], | |
48 [224, DWT.COMMAND], | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
49 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
50 /* Literal Keys */ |
125 | 51 [65, 'a'], |
52 [66, 'b'], | |
53 [67, 'c'], | |
54 [68, 'd'], | |
55 [69, 'e'], | |
56 [70, 'f'], | |
57 [71, 'g'], | |
58 [72, 'h'], | |
59 [73, 'i'], | |
60 [74, 'j'], | |
61 [75, 'k'], | |
62 [76, 'l'], | |
63 [77, 'm'], | |
64 [78, 'n'], | |
65 [79, 'o'], | |
66 [80, 'p'], | |
67 [81, 'q'], | |
68 [82, 'r'], | |
69 [83, 's'], | |
70 [84, 't'], | |
71 [85, 'u'], | |
72 [86, 'v'], | |
73 [87, 'w'], | |
74 [88, 'x'], | |
75 [89, 'y'], | |
76 [90, 'z'], | |
77 [48, '0'], | |
78 [49, '1'], | |
79 [50, '2'], | |
80 [51, '3'], | |
81 [52, '4'], | |
82 [53, '5'], | |
83 [54, '6'], | |
84 [55, '7'], | |
85 [56, '8'], | |
86 [57, '9'], | |
87 [32, ' '], | |
88 [59, ';'], | |
89 [61, '='], | |
90 [188, ','], | |
91 [190, '.'], | |
92 [191, '/'], | |
93 [219, '['], | |
94 [221, ']'], | |
95 [222, '\''], | |
96 [192, '`'], | |
97 [220, '\\'], | |
98 [108, '|'], | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
99 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
100 /* Non-Numeric Keypad Keys */ |
125 | 101 [37, DWT.ARROW_LEFT], |
102 [39, DWT.ARROW_RIGHT], | |
103 [38, DWT.ARROW_UP], | |
104 [40, DWT.ARROW_DOWN], | |
105 [45, DWT.INSERT], | |
106 [36, DWT.HOME], | |
107 [35, DWT.END], | |
108 [46, DWT.DEL], | |
109 [33, DWT.PAGE_UP], | |
110 [34, DWT.PAGE_DOWN], | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
111 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
112 /* Virtual and Ascii Keys */ |
125 | 113 [8, DWT.BS], |
114 [13, DWT.CR], | |
115 [9, DWT.TAB], | |
116 [27, DWT.ESC], | |
117 [12, DWT.DEL], | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
118 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
119 /* Functions Keys */ |
125 | 120 [112, DWT.F1], |
121 [113, DWT.F2], | |
122 [114, DWT.F3], | |
123 [115, DWT.F4], | |
124 [116, DWT.F5], | |
125 [117, DWT.F6], | |
126 [118, DWT.F7], | |
127 [119, DWT.F8], | |
128 [120, DWT.F9], | |
129 [121, DWT.F10], | |
130 [122, DWT.F11], | |
131 [123, DWT.F12], | |
132 [124, DWT.F13], | |
133 [125, DWT.F14], | |
134 [126, DWT.F15], | |
135 [127, 0], | |
136 [128, 0], | |
137 [129, 0], | |
138 [130, 0], | |
139 [131, 0], | |
140 [132, 0], | |
141 [133, 0], | |
142 [134, 0], | |
143 [135, 0], | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
144 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
145 /* Numeric Keypad Keys */ |
125 | 146 [96, DWT.KEYPAD_0], |
147 [97, DWT.KEYPAD_1], | |
148 [98, DWT.KEYPAD_2], | |
149 [99, DWT.KEYPAD_3], | |
150 [100, DWT.KEYPAD_4], | |
151 [101, DWT.KEYPAD_5], | |
152 [102, DWT.KEYPAD_6], | |
153 [103, DWT.KEYPAD_7], | |
154 [104, DWT.KEYPAD_8], | |
155 [105, DWT.KEYPAD_9], | |
156 [14, DWT.KEYPAD_CR], | |
157 [107, DWT.KEYPAD_ADD], | |
158 [109, DWT.KEYPAD_SUBTRACT], | |
159 [106, DWT.KEYPAD_MULTIPLY], | |
160 [111, DWT.KEYPAD_DIVIDE], | |
161 [110, DWT.KEYPAD_DECIMAL], | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
162 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
163 /* Other keys */ |
125 | 164 [20, DWT.CAPS_LOCK], |
165 [144, DWT.NUM_LOCK], | |
166 [145, DWT.SCROLL_LOCK], | |
167 [44, DWT.PRINT_SCREEN], | |
168 [6, DWT.HELP], | |
169 [19, DWT.PAUSE], | |
170 [3, DWT.BREAK], | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
171 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
172 /* Safari-specific */ |
125 | 173 [186, ';'], |
174 [187, '='], | |
175 [189, '-'], | |
176 ]; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
177 |
125 | 178 public void addCloseWindowListener (CloseWindowListener listener) { |
179 //CloseWindowListener[] newCloseWindowListeners = new CloseWindowListener[closeWindowListeners.length + 1]; | |
180 //System.arraycopy(closeWindowListeners, 0, newCloseWindowListeners, 0, closeWindowListeners.length); | |
181 //closeWindowListeners = newCloseWindowListeners; | |
182 closeWindowListeners ~= listener; | |
183 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
184 |
125 | 185 public void addLocationListener (LocationListener listener) { |
186 //LocationListener[] newLocationListeners = new LocationListener[locationListeners.length + 1]; | |
187 //System.arraycopy(locationListeners, 0, newLocationListeners, 0, locationListeners.length); | |
188 //locationListeners = newLocationListeners; | |
189 locationListeners ~= listener; | |
190 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
191 |
125 | 192 public void addOpenWindowListener (OpenWindowListener listener) { |
193 //OpenWindowListener[] newOpenWindowListeners = new OpenWindowListener[openWindowListeners.length + 1]; | |
194 //System.arraycopy(openWindowListeners, 0, newOpenWindowListeners, 0, openWindowListeners.length); | |
195 //openWindowListeners = newOpenWindowListeners; | |
196 openWindowListeners ~= listener; | |
197 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
198 |
125 | 199 public void addProgressListener (ProgressListener listener) { |
200 //ProgressListener[] newProgressListeners = new ProgressListener[progressListeners.length + 1]; | |
201 //System.arraycopy(progressListeners, 0, newProgressListeners, 0, progressListeners.length); | |
202 //progressListeners = newProgressListeners; | |
203 progressListeners ~= listener; | |
204 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
205 |
125 | 206 public void addStatusTextListener (StatusTextListener listener) { |
207 //StatusTextListener[] newStatusTextListeners = new StatusTextListener[statusTextListeners.length + 1]; | |
208 //System.arraycopy(statusTextListeners, 0, newStatusTextListeners, 0, statusTextListeners.length); | |
209 //statusTextListeners = newStatusTextListeners; | |
210 statusTextListeners ~= listener; | |
211 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
212 |
125 | 213 public void addTitleListener (TitleListener listener) { |
214 //TitleListener[] newTitleListeners = new TitleListener[titleListeners.length + 1]; | |
215 //System.arraycopy(titleListeners, 0, newTitleListeners, 0, titleListeners.length); | |
216 //titleListeners = newTitleListeners; | |
217 titleListeners ~= listener; | |
218 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
219 |
125 | 220 public void addVisibilityWindowListener (VisibilityWindowListener listener) { |
221 //VisibilityWindowListener[] newVisibilityWindowListeners = new VisibilityWindowListener[visibilityWindowListeners.length + 1]; | |
222 //System.arraycopy(visibilityWindowListeners, 0, newVisibilityWindowListeners, 0, visibilityWindowListeners.length); | |
223 //visibilityWindowListeners = newVisibilityWindowListeners; | |
224 visibilityWindowListeners ~= listener; | |
225 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
226 |
125 | 227 public abstract bool back (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
228 |
125 | 229 public static void clearSessions () { |
230 if (NativeClearSessions !is null) NativeClearSessions.run (); | |
231 if (MozillaClearSessions !is null) MozillaClearSessions.run (); | |
232 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
233 |
125 | 234 public abstract void create (Composite parent, int style); |
235 | |
236 public abstract bool execute (String script); | |
45 | 237 |
125 | 238 public abstract bool forward (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
239 |
125 | 240 public abstract String getText (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
241 |
125 | 242 public abstract String getUrl (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
243 |
125 | 244 public Object getWebBrowser () { |
245 return null; | |
246 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
247 |
125 | 248 public abstract bool isBackEnabled (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
249 |
125 | 250 public bool isFocusControl () { |
251 return false; | |
252 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
253 |
125 | 254 public abstract bool isForwardEnabled (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
255 |
125 | 256 public abstract void refresh (); |
257 | |
258 public void removeCloseWindowListener (CloseWindowListener listener) { | |
259 if (closeWindowListeners.length is 0) return; | |
260 int index = -1; | |
261 for (int i = 0; i < closeWindowListeners.length; i++) { | |
262 if (listener is closeWindowListeners[i]){ | |
263 index = i; | |
264 break; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
265 } |
125 | 266 } |
267 if (index is -1) return; | |
268 if (closeWindowListeners.length is 1) { | |
269 closeWindowListeners = new CloseWindowListener[0]; | |
270 return; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
271 } |
125 | 272 //CloseWindowListener[] newCloseWindowListeners = new CloseWindowListener[closeWindowListeners.length - 1]; |
273 //System.arraycopy (closeWindowListeners, 0, newCloseWindowListeners, 0, index); | |
274 //System.arraycopy (closeWindowListeners, index + 1, newCloseWindowListeners, index, closeWindowListeners.length - index - 1); | |
275 closeWindowListeners = closeWindowListeners[0..index] ~ closeWindowListeners[index+1..$]; | |
276 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
277 |
125 | 278 public void removeLocationListener (LocationListener listener) { |
279 if (locationListeners.length is 0) return; | |
280 int index = -1; | |
281 for (int i = 0; i < locationListeners.length; i++) { | |
282 if (listener is locationListeners[i]){ | |
283 index = i; | |
284 break; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
285 } |
125 | 286 } |
287 if (index is -1) return; | |
288 if (locationListeners.length is 1) { | |
289 locationListeners = new LocationListener[0]; | |
290 return; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
291 } |
125 | 292 //LocationListener[] newLocationListeners = new LocationListener[locationListeners.length - 1]; |
293 //System.arraycopy (locationListeners, 0, newLocationListeners, 0, index); | |
294 //System.arraycopy (locationListeners, index + 1, newLocationListeners, index, locationListeners.length - index - 1); | |
295 locationListeners = locationListeners[0..index] ~ locationListeners[index+1..$]; | |
296 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
297 |
125 | 298 public void removeOpenWindowListener (OpenWindowListener listener) { |
299 if (openWindowListeners.length is 0) return; | |
300 int index = -1; | |
301 for (int i = 0; i < openWindowListeners.length; i++) { | |
302 if (listener is openWindowListeners[i]){ | |
303 index = i; | |
304 break; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
305 } |
125 | 306 } |
307 if (index is -1) return; | |
308 if (openWindowListeners.length is 1) { | |
309 openWindowListeners = new OpenWindowListener[0]; | |
310 return; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
311 } |
125 | 312 //OpenWindowListener[] newOpenWindowListeners = new OpenWindowListener[openWindowListeners.length - 1]; |
313 //System.arraycopy (openWindowListeners, 0, newOpenWindowListeners, 0, index); | |
314 //System.arraycopy (openWindowListeners, index + 1, newOpenWindowListeners, index, openWindowListeners.length - index - 1); | |
315 openWindowListeners = openWindowListeners[0..index] ~ openWindowListeners[index+1..$]; | |
316 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
317 |
125 | 318 public void removeProgressListener (ProgressListener listener) { |
319 if (progressListeners.length is 0) return; | |
320 int index = -1; | |
321 for (int i = 0; i < progressListeners.length; i++) { | |
322 if (listener is progressListeners[i]){ | |
323 index = i; | |
324 break; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
325 } |
125 | 326 } |
327 if (index is -1) return; | |
328 if (progressListeners.length is 1) { | |
329 progressListeners = new ProgressListener[0]; | |
330 return; | |
331 } | |
332 //ProgressListener[] newProgressListeners = new ProgressListener[progressListeners.length - 1]; | |
333 //System.arraycopy (progressListeners, 0, newProgressListeners, 0, index); | |
334 //System.arraycopy (progressListeners, index + 1, newProgressListeners, index, progressListeners.length - index - 1); | |
335 progressListeners = progressListeners[0..index] ~ progressListeners[index+1..$]; | |
336 } | |
337 | |
338 public void removeStatusTextListener (StatusTextListener listener) { | |
339 if (statusTextListeners.length is 0) return; | |
340 int index = -1; | |
341 for (int i = 0; i < statusTextListeners.length; i++) { | |
342 if (listener is statusTextListeners[i]){ | |
343 index = i; | |
344 break; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
345 } |
125 | 346 } |
347 if (index is -1) return; | |
348 if (statusTextListeners.length is 1) { | |
349 statusTextListeners = new StatusTextListener[0]; | |
350 return; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
351 } |
125 | 352 //StatusTextListener[] newStatusTextListeners = new StatusTextListener[statusTextListeners.length - 1]; |
353 //System.arraycopy (statusTextListeners, 0, newStatusTextListeners, 0, index); | |
354 //System.arraycopy (statusTextListeners, index + 1, newStatusTextListeners, index, statusTextListeners.length - index - 1); | |
355 statusTextListeners = statusTextListeners[0..index] ~ statusTextListeners[index+1..$]; | |
356 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
357 |
125 | 358 public void removeTitleListener (TitleListener listener) { |
359 if (titleListeners.length is 0) return; | |
360 int index = -1; | |
361 for (int i = 0; i < titleListeners.length; i++) { | |
362 if (listener is titleListeners[i]){ | |
363 index = i; | |
364 break; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
365 } |
125 | 366 } |
367 if (index is -1) return; | |
368 if (titleListeners.length is 1) { | |
369 titleListeners = new TitleListener[0]; | |
370 return; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
371 } |
125 | 372 TitleListener[] newTitleListeners = new TitleListener[titleListeners.length - 1]; |
373 //System.arraycopy (titleListeners, 0, newTitleListeners, 0, index); | |
374 //System.arraycopy (titleListeners, index + 1, newTitleListeners, index, titleListeners.length - index - 1); | |
375 titleListeners = titleListeners[0..index] ~ titleListeners[index+1..$]; | |
376 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
377 |
125 | 378 public void removeVisibilityWindowListener (VisibilityWindowListener listener) { |
379 if (visibilityWindowListeners.length is 0) return; | |
380 int index = -1; | |
381 for (int i = 0; i < visibilityWindowListeners.length; i++) { | |
382 if (listener is visibilityWindowListeners[i]){ | |
383 index = i; | |
384 break; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
385 } |
125 | 386 } |
387 if (index is -1) return; | |
388 if (visibilityWindowListeners.length is 1) { | |
389 visibilityWindowListeners = new VisibilityWindowListener[0]; | |
390 return; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
391 } |
125 | 392 //VisibilityWindowListener[] newVisibilityWindowListeners = new VisibilityWindowListener[visibilityWindowListeners.length - 1]; |
393 //System.arraycopy (visibilityWindowListeners, 0, newVisibilityWindowListeners, 0, index); | |
394 //System.arraycopy (visibilityWindowListeners, index + 1, newVisibilityWindowListeners, index, visibilityWindowListeners.length - index - 1); | |
395 visibilityWindowListeners = visibilityWindowListeners[0..index] ~ visibilityWindowListeners[index+1..$]; | |
396 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
397 |
125 | 398 public void setBrowser (Browser browser) { |
399 this.browser = browser; | |
400 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
401 |
125 | 402 public abstract bool setText (String html); |
403 | |
404 public abstract bool setUrl (String url); | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
405 |
125 | 406 public abstract void stop (); |
407 | |
408 int translateKey (int key) { | |
409 for (int i = 0; i < KeyTable.length; i++) { | |
410 if (KeyTable[i][0] is key) return KeyTable[i][1]; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
411 } |
125 | 412 return 0; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
413 } |
125 | 414 } |