Mercurial > projects > dwt2
annotate org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Browser.d @ 47:65761bc28ab2
swt linux again compilable for d1.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 27 Mar 2009 11:43:53 +0100 |
parents | f713da8bc051 |
children | 7a2dd761a8b2 |
rev | line source |
---|---|
25 | 1 /******************************************************************************* |
2 * Copyright (c) 2003, 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 * Port to the D programming language: | |
11 * John Reimer <terminal.node@gmail.com> | |
12 *******************************************************************************/ | |
13 module org.eclipse.swt.browser.Browser; | |
14 | |
15 import java.lang.all; | |
16 | |
47
65761bc28ab2
swt linux again compilable for d1.
Frank Benoit <benoit@tionex.de>
parents:
25
diff
changeset
|
17 import java.lang.Thread; |
25 | 18 |
19 import org.eclipse.swt.SWT; | |
20 import org.eclipse.swt.SWTError; | |
21 import org.eclipse.swt.SWTException; | |
22 import org.eclipse.swt.widgets.Composite; | |
23 import org.eclipse.swt.widgets.Display; | |
24 import org.eclipse.swt.widgets.Widget; | |
25 | |
26 import org.eclipse.swt.browser.Mozilla; | |
27 import org.eclipse.swt.browser.WebBrowser; | |
28 import org.eclipse.swt.browser.CloseWindowListener; | |
29 import org.eclipse.swt.browser.LocationListener; | |
30 import org.eclipse.swt.browser.OpenWindowListener; | |
31 import org.eclipse.swt.browser.ProgressListener; | |
32 import org.eclipse.swt.browser.StatusTextListener; | |
33 import org.eclipse.swt.browser.TitleListener; | |
34 import org.eclipse.swt.browser.VisibilityWindowListener; | |
35 /** | |
36 * Instances of this class implement the browser user interface | |
37 * metaphor. It allows the user to visualize and navigate through | |
38 * HTML documents. | |
39 * <p> | |
40 * Note that although this class is a subclass of <code>Composite</code>, | |
41 * it does not make sense to set a layout on it. | |
42 * </p> | |
43 * <dl> | |
44 * <dt><b>Styles:</b></dt> | |
45 * <dd>MOZILLA</dd> | |
46 * <dt><b>Events:</b></dt> | |
47 * <dd>CloseWindowListener, LocationListener, OpenWindowListener, ProgressListener, StatusTextListener, TitleListener, VisibilityWindowListener</dd> | |
48 * </dl> | |
49 * <p> | |
50 * IMPORTANT: This class is <em>not</em> intended to be subclassed. | |
51 * </p> | |
52 * | |
53 * @since 3.0 | |
54 */ | |
55 | |
56 public class Browser : Composite { | |
57 WebBrowser webBrowser; | |
58 int userStyle; | |
59 | |
60 static final String PACKAGE_PREFIX = "org.eclipse.swt.browser."; //$NON-NLS-1$ | |
61 static final String NO_INPUT_METHOD = "org.eclipse.swt.internal.gtk.noInputMethod"; //$NON-NLS-1$ | |
62 | |
63 /** | |
64 * Constructs a new instance of this class given its parent | |
65 * and a style value describing its behavior and appearance. | |
66 * <p> | |
67 * The style value is either one of the style constants defined in | |
68 * class <code>SWT</code> which is applicable to instances of this | |
69 * class, or must be built by <em>bitwise OR</em>'ing together | |
70 * (that is, using the <code>int</code> "|" operator) two or more | |
71 * of those <code>SWT</code> style constants. The class description | |
72 * lists the style constants that are applicable to the class. | |
73 * Style bits are also inherited from superclasses. | |
74 * </p> | |
75 * | |
76 * @param parent a widget which will be the parent of the new instance (cannot be null) | |
77 * @param style the style of widget to construct | |
78 * | |
79 * @exception IllegalArgumentException <ul> | |
80 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> | |
81 * </ul> | |
82 * @exception SWTException <ul> | |
83 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li> | |
84 * </ul> | |
85 * @exception SWTError <ul> | |
86 * <li>ERROR_NO_HANDLES if a handle could not be obtained for browser creation</li> | |
87 * </ul> | |
88 * | |
89 * @see Widget#getStyle | |
90 * | |
91 * @since 3.0 | |
92 */ | |
93 public this (Composite parent, int style) { | |
94 super (checkParent (parent), checkStyle (style)); | |
95 userStyle = style; | |
96 | |
97 String platform = SWT.getPlatform (); | |
98 Display display = parent.getDisplay (); | |
99 if ("gtk" == platform) display.setData (NO_INPUT_METHOD, null); //$NON-NLS-1$ | |
100 /* | |
101 String className = null; | |
102 if ((style & SWT.MOZILLA) !is 0) { | |
103 className = "org.eclipse.swt.browser.Mozilla"; //$NON-NLS-1$ | |
104 } else { | |
105 dispose(); | |
106 SWT.error(SWT.ERROR_NO_HANDLES); | |
107 } | |
108 */ | |
109 webBrowser = new Mozilla; | |
110 if (webBrowser is null) { | |
111 dispose (); | |
112 SWT.error (SWT.ERROR_NO_HANDLES); | |
113 } | |
114 | |
115 webBrowser.setBrowser (this); | |
116 webBrowser.create (parent, style); | |
117 } | |
118 | |
119 static Composite checkParent (Composite parent) { | |
120 String platform = SWT.getPlatform (); | |
121 if (!("gtk" == platform)) return parent; //$NON-NLS-1$ | |
122 | |
123 /* | |
124 * Note. Mozilla provides all IM support needed for text input in web pages. | |
125 * If SWT creates another input method context for the widget it will cause | |
126 * indeterminate results to happen (hangs and crashes). The fix is to prevent | |
127 * SWT from creating an input method context for the Browser widget. | |
128 */ | |
129 if (parent !is null && !parent.isDisposed ()) { | |
130 Display display = parent.getDisplay (); | |
131 if (display !is null) { | |
47
65761bc28ab2
swt linux again compilable for d1.
Frank Benoit <benoit@tionex.de>
parents:
25
diff
changeset
|
132 if (display.getThread () is Thread.currentThread ()) { |
25 | 133 display.setData (NO_INPUT_METHOD, stringcast("true")); //$NON-NLS-1$ |
134 } | |
135 } | |
136 } | |
137 return parent; | |
138 } | |
139 | |
140 static int checkStyle(int style) { | |
141 String platform = SWT.getPlatform (); | |
142 if ((style & SWT.MOZILLA) !is 0) { | |
143 if ("carbon" == platform) return style | SWT.EMBEDDED; //$NON-NLS-1$ | |
144 if ("motif" == platform) return style | SWT.EMBEDDED; //$NON-NLS-1$ | |
145 return style; | |
146 } | |
147 | |
148 if ("win32" == platform) { //$NON-NLS-1$ | |
149 /* | |
150 * For IE on win32 the border is supplied by the embedded browser, so remove | |
151 * the style so that the parent Composite will not draw a second border. | |
152 */ | |
153 return style & ~SWT.BORDER; | |
154 } else if ("motif" == platform) { //$NON-NLS-1$ | |
155 return style | SWT.EMBEDDED; | |
156 } | |
157 return style; | |
158 } | |
159 | |
160 /** | |
161 * Clears all session cookies from all current Browser instances. | |
162 * | |
163 * @since 3.2 | |
164 */ | |
165 public static void clearSessions () { | |
166 WebBrowser.clearSessions (); | |
167 } | |
168 | |
169 /** | |
170 * Adds the listener to the collection of listeners who will be | |
171 * notified when the window hosting the receiver should be closed. | |
172 * <p> | |
173 * This notification occurs when a javascript command such as | |
174 * <code>window.close</code> gets executed by a <code>Browser</code>. | |
175 * </p> | |
176 * | |
177 * @param listener the listener which should be notified | |
178 * | |
179 * @exception IllegalArgumentException <ul> | |
180 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
181 * </ul> | |
182 * | |
183 * @exception SWTException <ul> | |
184 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
185 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
186 * </ul> | |
187 * | |
188 * @since 3.0 | |
189 */ | |
190 public void addCloseWindowListener (CloseWindowListener listener) { | |
191 checkWidget(); | |
192 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
193 webBrowser.addCloseWindowListener (listener); | |
194 } | |
195 | |
196 /** | |
197 * Adds the listener to the collection of listeners who will be | |
198 * notified when the current location has changed or is about to change. | |
199 * <p> | |
200 * This notification typically occurs when the application navigates | |
201 * to a new location with {@link #setUrl(String)} or when the user | |
202 * activates a hyperlink. | |
203 * </p> | |
204 * | |
205 * @param listener the listener which should be notified | |
206 * | |
207 * @exception IllegalArgumentException <ul> | |
208 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
209 * </ul> | |
210 * | |
211 * @exception SWTException <ul> | |
212 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
213 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
214 * </ul> | |
215 * | |
216 * @since 3.0 | |
217 */ | |
218 public void addLocationListener (LocationListener listener) { | |
219 checkWidget(); | |
220 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
221 webBrowser.addLocationListener (listener); | |
222 } | |
223 | |
224 /** | |
225 * Adds the listener to the collection of listeners who will be | |
226 * notified when a new window needs to be created. | |
227 * <p> | |
228 * This notification occurs when a javascript command such as | |
229 * <code>window.open</code> gets executed by a <code>Browser</code>. | |
230 * </p> | |
231 * | |
232 * @param listener the listener which should be notified | |
233 * | |
234 * @exception IllegalArgumentException <ul> | |
235 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
236 * </ul> | |
237 * | |
238 * @exception SWTException <ul> | |
239 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
240 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
241 * </ul> | |
242 * | |
243 * @since 3.0 | |
244 */ | |
245 public void addOpenWindowListener (OpenWindowListener listener) { | |
246 checkWidget(); | |
247 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
248 webBrowser.addOpenWindowListener (listener); | |
249 } | |
250 | |
251 /** | |
252 * Adds the listener to the collection of listeners who will be | |
253 * notified when a progress is made during the loading of the current | |
254 * URL or when the loading of the current URL has been completed. | |
255 * | |
256 * @param listener the listener which should be notified | |
257 * | |
258 * @exception IllegalArgumentException <ul> | |
259 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
260 * </ul> | |
261 * | |
262 * @exception SWTException <ul> | |
263 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
264 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
265 * </ul> | |
266 * | |
267 * @since 3.0 | |
268 */ | |
269 public void addProgressListener (ProgressListener listener) { | |
270 checkWidget(); | |
271 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
272 webBrowser.addProgressListener (listener); | |
273 } | |
274 | |
275 /** | |
276 * Adds the listener to the collection of listeners who will be | |
277 * notified when the status text is changed. | |
278 * <p> | |
279 * The status text is typically displayed in the status bar of | |
280 * a browser application. | |
281 * </p> | |
282 * | |
283 * @param listener the listener which should be notified | |
284 * | |
285 * @exception IllegalArgumentException <ul> | |
286 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
287 * </ul> | |
288 * | |
289 * @exception SWTException <ul> | |
290 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
291 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
292 * </ul> | |
293 * | |
294 * @since 3.0 | |
295 */ | |
296 public void addStatusTextListener (StatusTextListener listener) { | |
297 checkWidget(); | |
298 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
299 webBrowser.addStatusTextListener (listener); | |
300 } | |
301 | |
302 /** | |
303 * Adds the listener to the collection of listeners who will be | |
304 * notified when the title of the current document is available | |
305 * or has changed. | |
306 * | |
307 * @param listener the listener which should be notified | |
308 * | |
309 * @exception IllegalArgumentException <ul> | |
310 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
311 * </ul> | |
312 * | |
313 * @exception SWTException <ul> | |
314 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
315 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
316 * </ul> | |
317 * | |
318 * @since 3.0 | |
319 */ | |
320 public void addTitleListener (TitleListener listener) { | |
321 checkWidget(); | |
322 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
323 webBrowser.addTitleListener (listener); | |
324 } | |
325 | |
326 /** | |
327 * Adds the listener to the collection of listeners who will be | |
328 * notified when a window hosting the receiver needs to be displayed | |
329 * or hidden. | |
330 * | |
331 * @param listener the listener which should be notified | |
332 * | |
333 * @exception IllegalArgumentException <ul> | |
334 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
335 * </ul> | |
336 * | |
337 * @exception SWTException <ul> | |
338 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
339 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
340 * </ul> | |
341 * | |
342 * @since 3.0 | |
343 */ | |
344 public void addVisibilityWindowListener (VisibilityWindowListener listener) { | |
345 checkWidget(); | |
346 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
347 webBrowser.addVisibilityWindowListener (listener); | |
348 } | |
349 | |
350 /** | |
351 * Navigate to the previous session history item. | |
352 * | |
353 * @return <code>true</code> if the operation was successful and <code>false</code> otherwise | |
354 * | |
355 * @exception SWTException <ul> | |
356 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
357 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
358 * </ul> | |
359 * | |
360 * @see #forward | |
361 * | |
362 * @since 3.0 | |
363 */ | |
364 public bool back () { | |
365 checkWidget(); | |
366 return webBrowser.back (); | |
367 } | |
368 | |
369 protected void checkSubclass () { | |
370 String name = this.classinfo.name; | |
371 name = name.substring(0, name.lastIndexOf('.')); | |
372 int index = name.lastIndexOf('.'); | |
373 if (!name.substring (0, index + 1).equals (PACKAGE_PREFIX)) { | |
374 getDwtLogger().info( __FILE__, __LINE__, "name: {} == {}", name.substring(0, index + 1), PACKAGE_PREFIX); | |
375 SWT.error (SWT.ERROR_INVALID_SUBCLASS); | |
376 } | |
377 } | |
378 | |
379 /** | |
380 * Execute the specified script. | |
381 * | |
382 * <p> | |
383 * Execute a script containing javascript commands in the context of the current document. | |
384 * | |
385 * @param script the script with javascript commands | |
386 * | |
387 * @return <code>true</code> if the operation was successful and <code>false</code> otherwise | |
388 * | |
389 * @exception IllegalArgumentException <ul> | |
390 * <li>ERROR_NULL_ARGUMENT - if the script is null</li> | |
391 * </ul> | |
392 * | |
393 * @exception SWTException <ul> | |
394 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
395 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
396 * </ul> | |
397 * | |
398 * @since 3.1 | |
399 */ | |
400 public bool execute (String script) { | |
401 checkWidget(); | |
402 if (script is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
403 return webBrowser.execute (script); | |
404 } | |
405 | |
406 /** | |
407 * Navigate to the next session history item. | |
408 * | |
409 * @return <code>true</code> if the operation was successful and <code>false</code> otherwise | |
410 * | |
411 * @exception SWTException <ul> | |
412 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
413 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
414 * </ul> | |
415 * | |
416 * @see #back | |
417 * | |
418 * @since 3.0 | |
419 */ | |
420 public bool forward () { | |
421 checkWidget(); | |
422 return webBrowser.forward (); | |
423 } | |
424 | |
425 public int getStyle () { | |
426 /* | |
427 * If SWT.BORDER was specified at creation time then getStyle() should answer | |
428 * it even though it is removed for IE on win32 in checkStyle(). | |
429 */ | |
430 return super.getStyle () | (userStyle & SWT.BORDER); | |
431 } | |
432 | |
433 /** | |
434 * Returns a string with HTML that represents the content of the current page. | |
435 * | |
436 * @return HTML representing the current page or an empty <code>String</code> | |
437 * if this is empty | |
438 * | |
439 * @exception SWTException <ul> | |
440 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
441 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
442 * </ul> | |
443 * | |
444 * @since 3.4 | |
445 */ | |
446 public String getText () { | |
447 checkWidget(); | |
448 return webBrowser.getText (); | |
449 } | |
450 | |
451 /** | |
452 * Returns the current URL. | |
453 * | |
454 * @return the current URL or an empty <code>String</code> if there is no current URL | |
455 * | |
456 * @exception SWTException <ul> | |
457 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
458 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
459 * </ul> | |
460 * | |
461 * @see #setUrl | |
462 * | |
463 * @since 3.0 | |
464 */ | |
465 public String getUrl () { | |
466 checkWidget(); | |
467 return webBrowser.getUrl (); | |
468 } | |
469 | |
470 /** | |
471 * Returns the JavaXPCOM <code>nsIWebBrowser</code> for the receiver, or <code>null</code> | |
472 * if it is not available. In order for an <code>nsIWebBrowser</code> to be returned all | |
473 * of the following must be true: <ul> | |
474 * <li>the receiver's style must be <code>SWT.MOZILLA</code></li> | |
475 * <li>the classes from JavaXPCOM >= 1.8.1.2 must be resolvable at runtime</li> | |
476 * <li>the version of the underlying XULRunner must be >= 1.8.1.2</li> | |
477 * </ul> | |
478 * | |
479 * @return the receiver's JavaXPCOM <code>nsIWebBrowser</code> or <code>null</code> | |
480 * | |
481 * @since 3.3 | |
482 */ | |
483 public Object getWebBrowser () { | |
484 checkWidget(); | |
485 return webBrowser.getWebBrowser (); | |
486 } | |
487 | |
488 /** | |
489 * Returns <code>true</code> if the receiver can navigate to the | |
490 * previous session history item, and <code>false</code> otherwise. | |
491 * | |
492 * @return the receiver's back command enabled state | |
493 * | |
494 * @exception SWTException <ul> | |
495 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> | |
496 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> | |
497 * </ul> | |
498 * | |
499 * @see #back | |
500 */ | |
501 public bool isBackEnabled () { | |
502 checkWidget(); | |
503 return webBrowser.isBackEnabled (); | |
504 } | |
505 | |
506 public bool isFocusControl () { | |
507 checkWidget(); | |
508 if (webBrowser.isFocusControl ()) return true; | |
509 return super.isFocusControl (); | |
510 } | |
511 | |
512 /** | |
513 * Returns <code>true</code> if the receiver can navigate to the | |
514 * next session history item, and <code>false</code> otherwise. | |
515 * | |
516 * @return the receiver's forward command enabled state | |
517 * | |
518 * @exception SWTException <ul> | |
519 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> | |
520 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> | |
521 * </ul> | |
522 * | |
523 * @see #forward | |
524 */ | |
525 public bool isForwardEnabled () { | |
526 checkWidget(); | |
527 return webBrowser.isForwardEnabled (); | |
528 } | |
529 | |
530 /** | |
531 * Refresh the current page. | |
532 * | |
533 * @exception SWTException <ul> | |
534 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
535 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
536 * </ul> | |
537 * | |
538 * @since 3.0 | |
539 */ | |
540 public void refresh () { | |
541 checkWidget(); | |
542 webBrowser.refresh (); | |
543 } | |
544 | |
545 /** | |
546 * Removes the listener from the collection of listeners who will | |
547 * be notified when the window hosting the receiver should be closed. | |
548 * | |
549 * @param listener the listener which should no longer be notified | |
550 * | |
551 * @exception IllegalArgumentException <ul> | |
552 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
553 * </ul> | |
554 * | |
555 * @exception SWTException <ul> | |
556 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
557 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
558 * </ul> | |
559 * | |
560 * @since 3.0 | |
561 */ | |
562 public void removeCloseWindowListener (CloseWindowListener listener) { | |
563 checkWidget(); | |
564 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
565 webBrowser.removeCloseWindowListener (listener); | |
566 } | |
567 | |
568 /** | |
569 * Removes the listener from the collection of listeners who will | |
570 * be notified when the current location is changed or about to be changed. | |
571 * | |
572 * @param listener the listener which should no longer be notified | |
573 * | |
574 * @exception IllegalArgumentException <ul> | |
575 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
576 * </ul> | |
577 * | |
578 * @exception SWTException <ul> | |
579 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
580 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
581 * </ul> | |
582 * | |
583 * @since 3.0 | |
584 */ | |
585 public void removeLocationListener (LocationListener listener) { | |
586 checkWidget(); | |
587 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
588 webBrowser.removeLocationListener (listener); | |
589 } | |
590 | |
591 /** | |
592 * Removes the listener from the collection of listeners who will | |
593 * be notified when a new window needs to be created. | |
594 * | |
595 * @param listener the listener which should no longer be notified | |
596 * | |
597 * @exception IllegalArgumentException <ul> | |
598 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
599 * </ul> | |
600 * | |
601 * @exception SWTException <ul> | |
602 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
603 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
604 * </ul> | |
605 * | |
606 * @since 3.0 | |
607 */ | |
608 public void removeOpenWindowListener (OpenWindowListener listener) { | |
609 checkWidget(); | |
610 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
611 webBrowser.removeOpenWindowListener (listener); | |
612 } | |
613 | |
614 /** | |
615 * Removes the listener from the collection of listeners who will | |
616 * be notified when a progress is made during the loading of the current | |
617 * URL or when the loading of the current URL has been completed. | |
618 * | |
619 * @param listener the listener which should no longer be notified | |
620 * | |
621 * @exception IllegalArgumentException <ul> | |
622 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
623 * </ul> | |
624 * | |
625 * @exception SWTException <ul> | |
626 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
627 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
628 * </ul> | |
629 * | |
630 * @since 3.0 | |
631 */ | |
632 public void removeProgressListener (ProgressListener listener) { | |
633 checkWidget(); | |
634 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
635 webBrowser.removeProgressListener (listener); | |
636 } | |
637 | |
638 /** | |
639 * Removes the listener from the collection of listeners who will | |
640 * be notified when the status text is changed. | |
641 * | |
642 * @param listener the listener which should no longer be notified | |
643 * | |
644 * @exception IllegalArgumentException <ul> | |
645 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
646 * </ul> | |
647 * | |
648 * @exception SWTException <ul> | |
649 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
650 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
651 * </ul> | |
652 * | |
653 * @since 3.0 | |
654 */ | |
655 public void removeStatusTextListener (StatusTextListener listener) { | |
656 checkWidget(); | |
657 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
658 webBrowser.removeStatusTextListener (listener); | |
659 } | |
660 | |
661 /** | |
662 * Removes the listener from the collection of listeners who will | |
663 * be notified when the title of the current document is available | |
664 * or has changed. | |
665 * | |
666 * @param listener the listener which should no longer be notified | |
667 * | |
668 * @exception IllegalArgumentException <ul> | |
669 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
670 * </ul> | |
671 * | |
672 * @exception SWTException <ul> | |
673 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
674 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
675 * </ul> | |
676 * | |
677 * @since 3.0 | |
678 */ | |
679 public void removeTitleListener (TitleListener listener) { | |
680 checkWidget(); | |
681 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
682 webBrowser.removeTitleListener (listener); | |
683 } | |
684 | |
685 /** | |
686 * Removes the listener from the collection of listeners who will | |
687 * be notified when a window hosting the receiver needs to be displayed | |
688 * or hidden. | |
689 * | |
690 * @param listener the listener which should no longer be notified | |
691 * | |
692 * @exception IllegalArgumentException <ul> | |
693 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> | |
694 * </ul> | |
695 * | |
696 * @exception SWTException <ul> | |
697 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
698 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
699 * </ul> | |
700 * | |
701 * @since 3.0 | |
702 */ | |
703 public void removeVisibilityWindowListener (VisibilityWindowListener listener) { | |
704 checkWidget(); | |
705 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
706 webBrowser.removeVisibilityWindowListener (listener); | |
707 } | |
708 | |
709 /** | |
710 * Renders HTML. | |
711 * | |
712 * <p> | |
713 * The html parameter is Unicode encoded since it is a java <code>String</code>. | |
714 * As a result, the HTML meta tag charset should not be set. The charset is implied | |
715 * by the <code>String</code> itself. | |
716 * | |
717 * @param html the HTML content to be rendered | |
718 * | |
719 * @return true if the operation was successful and false otherwise. | |
720 * | |
721 * @exception IllegalArgumentException <ul> | |
722 * <li>ERROR_NULL_ARGUMENT - if the html is null</li> | |
723 * </ul> | |
724 * | |
725 * @exception SWTException <ul> | |
726 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
727 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
728 * </ul> | |
729 * | |
730 * @see #setUrl | |
731 * | |
732 * @since 3.0 | |
733 */ | |
734 public bool setText (String html) { | |
735 checkWidget(); | |
736 if (html is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
737 return webBrowser.setText (html); | |
738 } | |
739 | |
740 /** | |
741 * Loads a URL. | |
742 * | |
743 * @param url the URL to be loaded | |
744 * | |
745 * @return true if the operation was successful and false otherwise. | |
746 * | |
747 * @exception IllegalArgumentException <ul> | |
748 * <li>ERROR_NULL_ARGUMENT - if the url is null</li> | |
749 * </ul> | |
750 * | |
751 * @exception SWTException <ul> | |
752 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
753 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
754 * </ul> | |
755 * | |
756 * @see #getUrl | |
757 * | |
758 * @since 3.0 | |
759 */ | |
760 public bool setUrl (String url) { | |
761 checkWidget(); | |
762 if (url is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | |
763 return webBrowser.setUrl (url); | |
764 } | |
765 | |
766 /** | |
767 * Stop any loading and rendering activity. | |
768 * | |
769 * @exception SWTException <ul> | |
770 * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li> | |
771 * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> | |
772 * </ul> | |
773 * | |
774 * @since 3.0 | |
775 */ | |
776 public void stop () { | |
777 checkWidget(); | |
778 webBrowser.stop (); | |
779 } | |
780 } |