Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Gayed2007-01-25 17:05:39 +0000
committerGrant Gayed2007-01-25 17:05:39 +0000
commite758c60c4fb72428ae282ccc25e3e75b0adf65c4 (patch)
tree56b29768c95391bbf88f09079a094d1af6bdbb90 /bundles
parenta6131ac9e2d912fd79a498410994704f80907b17 (diff)
downloadeclipse.platform.swt-e758c60c4fb72428ae282ccc25e3e75b0adf65c4.tar.gz
eclipse.platform.swt-e758c60c4fb72428ae282ccc25e3e75b0adf65c4.tar.xz
eclipse.platform.swt-e758c60c4fb72428ae282ccc25e3e75b0adf65c4.zip
mozilla everywhere initial
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.C.properties6
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.motif.OS.properties3
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties4
-rw-r--r--bundles/org.eclipse.swt/.classpath_carbon2
-rw-r--r--bundles/org.eclipse.swt/.classpath_gtk2
-rwxr-xr-xbundles/org.eclipse.swt/.classpath_motif1
-rwxr-xr-xbundles/org.eclipse.swt/.classpath_win322
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/MozillaDelegate.java95
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/Browser.java221
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/gtk/org/eclipse/swt/browser/MozillaDelegate.java157
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download.java369
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory_1_8.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download_1_8.java391
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePicker.java291
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePickerFactory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialog.java203
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/InputStream.java129
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Mozilla.java2151
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/MozillaDelegate.java116
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptDialog.java220
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptService.java450
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptServiceFactory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/WindowCreator.java182
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/internal/mozilla/XPCOMObject.java1023
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download.java345
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory.java74
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory_1_8.java76
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download_1_8.java343
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePicker.java88
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePickerFactory.java72
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialog.java144
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java74
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/InputStream.java84
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Mozilla.java2144
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptService.java439
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptServiceFactory.java74
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/WindowCreator.java136
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/internal/mozilla/XPCOMObject.java827
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/MozillaDelegate.java66
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc45
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h1
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcomglue.h1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java29
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Mozilla.java2267
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c25
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/make_macosx.mak40
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java1
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java2
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.c16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.h5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.c5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.h1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_structs.c (renamed from bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LONG.java)22
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/C.java39
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/LONG.java (renamed from bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/LONG.java)4
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_solaris.mak1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_linux.mak1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os.c16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.c5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.h1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/OS.java1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/build.bat5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/make_win32.mak67
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java12
72 files changed, 4356 insertions, 9785 deletions
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.C.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.C.properties
index 79e6cd9eec..8de443dd7f 100644
--- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.C.properties
+++ b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.C.properties
@@ -16,6 +16,9 @@ C_PTR_sizeof=
C_free=
C_free_0=cast=(void *)
+C_getenv=
+C_getenv_0=cast=(const char *)
+
C_malloc=
C_malloc_0=
@@ -145,6 +148,9 @@ org_eclipse_swt_internal_Compatibility=flags=no_gen
org_eclipse_swt_internal_Converter=flags=no_gen
+org_eclipse_swt_internal_LONG=flags=no_gen
+LONG_value=
+
org_eclipse_swt_internal_Library=flags=no_gen
org_eclipse_swt_internal_Lock=flags=no_gen
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.motif.OS.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.motif.OS.properties
index 5d602496af..f74c84b2e0 100644
--- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.motif.OS.properties
+++ b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.motif.OS.properties
@@ -2111,9 +2111,6 @@ OS_close_0=
OS_fd_set_sizeof=
-OS_getenv=
-OS_getenv_0=cast=(const char *)
-
OS_iconv=
OS_iconv_0=cast=(iconv_t)
OS_iconv_1=cast=(void *)
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties
index 1e59f138fe..a0c2ed291c 100644
--- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties
+++ b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.mozilla.XPCOM.properties
@@ -843,10 +843,6 @@ XPCOM_nsID_Equals=flags=cpp
XPCOM_nsID_Equals_0=cast=(nsID *)
XPCOM_nsID_Equals_1=cast=(nsID *),flags=struct
-XPCOM_nsID_Parse=flags=cpp
-XPCOM_nsID_Parse_0=cast=(nsID *)
-XPCOM_nsID_Parse_1=cast=(const char *)
-
XPCOM_nsID_delete=flags=delete
XPCOM_nsID_delete_0=cast=(nsID *)
diff --git a/bundles/org.eclipse.swt/.classpath_carbon b/bundles/org.eclipse.swt/.classpath_carbon
index fbc4b21b2c..df6ef38eed 100644
--- a/bundles/org.eclipse.swt/.classpath_carbon
+++ b/bundles/org.eclipse.swt/.classpath_carbon
@@ -26,7 +26,9 @@
<classpathentry kind="src" path="Eclipse SWT Program/common"/>
<classpathentry kind="src" path="Eclipse SWT Program/carbon"/>
<classpathentry kind="src" path="Eclipse SWT Browser/common"/>
+ <classpathentry kind="src" path="Eclipse SWT Browser/mozilla"/>
<classpathentry kind="src" path="Eclipse SWT Browser/carbon"/>
+ <classpathentry kind="src" path="Eclipse SWT Mozilla/common"/>
<classpathentry kind="src" path="Eclipse SWT OpenGL/carbon"/>
<classpathentry kind="src" path="Eclipse SWT OpenGL/common"/>
<classpathentry kind="src" path="Eclipse SWT Theme/carbon"/>
diff --git a/bundles/org.eclipse.swt/.classpath_gtk b/bundles/org.eclipse.swt/.classpath_gtk
index ef6abe5b99..1a72586799 100644
--- a/bundles/org.eclipse.swt/.classpath_gtk
+++ b/bundles/org.eclipse.swt/.classpath_gtk
@@ -30,7 +30,7 @@
<classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
<classpathentry kind="src" path="Eclipse SWT Browser/common"/>
<classpathentry kind="src" path="Eclipse SWT Browser/mozilla"/>
- <classpathentry kind="src" path="Eclipse SWT Mozilla/gtk"/>
+ <classpathentry kind="src" path="Eclipse SWT Browser/gtk"/>
<classpathentry kind="src" path="Eclipse SWT Mozilla/common"/>
<classpathentry kind="src" path="Eclipse SWT OpenGL/gtk"/>
<classpathentry kind="src" path="Eclipse SWT OpenGL/glx"/>
diff --git a/bundles/org.eclipse.swt/.classpath_motif b/bundles/org.eclipse.swt/.classpath_motif
index f11fe17ced..d6db4e33a6 100755
--- a/bundles/org.eclipse.swt/.classpath_motif
+++ b/bundles/org.eclipse.swt/.classpath_motif
@@ -36,6 +36,7 @@
<classpathentry kind="src" path="Eclipse SWT Program/cde"/>
<classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
<classpathentry kind="src" path="Eclipse SWT Browser/common"/>
+ <classpathentry kind="src" path="Eclipse SWT Browser/mozilla"/>
<classpathentry kind="src" path="Eclipse SWT Browser/motif"/>
<classpathentry kind="src" path="Eclipse SWT Mozilla/common"/>
<classpathentry kind="src" path="Eclipse SWT OpenGL/motif"/>
diff --git a/bundles/org.eclipse.swt/.classpath_win32 b/bundles/org.eclipse.swt/.classpath_win32
index 2e3058d399..794b1e7e5c 100755
--- a/bundles/org.eclipse.swt/.classpath_win32
+++ b/bundles/org.eclipse.swt/.classpath_win32
@@ -25,6 +25,8 @@
<classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
<classpathentry kind="src" path="Eclipse SWT Browser/common"/>
<classpathentry kind="src" path="Eclipse SWT Browser/win32"/>
+ <classpathentry kind="src" path="Eclipse SWT Browser/mozilla"/>
+ <classpathentry kind="src" path="Eclipse SWT Mozilla/common"/>
<classpathentry kind="src" path="Eclipse SWT OpenGL/win32"/>
<classpathentry kind="src" path="Eclipse SWT OpenGL/common"/>
<classpathentry kind="src" path="Eclipse SWT Theme/win32"/>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..e61aa8ad25
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import java.awt.Frame;
+import java.util.Hashtable;
+
+import org.eclipse.swt.awt.SWT_AWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.internal.LONG;
+import org.eclipse.swt.internal.carbon.*;
+import org.eclipse.swt.internal.cocoa.Cocoa;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ Frame frame;
+ static Hashtable handles = new Hashtable ();
+
+MozillaDelegate (Browser browser) {
+ super ();
+ this.browser = browser;
+}
+
+static Browser findBrowser (int handle) {
+ LONG value = (LONG)handles.get (new LONG (handle));
+ if (value != null) {
+ Display display = Display.getCurrent ();
+ return (Browser)display.findWidget (value.value);
+ }
+ return null;
+}
+
+static char[] mbcsToWcs (String codePage, byte [] buffer) {
+ int encoding = OS.CFStringGetSystemEncoding ();
+ int cfstring = OS.CFStringCreateWithBytes (OS.kCFAllocatorDefault, buffer, buffer.length, encoding, false);
+ char[] chars = null;
+ if (cfstring != 0) {
+ int length = OS.CFStringGetLength (cfstring);
+ chars = new char [length];
+ if (length != 0) {
+ CFRange range = new CFRange ();
+ range.length = length;
+ OS.CFStringGetCharacters (cfstring, range, chars);
+ }
+ OS.CFRelease (cfstring);
+ }
+ return chars;
+}
+
+public static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ char[] chars = new char [string.length()];
+ string.getChars (0, chars.length, chars, 0);
+ int cfstring = OS.CFStringCreateWithCharacters (OS.kCFAllocatorDefault, chars, chars.length);
+ byte[] buffer = null;
+ if (cfstring != 0) {
+ CFRange range = new CFRange ();
+ range.length = chars.length;
+ int encoding = OS.CFStringGetSystemEncoding ();
+ int[] size = new int[1];
+ int numChars = OS.CFStringGetBytes (cfstring, range, encoding, (byte)'?', true, null, 0, size);
+ buffer = new byte [size[0] + (terminate ? 1 : 0)];
+ if (numChars != 0) {
+ numChars = OS.CFStringGetBytes (cfstring, range, encoding, (byte)'?', true, buffer, size[0], size);
+ }
+ OS.CFRelease (cfstring);
+ }
+ return buffer;
+}
+
+int getHandle () {
+ frame = SWT_AWT.new_Frame (browser);
+ int embedHandle = (int)Cocoa.getNativeHandleFromAWT (frame);
+ handles.put (new LONG (embedHandle), new LONG (browser.handle));
+ return embedHandle;
+}
+
+void onDispose (int embedHandle) {
+ handles.remove (new LONG (embedHandle));
+ frame.dispose ();
+}
+
+void setSize (int embedHandle, int width, int height) {
+ // TODO
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/Browser.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/Browser.java
index a11c05363b..51488e882a 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/Browser.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/Browser.java
@@ -30,7 +30,6 @@ import org.eclipse.swt.widgets.*;
public class Browser extends Composite {
WebBrowser webBrowser;
- /* Package Name */
static final String PACKAGE_PREFIX = "org.eclipse.swt.browser."; //$NON-NLS-1$
static final String NO_INPUT_METHOD = "org.eclipse.swt.internal.gtk.noInputMethod"; //$NON-NLS-1$
@@ -64,44 +63,50 @@ public class Browser extends Composite {
*
* @since 3.0
*/
-public Browser(Composite parent, int style) {
- super (checkParent(parent), checkStyle (style));
+public Browser (Composite parent, int style) {
+ super (checkParent (parent), checkStyle (style));
+ String platform = SWT.getPlatform ();
+ Display display = parent.getDisplay ();
+ if ("gtk".equals (platform)) display.setData (NO_INPUT_METHOD, null); //$NON-NLS-1$
String className = null;
- if ((style & SWT.NONE /*MOZILLA*/) != 0) { // TODO
- className = "org.eclipse.swt.browser.Mozilla";
+ if ((style & SWT.MOZILLA) != 0) {
+ className = "org.eclipse.swt.browser.Mozilla"; //$NON-NLS-1$
} else {
- String platform = SWT.getPlatform();
- if ("win32".equals(platform)) {
- className = "org.eclipse.swt.browser.IE";
- } else if ("motif".equals(platform)) {
- className = "org.eclipse.swt.browser.Mozilla";
- } else if ("gtk".equals(platform)) {
- className = "org.eclipse.swt.browser.Mozilla";
- } else if ("carbon".equals(platform)) {
- className = "org.eclipse.swt.browser.Safari";
- } else if ("photon".equals(platform)) {
- className = "org.eclipse.swt.browser.Voyager";
+ if ("win32".equals (platform)) { //$NON-NLS-1$
+ className = "org.eclipse.swt.browser.IE"; //$NON-NLS-1$
+ } else if ("motif".equals (platform)) { //$NON-NLS-1$
+ className = "org.eclipse.swt.browser.Mozilla"; //$NON-NLS-1$
+ } else if ("gtk".equals (platform)) { //$NON-NLS-1$
+ className = "org.eclipse.swt.browser.Mozilla"; //$NON-NLS-1$
+ } else if ("carbon".equals (platform)) { //$NON-NLS-1$
+ className = "org.eclipse.swt.browser.Safari"; //$NON-NLS-1$
+ } else if ("photon".equals (platform)) { //$NON-NLS-1$
+ className = "org.eclipse.swt.browser.Voyager"; //$NON-NLS-1$
} else {
- SWT.error(SWT.ERROR_NO_HANDLES);
+ dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES);
}
}
try {
- Class clazz = Class.forName(className);
- webBrowser = (WebBrowser)clazz.newInstance();
+ Class clazz = Class.forName (className);
+ webBrowser = (WebBrowser)clazz.newInstance ();
} catch (ClassNotFoundException e) {
} catch (IllegalAccessException e) {
} catch (InstantiationException e) {
}
- if (webBrowser == null) SWT.error(SWT.ERROR_NO_HANDLES);
+ if (webBrowser == null) {
+ dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES);
+ }
- webBrowser.setBrowser(this);
- webBrowser.create(parent, style);
+ webBrowser.setBrowser (this);
+ webBrowser.create (parent, style);
}
-static Composite checkParent(Composite parent) {
- String platform = SWT.getPlatform();
- if (!"gtk".equals(platform)) return parent;
+static Composite checkParent (Composite parent) {
+ String platform = SWT.getPlatform ();
+ if (!"gtk".equals (platform)) return parent; //$NON-NLS-1$
/*
* Note. Mozilla provides all IM suport needed for text input in webpages.
@@ -109,11 +114,11 @@ static Composite checkParent(Composite parent) {
* undetermine results to happen (hungs and crashes). The fix is to prevent
* SWT from creating an input method context for the Browser widget.
*/
- if (parent != null && !parent.isDisposed()) {
- Display display = parent.getDisplay();
+ if (parent != null && !parent.isDisposed ()) {
+ Display display = parent.getDisplay ();
if (display != null) {
- if (display.getThread() == Thread.currentThread ()) {
- display.setData (NO_INPUT_METHOD, "true");
+ if (display.getThread () == Thread.currentThread ()) {
+ display.setData (NO_INPUT_METHOD, "true"); //$NON-NLS-1$
}
}
}
@@ -121,18 +126,16 @@ static Composite checkParent(Composite parent) {
}
static int checkStyle(int style) {
- if ((style & SWT.NONE /*MOZILLA*/) != 0) {
+ String platform = SWT.getPlatform ();
+ if ((style & SWT.MOZILLA) != 0) {
+ if ("carbon".equals (platform)) return style | SWT.EMBEDDED; //$NON-NLS-1$
return style;
}
- String platform = SWT.getPlatform();
- if ("win32".equals(platform)) {
+ if ("win32".equals (platform)) { //$NON-NLS-1$
return style & ~SWT.BORDER;
- } else if ("motif".equals(platform)) {
+ } else if ("motif".equals (platform)) { //$NON-NLS-1$
return style | SWT.EMBEDDED;
- } else if ("gtk".equals(platform)) {
- } else if ("carbon".equals(platform)) {
- } else if ("photon".equals(platform)) {
}
return style;
}
@@ -143,7 +146,7 @@ static int checkStyle(int style) {
* @since 3.2
*/
public static void clearSessions () {
- WebBrowser.clearSessions();
+ WebBrowser.clearSessions ();
}
/**
@@ -167,10 +170,10 @@ public static void clearSessions () {
*
* @since 3.0
*/
-public void addCloseWindowListener(CloseWindowListener listener) {
+public void addCloseWindowListener (CloseWindowListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.addCloseWindowListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.addCloseWindowListener (listener);
}
/**
@@ -195,10 +198,10 @@ public void addCloseWindowListener(CloseWindowListener listener) {
*
* @since 3.0
*/
-public void addLocationListener(LocationListener listener) {
+public void addLocationListener (LocationListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.addLocationListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.addLocationListener (listener);
}
/**
@@ -222,10 +225,10 @@ public void addLocationListener(LocationListener listener) {
*
* @since 3.0
*/
-public void addOpenWindowListener(OpenWindowListener listener) {
+public void addOpenWindowListener (OpenWindowListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.addOpenWindowListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.addOpenWindowListener (listener);
}
/**
@@ -246,10 +249,10 @@ public void addOpenWindowListener(OpenWindowListener listener) {
*
* @since 3.0
*/
-public void addProgressListener(ProgressListener listener) {
+public void addProgressListener (ProgressListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.addProgressListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.addProgressListener (listener);
}
/**
@@ -273,10 +276,10 @@ public void addProgressListener(ProgressListener listener) {
*
* @since 3.0
*/
-public void addStatusTextListener(StatusTextListener listener) {
+public void addStatusTextListener (StatusTextListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.addStatusTextListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.addStatusTextListener (listener);
}
/**
@@ -297,10 +300,10 @@ public void addStatusTextListener(StatusTextListener listener) {
*
* @since 3.0
*/
-public void addTitleListener(TitleListener listener) {
+public void addTitleListener (TitleListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.addTitleListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.addTitleListener (listener);
}
/**
@@ -321,10 +324,10 @@ public void addTitleListener(TitleListener listener) {
*
* @since 3.0
*/
-public void addVisibilityWindowListener(VisibilityWindowListener listener) {
+public void addVisibilityWindowListener (VisibilityWindowListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.addVisibilityWindowListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.addVisibilityWindowListener (listener);
}
/**
@@ -341,16 +344,16 @@ public void addVisibilityWindowListener(VisibilityWindowListener listener) {
*
* @since 3.0
*/
-public boolean back() {
+public boolean back () {
checkWidget();
- return webBrowser.back();
+ return webBrowser.back ();
}
-protected void checkSubclass() {
- String name = getClass().getName();
- int index = name.lastIndexOf('.');
- if (!name.substring(0, index + 1).equals(PACKAGE_PREFIX)) {
- SWT.error(SWT.ERROR_INVALID_SUBCLASS);
+protected void checkSubclass () {
+ String name = getClass ().getName ();
+ int index = name.lastIndexOf ('.');
+ if (!name.substring (0, index + 1).equals (PACKAGE_PREFIX)) {
+ SWT.error (SWT.ERROR_INVALID_SUBCLASS);
}
}
@@ -375,10 +378,10 @@ protected void checkSubclass() {
*
* @since 3.1
*/
-public boolean execute(String script) {
+public boolean execute (String script) {
checkWidget();
- if (script == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- return webBrowser.execute(script);
+ if (script == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ return webBrowser.execute (script);
}
/**
@@ -395,9 +398,9 @@ public boolean execute(String script) {
*
* @since 3.0
*/
-public boolean forward() {
+public boolean forward () {
checkWidget();
- return webBrowser.forward();
+ return webBrowser.forward ();
}
/**
@@ -413,9 +416,9 @@ public boolean forward() {
*
* @see #back
*/
-public boolean isBackEnabled() {
+public boolean isBackEnabled () {
checkWidget();
- return webBrowser.isBackEnabled();
+ return webBrowser.isBackEnabled ();
}
/**
@@ -431,9 +434,9 @@ public boolean isBackEnabled() {
*
* @see #forward
*/
-public boolean isForwardEnabled() {
+public boolean isForwardEnabled () {
checkWidget();
- return webBrowser.isForwardEnabled();
+ return webBrowser.isForwardEnabled ();
}
/**
@@ -450,15 +453,15 @@ public boolean isForwardEnabled() {
*
* @since 3.0
*/
-public String getUrl() {
+public String getUrl () {
checkWidget();
- return webBrowser.getUrl();
+ return webBrowser.getUrl ();
}
public boolean isFocusControl () {
checkWidget();
- if (webBrowser.isFocusControl()) return true;
- return super.isFocusControl();
+ if (webBrowser.isFocusControl ()) return true;
+ return super.isFocusControl ();
}
/**
@@ -471,9 +474,9 @@ public boolean isFocusControl () {
*
* @since 3.0
*/
-public void refresh() {
+public void refresh () {
checkWidget();
- webBrowser.refresh();
+ webBrowser.refresh ();
}
/**
@@ -493,10 +496,10 @@ public void refresh() {
*
* @since 3.0
*/
-public void removeCloseWindowListener(CloseWindowListener listener) {
+public void removeCloseWindowListener (CloseWindowListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.removeCloseWindowListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.removeCloseWindowListener (listener);
}
/**
@@ -516,10 +519,10 @@ public void removeCloseWindowListener(CloseWindowListener listener) {
*
* @since 3.0
*/
-public void removeLocationListener(LocationListener listener) {
+public void removeLocationListener (LocationListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.removeLocationListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.removeLocationListener (listener);
}
/**
@@ -539,10 +542,10 @@ public void removeLocationListener(LocationListener listener) {
*
* @since 3.0
*/
-public void removeOpenWindowListener(OpenWindowListener listener) {
+public void removeOpenWindowListener (OpenWindowListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.removeOpenWindowListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.removeOpenWindowListener (listener);
}
/**
@@ -563,10 +566,10 @@ public void removeOpenWindowListener(OpenWindowListener listener) {
*
* @since 3.0
*/
-public void removeProgressListener(ProgressListener listener) {
+public void removeProgressListener (ProgressListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.removeProgressListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.removeProgressListener (listener);
}
/**
@@ -586,10 +589,10 @@ public void removeProgressListener(ProgressListener listener) {
*
* @since 3.0
*/
-public void removeStatusTextListener(StatusTextListener listener) {
+public void removeStatusTextListener (StatusTextListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.removeStatusTextListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.removeStatusTextListener (listener);
}
/**
@@ -610,10 +613,10 @@ public void removeStatusTextListener(StatusTextListener listener) {
*
* @since 3.0
*/
-public void removeTitleListener(TitleListener listener) {
+public void removeTitleListener (TitleListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.removeTitleListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.removeTitleListener (listener);
}
/**
@@ -634,10 +637,10 @@ public void removeTitleListener(TitleListener listener) {
*
* @since 3.0
*/
-public void removeVisibilityWindowListener(VisibilityWindowListener listener) {
+public void removeVisibilityWindowListener (VisibilityWindowListener listener) {
checkWidget();
- if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- webBrowser.removeVisibilityWindowListener(listener);
+ if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ webBrowser.removeVisibilityWindowListener (listener);
}
/**
@@ -665,10 +668,10 @@ public void removeVisibilityWindowListener(VisibilityWindowListener listener) {
*
* @since 3.0
*/
-public boolean setText(String html) {
+public boolean setText (String html) {
checkWidget();
- if (html == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- return webBrowser.setText(html);
+ if (html == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ return webBrowser.setText (html);
}
/**
@@ -691,10 +694,10 @@ public boolean setText(String html) {
*
* @since 3.0
*/
-public boolean setUrl(String url) {
+public boolean setUrl (String url) {
checkWidget();
- if (url == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
- return webBrowser.setUrl(url);
+ if (url == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
+ return webBrowser.setUrl (url);
}
/**
@@ -707,8 +710,8 @@ public boolean setUrl(String url) {
*
* @since 3.0
*/
-public void stop() {
+public void stop () {
checkWidget();
- webBrowser.stop();
+ webBrowser.stop ();
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/gtk/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/gtk/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..e1ffc6fd36
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/gtk/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.gtk.*;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ int /*long*/ mozillaHandle;
+ static Callback eventCallback;
+ static int /*long*/ eventProc;
+ static final int STOP_PROPOGATE = 1;
+ static final String ADD_WIDGET_KEY = "org.eclipse.swt.internal.addWidget"; //$NON-NLS-1$
+
+ static boolean IsLinux;
+ static {
+ String osName = System.getProperty ("os.name").toLowerCase (); //$NON-NLS-1$
+ IsLinux = osName.startsWith ("linux"); //$NON-NLS-1$
+ }
+
+MozillaDelegate (Browser browser) {
+ super ();
+ if (!IsLinux) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [Unsupported platform]"); //$NON-NLS-1$
+ }
+ this.browser = browser;
+}
+
+static int /*long*/ eventProc (int /*long*/ handle, int /*long*/ gdkEvent, int /*long*/ pointer) {
+ Widget widget = Display.getCurrent ().findWidget (handle);
+ if (widget != null && widget instanceof Browser) {
+ return ((Mozilla)((Browser)widget).webBrowser).delegate.gtk_event (handle, gdkEvent, pointer);
+ }
+ return 0;
+}
+
+static Browser findBrowser (int /*long*/ handle) {
+ /*
+ * Note. On GTK, Mozilla is embedded into a GtkHBox handle
+ * and not directly into the parent Composite handle.
+ */
+ int /*long*/ parent = OS.gtk_widget_get_parent (handle);
+ Display display = Display.getCurrent ();
+ return (Browser)display.findWidget (parent);
+}
+
+public static char[] mbcsToWcs (String codePage, byte [] buffer) {
+ return Converter.mbcsToWcs (codePage, buffer);
+}
+
+public static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ return Converter.wcsToMbcs (codePage, string, terminate);
+}
+
+int /*long*/ getHandle () {
+ if (eventCallback == null) {
+ eventCallback = new Callback (getClass (), "eventProc", 3); //$NON-NLS-1$
+ eventProc = eventCallback.getAddress ();
+ if (eventProc == 0) {
+ browser.dispose ();
+ Mozilla.error (SWT.ERROR_NO_MORE_CALLBACKS);
+ }
+ }
+
+ /*
+ * Bug in Mozilla Linux GTK. Embedding Mozilla into a GtkFixed
+ * handle causes problems with some Mozilla plug-ins. For some
+ * reason, the Flash plug-in causes the child of the GtkFixed
+ * handle to be resized to 1 when the Flash document is loaded.
+ * That could be due to gtk_container_resize_children being called
+ * by Mozilla - or one of its plug-ins - on the GtkFixed handle,
+ * causing the child of the GtkFixed handle to be resized to 1.
+ * The workaround is to embed Mozilla into a GtkHBox handle.
+ */
+ int /*long*/ embedHandle = OS.gtk_hbox_new (false, 0);
+ OS.gtk_container_add (browser.handle, embedHandle);
+ OS.gtk_widget_show (embedHandle);
+
+ /*
+ * Feature in Mozilla. GtkEvents such as key down, key pressed may be consumed
+ * by Mozilla and never be received by the parent embedder. The workaround
+ * is to find the top Mozilla gtk widget that receives all the Mozilla GtkEvents,
+ * i.e. the first child of the parent embedder. Then hook event callbacks and
+ * forward the event to the parent embedder before Mozilla received and consumed
+ * them.
+ */
+ int /*long*/ list = OS.gtk_container_get_children (embedHandle);
+ if (list != 0) {
+ mozillaHandle = OS.g_list_data (list);
+ OS.g_list_free (list);
+
+ if (mozillaHandle != 0) {
+ browser.getDisplay ().setData (ADD_WIDGET_KEY, new Object[] {new LONG (mozillaHandle), browser});
+
+ /* Note. Callback to get events before Mozilla receives and consumes them. */
+ OS.g_signal_connect (mozillaHandle, OS.event, eventProc, 0);
+
+ /*
+ * Note. Callback to get the events not consumed by Mozilla - and to block
+ * them so that they don't get propagated to the parent handle twice.
+ * This hook is set after Mozilla and is therefore called after Mozilla's
+ * handler because GTK dispatches events in their order of registration.
+ */
+ OS.g_signal_connect (mozillaHandle, OS.key_press_event, eventProc, STOP_PROPOGATE);
+ OS.g_signal_connect (mozillaHandle, OS.key_release_event, eventProc, STOP_PROPOGATE);
+ }
+ }
+ return embedHandle;
+}
+
+int /*long*/ gtk_event (int /*long*/ handle, int /*long*/ gdkEvent, int /*long*/ pointer) {
+ /*
+ * Stop the propagation of events that are not consumed by Mozilla, before
+ * they reach the parent embedder. These event have already been received.
+ */
+ if (pointer == STOP_PROPOGATE) return 1;
+
+ GdkEvent event = new GdkEvent ();
+ OS.memmove (event, gdkEvent, GdkEvent.sizeof);
+ switch (event.type) {
+ case OS.GDK_KEY_PRESS:
+ case OS.GDK_KEY_RELEASE:
+ case OS.GDK_BUTTON_PRESS:
+ case OS.GDK_BUTTON_RELEASE: {
+ /*
+ * Forward the event to the parent embedder before Mozilla receives it,
+ * as Mozilla may or may not consume it.
+ */
+ OS.gtk_widget_event (browser.handle, gdkEvent);
+ break;
+ }
+ }
+ return 0;
+}
+
+void onDispose (int /*long*/ embedHandle) {
+ browser.getDisplay ().setData (ADD_WIDGET_KEY, new Object[] {new LONG (mozillaHandle), null});
+}
+
+void setSize (int /*long*/ embedHandle, int width, int height) {
+ OS.gtk_widget_set_size_request (embedHandle, width, height);
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download.java
deleted file mode 100644
index dff153cc57..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class Download {
- XPCOMObject supports;
- XPCOMObject download;
- XPCOMObject progressDialog;
- XPCOMObject webProgressListener;
- nsIHelperAppLauncher helperAppLauncher;
- int refCount = 0;
-
- Shell shell;
- Label status;
- Button cancel;
-
-public Download() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- download = new XPCOMObject(new int[]{2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Init(args[0], args[1], args[2],args[3], args[4], args[5], args[6]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method6(int /*long*/[] args) {return GetPersist(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return SetDisplayName(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetListener(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return SetListener(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetObserver(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return SetObserver(args[0]);}
- };
-
- progressDialog = new XPCOMObject(new int[]{2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Init(args[0], args[1], args[2],args[3], args[4], args[5], args[6]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method6(int /*long*/[] args) {return GetPersist(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return SetDisplayName(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetListener(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return SetListener(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetObserver(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return SetObserver(args[0]);}
- public int /*long*/ method16(int /*long*/[] args) {return Open(args[0]);}
- public int /*long*/ method17(int /*long*/[] args) {return GetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method18(int /*long*/[] args) {return SetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method19(int /*long*/[] args) {return GetDialog(args[0]);}
- public int /*long*/ method20(int /*long*/[] args) {return SetDialog(args[0]);}
- };
-
- webProgressListener = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2],args[3],args[4],args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (download != null) {
- download.dispose();
- download = null;
- }
- if (progressDialog != null) {
- progressDialog.dispose();
- progressDialog = null;
- }
- if (webProgressListener != null) {
- webProgressListener.dispose();
- webProgressListener = null;
- }
-}
-
-int /*long*/ getAddress() {
- return progressDialog.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDownload.NS_IDOWNLOAD_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {download.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIProgressDialog.NS_IPROGRESSDIALOG_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {progressDialog.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webProgressListener.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIDownload */
-
-/* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
-public int /*long*/ Init(int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aPersist) {
- nsIURI source = new nsIURI(aSource);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- int rc = source.GetHost(aSpec);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- String url = new String(dest);
-
- /*
- * As of mozilla 1.7 the second argument of the nsIDownload interface's
- * Init function changed from nsILocalFile to nsIURI. Detect which of
- * these interfaces the second argument implements and act accordingly.
- */
- String filename = null;
- nsISupports supports = new nsISupports(aTarget);
- int /*long*/[] result = new int /*long*/[1];
- rc = supports.QueryInterface(nsIURI.NS_IURI_IID, result);
- if (rc == 0) { /* >= 1.7 */
- nsIURI target = new nsIURI(result[0]);
- result[0] = 0;
- int /*long*/ aPath = XPCOM.nsEmbedCString_new();
- rc = target.GetPath(aPath);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- length = XPCOM.nsEmbedCString_Length(aPath);
- buffer = XPCOM.nsEmbedCString_get(aPath);
- dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aPath);
- filename = new String(dest);
- int separator = filename.lastIndexOf(System.getProperty("file.separator")); //$NON-NLS-1$
- filename = filename.substring(separator + 1);
- target.Release();
- } else { /* < 1.7 */
- nsILocalFile target = new nsILocalFile(aTarget);
- int /*long*/ aNativeTarget = XPCOM.nsEmbedCString_new();
- rc = target.GetNativeLeafName(aNativeTarget);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- length = XPCOM.nsEmbedCString_Length(aNativeTarget);
- buffer = XPCOM.nsEmbedCString_get(aNativeTarget);
- dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aNativeTarget);
- filename = new String(dest);
- }
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- if (event.widget == cancel) {
- shell.close();
- }
- if (helperAppLauncher != null) {
- helperAppLauncher.Cancel();
- helperAppLauncher.Release();
- }
- shell = null;
- helperAppLauncher = null;
- }
- };
- shell = new Shell(SWT.DIALOG_TRIM);
- String msg = Compatibility.getMessage("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
- shell.setText(msg);
- GridLayout gridLayout = new GridLayout();
- gridLayout.marginHeight = 15;
- gridLayout.marginWidth = 15;
- gridLayout.verticalSpacing = 20;
- shell.setLayout(gridLayout);
- msg = Compatibility.getMessage("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
- new Label(shell, SWT.SIMPLE).setText(msg);
- status = new Label(shell, SWT.SIMPLE);
- msg = Compatibility.getMessage("SWT_Download_Started"); //$NON-NLS-1$
- status.setText(msg);
- GridData data = new GridData ();
- data.grabExcessHorizontalSpace = true;
- data.grabExcessVerticalSpace = true;
- status.setLayoutData (data);
-
- cancel = new Button(shell, SWT.PUSH);
- cancel.setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
- data = new GridData ();
- data.horizontalAlignment = GridData.CENTER;
- cancel.setLayoutData (data);
- cancel.addListener(SWT.Selection, listener);
- shell.addListener(SWT.Close, listener);
- shell.pack();
- shell.open();
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ GetSource(int /*long*/ aSource) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetTarget(int /*long*/ aTarget) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetPersist(int /*long*/ aPersist) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetPercentComplete(int /*long*/ aPercentComplete) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetDisplayName(int /*long*/ aDisplayName) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetDisplayName(int /*long*/ aDisplayName) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetStartTime(int /*long*/ aStartTime) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetMIMEInfo(int /*long*/ aMIMEInfo) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetListener(int /*long*/ aListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetListener(int /*long*/ aListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetObserver(int /*long*/ aObserver) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetObserver(int /*long*/ aObserver) {
- if (aObserver != 0) {
- nsISupports supports = new nsISupports(aObserver);
- int /*long*/[] result = new int /*long*/[1];
- int rc = supports.QueryInterface(nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
- helperAppLauncher = new nsIHelperAppLauncher(result[0]);
- }
- return XPCOM.NS_OK;
-}
-
-/* nsIProgressDialog */
-public int /*long*/ Open(int /*long*/ aParent) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetDialog(int /*long*/ aDialog) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetDialog(int /*long*/ aDialog) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-/* nsIWebProgressListener */
-
-int /*long*/ OnStateChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
- if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
- if (helperAppLauncher != null) helperAppLauncher.Release();
- helperAppLauncher = null;
- if (shell != null && !shell.isDisposed()) shell.dispose();
- shell = null;
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnProgressChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
- int currentKBytes = (int)/*64*/aCurTotalProgress / 1024;
- int totalKBytes = (int)/*64*/aMaxTotalProgress / 1024;
- if (shell != null & !shell.isDisposed()) {
- Object[] arguments = {new Integer(currentKBytes), new Integer(totalKBytes)};
- String statusMsg = Compatibility.getMessage("SWT_Download_Status", arguments); //$NON-NLS-1$
- status.setText(statusMsg);
- shell.layout(true);
- shell.getDisplay().update();
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnLocationChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnStatusChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnSecurityChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory.java
deleted file mode 100644
index 467bc0e30f..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-
-class DownloadFactory {
- XPCOMObject supports;
- XPCOMObject factory;
- int refCount = 0;
-
-public DownloadFactory() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (factory != null) {
- factory.dispose();
- factory = null;
- }
-}
-
-int /*long*/ getAddress() {
- return factory.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIFactory */
-
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- Download download = new Download();
- download.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {download.getAddress()}, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ LockFactory(int /*long*/ lock) {
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory_1_8.java
deleted file mode 100644
index 53bf8eacd9..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/DownloadFactory_1_8.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-
-class DownloadFactory_1_8 {
- XPCOMObject supports;
- XPCOMObject factory;
- int refCount = 0;
-
-public DownloadFactory_1_8() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (factory != null) {
- factory.dispose();
- factory = null;
- }
-}
-
-int /*long*/ getAddress() {
- return factory.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIFactory */
-
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- Download_1_8 download = new Download_1_8();
- download.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {download.getAddress()}, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ LockFactory(int /*long*/ lock) {
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download_1_8.java
deleted file mode 100644
index 373820af3c..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Download_1_8.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class Download_1_8 {
- XPCOMObject supports;
- XPCOMObject download;
- XPCOMObject progressDialog;
- XPCOMObject webProgressListener;
- nsICancelable cancelable;
- int refCount = 0;
-
- Shell shell;
- Label status;
- Button cancel;
-
- static final boolean is32 = C.PTR_SIZEOF == 4;
-
-public Download_1_8() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- download = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2], args[3], args[4], args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- public int /*long*/ method8(int /*long*/[] args) {
- if (args.length == 10) {
- return OnProgressChange64_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
- } else {
- return OnProgressChange64(args[0], args[1], args[2], args[3], args[4], args[5]);
- }
- }
- public int /*long*/ method9(int /*long*/[] args) {
- if (args.length == 8) {
- return Init_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
- } else {
- return Init(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
- }
- }
- public int /*long*/ method10(int /*long*/[] args) {return GetTargetFile(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetAmountTransferred(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return GetSize(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method16(int /*long*/[] args) {return GetCancelable(args[0]);}
- public int /*long*/ method17(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method18(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method19(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
- };
-
- progressDialog = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2], args[3], args[4], args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- public int /*long*/ method8(int /*long*/[] args) {
- if (args.length == 10) {
- return OnProgressChange64_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
- } else {
- return OnProgressChange64(args[0], args[1], args[2], args[3], args[4], args[5]);
- }
- }
- public int /*long*/ method9(int /*long*/[] args) {
- if (args.length == 8) {
- return Init_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
- } else {
- return Init(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
- }
- }
- public int /*long*/ method10(int /*long*/[] args) {return GetTargetFile(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetAmountTransferred(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return GetSize(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method16(int /*long*/[] args) {return GetCancelable(args[0]);}
- public int /*long*/ method17(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method18(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method19(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
- public int /*long*/ method20(int /*long*/[] args) {return Open(args[0]);}
- public int /*long*/ method21(int /*long*/[] args) {return GetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method22(int /*long*/[] args) {return SetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method23(int /*long*/[] args) {return GetObserver(args[0]);}
- public int /*long*/ method24(int /*long*/[] args) {return SetObserver(args[0]);}
- public int /*long*/ method25(int /*long*/[] args) {return GetDialog(args[0]);}
- public int /*long*/ method26(int /*long*/[] args) {return SetDialog(args[0]);}
- };
-
- webProgressListener = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2],args[3],args[4],args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (download != null) {
- download.dispose();
- download = null;
- }
- if (progressDialog != null) {
- progressDialog.dispose();
- progressDialog = null;
- }
- if (webProgressListener != null) {
- webProgressListener.dispose();
- webProgressListener = null;
- }
-}
-
-int /*long*/ getAddress() {
- return progressDialog.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDownload_1_8.NS_IDOWNLOAD_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {download.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIProgressDialog_1_8.NS_IPROGRESSDIALOG_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {progressDialog.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webProgressListener.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIDownload */
-
-/* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
-public int Init_32(int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aTempFile, int /*long*/ aCancelable) {
- long startTime = (startTime2 << 32) + startTime1;
- return Init (aSource, aTarget, aDisplayName, aMIMEInfo, startTime, aTempFile, aCancelable);
-}
-
-public int Init(int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, long startTime, int /*long*/ aTempFile, int /*long*/ aCancelable) {
- cancelable = new nsICancelable(aCancelable);
- nsIURI source = new nsIURI(aSource);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- int rc = source.GetHost(aSpec);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- String url = new String(dest);
-
- nsIURI target = new nsIURI(aTarget);
- int /*long*/ aPath = XPCOM.nsEmbedCString_new();
- rc = target.GetPath(aPath);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- length = XPCOM.nsEmbedCString_Length(aPath);
- buffer = XPCOM.nsEmbedCString_get(aPath);
- dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aPath);
- String filename = new String(dest);
- int separator = filename.lastIndexOf(System.getProperty("file.separator")); //$NON-NLS-1$
- filename = filename.substring(separator + 1);
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- if (event.widget == cancel) {
- shell.close();
- }
- if (cancelable != null) {
- int rc = cancelable.Cancel(XPCOM.NS_BINDING_ABORTED);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- }
- shell = null;
- cancelable = null;
- }
- };
- shell = new Shell(SWT.DIALOG_TRIM);
- String msg = Compatibility.getMessage("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
- shell.setText(msg);
- GridLayout gridLayout = new GridLayout();
- gridLayout.marginHeight = 15;
- gridLayout.marginWidth = 15;
- gridLayout.verticalSpacing = 20;
- shell.setLayout(gridLayout);
- msg = Compatibility.getMessage("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
- new Label(shell, SWT.SIMPLE).setText(msg);
- status = new Label(shell, SWT.SIMPLE);
- msg = Compatibility.getMessage("SWT_Download_Started"); //$NON-NLS-1$
- status.setText(msg);
- GridData data = new GridData ();
- data.grabExcessHorizontalSpace = true;
- data.grabExcessVerticalSpace = true;
- status.setLayoutData (data);
-
- cancel = new Button(shell, SWT.PUSH);
- cancel.setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
- data = new GridData ();
- data.horizontalAlignment = GridData.CENTER;
- cancel.setLayoutData (data);
- cancel.addListener(SWT.Selection, listener);
- shell.addListener(SWT.Close, listener);
- shell.pack();
- shell.open();
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetAmountTransferred(int /*long*/ arg0) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetCancelable(int /*long*/ arg0) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetDisplayName(int /*long*/ aDisplayName) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetMIMEInfo(int /*long*/ aMIMEInfo) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetPercentComplete(int /*long*/ aPercentComplete) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetSize(int /*long*/ arg0) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetSource(int /*long*/ aSource) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetStartTime(int /*long*/ aStartTime) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetTarget(int /*long*/ aTarget) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetTargetFile(int /*long*/ arg0) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-/* nsIProgressDialog */
-public int /*long*/ GetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetDialog(int /*long*/ aDialog) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ GetObserver(int /*long*/ aObserver) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ Open(int /*long*/ aParent) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetDialog(int /*long*/ aDialog) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ SetObserver(int /*long*/ aObserver) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-/* nsIWebProgressListener */
-
-int /*long*/ OnLocationChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnProgressChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
- return OnProgressChange64(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
-}
-
-/* Note. The last 4 args in the original interface are defined as PRInt64. These each translate into two java ints. */
-int /*long*/ OnProgressChange64_32(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress1, int /*long*/ aCurSelfProgress2, int /*long*/ aMaxSelfProgress1, int /*long*/ aMaxSelfProgress2, int /*long*/ aCurTotalProgress1, int /*long*/ aCurTotalProgress2, int /*long*/ aMaxTotalProgress1, int /*long*/ aMaxTotalProgress2) {
- long aCurSelfProgress = (aCurSelfProgress2 << 32) + aCurSelfProgress1;
- long aMaxSelfProgress = (aMaxSelfProgress2 << 32) + aMaxSelfProgress1;
- long aCurTotalProgress = (aCurTotalProgress2 << 32) + aCurTotalProgress1;
- long aMaxTotalProgress = (aMaxTotalProgress2 << 32) + aMaxTotalProgress1;
- return OnProgressChange64(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
-}
-
-int /*long*/ OnProgressChange64(int /*long*/ aWebProgress, int /*long*/ aRequest, long aCurSelfProgress, long aMaxSelfProgress, long aCurTotalProgress, long aMaxTotalProgress) {
- long currentKBytes = aCurTotalProgress / 1024;
- long totalKBytes = aMaxTotalProgress / 1024;
- if (shell != null & !shell.isDisposed()) {
- Object[] arguments = {new Long(currentKBytes), new Long(totalKBytes)};
- String statusMsg = Compatibility.getMessage("SWT_Download_Status", arguments); //$NON-NLS-1$
- status.setText(statusMsg);
- shell.layout(true);
- shell.getDisplay().update();
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnSecurityChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnStateChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
- if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
- cancelable = null;
- if (shell != null && !shell.isDisposed()) shell.dispose();
- shell = null;
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnStatusChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePicker.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePicker.java
deleted file mode 100644
index 28e3cdb486..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePicker.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.Converter;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.widgets.*;
-
-class FilePicker {
- XPCOMObject supports;
- XPCOMObject filePicker;
-
- int refCount = 0;
-
- int mode;
- int /*long*/ parentHandle;
- String[] files, masks;
- String defaultFilename, directory, title;
-
- static final String SEPARATOR = System.getProperty ("file.separator"); //$NON-NLS-1$
-
-public FilePicker () {
- createCOMInterfaces ();
-}
-
-int AddRef () {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces () {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject (new int[] {2, 0, 0}){
- public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface(args [0], args [1]);}
- public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
- public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
- };
-
- filePicker = new XPCOMObject (new int[] {2, 0, 0, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
- public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args [0], args [1]);}
- public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
- public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
- public int /*long*/ method3 (int /*long*/[] args) {return Init (args [0], args [1], args [2]);}
- public int /*long*/ method4 (int /*long*/[] args) {return AppendFilters (args [0]);}
- public int /*long*/ method5 (int /*long*/[] args) {return AppendFilter (args [0], args [1]);}
- public int /*long*/ method6 (int /*long*/[] args) {return GetDefaultString (args [0]);}
- public int /*long*/ method7 (int /*long*/[] args) {return SetDefaultString (args [0]);}
- public int /*long*/ method8 (int /*long*/[] args) {return GetDefaultExtension (args [0]);}
- public int /*long*/ method9 (int /*long*/[] args) {return SetDefaultExtension (args [0]);}
- public int /*long*/ method10 (int /*long*/[] args) {return GetFilterIndex (args [0]);}
- public int /*long*/ method11 (int /*long*/[] args) {return SetFilterIndex (args [0]);}
- public int /*long*/ method12 (int /*long*/[] args) {return GetDisplayDirectory (args [0]);}
- public int /*long*/ method13 (int /*long*/[] args) {return SetDisplayDirectory (args [0]);}
- public int /*long*/ method14 (int /*long*/[] args) {return GetFile (args [0]);}
- public int /*long*/ method15 (int /*long*/[] args) {return GetFileURL (args [0]);}
- public int /*long*/ method16 (int /*long*/[] args) {return GetFiles (args [0]);}
- public int /*long*/ method17 (int /*long*/[] args) {return Show (args [0]);}
- };
-}
-
-void disposeCOMInterfaces () {
- if (supports != null) {
- supports.dispose ();
- supports = null;
- }
- if (filePicker != null) {
- filePicker.dispose ();
- filePicker = null;
- }
-}
-
-int /*long*/ getAddress () {
- return filePicker.getAddress ();
-}
-
-int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID ();
- XPCOM.memmove (guid, riid, nsID.sizeof);
-
- if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
- AddRef ();
- return XPCOM.NS_OK;
- }
- if (guid.Equals (nsIFilePicker.NS_IFILEPICKER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {filePicker.getAddress ()}, C.PTR_SIZEOF);
- AddRef ();
- return XPCOM.NS_OK;
- }
- XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release () {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces ();
- return refCount;
-}
-
-/* nsIFilePicker */
-
-int /*long*/ Init (int /*long*/ parent, int /*long*/ title, int /*long*/ mode) {
- parentHandle = parent;
- this.mode = (int)/*64*/mode;
- if (title != 0) {
- int length = XPCOM.strlen_PRUnichar (title);
- char[] chars = new char [length];
- XPCOM.memmove (chars, title, length * 2);
- this.title = new String (chars);
- }
-
- return XPCOM.NS_OK;
-}
-
-int /*long*/ Show (int /*long*/ _retval) {
- if (mode == nsIFilePicker.modeGetFolder) {
- /* picking a directory */
- int result = showDirectoryPicker ();
- XPCOM.memmove (_retval, new int /*long*/[] {result}, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
- }
-
- /* picking a file */
- int style = mode == nsIFilePicker.modeSave ? SWT.SAVE : SWT.OPEN;
- if (mode == nsIFilePicker.modeOpenMultiple) style |= SWT.MULTI;
- Shell parent;
- if (parentHandle != 0) {
- parent = Shell.motif_new (Display.getCurrent (), parentHandle);
- } else {
- parent = new Shell (Display.getCurrent ());
- }
- FileDialog dialog = new FileDialog (parent, style);
- if (title != null) dialog.setText (title);
- if (directory != null) dialog.setFilterPath (directory);
- if (masks != null) dialog.setFilterExtensions (masks);
- if (defaultFilename != null) dialog.setFileName (defaultFilename);
- String filename = dialog.open ();
- files = dialog.getFileNames ();
- directory = dialog.getFilterPath ();
- title = defaultFilename = null;
- masks = null;
- int result = filename == null ? nsIFilePicker.returnCancel : nsIFilePicker.returnOK;
- XPCOM.memmove (_retval, new int /*long*/[] {result}, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-int showDirectoryPicker () {
- Shell parent;
- if (parentHandle != 0) {
- parent = Shell.motif_new (Display.getCurrent (), parentHandle);
- } else {
- parent = new Shell (Display.getCurrent ());
- }
- DirectoryDialog dialog = new DirectoryDialog (parent, SWT.NONE);
- if (title != null) dialog.setText (title);
- if (directory != null) dialog.setFilterPath (directory);
- directory = dialog.open ();
- title = defaultFilename = null;
- files = masks = null;
- return directory == null ? nsIFilePicker.returnCancel : nsIFilePicker.returnOK;
-}
-
-int /*long*/ GetFiles (int /*long*/ aFiles) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetFileURL (int /*long*/ aFileURL) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetFile (int /*long*/ aFile) {
- String filename = ""; //$NON-NLS-1$
- if (directory != null) filename += directory + SEPARATOR;
- if (files != null && files.length > 0) filename += files [0];
- nsEmbedString path = new nsEmbedString (filename);
- int /*long*/[] file = new int /*long*/[1];
- int rc = XPCOM.NS_NewLocalFile (path.getAddress (), true, file);
- path.dispose ();
- if (rc != XPCOM.NS_OK) Mozilla.error (rc);
- if (file [0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
- XPCOM.memmove (aFile, file, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetDisplayDirectory (int /*long*/ aDisplayDirectory) {
- if (aDisplayDirectory == 0) return XPCOM.NS_OK;
- nsILocalFile file = new nsILocalFile (aDisplayDirectory);
- int /*long*/ pathname = XPCOM.nsEmbedCString_new ();
- file.GetNativePath (pathname);
- int length = XPCOM.nsEmbedCString_Length (pathname);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get (pathname);
- byte[] bytes = new byte [length];
- XPCOM.memmove (bytes, buffer, length);
- XPCOM.nsEmbedCString_delete (pathname);
- char[] chars = Converter.mbcsToWcs (null, bytes);
- directory = new String (chars);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetDisplayDirectory (int /*long*/ aDisplayDirectory) {
- String directoryName = directory != null ? directory : ""; //$NON-NLS-1$
- nsEmbedString path = new nsEmbedString (directoryName);
- int /*long*/[] file = new int /*long*/[1];
- int rc = XPCOM.NS_NewLocalFile (path.getAddress (), true, file);
- path.dispose ();
- if (rc != XPCOM.NS_OK) Mozilla.error (rc);
- if (file [0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
- XPCOM.memmove (aDisplayDirectory, file, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetFilterIndex (int /*long*/ aFilterIndex) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetFilterIndex (int /*long*/ aFilterIndex) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ SetDefaultExtension (int /*long*/ aDefaultExtension) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetDefaultExtension (int /*long*/ aDefaultExtension) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ SetDefaultString (int /*long*/ aDefaultString) {
- if (aDefaultString == 0) return XPCOM.NS_OK;
- int length = XPCOM.strlen_PRUnichar (aDefaultString);
- char[] chars = new char [length];
- XPCOM.memmove (chars, aDefaultString, length * 2);
- defaultFilename = new String (chars);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetDefaultString (int /*long*/ aDefaultString) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ AppendFilter (int /*long*/ title, int /*long*/ filter) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ AppendFilters (int /*long*/ filterMask) {
- String[] addFilters = null;
- switch ((int)/*64*/filterMask) {
- case nsIFilePicker.filterAll:
- case nsIFilePicker.filterApps:
- masks = null; /* this is equivalent to no filter */
- break;
- case nsIFilePicker.filterHTML:
- addFilters = new String[] {"*.htm;*.html"}; //$NON-NLS-1$
- break;
- case nsIFilePicker.filterImages:
- addFilters = new String[] {"*.gif;*.jpeg;*.jpg;*.png"}; //$NON-NLS-1$
- break;
- case nsIFilePicker.filterText:
- addFilters = new String[] {"*.txt"}; //$NON-NLS-1$
- break;
- case nsIFilePicker.filterXML:
- addFilters = new String[] {"*.xml"}; //$NON-NLS-1$
- break;
- case nsIFilePicker.filterXUL:
- addFilters = new String[] {"*.xul"}; //$NON-NLS-1$
- break;
- }
- if (masks == null) {
- masks = addFilters;
- } else {
- if (addFilters != null) {
- String[] newFilters = new String [masks.length + addFilters.length];
- System.arraycopy (masks, 0, newFilters, 0, masks.length);
- System.arraycopy (addFilters, 0, newFilters, masks.length, addFilters.length);
- masks = newFilters;
- }
- }
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePickerFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePickerFactory.java
deleted file mode 100644
index 7d8b96c9fb..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/FilePickerFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-
-class FilePickerFactory {
- XPCOMObject supports;
- XPCOMObject factory;
- int refCount = 0;
-
-public FilePickerFactory() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (factory != null) {
- factory.dispose();
- factory = null;
- }
-}
-
-int /*long*/ getAddress() {
- return factory.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIFactory */
-
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- FilePicker picker = new FilePicker ();
- picker.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {picker.getAddress()}, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ LockFactory(int /*long*/ lock) {
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialog.java
deleted file mode 100644
index a5c7a70f3d..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialog.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.widgets.*;
-
-class HelperAppLauncherDialog {
- XPCOMObject supports;
- XPCOMObject helperAppLauncherDialog;
- int refCount = 0;
-
-public HelperAppLauncherDialog() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- helperAppLauncherDialog = new XPCOMObject(new int[]{2, 0, 0, 3, 5}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Show(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return PromptForSaveToFile(args[0], args[1], args[2], args[3], args[4]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (helperAppLauncherDialog != null) {
- helperAppLauncherDialog.dispose();
- helperAppLauncherDialog = null;
- }
-}
-
-int /*long*/ getAddress() {
- return helperAppLauncherDialog.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIHelperAppLauncherDialog.NS_IHELPERAPPLAUNCHERDIALOG_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {helperAppLauncherDialog.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- /*
- * Note. This instance lives as long as the download it is binded to.
- * Its reference count is expected to go down to 0 when the download
- * has completed or when it has been cancelled. E.g. when the user
- * cancels the File Dialog, cancels or closes the Download Dialog
- * and when the Download Dialog goes away after the download is completed.
- */
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIHelperAppLauncherDialog */
-
-public int /*long*/ Show(int /*long*/ aLauncher, int /*long*/ aContext, int /*long*/ aReason) {
- /*
- * The interface for nsIHelperAppLauncher changed as of mozilla 1.8. Query the received
- * nsIHelperAppLauncher for the new interface, and if it is not found then fall back to
- * the old interface.
- */
- nsISupports supports = new nsISupports(aLauncher);
- int /*long*/[] result = new int /*long*/[1];
- int rc = supports.QueryInterface(nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
- if (rc == 0) { /* >= 1.8 */
- nsIHelperAppLauncher_1_8 helperAppLauncher = new nsIHelperAppLauncher_1_8(aLauncher);
- rc = helperAppLauncher.SaveToDisk(0, false);
- helperAppLauncher.Release();
- return rc;
- }
- nsIHelperAppLauncher helperAppLauncher = new nsIHelperAppLauncher(aLauncher); /* < 1.8 */
- return helperAppLauncher.SaveToDisk(0, false);
-}
-
-public int /*long*/ PromptForSaveToFile(int /*long*/ arg0, int /*long*/ arg1, int /*long*/ arg2, int /*long*/ arg3, int /*long*/ arg4) {
- int /*long*/ aDefaultFile, aSuggestedFileExtension, _retval;
- boolean hasLauncher = false;
-
- /*
- * The interface for nsIHelperAppLauncherDialog changed as of mozilla 1.5 when an
- * extra argument was added to the PromptForSaveToFile method (this resulted in all
- * subsequent arguments shifting right). The workaround is to provide an XPCOMObject
- * that fits the newer API, and to use the first argument's type to infer whether
- * the old or new nsIHelperAppLauncherDialog interface is being used (and by extension
- * the ordering of the arguments). In mozilla >= 1.5 the first argument is an
- * nsIHelperAppLauncher.
- */
- /*
- * The interface for nsIHelperAppLauncher changed as of mozilla 1.8, so the first
- * argument must be queried for both the old and new nsIHelperAppLauncher interfaces.
- */
- nsISupports support = new nsISupports(arg0);
- int /*long*/[] result = new int /*long*/[1];
- int rc = support.QueryInterface(nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
- boolean usingMozilla18 = rc == 0;
- if (usingMozilla18) {
- hasLauncher = true;
- nsISupports supports = new nsISupports(result[0]);
- supports.Release();
- } else {
- result[0] = 0;
- rc = support.QueryInterface(nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
- if (rc == 0) {
- hasLauncher = true;
- nsISupports supports = new nsISupports(result[0]);
- supports.Release();
- }
- }
- result[0] = 0;
-
- if (hasLauncher) { /* >= 1.5 */
- aDefaultFile = arg2;
- aSuggestedFileExtension = arg3;
- _retval = arg4;
- } else { /* 1.4 */
- aDefaultFile = arg1;
- aSuggestedFileExtension = arg2;
- _retval = arg3;
- }
-
- int length = XPCOM.strlen_PRUnichar(aDefaultFile);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aDefaultFile, length * 2);
- String defaultFile = new String(dest);
-
- length = XPCOM.strlen_PRUnichar(aSuggestedFileExtension);
- dest = new char[length];
- XPCOM.memmove(dest, aSuggestedFileExtension, length * 2);
- String suggestedFileExtension = new String(dest);
-
- Shell shell = new Shell();
- FileDialog fileDialog = new FileDialog(shell, SWT.SAVE);
- fileDialog.setFileName(defaultFile);
- fileDialog.setFilterExtensions(new String[] {suggestedFileExtension});
- String name = fileDialog.open();
- shell.close();
- if (name == null) {
- if (hasLauncher) {
- if (usingMozilla18) {
- nsIHelperAppLauncher_1_8 launcher = new nsIHelperAppLauncher_1_8(arg0);
- rc = launcher.Cancel(XPCOM.NS_BINDING_ABORTED);
- } else {
- nsIHelperAppLauncher launcher = new nsIHelperAppLauncher(arg0);
- rc = launcher.Cancel();
- }
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- return XPCOM.NS_OK;
- }
- return XPCOM.NS_ERROR_FAILURE;
- }
- nsEmbedString path = new nsEmbedString(name);
- rc = XPCOM.NS_NewLocalFile(path.getAddress(), true, result);
- path.dispose();
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NULL_POINTER);
- /* Our own nsIDownload has been registered during the Browser initialization. It will be invoked by Mozilla. */
- XPCOM.memmove(_retval, result, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
deleted file mode 100644
index ce17ce2ecc..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-
-class HelperAppLauncherDialogFactory {
- XPCOMObject supports;
- XPCOMObject factory;
- int refCount = 0;
-
-public HelperAppLauncherDialogFactory() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (factory != null) {
- factory.dispose();
- factory = null;
- }
-}
-
-int /*long*/ getAddress() {
- return factory.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIFactory */
-
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- HelperAppLauncherDialog helperAppLauncherDialog = new HelperAppLauncherDialog();
- helperAppLauncherDialog.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {helperAppLauncherDialog.getAddress()}, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ LockFactory(int /*long*/ lock) {
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/InputStream.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/InputStream.java
deleted file mode 100644
index 1109fbf25a..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/InputStream.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-
-class InputStream {
- XPCOMObject inputStream;
- int refCount = 0;
-
- byte[] buffer;
- int index = 0;
-
-public InputStream(byte[] buffer) {
- this.buffer = buffer;
- index = 0;
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- inputStream = new XPCOMObject(new int[]{2, 0, 0, 0, 1, 3, 4, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Close();}
- public int /*long*/ method4(int /*long*/[] args) {return Available(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return Read(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return ReadSegments(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return IsNonBlocking(args[0]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (inputStream != null) {
- inputStream.dispose();
- inputStream = null;
- }
-}
-
-int /*long*/ getAddress() {
- return inputStream.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {inputStream.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIInputStream.NS_IINPUTSTREAM_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {inputStream.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIInputStream implementation */
-
-int /*long*/ Close() {
- buffer = null;
- index = 0;
- return XPCOM.NS_OK;
-}
-
-int /*long*/ Available(int /*long*/ _retval) {
- int available = buffer == null ? 0 : buffer.length - index;
- XPCOM.memmove(_retval, new int[] {available}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ Read(int /*long*/ aBuf, int /*long*/ aCount, int /*long*/ _retval) {
- int max = Math.min((int)/*64*/aCount, buffer == null ? 0 : buffer.length - index);
- if (max > 0) {
- byte[] src = new byte[max];
- System.arraycopy(buffer, index, src, 0, max);
- XPCOM.memmove(aBuf, src, max);
- index += max;
- }
- XPCOM.memmove(_retval, new int[] {max}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ ReadSegments(int /*long*/ aWriter, int /*long*/ aClosure, int /*long*/ aCount, int /*long*/ _retval) {
- int max = Math.min((int)/*64*/aCount, buffer == null ? 0 : buffer.length - index);
- int cnt = max;
- while (cnt > 0) {
- int[] aWriteCount = new int[1];
- int /*long*/ rc = XPCOM.Call(aWriter, getAddress(), aClosure, buffer, index, cnt, aWriteCount);
- if (rc != XPCOM.NS_OK) break;
- index += aWriteCount[0];
- cnt -= aWriteCount[0];
- }
- XPCOM.memmove(_retval, new int[] {max - cnt}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ IsNonBlocking(int /*long*/ _retval) {
- /* blocking */
- XPCOM.memmove(_retval, new int[] {0}, 4);
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Mozilla.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Mozilla.java
deleted file mode 100755
index 50b139411d..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Mozilla.java
+++ /dev/null
@@ -1,2151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import java.io.*;
-import java.util.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.gtk.GTK;
-import org.eclipse.swt.internal.motif.*;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.layout.*;
-
-class Mozilla extends WebBrowser {
- int gtkHandle;
- nsIWebBrowser webBrowser;
-
- /* Interfaces for this Mozilla embedding notification */
- XPCOMObject supports;
- XPCOMObject weakReference;
- XPCOMObject webProgressListener;
- XPCOMObject webBrowserChrome;
- XPCOMObject webBrowserChromeFocus;
- XPCOMObject embeddingSiteWindow;
- XPCOMObject interfaceRequestor;
- XPCOMObject supportsWeakReference;
- XPCOMObject contextMenuListener;
- XPCOMObject uriContentListener;
- XPCOMObject tooltipListener;
- XPCOMObject directoryServiceProviderListener;
- int chromeFlags = nsIWebBrowserChrome.CHROME_DEFAULT;
- int refCount = 0;
- int /*long*/ request;
- Point location;
- Point size;
- boolean addressBar, menuBar, statusBar, toolBar;
- boolean visible, isModal;
- Shell tip = null;
-
- static nsIAppShell AppShell;
- static WindowCreator WindowCreator;
- static int BrowserCount;
- static boolean initialized, ignoreDispose;
- static boolean IsLinux;
- static String profileRootDirectory;
-
- /* XULRunner detect constants */
- static final String GRERANGE_LOWER = "1.8"; //$NON-NLS-1$
- static final boolean LowerRangeInclusive = true;
- static final String GRERANGE_UPPER = "1.9"; //$NON-NLS-1$
- static final boolean UpperRangeInclusive = false;
- static final String SEPARATOR_OS = System.getProperty("file.separator"); //$NON-NLS-1$
- static final String XPCOM_LIB = "/libxpcom.so"; //$NON-NLS-1$
-
- /* Package Name */
- static final String URI_FROMMEMORY = "file:///"; //$NON-NLS-1$
- static final String ABOUT_BLANK = "about:blank"; //$NON-NLS-1$
- static final String PREFERENCE_LANGUAGES = "intl.accept_languages"; //$NON-NLS-1$
- static final String PREFERENCE_CHARSET = "intl.charset.default"; //$NON-NLS-1$
- static final String SEPARATOR_LOCALE = "-"; //$NON-NLS-1$
- static final String TOKENIZER_LOCALE = ","; //$NON-NLS-1$
- static final String PROFILE_DIR = "/eclipse/"; //$NON-NLS-1$
- static final String HISTORY_FILE = "history.dat"; //$NON-NLS-1$
- static final String MIMETYPES_FILE = "mimeTypes.rdf"; //$NON-NLS-1$
- static final String PREFERENCES_FILE = "prefs.js"; //$NON-NLS-1$
- static final String CHROME_DIR = "chrome"; //$NON-NLS-1$
- static final String LOCALSTORE_FILE = "localstore.rdf"; //$NON-NLS-1$
- static final String PROFILE_AFTER_CHANGE = "profile-after-change"; //$NON-NLS-1$
- static final String PROFILE_BEFORE_CHANGE = "profile-before-change"; //$NON-NLS-1$
- static final String PROFILE_DO_CHANGE = "profile-do-change"; //$NON-NLS-1$
- static final String SHUTDOWN_PERSIST = "shutdown-persist"; //$NON-NLS-1$
- static final String STARTUP = "startup"; //$NON-NLS-1$
-
- static {
- String osName = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$
- IsLinux = osName.startsWith("linux");
- }
-
- static {
- MozillaClearSessions = new Runnable() {
- public void run() {
- if (!initialized) return;
- int[] result = new int [1];
- int rc = XPCOM.NS_GetServiceManager (result);
- if (rc != XPCOM.NS_OK) error (rc);
- if (result [0] == 0) error (XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager (result [0]);
- result [0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_COOKIEMANAGER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID (aContractID, nsICookieManager.NS_ICOOKIEMANAGER_IID, result);
- if (rc != XPCOM.NS_OK) error (rc);
- if (result [0] == 0) error (XPCOM.NS_NOINTERFACE);
- serviceManager.Release ();
-
- nsICookieManager manager = new nsICookieManager (result [0]);
- result [0] = 0;
- rc = manager.GetEnumerator (result);
- if (rc != XPCOM.NS_OK) error (rc);
- manager.Release ();
-
- nsISimpleEnumerator enumerator = new nsISimpleEnumerator (result [0]);
- boolean[] moreElements = new boolean [1];
- rc = enumerator.HasMoreElements (moreElements);
- if (rc != XPCOM.NS_OK) error (rc);
- while (moreElements [0]) {
- result [0] = 0;
- rc = enumerator.GetNext (result);
- if (rc != XPCOM.NS_OK) error (rc);
- nsICookie cookie = new nsICookie (result [0]);
- long[] expires = new long [1];
- rc = cookie.GetExpires (expires);
- if (expires [0] == 0) {
- /* indicates a session cookie */
- int domain = XPCOM.nsEmbedCString_new ();
- int name = XPCOM.nsEmbedCString_new ();
- int path = XPCOM.nsEmbedCString_new ();
- cookie.GetHost (domain);
- cookie.GetName (name);
- cookie.GetPath (path);
- rc = manager.Remove (domain, name, path, false);
- XPCOM.nsEmbedCString_delete (domain);
- XPCOM.nsEmbedCString_delete (name);
- XPCOM.nsEmbedCString_delete (path);
- if (rc != XPCOM.NS_OK) error (rc);
- }
- cookie.Release ();
- rc = enumerator.HasMoreElements (moreElements);
- if (rc != XPCOM.NS_OK) error (rc);
- }
- enumerator.Release ();
- }
- };
- }
-
-public void create (Composite parent, int style) {
-
- if (!IsLinux) {
- browser.dispose();
- SWT.error(SWT.ERROR_NO_HANDLES, null, " [Unsupported platform]"); //$NON-NLS-1$
- }
-
- int /*long*/[] result = new int /*long*/[1];
- if (!initialized) {
- try {
- Library.loadLibrary ("swt-gtk"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError e) {
- SWT.error (SWT.ERROR_NO_HANDLES, e);
- }
-
- String mozillaPath = null;
- boolean initLoaded = false;
- try {
- Library.loadLibrary ("swt-xpcominit"); //$NON-NLS-1$
- initLoaded = true;
- } catch (UnsatisfiedLinkError e) {
- try {
- /*
- * The initial loadLibrary attempt may have failed as a result of the user's
- * system not having libstdc++.so.6 installed, so try to load the alternate
- * swt xpcominit library that depends on libswtc++.so.5 instead.
- */
- Library.loadLibrary ("swt-xpcominit-gcc3"); //$NON-NLS-1$
- initLoaded = true;
- } catch (UnsatisfiedLinkError ex) {
- /*
- * If this library still failed to load then do not attempt to detect a
- * xulrunner to use. The Browser may still be usable if MOZILLA_FIVE_HOME
- * points at a GRE.
- */
- }
- }
-
- boolean isXULRunner = false;
- if (initLoaded) {
- /* attempt to discover a XULRunner to use as the GRE */
- GREVersionRange range = new GREVersionRange();
- byte[] bytes = Converter.wcsToMbcs(null, GRERANGE_LOWER, true);
- int /*long*/ lower = OS.XtMalloc (bytes.length);
- OS.memmove (lower, bytes, bytes.length);
- range.lower = lower;
- range.lowerInclusive = LowerRangeInclusive;
-
- bytes = Converter.wcsToMbcs(null, GRERANGE_UPPER, true);
- int /*long*/ upper = OS.XtMalloc (bytes.length);
- OS.memmove (upper, bytes, bytes.length);
- range.upper = upper;
- range.upperInclusive = UpperRangeInclusive;
-
- int length = XPCOMInit.PATH_MAX;
- int /*long*/ greBuffer = OS.XtMalloc(length);
- int /*long*/ propertiesPtr = OS.XtMalloc(2 * OS.PTR_SIZEOF);
- int rc = XPCOMInit.GRE_GetGREPathWithProperties(range, 1, propertiesPtr, 0, greBuffer, length);
- OS.XtFree(lower);
- OS.XtFree(upper);
- OS.XtFree(propertiesPtr);
- if (rc == XPCOM.NS_OK) {
- /* indicates that a XULRunner was found */
- length = OS.strlen(greBuffer);
- bytes = new byte[length];
- OS.memmove(bytes, greBuffer, length);
- mozillaPath = new String(Converter.mbcsToWcs(null, bytes));
- isXULRunner = mozillaPath.length() > 0;
- }
- OS.XtFree(greBuffer);
- }
-
- if (isXULRunner) {
- try {
- Library.loadLibrary ("swt-xulrunner"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError e) {
- try {
- /*
- * The initial loadLibrary attempt may have failed as a result of the user's
- * system not having libstdc++.so.6 installed, so try to load the alternate
- * swt xulrunner library that depends on libswtc++.so.5 instead.
- */
- Library.loadLibrary ("swt-xulrunner-gcc3"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError ex) {
- browser.dispose ();
- /*
- * Print the error from the first failed attempt since at this point it's
- * known that the failure was not due to the libstdc++.so.6 dependency.
- */
- SWT.error (SWT.ERROR_NO_HANDLES, e);
- }
- }
- byte[] path = Converter.wcsToMbcs(null, mozillaPath, true);
- int rc = XPCOMGlue.XPCOMGlueStartup(path);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- /*
- * remove the trailing "libxpcom.so" from mozillaPath because the NS_InitXPCOM2
- * invocation requires a directory name only
- */
- mozillaPath = mozillaPath.substring(0, mozillaPath.lastIndexOf(SEPARATOR_OS));
- } else {
- /* attempt to use the GRE pointed at by MOZILLA_FIVE_HOME */
-
- int /*long*/ ptr = OS.getenv(Converter.wcsToMbcs(null, XPCOM.MOZILLA_FIVE_HOME, true));
- if (ptr != 0) {
- int length = OS.strlen(ptr);
- byte[] buffer = new byte[length];
- OS.memmove(buffer, ptr, length);
- mozillaPath = new String (Converter.mbcsToWcs (null, buffer));
- }
- if (mozillaPath == null) {
- browser.dispose();
- SWT.error(SWT.ERROR_NO_HANDLES, null, " [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]"); //$NON-NLS-1$
- }
- /*
- * Note. Embedding a Mozilla GTK1.2 causes a crash. The workaround
- * is to check the version of GTK used by Mozilla by looking for
- * the libwidget_gtk.so library used by Mozilla GTK1.2. Mozilla GTK2
- * uses the libwidget_gtk2.so library.
- */
- File file = new File(mozillaPath, "components/libwidget_gtk.so"); //$NON-NLS-1$
- if (file.exists()) {
- browser.dispose();
- SWT.error(SWT.ERROR_NO_HANDLES, null, " [Mozilla GTK2 required (GTK1.2 detected)]"); //$NON-NLS-1$
- }
-
- try {
- Library.loadLibrary ("swt-mozilla"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError e) {
- try {
- /*
- * The initial loadLibrary attempt may have failed as a result of the user's
- * system not having libstdc++.so.6 installed, so try to load the alternate
- * swt mozilla library that depends on libswtc++.so.5 instead.
- */
- Library.loadLibrary ("swt-mozilla-gcc3"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError ex) {
- browser.dispose ();
- /*
- * Print the error from the first failed attempt since at this point it's
- * known that the failure was not due to the libstdc++.so.6 dependency.
- */
- SWT.error (SWT.ERROR_NO_HANDLES, e);
- }
- }
- }
-
- int /*long*/[] retVal = new int /*long*/[1];
- nsEmbedString pathString = new nsEmbedString(mozillaPath);
- int rc = XPCOM.NS_NewLocalFile(pathString.getAddress(), true, retVal);
- pathString.dispose();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (retVal[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_ERROR_NULL_POINTER);
- }
-
- nsIFile localFile = new nsILocalFile(retVal[0]);
- rc = XPCOM.NS_InitXPCOM2(0, localFile.getAddress(), 0);
- localFile.Release();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- SWT.error(SWT.ERROR_NO_HANDLES, null, " [MOZILLA_FIVE_HOME may not point at an embeddable GRE] [NS_InitEmbedding " + mozillaPath + " error " + rc + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- rc = componentManager.CreateInstance(XPCOM.NS_APPSHELL_CID, 0, nsIAppShell.NS_IAPPSHELL_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- AppShell = new nsIAppShell(result[0]);
- rc = AppShell.Create(0, null);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- rc = AppShell.Spinup();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- WindowCreator = new WindowCreator();
- WindowCreator.AddRef();
-
- rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIWindowWatcher windowWatcher = new nsIWindowWatcher(result[0]);
- result[0] = 0;
- rc = windowWatcher.SetWindowCreator(WindowCreator.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- windowWatcher.Release();
-
- /* compute the root profile directory */
- byte[] buffer = Converter.wcsToMbcs(null, XPCOM.NS_DIRECTORYSERVICE_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIDirectoryService.NS_IDIRECTORYSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIDirectoryService directoryService = new nsIDirectoryService(result[0]);
- result[0] = 0;
- rc = directoryService.QueryInterface(nsIProperties.NS_IPROPERTIES_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- directoryService.Release();
-
- nsIProperties properties = new nsIProperties(result[0]);
- result[0] = 0;
- buffer = Converter.wcsToMbcs(null, XPCOM.NS_APP_APPLICATION_REGISTRY_DIR, true);
- rc = properties.Get(buffer, nsIFile.NS_IFILE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- properties.Release();
-
- nsIFile profileDir = new nsIFile(result[0]);
- result[0] = 0;
- int /*long*/ path = XPCOM.nsEmbedCString_new();
- rc = profileDir.GetNativePath(path);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- int length = XPCOM.nsEmbedCString_Length(path);
- int /*long*/ ptr = XPCOM.nsEmbedCString_get(path);
- buffer = new byte [length];
- XPCOM.memmove(buffer, ptr, length);
- profileRootDirectory = new String(Converter.mbcsToWcs(null, buffer)) + PROFILE_DIR;
- XPCOM.nsEmbedCString_delete(path);
- profileDir.Release();
-
- browser.getDisplay().addListener(SWT.Dispose, new Listener() {
- public void handleEvent(Event event) {
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] buffer = Converter.wcsToMbcs(null, XPCOM.NS_OBSERVER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIObserverService observerService = new nsIObserverService(result[0]);
- result[0] = 0;
- buffer = Converter.wcsToMbcs(null, PROFILE_BEFORE_CHANGE, true);
- int length = SHUTDOWN_PERSIST.length();
- char[] chars = new char [length + 1];
- SHUTDOWN_PERSIST.getChars(0, length, chars, 0);
- rc = observerService.NotifyObservers(0, buffer, chars);
- if (rc != XPCOM.NS_OK) error(rc);
- observerService.Release();
- }
- });
-
- /*
- * As a result of using a common profile the user cannot change their locale
- * and charset. The fix for this is to set mozilla's locale and charset
- * preference values according to the user's current locale and charset.
- */
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_PREFSERVICE_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIPrefService.NS_IPREFSERVICE_IID, result);
- serviceManager.Release();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIPrefService prefService = new nsIPrefService(result[0]);
- result[0] = 0;
- buffer = new byte[1];
- rc = prefService.GetBranch(buffer, result); /* empty buffer denotes root preference level */
- prefService.Release();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIPrefBranch prefBranch = new nsIPrefBranch(result[0]);
- result[0] = 0;
-
- /* get Mozilla's current locale preference value */
- String prefLocales = null;
- nsIPrefLocalizedString localizedString = null;
- buffer = Converter.wcsToMbcs(null, PREFERENCE_LANGUAGES, true);
- rc = prefBranch.GetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- /*
- * Feature of Debian. For some reason attempting to query for the current locale
- * preference fails on Debian. The workaround for this is to assume a value of
- * "en-us,en" since this is typically the default value when mozilla is used without
- * a profile.
- */
- if (rc != XPCOM.NS_OK) {
- prefLocales = "en-us,en" + TOKENIZER_LOCALE; //$NON-NLS-1$
- } else {
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- rc = localizedString.ToString(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- length = XPCOM.strlen_PRUnichar(result[0]);
- char[] dest = new char[length];
- XPCOM.memmove(dest, result[0], length * 2);
- prefLocales = new String(dest) + TOKENIZER_LOCALE;
- }
- result[0] = 0;
-
- /*
- * construct the new locale preference value by prepending the
- * user's current locale and language to the original value
- */
- Locale locale = Locale.getDefault();
- String language = locale.getLanguage();
- String country = locale.getCountry();
- StringBuffer stringBuffer = new StringBuffer (language);
- stringBuffer.append(SEPARATOR_LOCALE);
- stringBuffer.append(country.toLowerCase());
- stringBuffer.append(TOKENIZER_LOCALE);
- stringBuffer.append(language);
- stringBuffer.append(TOKENIZER_LOCALE);
- String newLocales = stringBuffer.toString();
- StringTokenizer tokenzier = new StringTokenizer(prefLocales, TOKENIZER_LOCALE);
- while (tokenzier.hasMoreTokens()) {
- String token = (tokenzier.nextToken() + TOKENIZER_LOCALE).trim();
- /* ensure that duplicate locale values are not added */
- if (newLocales.indexOf(token) == -1) {
- stringBuffer.append(token);
- }
- }
- newLocales = stringBuffer.toString();
- if (!newLocales.equals(prefLocales)) {
- /* write the new locale value */
- newLocales = newLocales.substring(0, newLocales.length() - TOKENIZER_LOCALE.length ()); /* remove trailing tokenizer */
- length = newLocales.length();
- char[] charBuffer = new char[length + 1];
- newLocales.getChars(0, length, charBuffer, 0);
- if (localizedString == null) {
- byte[] contractID = Converter.wcsToMbcs(null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
- rc = componentManager.CreateInstanceByContractID(contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- }
- localizedString.SetDataWithLength(length, charBuffer);
- rc = prefBranch.SetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress());
- }
- if (localizedString != null) {
- localizedString.Release();
- localizedString = null;
- }
-
- /* get Mozilla's current charset preference value */
- String prefCharset = null;
- buffer = Converter.wcsToMbcs(null, PREFERENCE_CHARSET, true);
- rc = prefBranch.GetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- /*
- * Feature of Debian. For some reason attempting to query for the current charset
- * preference fails on Debian. The workaround for this is to assume a value of
- * "ISO-8859-1" since this is typically the default value when mozilla is used
- * without a profile.
- */
- if (rc != XPCOM.NS_OK) {
- prefCharset = "ISO-8859-1"; //$NON_NLS-1$
- } else {
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- rc = localizedString.ToString(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- length = XPCOM.strlen_PRUnichar(result[0]);
- char[] dest = new char[length];
- XPCOM.memmove(dest, result[0], length * 2);
- prefCharset = new String(dest);
- }
- result[0] = 0;
-
- String newCharset = System.getProperty("file.encoding"); // $NON-NLS-1$
- if (!newCharset.equals(prefCharset)) {
- /* write the new charset value */
- length = newCharset.length();
- char[] charBuffer = new char[length + 1];
- newCharset.getChars(0, length, charBuffer, 0);
- if (localizedString == null) {
- byte[] contractID = Converter.wcsToMbcs(null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
- rc = componentManager.CreateInstanceByContractID(contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- }
- localizedString.SetDataWithLength(length, charBuffer);
- rc = prefBranch.SetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress());
- }
- if (localizedString != null) localizedString.Release();
- prefBranch.Release();
-
- PromptServiceFactory factory = new PromptServiceFactory();
- factory.AddRef();
-
- rc = componentManager.QueryInterface(nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar(result[0]);
- result[0] = 0;
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_PROMPTSERVICE_CONTRACTID, true);
- byte[] aClassName = Converter.wcsToMbcs(null, "Prompt Service", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_PROMPTSERVICE_CID, aClassName, aContractID, factory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- factory.Release();
-
- HelperAppLauncherDialogFactory dialogFactory = new HelperAppLauncherDialogFactory();
- dialogFactory.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "Helper App Launcher Dialog", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CID, aClassName, aContractID, dialogFactory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- dialogFactory.Release();
-
- DownloadFactory downloadFactory = new DownloadFactory();
- downloadFactory.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_DOWNLOAD_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "Download", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- downloadFactory.Release();
-
- DownloadFactory_1_8 downloadFactory_1_8 = new DownloadFactory_1_8();
- downloadFactory_1_8.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_TRANSFER_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "Transfer", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory_1_8.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- downloadFactory_1_8.Release();
-
- FilePickerFactory pickerFactory = new FilePickerFactory();
- pickerFactory.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_FILEPICKER_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "FilePicker", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_FILEPICKER_CID, aClassName, aContractID, pickerFactory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- pickerFactory.Release();
-
- componentRegistrar.Release();
- componentManager.Release();
- initialized = true;
- }
- BrowserCount++;
- if (BrowserCount == 1) {
- GTK.gtk_init_check(new int[1], null);
- final Display display = browser.getDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- if (BrowserCount == 0) return;
- while (GTK.gtk_events_pending() != 0) {
- GTK.gtk_main_iteration();
- }
- display.timerExec(25, this);
- }
- });
- }
- parent.getShell().setFocus();
- gtkHandle = GTK.gtk_plug_new(browser.embeddedHandle);
-
- int rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- nsID NS_IWEBBROWSER_CID = new nsID("F1EAC761-87E9-11d3-AF80-00A024FFC08C"); //$NON-NLS-1$
- rc = componentManager.CreateInstance(NS_IWEBBROWSER_CID, 0, nsIWebBrowser.NS_IWEBBROWSER_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- componentManager.Release();
-
- webBrowser = new nsIWebBrowser(result[0]);
-
- createCOMInterfaces();
- AddRef();
-
- rc = webBrowser.SetContainerWindow(webBrowserChrome.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_ERROR_NO_INTERFACE);
- }
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.InitWindow(gtkHandle, 0, 0, 0, 2, 2);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(XPCOM.NS_ERROR_FAILURE);
- }
- rc = baseWindow.Create();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(XPCOM.NS_ERROR_FAILURE);
- }
- rc = baseWindow.SetVisibility(true);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(XPCOM.NS_ERROR_FAILURE);
- }
- baseWindow.Release();
-
- rc = webBrowser.AddWebBrowserListener(weakReference.getAddress(), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- rc = webBrowser.SetParentURIContentListener(uriContentListener.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] buffer = Converter.wcsToMbcs(null, XPCOM.NS_DIRECTORYSERVICE_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIDirectoryService.NS_IDIRECTORYSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIDirectoryService directoryService = new nsIDirectoryService(result[0]);
- result[0] = 0;
- rc = directoryService.RegisterProvider(directoryServiceProviderListener.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- directoryService.Release();
-
- buffer = Converter.wcsToMbcs(null, XPCOM.NS_OBSERVER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- serviceManager.Release();
-
- nsIObserverService observerService = new nsIObserverService(result[0]);
- result[0] = 0;
- buffer = Converter.wcsToMbcs(null, PROFILE_DO_CHANGE, true);
- int length = STARTUP.length();
- char[] chars = new char [length + 1];
- STARTUP.getChars(0, length, chars, 0);
- rc = observerService.NotifyObservers(0, buffer, chars);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- buffer = Converter.wcsToMbcs(null, PROFILE_AFTER_CHANGE, true);
- rc = observerService.NotifyObservers(0, buffer, chars);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- observerService.Release();
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- switch (event.type) {
- case SWT.Dispose: {
- /* make this handler run after other dispose listeners */
- if (ignoreDispose) {
- ignoreDispose = false;
- break;
- }
- ignoreDispose = true;
- browser.notifyListeners (event.type, event);
- event.type = SWT.NONE;
- onDispose();
- break;
- }
- case SWT.Resize: onResize(); break;
- case SWT.FocusIn: Activate(); break;
- case SWT.Deactivate: {
- Display display = event.display;
- if (browser == display.getFocusControl()) Deactivate();
- break;
- }
- }
- }
- };
- int[] folderEvents = new int[]{
- SWT.Dispose,
- SWT.Resize,
- SWT.FocusIn,
- SWT.KeyDown,
- SWT.Deactivate
- };
- for (int i = 0; i < folderEvents.length; i++) {
- browser.addListener(folderEvents[i], listener);
- }
-
- GTK.gtk_widget_show(gtkHandle);
-}
-
-public boolean back() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.GoBack();
- webNavigation.Release();
-
- return rc == XPCOM.NS_OK;
-}
-
-void createCOMInterfaces() {
- // Create each of the interfaces that this object implements
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- weakReference = new XPCOMObject(new int[]{2, 0, 0, 2}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return QueryReferent(args[0], args[1]);}
- };
-
- webProgressListener = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2],args[3],args[4],args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- };
-
- webBrowserChrome = new XPCOMObject(new int[]{2, 0, 0, 2, 1, 1, 1, 1, 0, 2, 0, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return SetStatus(args[0], args[1]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetWebBrowser(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return SetWebBrowser(args[0]);}
- public int /*long*/ method6(int /*long*/[] args) {return GetChromeFlags(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return SetChromeFlags(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return DestroyBrowserWindow();}
- public int /*long*/ method9(int /*long*/[] args) {return SizeBrowserTo(args[0], args[1]);}
- public int /*long*/ method10(int /*long*/[] args) {return ShowAsModal();}
- public int /*long*/ method11(int /*long*/[] args) {return IsWindowModal(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return ExitModalEventLoop(args[0]);}
- };
-
- webBrowserChromeFocus = new XPCOMObject(new int[]{2, 0, 0, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return FocusNextElement();}
- public int /*long*/ method4(int /*long*/[] args) {return FocusPrevElement();}
- };
-
- embeddingSiteWindow = new XPCOMObject(new int[]{2, 0, 0, 5, 5, 0, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return SetDimensions(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetDimensions(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method5(int /*long*/[] args) {return SetFocus();}
- public int /*long*/ method6(int /*long*/[] args) {return GetVisibility(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return SetVisibility(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return GetTitle(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return SetTitle(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return GetSiteWindow(args[0]);}
- };
-
- interfaceRequestor = new XPCOMObject(new int[]{2, 0, 0, 2}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return GetInterface(args[0], args[1]);}
- };
-
- supportsWeakReference = new XPCOMObject(new int[]{2, 0, 0, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return GetWeakReference(args[0]);}
- };
-
- contextMenuListener = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnShowContextMenu(args[0],args[1],args[2]);}
- };
-
- uriContentListener = new XPCOMObject(new int[]{2, 0, 0, 2, 5, 3, 4, 1, 1, 1, 1}) {
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStartURIOpen(args[0], args[1]);}
- public int /*long*/ method4(int /*long*/[] args) {return DoContent(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method5(int /*long*/[] args) {return IsPreferred(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return CanHandleContent(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return GetLoadCookie(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return SetLoadCookie(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return GetParentContentListener(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return SetParentContentListener(args[0]);}
- };
-
- tooltipListener = new XPCOMObject(new int[]{2, 0, 0, 3, 0}) {
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnShowTooltip(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnHideTooltip();}
- };
-
- directoryServiceProviderListener = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return GetFile(args[0], args[1], args[2]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (weakReference != null) {
- weakReference.dispose();
- weakReference = null;
- }
- if (webProgressListener != null) {
- webProgressListener.dispose();
- webProgressListener = null;
- }
- if (webBrowserChrome != null) {
- webBrowserChrome.dispose();
- webBrowserChrome = null;
- }
- if (webBrowserChromeFocus != null) {
- webBrowserChromeFocus.dispose();
- webBrowserChromeFocus = null;
- }
- if (embeddingSiteWindow != null) {
- embeddingSiteWindow.dispose();
- embeddingSiteWindow = null;
- }
- if (interfaceRequestor != null) {
- interfaceRequestor.dispose();
- interfaceRequestor = null;
- }
- if (supportsWeakReference != null) {
- supportsWeakReference.dispose();
- supportsWeakReference = null;
- }
- if (contextMenuListener != null) {
- contextMenuListener.dispose();
- contextMenuListener = null;
- }
- if (uriContentListener != null) {
- uriContentListener.dispose();
- uriContentListener = null;
- }
- if (tooltipListener != null) {
- tooltipListener.dispose();
- tooltipListener = null;
- }
-}
-
-public boolean execute(String script) {
- String url = "javascript:" + script + ";void(0);"; //$NON-NLS-1$ //$NON-NLS-2$
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- char[] arg = url.toCharArray();
- char[] c = new char[arg.length+1];
- System.arraycopy(arg,0,c,0,arg.length);
- rc = webNavigation.LoadURI(c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
- webNavigation.Release();
- return rc == XPCOM.NS_OK;
-}
-
-static Browser findBrowser(int /*long*/ handle) {
- Display display = Display.getCurrent();
- Shell[] shells = display.getShells();
- Browser browser = null;
- for (int i = 0; i < shells.length; i++) {
- browser = Mozilla.findBrowser(shells[i], handle);
- if (browser != null) break;
- }
- return browser;
-}
-
-static Browser findBrowser(Control control, int gtkHandle) {
- if (control instanceof Browser) {
- Browser browser = (Browser)control;
- if (((Mozilla)browser.webBrowser).gtkHandle == gtkHandle) return browser;
- }
- if (control instanceof Composite) {
- Composite composite = (Composite)control;
- Control[] children = composite.getChildren();
- for (int i = 0; i < children.length; i++) {
- Browser browser = findBrowser(children[i], gtkHandle);
- if (browser != null) return browser;
- }
- }
- return null;
-}
-
-public boolean forward() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.GoForward();
- webNavigation.Release();
-
- return rc == XPCOM.NS_OK;
-}
-
-public String getUrl() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- int /*long*/[] aCurrentURI = new int /*long*/[1];
- rc = webNavigation.GetCurrentURI(aCurrentURI);
- if (rc != XPCOM.NS_OK) error(rc);
- /*
- * This code is intentionally commented. aCurrentURI is 0
- * when no location has previously been set.
- */
- //if (aCurrentURI[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- webNavigation.Release();
-
- byte[] dest = null;
- if (aCurrentURI[0] != 0) {
- nsIURI uri = new nsIURI(aCurrentURI[0]);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- rc = uri.GetSpec(aSpec);
- if (rc != XPCOM.NS_OK) error(rc);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- uri.Release();
- }
- if (dest == null) return ""; //$NON-NLS-1$
- /*
- * If the URI indicates that the current page is being rendered from
- * memory (ie.- via setText()) then answer about:blank as the URL
- * to be consistent with win32.
- */
- String location = new String (dest);
- if (location.equals (URI_FROMMEMORY)) location = ABOUT_BLANK;
- return location;
-}
-
-public boolean isBackEnabled() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- boolean[] aCanGoBack = new boolean[1];
- rc = webNavigation.GetCanGoBack(aCanGoBack);
- webNavigation.Release();
-
- return aCanGoBack[0];
-}
-
-public boolean isForwardEnabled() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- boolean[] aCanGoForward = new boolean[1];
- rc = webNavigation.GetCanGoForward(aCanGoForward);
- webNavigation.Release();
-
- return aCanGoForward[0];
-}
-
-static String error(int code) {
- throw new SWTError("XPCOM error " + code); //$NON-NLS-1$
-}
-
-void onDispose() {
- int rc = webBrowser.RemoveWebBrowserListener(weakReference.getAddress(), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
- if (rc != XPCOM.NS_OK) error(rc);
-
- rc = webBrowser.SetParentURIContentListener(0);
- if (rc != XPCOM.NS_OK) error(rc);
-
- int /*long*/[] result = new int /*long*/[1];
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.Destroy();
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-
- Release();
- webBrowser.Release();
-
- if (tip != null && !tip.isDisposed()) tip.dispose();
- tip = null;
-
- GTK.gtk_widget_destroy(gtkHandle);
- while (GTK.gtk_events_pending() != 0) {
- GTK.gtk_main_iteration();
- }
- gtkHandle = 0;
-
- BrowserCount--;
-}
-
-void Activate() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus(result[0]);
- rc = webBrowserFocus.Activate();
- if (rc != XPCOM.NS_OK) error(rc);
- webBrowserFocus.Release();
-}
-
-void Deactivate() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus(result[0]);
- rc = webBrowserFocus.Deactivate();
- if (rc != XPCOM.NS_OK) error(rc);
- webBrowserFocus.Release();
-}
-
-void onResize() {
- Rectangle rect = browser.getClientArea();
- int width = Math.max(2, rect.width);
- int height = Math.max(2, rect.height);
-
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.SetPositionAndSize(0, 0, width, height, true);
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-}
-
-public void refresh() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.Reload(nsIWebNavigation.LOAD_FLAGS_NONE);
- webNavigation.Release();
- if (rc == XPCOM.NS_OK) return;
- /*
- * Feature in Mozilla. Reload returns an error code NS_ERROR_INVALID_POINTER
- * when it is called immediately after a request to load a new document using
- * LoadURI. The workaround is to ignore this error code.
- *
- * Feature in Mozilla. Attempting to reload a file that no longer exists
- * returns an error code of NS_ERROR_FILE_NOT_FOUND. This is equivalent to
- * attempting to load a non-existent local url, which is not a Browser error,
- * so this error code should be ignored.
- */
- if (rc != XPCOM.NS_ERROR_INVALID_POINTER && rc != XPCOM.NS_ERROR_FILE_NOT_FOUND) error(rc);
-}
-
-public boolean setText(String html) {
- /*
- * Feature in Mozilla. The focus memory of Mozilla must be
- * properly managed through the nsIWebBrowserFocus interface.
- * In particular, nsIWebBrowserFocus.deactivate must be called
- * when the focus moves from the browser (or one of its children
- * managed by Mozilla to another widget. We currently do not
- * get notified when a widget takes focus away from the Browser.
- * As a result, deactivate is not properly called. This causes
- * Mozilla to retake focus the next time a document is loaded.
- * This breaks the case where the HTML loaded in the Browser
- * varies while the user enters characters in a text widget. The text
- * widget loses focus every time new content is loaded.
- * The current workaround is to call deactivate everytime if
- * the browser currently does not have focus. A better workaround
- * would be to have a way to call deactivate when the Browser
- * or one of its children loses focus.
- */
- if (browser != browser.getDisplay().getFocusControl()) Deactivate();
-
- /*
- * Convert the String containing HTML to an array of
- * bytes with UTF-8 data.
- */
- byte[] data = null;
- try {
- data = html.getBytes("UTF-8"); //$NON-NLS-1$
- } catch (UnsupportedEncodingException e) {
- return false;
- }
-
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- rc = serviceManager.GetService(XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIIOService ioService = new nsIIOService(result[0]);
- result[0] = 0;
- /*
- * Note. Mozilla ignores LINK tags used to load CSS stylesheets
- * when the URI protocol for the nsInputStreamChannel
- * is about:blank. The fix is to specify the file protocol.
- */
- byte[] aString = Converter.wcsToMbcs(null, URI_FROMMEMORY, false);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new(aString, aString.length);
- rc = ioService.NewURI(aSpec, null, 0, result);
- XPCOM.nsEmbedCString_delete(aSpec);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- ioService.Release();
-
- nsIURI uri = new nsIURI(result[0]);
- result[0] = 0;
-
- /* aContentType */
- byte[] contentTypeBuffer = Converter.wcsToMbcs(null, "text/html", true); //$NON-NLS-1$
- int /*long*/ aContentType = XPCOM.nsEmbedCString_new(contentTypeBuffer, contentTypeBuffer.length);
-
- /*
- * First try to use nsIWebBrowserStream to set the text into the Browser, since this
- * interface is frozen. However, this may fail because this interface was only introduced
- * as of mozilla 1.8; if this interface is not found then use the pre-1.8 approach of
- * utilizing nsIDocShell instead.
- */
- result[0] = 0;
- rc = webBrowser.QueryInterface(nsIWebBrowserStream.NS_IWEBBROWSERSTREAM_IID, result);
- if (rc == XPCOM.NS_OK) {
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- nsIWebBrowserStream stream = new nsIWebBrowserStream(result[0]);
- rc = stream.OpenStream(uri.getAddress(), aContentType);
- if (rc != XPCOM.NS_OK) error(rc);
- int ptr = OS.XtMalloc(data.length);
- XPCOM.memmove(ptr, data, data.length);
- int pageSize = 8192;
- int pageCount = data.length / pageSize + 1;
- int current = ptr;
- for (int i = 0; i < pageCount; i++) {
- int length = i == pageCount - 1 ? data.length % pageSize : pageSize;
- if (length > 0) {
- rc = stream.AppendToStream(current, length);
- if (rc != XPCOM.NS_OK) error(rc);
- }
- current += pageSize;
- }
- rc = stream.CloseStream();
- if (rc != XPCOM.NS_OK) error(rc);
- OS.XtFree(ptr);
- stream.Release();
- } else {
- rc = webBrowser.QueryInterface(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor(result[0]);
- result[0] = 0;
- rc = interfaceRequestor.GetInterface(nsIDocShell.NS_IDOCSHELL_IID, result);
- interfaceRequestor.Release();
-
- nsIDocShell docShell = new nsIDocShell(result[0]);
- result[0] = 0;
- byte[] contentCharsetBuffer = Converter.wcsToMbcs(null, "UTF-8", true); //$NON-NLS-1$
- int /*long*/ aContentCharset = XPCOM.nsEmbedCString_new(contentCharsetBuffer, contentCharsetBuffer.length);
-
- /*
- * Feature in Mozilla. LoadStream invokes the nsIInputStream argument
- * through a different thread. The callback mechanism must attach
- * a non java thread to the JVM otherwise the nsIInputStream Read and
- * Close methods never get called.
- */
- InputStream inputStream = new InputStream(data);
- inputStream.AddRef();
- rc = docShell.LoadStream(inputStream.getAddress(), uri.getAddress(), aContentType, aContentCharset, 0);
- if (rc != XPCOM.NS_OK) error(rc);
- XPCOM.nsEmbedCString_delete(aContentCharset);
- inputStream.Release();
- docShell.Release();
- }
-
- XPCOM.nsEmbedCString_delete(aContentType);
- uri.Release();
- return true;
-}
-
-public boolean setUrl(String url) {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- char[] arg = url.toCharArray();
- char[] c = new char[arg.length+1];
- System.arraycopy(arg,0,c,0,arg.length);
- rc = webNavigation.LoadURI(c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
- webNavigation.Release();
- return rc == XPCOM.NS_OK;
-}
-
-public void stop() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.Stop(nsIWebNavigation.STOP_ALL);
- if (rc != XPCOM.NS_OK) error(rc);
- webNavigation.Release();
-}
-
-/* nsISupports */
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
-
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWeakReference.NS_IWEAKREFERENCE_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {weakReference.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webProgressListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebBrowserChrome.NS_IWEBBROWSERCHROME_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webBrowserChrome.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebBrowserChromeFocus.NS_IWEBBROWSERCHROMEFOCUS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webBrowserChromeFocus.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {embeddingSiteWindow.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {interfaceRequestor.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsISupportsWeakReference.NS_ISUPPORTSWEAKREFERENCE_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supportsWeakReference.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIContextMenuListener.NS_ICONTEXTMENULISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {contextMenuListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIURIContentListener.NS_IURICONTENTLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {uriContentListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsITooltipListener.NS_ITOOLTIPLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {tooltipListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDirectoryServiceProvider.NS_IDIRECTORYSERVICEPROVIDER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {directoryServiceProviderListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, 4);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int /*long*/ AddRef() {
- refCount++;
- return refCount;
-}
-
-int /*long*/ Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIWeakReference */
-
-int /*long*/ QueryReferent(int /*long*/ riid, int /*long*/ ppvObject) {
- return QueryInterface(riid,ppvObject);
-}
-
-/* nsIInterfaceRequestor */
-
-int /*long*/ GetInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
- if (guid.Equals(nsIDOMWindow.NS_IDOMWINDOW_IID)) {
- int /*long*/[] aContentDOMWindow = new int /*long*/[1];
- int rc = webBrowser.GetContentDOMWindow(aContentDOMWindow);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aContentDOMWindow[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- XPCOM.memmove(ppvObject, aContentDOMWindow, 4);
- return rc;
- }
- return QueryInterface(riid,ppvObject);
-}
-
-int /*long*/ GetWeakReference(int /*long*/ ppvObject) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {weakReference.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
-}
-
-/* nsIWebProgressListener */
-
-int /*long*/ OnStateChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
- if ((aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) == 0) return XPCOM.NS_OK;
- if ((aStateFlags & nsIWebProgressListener.STATE_START) != 0) {
- if (request == 0) request = aRequest;
- } else if ((aStateFlags & nsIWebProgressListener.STATE_REDIRECTING) != 0) {
- if (request == aRequest) request = 0;
- } else if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
- /*
- * Feature on Mozilla. When a request is redirected (STATE_REDIRECTING),
- * it never reaches the state STATE_STOP and it is replaced with a new request.
- * The new request is received when it is in the state STATE_STOP.
- * To handle this case, the variable request is set to 0 when the corresponding
- * request is redirected. The following request received with the state STATE_STOP
- * - the new request resulting from the redirection - is used to send
- * the ProgressListener.completed event.
- */
- if (request == aRequest || request == 0) {
- request = 0;
- StatusTextEvent event = new StatusTextEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.text = ""; //$NON-NLS-1$
- for (int i = 0; i < statusTextListeners.length; i++)
- statusTextListeners[i].changed(event);
-
- ProgressEvent event2 = new ProgressEvent(browser);
- event2.display = browser.getDisplay();
- event2.widget = browser;
- for (int i = 0; i < progressListeners.length; i++)
- progressListeners[i].completed(event2);
- }
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnProgressChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
- if (progressListeners.length == 0) return XPCOM.NS_OK;
- ProgressEvent event = new ProgressEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.current = (int)/*64*/aCurTotalProgress;
- event.total = (int)/*64*/aMaxTotalProgress;
- for (int i = 0; i < progressListeners.length; i++) {
- progressListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnLocationChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
- /*
- * Feature on Mozilla. When a page is loaded via setText before a previous
- * setText page load has completed, the expected OnStateChange STATE_STOP for the
- * original setText never arrives because it gets replaced by the OnStateChange
- * STATE_STOP for the new request. This results in the request field never being
- * cleared because the original request's OnStateChange STATE_STOP is still expected
- * (but never arrives). To handle this case, the request field is updated to the new
- * overriding request since its OnStateChange STATE_STOP will be received next.
- */
- if (request != 0 && request != aRequest) request = aRequest;
-
- if (locationListeners.length == 0) return XPCOM.NS_OK;
-
- nsIWebProgress webProgress = new nsIWebProgress(aWebProgress);
- int /*long*/[] aDOMWindow = new int /*long*/[1];
- int rc = webProgress.GetDOMWindow(aDOMWindow);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aDOMWindow[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIDOMWindow domWindow = new nsIDOMWindow(aDOMWindow[0]);
- int /*long*/[] aTop = new int /*long*/[1];
- rc = domWindow.GetTop(aTop);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aTop[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- domWindow.Release();
-
- nsIDOMWindow topWindow = new nsIDOMWindow(aTop[0]);
- topWindow.Release();
-
- nsIURI location = new nsIURI(aLocation);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- location.GetSpec(aSpec);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
-
- LocationEvent event = new LocationEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.location = new String(dest);
- if (event.location.equals (URI_FROMMEMORY)) {
- /*
- * If the URI indicates that the page is being rendered from memory
- * (ie.- via setText()) then set the event location to about:blank
- * to be consistent with win32.
- */
- event.location = ABOUT_BLANK;
- }
- event.top = aTop[0] == aDOMWindow[0];
- for (int i = 0; i < locationListeners.length; i++) {
- locationListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnStatusChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
- if (statusTextListeners.length == 0) return XPCOM.NS_OK;
- StatusTextEvent event = new StatusTextEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- int length = XPCOM.strlen_PRUnichar(aMessage);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aMessage, length * 2);
- event.text = new String(dest);
- for (int i = 0; i < statusTextListeners.length; i++) {
- statusTextListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnSecurityChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
- return XPCOM.NS_OK;
-}
-
-/* nsIWebBrowserChrome */
-
-int /*long*/ SetStatus(int /*long*/ statusType, int /*long*/ status) {
- StatusTextEvent event = new StatusTextEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- int length = XPCOM.strlen_PRUnichar(status);
- char[] dest = new char[length];
- XPCOM.memmove(dest, status, length * 2);
- String string = new String(dest);
- event.text = string;
- for (int i = 0; i < statusTextListeners.length; i++) {
- statusTextListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetWebBrowser(int /*long*/ aWebBrowser) {
- int /*long*/[] ret = new int /*long*/[1];
- if (webBrowser != null) {
- webBrowser.AddRef();
- ret[0] = webBrowser.getAddress();
- }
- XPCOM.memmove(aWebBrowser, ret, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetWebBrowser(int /*long*/ aWebBrowser) {
- if (webBrowser != null) webBrowser.Release();
- webBrowser = aWebBrowser != 0 ? new nsIWebBrowser(aWebBrowser) : null;
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetChromeFlags(int /*long*/ aChromeFlags) {
- int[] ret = new int[1];
- ret[0] = chromeFlags;
- /* aChromeFlags is a pointer to a type of size 4 */
- XPCOM.memmove(aChromeFlags, ret, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetChromeFlags(int /*long*/ aChromeFlags) {
- chromeFlags = (int)/*64*/aChromeFlags;
- return XPCOM.NS_OK;
-}
-
-int /*long*/ DestroyBrowserWindow() {
- WindowEvent newEvent = new WindowEvent(browser);
- newEvent.display = browser.getDisplay();
- newEvent.widget = browser;
- for (int i = 0; i < closeWindowListeners.length; i++) {
- closeWindowListeners[i].close(newEvent);
- }
- /*
- * Note on Mozilla. The DestroyBrowserWindow notification cannot be cancelled.
- * The browser widget cannot be used after this notification has been received.
- * The application is advised to close the window hosting the browser widget.
- * The browser widget must be disposed in all cases.
- */
- browser.dispose();
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SizeBrowserTo(int /*long*/ aCX, int /*long*/ aCY) {
- size = new Point((int)/*64*/aCX, (int)/*64*/aCY);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ ShowAsModal() {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ IsWindowModal(int /*long*/ retval) {
- // no modal loop
- /* Note. boolean remains of size 4 on 64 bit machine */
- XPCOM.memmove(retval, new int[] {0}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ ExitModalEventLoop(int /*long*/ aStatus) {
- return XPCOM.NS_OK;
-}
-
-/* nsIEmbeddingSiteWindow */
-
-int /*long*/ SetDimensions(int /*long*/ flags, int /*long*/ x, int /*long*/ y, int /*long*/ cx, int /*long*/ cy) {
- if (flags == nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) location = new Point((int)/*64*/x, (int)/*64*/y);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetDimensions(int /*long*/ flags, int /*long*/ x, int /*long*/ y, int /*long*/ cx, int /*long*/ cy) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetFocus() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.SetFocus();
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-
- /*
- * Note. Mozilla notifies here that one of the children took
- * focus. This could or should be used to fire an SWT.FOCUS_IN
- * event on Browser focus listeners.
- */
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetVisibility(int /*long*/ aVisibility) {
- XPCOM.memmove(aVisibility, new int[] {browser.isVisible() ? 1 : 0}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetVisibility(int /*long*/ aVisibility) {
- WindowEvent event = new WindowEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- if (aVisibility == 1) {
- /*
- * Bug in Mozilla. When the JavaScript window.open is executed, Mozilla
- * fires multiple SetVisibility 1 notifications. The workaround is
- * to ignore subsequent notifications.
- */
- if (!visible) {
- visible = true;
- event.location = location;
- event.size = size;
- event.addressBar = addressBar;
- event.menuBar = menuBar;
- event.statusBar = statusBar;
- event.toolBar = toolBar;
- for (int i = 0; i < visibilityWindowListeners.length; i++)
- visibilityWindowListeners[i].show(event);
- location = null;
- size = null;
- }
- } else {
- visible = false;
- for (int i = 0; i < visibilityWindowListeners.length; i++) {
- visibilityWindowListeners[i].hide(event);
- }
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetTitle(int /*long*/ aTitle) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetTitle(int /*long*/ aTitle) {
- if (titleListeners.length == 0) return XPCOM.NS_OK;
- TitleEvent event = new TitleEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- /*
- * To be consistent with other platforms the title event should
- * contain the page's url if the page does not contain a <title>
- * tag.
- */
- int length = XPCOM.strlen_PRUnichar(aTitle);
- if (length > 0) {
- char[] dest = new char[length];
- XPCOM.memmove(dest, aTitle, length * 2);
- event.title = new String(dest);
- } else {
- event.title = getUrl();
- }
- for (int i = 0; i < titleListeners.length; i++) {
- titleListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetSiteWindow(int /*long*/ aSiteWindow) {
- /*
- * Note. The handle is expected to be an HWND on Windows and
- * a GtkWidget* on GTK. This callback is invoked on Windows
- * when the javascript window.print is invoked and the print
- * dialog comes up. If no handle is returned, the print dialog
- * does not come up on this platform.
- */
- XPCOM.memmove(aSiteWindow, new int /*long*/[] {gtkHandle}, 4);
- return XPCOM.NS_OK;
-}
-
-/* nsIWebBrowserChromeFocus */
-
-int /*long*/ FocusNextElement() {
- /*
- * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
- * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
- * with the Mozilla application TestGtkEmbed. The workaround is to
- * send the traversal notification after this callback returns.
- */
- browser.getDisplay().asyncExec(new Runnable() {
- public void run() {
- browser.traverse(SWT.TRAVERSE_TAB_NEXT);
- }
- });
- return XPCOM.NS_OK;
-}
-
-int /*long*/ FocusPrevElement() {
- /*
- * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
- * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
- * with the Mozilla application TestGtkEmbed. The workaround is to
- * send the traversal notification after this callback returns.
- */
- browser.getDisplay().asyncExec(new Runnable() {
- public void run() {
- browser.traverse(SWT.TRAVERSE_TAB_PREVIOUS);
- }
- });
- return XPCOM.NS_OK;
-}
-
-/* nsIContextMenuListener */
-
-int /*long*/ OnShowContextMenu(int /*long*/ aContextFlags, int /*long*/ aEvent, int /*long*/ aNode) {
- nsIDOMEvent domEvent = new nsIDOMEvent(aEvent);
- int /*long*/[] result = new int /*long*/[1];
- int rc = domEvent.QueryInterface(nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIDOMMouseEvent domMouseEvent = new nsIDOMMouseEvent(result[0]);
- int[] aScreenX = new int[1], aScreenY = new int[1];
- rc = domMouseEvent.GetScreenX(aScreenX);
- if (rc != XPCOM.NS_OK) error(rc);
- rc = domMouseEvent.GetScreenY(aScreenY);
- if (rc != XPCOM.NS_OK) error(rc);
- domMouseEvent.Release();
-
- Event event = new Event();
- event.x = aScreenX[0];
- event.y = aScreenY[0];
- browser.notifyListeners(SWT.MenuDetect, event);
- if (!event.doit) return XPCOM.NS_OK;
- Menu menu = browser.getMenu();
- if (menu != null && !menu.isDisposed ()) {
- if (aScreenX[0] != event.x || aScreenY[0] != event.y) {
- menu.setLocation (event.x, event.y);
- }
- menu.setVisible (true);
- }
- return XPCOM.NS_OK;
-}
-
-/* nsIURIContentListener */
-
-int /*long*/ OnStartURIOpen(int /*long*/ aURI, int /*long*/ retval) {
- nsIURI location = new nsIURI(aURI);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- location.GetSpec(aSpec);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- buffer = XPCOM.nsEmbedCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- String value = new String(dest);
- if (locationListeners.length == 0) {
- XPCOM.memmove(retval, new int[] {0}, 4);
- return XPCOM.NS_OK;
- }
- boolean doit = true;
- if (request == 0) {
- LocationEvent event = new LocationEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.location = value;
- if (event.location.equals (URI_FROMMEMORY)) {
- /*
- * If the URI indicates that the page is being rendered from memory
- * (ie.- via setText()) then set the event location to about:blank
- * to be consistent with win32.
- */
- event.location = ABOUT_BLANK;
- }
- event.doit = doit;
- for (int i = 0; i < locationListeners.length; i++) {
- locationListeners[i].changing(event);
- }
- doit = event.doit;
- }
- /* Note. boolean remains of size 4 on 64 bit machine */
- XPCOM.memmove(retval, new int[] {doit ? 0 : 1}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ DoContent(int /*long*/ aContentType, int /*long*/ aIsContentPreferred, int /*long*/ aRequest, int /*long*/ aContentHandler, int /*long*/ retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ IsPreferred(int /*long*/ aContentType, int /*long*/ aDesiredContentType, int /*long*/ retval) {
- boolean preferred = false;
- int size = XPCOM.strlen(aContentType);
- if (size > 0) {
- byte[] typeBytes = new byte[size + 1];
- XPCOM.memmove(typeBytes, aContentType, size);
- String contentType = new String(typeBytes);
-
- /* do not attempt to handle known problematic content types */
- if (!contentType.equals(XPCOM.CONTENT_MAYBETEXT) && !contentType.equals(XPCOM.CONTENT_MULTIPART)) {
- /* determine whether browser can handle the content type */
- int[] result = new int[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- rc = serviceManager.GetService(XPCOM.NS_CATEGORYMANAGER_CID, nsICategoryManager.NS_ICATEGORYMANAGER_IID, result);
- serviceManager.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsICategoryManager categoryManager = new nsICategoryManager(result[0]);
- result[0] = 0;
- byte[] categoryBytes = Converter.wcsToMbcs(null, "Gecko-Content-Viewers", true); //$NON-NLS-1$
- rc = categoryManager.GetCategoryEntry(categoryBytes, typeBytes, result);
- categoryManager.Release();
- /* if no viewer for the content type is registered then rc == XPCOM.NS_ERROR_NOT_AVAILABLE */
- preferred = rc == XPCOM.NS_OK;
- }
- }
-
- /* note that boolean remains of size 4 on 64 bit machines */
- XPCOM.memmove(retval, new int[] {preferred ? 1 : 0}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ CanHandleContent(int /*long*/ aContentType, int /*long*/ aIsContentPreferred, int /*long*/ aDesiredContentType, int /*long*/ retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetLoadCookie(int /*long*/ aLoadCookie) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ SetLoadCookie(int /*long*/ aLoadCookie) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetParentContentListener(int /*long*/ aParentContentListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ SetParentContentListener(int /*long*/ aParentContentListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-/* nsITooltipListener */
-
-int /*long*/ OnShowTooltip(int /*long*/ aXCoords, int /*long*/ aYCoords, int /*long*/ aTipText) {
- int length = XPCOM.strlen_PRUnichar(aTipText);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aTipText, length * 2);
- String text = new String(dest);
- if (tip != null && !tip.isDisposed()) tip.dispose();
- Display display = browser.getDisplay();
- Shell parent = browser.getShell();
- tip = new Shell(parent, SWT.ON_TOP);
- tip.setLayout(new FillLayout());
- Label label = new Label(tip, SWT.CENTER);
- label.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
- label.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- label.setText(text);
- /*
- * Bug in Mozilla embedded API. Tooltip coordinates are wrong for
- * elements inside an inline frame (IFrame tag). The workaround is
- * to position the tooltip based on the mouse cursor location.
- */
- Point point = display.getCursorLocation();
- /* Assuming cursor is 21x21 because this is the size of
- * the arrow cursor on Windows
- */
- point.y += 21;
- tip.setLocation(point);
- tip.pack();
- tip.setVisible(true);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnHideTooltip() {
- if (tip != null && !tip.isDisposed()) tip.dispose();
- tip = null;
- return XPCOM.NS_OK;
-}
-
-/* nsIDirectoryServiceProvider */
-
-int /*long*/ GetFile(int /*long*/ prop, int /*long*/ persistent, int /*long*/ retVal) {
- int size = XPCOM.strlen(prop);
- byte[] bytes = new byte[size];
- XPCOM.memmove(bytes, prop, size);
- String propertyName = new String(Converter.mbcsToWcs(null, bytes));
- String propertyValue = null;
-
- if (propertyName.equals(XPCOM.NS_APP_HISTORY_50_FILE)) {
- propertyValue = profileRootDirectory + HISTORY_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_USER_MIMETYPES_50_FILE)) {
- propertyValue = profileRootDirectory + MIMETYPES_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_PREFS_50_FILE)) {
- propertyValue = profileRootDirectory + PREFERENCES_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_PREFS_50_DIR)) {
- propertyValue = profileRootDirectory;
- } else if (propertyName.equals(XPCOM.NS_APP_USER_CHROME_DIR)) {
- propertyValue = profileRootDirectory + CHROME_DIR;
- } else if (propertyName.equals(XPCOM.NS_APP_USER_PROFILE_50_DIR)) {
- propertyValue = profileRootDirectory;
- } else if (propertyName.equals(XPCOM.NS_APP_LOCALSTORE_50_FILE)) {
- propertyValue = profileRootDirectory + LOCALSTORE_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_CACHE_PARENT_DIR)) {
- propertyValue = profileRootDirectory;
- } else if (propertyName.equals(XPCOM.NS_OS_HOME_DIR)) {
- propertyValue = System.getProperty("user.home"); //$NON-NLS-1$
- } else if (propertyName.equals(XPCOM.NS_OS_TEMP_DIR)) {
- propertyValue = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$
- }
-
- if (propertyValue != null && propertyValue.length() > 0) {
- int /*long*/[] result = new int /*long*/[1];
- nsEmbedString pathString = new nsEmbedString(propertyValue);
- int rc = XPCOM.NS_NewLocalFile(pathString.getAddress(), true, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NULL_POINTER);
- pathString.dispose();
- XPCOM.memmove(retVal, new int /*long*/[] {result[0]}, 4);
- /* note that boolean remains of size 4 on 64 bit machines */
- XPCOM.memmove(persistent, new int[] {1}, 4);
- }
-
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..aea74b0d81
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.gtk.GTK;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ static boolean gtkLoaded;
+
+ static boolean IsLinux;
+ static {
+ String osName = System.getProperty ("os.name").toLowerCase (); //$NON-NLS-1$
+ IsLinux = osName.startsWith ("linux"); //$NON-NLS-1$
+ }
+
+MozillaDelegate (Browser browser) {
+ super ();
+ if (!IsLinux) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [Unsupported platform]"); //$NON-NLS-1$
+ }
+ this.browser = browser;
+
+ if (!gtkLoaded) {
+ gtkLoaded = true;
+ try {
+ Library.loadLibrary ("swt-gtk"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError e) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, e);
+ }
+ }
+
+}
+
+static Browser findBrowser (int handle) {
+ Display display = Display.getCurrent ();
+ Shell[] shells = display.getShells ();
+ Browser browser = null;
+ for (int i = 0; i < shells.length; i++) {
+ browser = findBrowser (shells[i], handle);
+ if (browser != null) break;
+ }
+ return browser;
+}
+
+static Browser findBrowser (Control control, int gtkHandle) {
+ if (control instanceof Browser) {
+ Browser browser = (Browser)control;
+ WebBrowser webBrowser = browser.webBrowser;
+ if (webBrowser instanceof Mozilla) {
+ if (((Mozilla)webBrowser).embedHandle == gtkHandle) return browser;
+ }
+ }
+ if (control instanceof Composite) {
+ Composite composite = (Composite)control;
+ Control[] children = composite.getChildren ();
+ for (int i = 0; i < children.length; i++) {
+ Browser browser = findBrowser (children[i], gtkHandle);
+ if (browser != null) return browser;
+ }
+ }
+ return null;
+}
+
+public static char[] mbcsToWcs (String codePage, byte [] buffer) {
+ return Converter.mbcsToWcs (codePage, buffer);
+}
+
+public static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ return Converter.wcsToMbcs (codePage, string, terminate);
+}
+
+int getHandle() {
+ if (Mozilla.BrowserCount == 1) {
+ GTK.gtk_init_check (new int[1], null);
+ final Display display = browser.getDisplay ();
+ display.asyncExec (new Runnable () {
+ public void run () {
+ if (Mozilla.BrowserCount == 0) return;
+ while (GTK.gtk_events_pending () != 0) {
+ GTK.gtk_main_iteration ();
+ }
+ display.timerExec (25, this);
+ }
+ });
+ }
+ browser.getShell ().setFocus ();
+ int result = GTK.gtk_plug_new (browser.embeddedHandle);
+ GTK.gtk_widget_show (result);
+ return result;
+}
+
+void onDispose (int embedHandle) {
+ GTK.gtk_widget_destroy (embedHandle);
+ while (GTK.gtk_events_pending () != 0) {
+ GTK.gtk_main_iteration ();
+ }
+}
+
+void setSize(int embedHandle, int width, int height) {
+ // TODO?
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptDialog.java
deleted file mode 100644
index 2275833456..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptDialog.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class PromptDialog extends Dialog {
-
- public PromptDialog(Shell parent, int style) {
- super(parent, style);
- }
-
- public PromptDialog(Shell parent) {
- this(parent, 0);
- }
-
- public void confirmEx(String title, String text, String check, String button1, String button2, String button3, final int[] checkValue, final int[] result) {
- Shell parent = getParent();
- final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- shell.setText(title);
- GridLayout gridLayout = new GridLayout();
- shell.setLayout(gridLayout);
- Label label = new Label(shell, SWT.WRAP);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- label.setLayoutData (data);
-
- final Button[] buttons = new Button[4];
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- if (buttons[0] != null) checkValue[0] = buttons[0].getSelection() ? 1 : 0;
- Widget widget = event.widget;
- for (int i = 1; i < buttons.length; i++) {
- if (widget == buttons[i]) {
- result[0] = i - 1;
- break;
- }
- }
- shell.close();
- }
- };
- if (check != null) {
- buttons[0] = new Button(shell, SWT.CHECK);
- buttons[0].setText(check);
- buttons[0].setSelection(checkValue[0] != 0);
- data = new GridData ();
- data.horizontalAlignment = GridData.END;
- buttons[0].setLayoutData (data);
- }
- Composite composite = new Composite(shell, SWT.NONE);
- data = new GridData();
- data.horizontalAlignment = GridData.END;
- composite.setLayoutData (data);
- composite.setLayout(new RowLayout());
- if (button1 != null) {
- buttons[1] = new Button(composite, SWT.PUSH);
- buttons[1].setText(button1);
- buttons[1].addListener(SWT.Selection, listener);
- }
- if (button2 != null) {
- buttons[2] = new Button(composite, SWT.PUSH);
- buttons[2].setText(button2);
- buttons[2].addListener(SWT.Selection, listener);
- }
- if (button3 != null) {
- buttons[3] = new Button(composite, SWT.PUSH);
- buttons[3].setText(button3);
- buttons[3].addListener(SWT.Selection, listener);
- }
- shell.pack();
- shell.open();
- Display display = parent.getDisplay();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch()) display.sleep();
- }
- }
-
- public void prompt(String title, String text, String check, final String[] value, final int[] checkValue, final int[] result) {
- Shell parent = getParent();
- final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- if (title != null) shell.setText(title);
- GridLayout gridLayout = new GridLayout();
- shell.setLayout(gridLayout);
- Label label = new Label(shell, SWT.WRAP);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- label.setLayoutData (data);
-
- final Text valueText = new Text(shell, SWT.BORDER);
- if (value[0] != null) valueText.setText(value[0]);
- data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- valueText.setLayoutData(data);
-
- final Button[] buttons = new Button[3];
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- if (buttons[0] != null) checkValue[0] = buttons[0].getSelection() ? 1 : 0;
- value[0] = valueText.getText();
- result[0] = event.widget == buttons[1] ? 1 : 0;
- shell.close();
- }
- };
- if (check != null) {
- buttons[0] = new Button(shell, SWT.CHECK);
- buttons[0].setText(check);
- buttons[0].setSelection(checkValue[0] != 0);
- data = new GridData ();
- data.horizontalAlignment = GridData.END;
- buttons[0].setLayoutData (data);
- }
- Composite composite = new Composite(shell, SWT.NONE);
- data = new GridData();
- data.horizontalAlignment = GridData.END;
- composite.setLayoutData (data);
- composite.setLayout(new GridLayout(2, true));
- buttons[1] = new Button(composite, SWT.PUSH);
- buttons[1].setText(SWT.getMessage("SWT_OK")); //$NON-NLS-1$
- buttons[1].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- buttons[1].addListener(SWT.Selection, listener);
- buttons[2] = new Button(composite, SWT.PUSH);
- buttons[2].setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
- buttons[2].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- buttons[2].addListener(SWT.Selection, listener);
-
- shell.pack();
- shell.open();
- Display display = parent.getDisplay();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch()) display.sleep();
- }
- }
- public void promptUsernameAndPassword(String title, String text, String check, final String[] user, final String[] pass, final int[] checkValue, final int[] result) {
- Shell parent = getParent();
- final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- shell.setText(title);
- GridLayout gridLayout = new GridLayout();
- shell.setLayout(gridLayout);
- Label label = new Label(shell, SWT.WRAP);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- label.setLayoutData (data);
-
- Label userLabel = new Label(shell, SWT.NONE);
- userLabel.setText(SWT.getMessage("SWT_Username")); //$NON-NLS-1$
-
- final Text userText = new Text(shell, SWT.BORDER);
- if (user[0] != null) userText.setText(user[0]);
- data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- userText.setLayoutData(data);
-
- Label passwordLabel = new Label(shell, SWT.NONE);
- passwordLabel.setText(SWT.getMessage("SWT_Password")); //$NON-NLS-1$
-
- final Text passwordText = new Text(shell, SWT.PASSWORD | SWT.BORDER);
- if (pass[0] != null) passwordText.setText(pass[0]);
- data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- passwordText.setLayoutData(data);
-
- final Button[] buttons = new Button[3];
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- if (buttons[0] != null) checkValue[0] = buttons[0].getSelection() ? 1 : 0;
- user[0] = userText.getText();
- pass[0] = passwordText.getText();
- result[0] = event.widget == buttons[1] ? 1 : 0;
- shell.close();
- }
- };
- if (check != null) {
- buttons[0] = new Button(shell, SWT.CHECK);
- buttons[0].setText(check);
- buttons[0].setSelection(checkValue[0] != 0);
- data = new GridData ();
- buttons[0].setLayoutData (data);
- }
- Composite composite = new Composite(shell, SWT.NONE);
- data = new GridData();
- data.horizontalAlignment = GridData.END;
- composite.setLayoutData (data);
- composite.setLayout(new GridLayout(2, true));
- buttons[1] = new Button(composite, SWT.PUSH);
- buttons[1].setText(SWT.getMessage("SWT_OK")); //$NON-NLS-1$
- buttons[1].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- buttons[1].addListener(SWT.Selection, listener);
- buttons[2] = new Button(composite, SWT.PUSH);
- buttons[2].setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
- buttons[2].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- buttons[2].addListener(SWT.Selection, listener);
-
- shell.setDefaultButton(buttons[1]);
- shell.pack();
- shell.open();
- Display display = parent.getDisplay();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch()) display.sleep();
- }
- }
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptService.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptService.java
deleted file mode 100644
index ffd45f5334..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptService.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.widgets.*;
-
-class PromptService {
- XPCOMObject supports;
- XPCOMObject promptService;
- int refCount = 0;
-
-public PromptService() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- promptService = new XPCOMObject(new int[]{2, 0, 0, 3, 5, 4, 6, 10, 7, 8, 7, 7}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Alert(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return AlertCheck(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method5(int /*long*/[] args) {return Confirm(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method6(int /*long*/[] args) {return ConfirmCheck(args[0], args[1], args[2], args[3], args[4], args[5]);}
- public int /*long*/ method7(int /*long*/[] args) {return ConfirmEx(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);}
- public int /*long*/ method8(int /*long*/[] args) {return Prompt(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
- public int /*long*/ method9(int /*long*/[] args) {return PromptUsernameAndPassword(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);}
- public int /*long*/ method10(int /*long*/[] args) {return PromptPassword(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
- public int /*long*/ method11(int /*long*/[] args) {return Select(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (promptService != null) {
- promptService.dispose();
- promptService = null;
- }
-}
-
-int /*long*/ getAddress() {
- return promptService.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIPromptService.NS_IPROMPTSERVICE_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {promptService.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-Browser getBrowser(int /*long*/ aDOMWindow) {
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIWindowWatcher windowWatcher = new nsIWindowWatcher(result[0]);
- result[0] = 0;
- rc = windowWatcher.GetChromeForWindow(aDOMWindow, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- windowWatcher.Release();
-
- nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome(result[0]);
- result[0] = 0;
- rc = webBrowserChrome.QueryInterface(nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- webBrowserChrome.Release();
-
- nsIEmbeddingSiteWindow embeddingSiteWindow = new nsIEmbeddingSiteWindow(result[0]);
- result[0] = 0;
- rc = embeddingSiteWindow.GetSiteWindow(result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- embeddingSiteWindow.Release();
-
- return Mozilla.findBrowser(result[0]);
-}
-
-String getLabel(int buttonFlag, int index, int /*long*/ buttonTitle) {
- String label = null;
- int flag = (buttonFlag & (0xff * index)) / index;
- switch (flag) {
- case nsIPromptService.BUTTON_TITLE_CANCEL : label = SWT.getMessage("SWT_Cancel"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_NO : label = SWT.getMessage("SWT_No"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_OK : label = SWT.getMessage("SWT_OK"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_SAVE : label = SWT.getMessage("SWT_Save"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_YES : label = SWT.getMessage("SWT_Yes"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_IS_STRING : {
- int length = XPCOM.strlen_PRUnichar(buttonTitle);
- char[] dest = new char[length];
- XPCOM.memmove(dest, buttonTitle, length * 2);
- label = new String(dest);
- }
- }
- return label;
-}
-
-/* nsIPromptService */
-
-public int /*long*/ Alert(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text) {
- Browser browser = getBrowser(parent);
-
- int length = XPCOM.strlen_PRUnichar(dialogTitle);
- char[] dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- String titleLabel = new String(dest);
-
- length = XPCOM.strlen_PRUnichar(text);
- dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- String textLabel = new String(dest);
-
- MessageBox messageBox = new MessageBox(browser.getShell(), SWT.OK | SWT.ICON_WARNING);
- messageBox.setText(titleLabel);
- messageBox.setMessage(textLabel);
- messageBox.open();
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ AlertCheck(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ checkMsg, int /*long*/ checkValue) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ Confirm(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
-
- int length = XPCOM.strlen_PRUnichar(dialogTitle);
- char[] dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- String titleLabel = new String(dest);
-
- length = XPCOM.strlen_PRUnichar(text);
- dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- String textLabel = new String(dest);
-
- MessageBox messageBox = new MessageBox(browser.getShell(), SWT.OK | SWT.CANCEL | SWT.ICON_QUESTION);
- messageBox.setText(titleLabel);
- messageBox.setMessage(textLabel);
- int id = messageBox.open();
- int[] result = { id == SWT.OK ? 1 : 0};
- XPCOM.memmove(_retval, result, 4);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ ConfirmCheck(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ ConfirmEx(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ buttonFlags, int /*long*/ button0Title, int /*long*/ button1Title, int /*long*/ button2Title, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
-
- int length = XPCOM.strlen_PRUnichar(dialogTitle);
- char[] dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- String titleLabel = new String(dest);
-
- length = XPCOM.strlen_PRUnichar(text);
- dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- String textLabel = new String(dest);
-
- String checkLabel = null;
- if (checkMsg != 0) {
- length = XPCOM.strlen_PRUnichar(checkMsg);
- dest = new char[length];
- XPCOM.memmove(dest, checkMsg, length * 2);
- checkLabel = new String(dest);
- }
-
- String button1Label = getLabel((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_0, button0Title);
- String button2Label = getLabel((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_1, button1Title);
- String button3Label = getLabel((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_2, button2Title);
-
- PromptDialog dialog = new PromptDialog(browser.getShell());
- int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.confirmEx(titleLabel, textLabel, checkLabel, button1Label, button2Label, button3Label, check, result);
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
- XPCOM.memmove(_retval, result, 4);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ Prompt(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ value, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
- String titleLabel = null, textLabel, checkLabel = null;
- String[] valueLabel = new String[1];
- char[] dest;
- int length;
- if (dialogTitle != 0) {
- length = XPCOM.strlen_PRUnichar(dialogTitle);
- dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- titleLabel = new String(dest);
- }
-
- length = XPCOM.strlen_PRUnichar(text);
- dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- textLabel = new String(dest);
-
- int /*long*/[] valueAddr = new int /*long*/[1];
- XPCOM.memmove(valueAddr, value, C.PTR_SIZEOF);
- if (valueAddr[0] != 0) {
- length = XPCOM.strlen_PRUnichar(valueAddr[0]);
- dest = new char[length];
- XPCOM.memmove(dest, valueAddr[0], length * 2);
- valueLabel[0] = new String(dest);
- }
-
- if (checkMsg != 0) {
- length = XPCOM.strlen_PRUnichar(checkMsg);
- dest = new char[length];
- XPCOM.memmove(dest, checkMsg, length * 2);
- checkLabel = new String(dest);
- }
-
- PromptDialog dialog = new PromptDialog(browser.getShell());
- int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.prompt(titleLabel, textLabel, checkLabel, valueLabel, check, result);
-
- XPCOM.memmove(_retval, result, 4);
- if (result[0] == 1) {
- /*
- * User selected OK. User name and password are returned as PRUnichar values. Any default
- * value that we override must be freed using the nsIMemory service.
- */
- int cnt, size;
- int /*long*/ ptr;
- char[] buffer;
- int /*long*/[] result2 = new int /*long*/[1];
- if (valueLabel[0] != null) {
- cnt = valueLabel[0].length();
- buffer = new char[cnt + 1];
- valueLabel[0].getChars(0, cnt, buffer, 0);
- size = buffer.length * 2;
- ptr = C.malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(value, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
-
- if (valueAddr[0] != 0) {
- int rc = XPCOM.NS_GetServiceManager(result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result2[0]);
- result2[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_MEMORY_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIMemory memory = new nsIMemory(result2[0]);
- result2[0] = 0;
- memory.Free(valueAddr[0]);
- memory.Release();
- }
- }
- }
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ PromptUsernameAndPassword(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ username, int /*long*/ password, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
- String titleLabel, textLabel, checkLabel = null;
- String[] userLabel = new String[1], passLabel = new String[1];
- char[] dest;
- int length;
- if (dialogTitle != 0) {
- length = XPCOM.strlen_PRUnichar(dialogTitle);
- dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- titleLabel = new String(dest);
- } else {
- titleLabel = ""; //$NON-NLS-1$
- }
-
- length = XPCOM.strlen_PRUnichar(text);
- dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- textLabel = new String(dest);
-
- int /*long*/[] userAddr = new int /*long*/[1];
- XPCOM.memmove(userAddr, username, C.PTR_SIZEOF);
- if (userAddr[0] != 0) {
- length = XPCOM.strlen_PRUnichar(userAddr[0]);
- dest = new char[length];
- XPCOM.memmove(dest, userAddr[0], length * 2);
- userLabel[0] = new String(dest);
- }
-
- int /*long*/[] passAddr = new int /*long*/[1];
- XPCOM.memmove(passAddr, password, C.PTR_SIZEOF);
- if (passAddr[0] != 0) {
- length = XPCOM.strlen_PRUnichar(passAddr[0]);
- dest = new char[length];
- XPCOM.memmove(dest, passAddr[0], length * 2);
- passLabel[0] = new String(dest);
- }
-
- if (checkMsg != 0) {
- length = XPCOM.strlen_PRUnichar(checkMsg);
- dest = new char[length];
- XPCOM.memmove(dest, checkMsg, length * 2);
- checkLabel = new String(dest);
- }
-
- PromptDialog dialog = new PromptDialog(browser.getShell());
- int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.promptUsernameAndPassword(titleLabel, textLabel, checkLabel, userLabel, passLabel, check, result);
-
- XPCOM.memmove(_retval, result, 4);
- if (result[0] == 1) {
- /*
- * User selected OK. User name and password are returned as PRUnichar values. Any default
- * value that we override must be freed using the nsIMemory service.
- */
- int cnt, size;
- int /*long*/ ptr;
- char[] buffer;
- int /*long*/[] result2 = new int /*long*/[1];
- if (userLabel[0] != null) {
- cnt = userLabel[0].length();
- buffer = new char[cnt + 1];
- userLabel[0].getChars(0, cnt, buffer, 0);
- size = buffer.length * 2;
- ptr = C.malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(username, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
-
- if (userAddr[0] != 0) {
- int rc = XPCOM.NS_GetServiceManager(result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result2[0]);
- result2[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_MEMORY_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIMemory memory = new nsIMemory(result2[0]);
- result2[0] = 0;
- memory.Free(userAddr[0]);
- memory.Release();
- }
- }
- if (passLabel[0] != null) {
- cnt = passLabel[0].length();
- buffer = new char[cnt + 1];
- passLabel[0].getChars(0, cnt, buffer, 0);
- size = buffer.length * 2;
- ptr = C.malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(password, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
-
- if (passAddr[0] != 0) {
- int rc = XPCOM.NS_GetServiceManager(result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result2[0]);
- result2[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_MEMORY_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIMemory memory = new nsIMemory(result2[0]);
- result2[0] = 0;
- memory.Free(passAddr[0]);
- memory.Release();
- }
- }
- }
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ PromptPassword(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ password, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-public int /*long*/ Select(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ count, int /*long*/ selectList, int /*long*/ outSelection, int /*long*/ _retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptServiceFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptServiceFactory.java
deleted file mode 100644
index 80e1051ea9..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/PromptServiceFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-
-class PromptServiceFactory {
- XPCOMObject supports;
- XPCOMObject factory;
- int refCount = 0;
-
-public PromptServiceFactory() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (factory != null) {
- factory.dispose();
- factory = null;
- }
-}
-
-int /*long*/ getAddress() {
- return factory.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIFactory */
-
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- PromptService promptService = new PromptService();
- promptService.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {promptService.getAddress()}, C.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-public int /*long*/ LockFactory(int /*long*/ lock) {
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/WindowCreator.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/WindowCreator.java
deleted file mode 100644
index 9df7456182..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/WindowCreator.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class WindowCreator {
- XPCOMObject supports;
- XPCOMObject windowCreator;
- int refCount = 0;
-
-public WindowCreator() {
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- windowCreator = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateChromeWindow(args[0], args[1], args[2]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (windowCreator != null) {
- windowCreator.dispose();
- windowCreator = null;
- }
-}
-
-int /*long*/ getAddress() {
- return windowCreator.getAddress();
-}
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWindowCreator.NS_IWINDOWCREATOR_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {windowCreator.getAddress()}, C.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIWindowCreator */
-
-int /*long*/ CreateChromeWindow(int /*long*/ parent, int /*long*/ chromeFlags, int /*long*/ _retval) {
- if (parent == 0 && (chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) == 0) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
- }
- Browser src = null;
- if (parent != 0) {
- nsIWebBrowserChrome browserChromeParent = new nsIWebBrowserChrome(parent);
- int /*long*/[] aWebBrowser = new int /*long*/[1];
- int rc = browserChromeParent.GetWebBrowser(aWebBrowser);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (aWebBrowser[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowser webBrowser = new nsIWebBrowser(aWebBrowser[0]);
- int /*long*/[] result = new int /*long*/[1];
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
- webBrowser.Release();
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- result[0] = 0;
- int /*long*/[] aParentNativeWindow = new int /*long*/[1];
- rc = baseWindow.GetParentNativeWindow(aParentNativeWindow);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (aParentNativeWindow[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
- baseWindow.Release();
-
- src = Mozilla.findBrowser(aParentNativeWindow[0]);
- }
- final Browser browser;
- boolean doit = false;
- if ((chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) != 0) {
- /*
- * Feature on Mozilla. On platforms that lack a native dialog, Mozilla sends a
- * requests for a new Browser instance in a modal window. e.g. on Windows, Mozilla
- * brings up automatically a native Print Dialog in response to the javascript
- * command window.print() whereas on Linux Mozilla requests a new modal window
- * and a Browser to display an emulated HTML based print dialog. For this reason,
- * modal requests are handled here and not exposed to the user.
- */
- final Shell shell = src == null ?
- new Shell(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL) :
- new Shell(src.getShell(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- shell.setLayout(new FillLayout());
- browser = new Browser(shell, src.getStyle() & SWT.NONE /*MOZILLA*/); // TODO
- browser.addVisibilityWindowListener(new VisibilityWindowListener() {
- public void hide(WindowEvent event) {
- }
- public void show(WindowEvent event) {
- if (event.location != null) shell.setLocation(event.location);
- if (event.size != null) {
- Point size = event.size;
- shell.setSize(shell.computeSize(size.x, size.y));
- }
- shell.open();
- ((Mozilla)browser.webBrowser).isModal = true;
- }
- });
- browser.addCloseWindowListener(new CloseWindowListener() {
- public void close(WindowEvent event) {
- shell.close();
- }
- });
- doit = true;
- } else {
- WindowEvent event = new WindowEvent(src);
- event.display = src.getDisplay();
- event.widget = src;
- event.required = true;
- for (int i = 0; i < src.webBrowser.openWindowListeners.length; i++) {
- src.webBrowser.openWindowListeners[i].open(event);
- }
- browser = event.browser;
- doit = browser != null && !browser.isDisposed();
- if (doit) {
- ((Mozilla)browser.webBrowser).addressBar = (chromeFlags & nsIWebBrowserChrome.CHROME_LOCATIONBAR) != 0;
- ((Mozilla)browser.webBrowser).menuBar = (chromeFlags & nsIWebBrowserChrome.CHROME_MENUBAR) != 0;
- ((Mozilla)browser.webBrowser).statusBar = (chromeFlags & nsIWebBrowserChrome.CHROME_STATUSBAR) != 0;
- ((Mozilla)browser.webBrowser).toolBar = (chromeFlags & nsIWebBrowserChrome.CHROME_TOOLBAR) != 0;
- }
- }
- if (doit) {
- int /*long*/ address = ((Mozilla)browser.webBrowser).webBrowserChrome.getAddress();
- nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome(address);
- webBrowserChrome.AddRef();
- XPCOM.memmove(_retval, new int /*long*/[] {address}, C.PTR_SIZEOF);
- }
- return doit ? XPCOM.NS_OK : XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/internal/mozilla/XPCOMObject.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/internal/mozilla/XPCOMObject.java
deleted file mode 100644
index 0a564a0d45..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/internal/mozilla/XPCOMObject.java
+++ /dev/null
@@ -1,1023 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.internal.mozilla;
-
-import java.util.Hashtable;
-import org.eclipse.swt.internal.Callback;
-import org.eclipse.swt.internal.motif.OS;
-import org.eclipse.swt.SWT;
-
-public class XPCOMObject {
-
- private int ppVtable;
-
- static private final int MAX_ARG_COUNT = 12;
- static private final int MAX_VTABLE_LENGTH = 80;
- static private Callback[][] Callbacks = new Callback[MAX_VTABLE_LENGTH][MAX_ARG_COUNT];
- static private Hashtable ObjectMap = new Hashtable();
-
-public XPCOMObject(int[] argCounts) {
- int[] callbackAddresses = new int[argCounts.length];
- for (int i = 0, length = argCounts.length; i < length; i++){
- if ((Callbacks[i][argCounts[i]]) == null) {
- Callbacks[i][argCounts[i]] = new Callback(this.getClass(), "callback"+i, argCounts[i] + 1, true); //$NON-NLS-1$
- }
- callbackAddresses[i] = Callbacks[i][argCounts[i]].getAddress();
- if (callbackAddresses[i] == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
- }
-
- int pVtable = OS.XtMalloc(4 * argCounts.length);
- XPCOM.memmove(pVtable, callbackAddresses, 4 * argCounts.length);
- ppVtable = OS.XtMalloc(4);
- XPCOM.memmove(ppVtable, new int[] {pVtable}, 4);
- ObjectMap.put(new Integer(ppVtable), this);
-}
-
-static int callback0(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method0(args);
-}
-static int callback1(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method1(args);
-}
-static int callback10(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method10(args);
-}
-static int callback11(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method11(args);
-}
-static int callback12(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method12(args);
-}
-static int callback13(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method13(args);
-}
-static int callback14(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method14(args);
-}
-static int callback15(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method15(args);
-}
-static int callback16(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method16(args);
-}
-static int callback17(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method17(args);
-}
-static int callback18(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method18(args);
-}
-static int callback19(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method19(args);
-}
-static int callback2(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method2(args);
-}
-static int callback20(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method20(args);
-}
-static int callback21(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method21(args);
-}
-static int callback22(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method22(args);
-}
-static int callback23(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method23(args);
-}
-static int callback24(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method24(args);
-}
-static int callback25(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method25(args);
-}
-static int callback26(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method26(args);
-}
-static int callback27(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method27(args);
-}
-static int callback28(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method28(args);
-}
-static int callback29(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method29(args);
-}
-static int callback3(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method3(args);
-}
-static int callback30(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method30(args);
-}
-static int callback31(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method31(args);
-}
-static int callback32(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method32(args);
-}
-static int callback33(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method33(args);
-}
-static int callback34(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method34(args);
-}
-static int callback35(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method35(args);
-}
-static int callback36(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method36(args);
-}
-static int callback37(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method37(args);
-}
-static int callback38(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method38(args);
-}
-static int callback39(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method39(args);
-}
-static int callback4(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method4(args);
-}
-static int callback40(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method40(args);
-}
-static int callback41(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method41(args);
-}
-static int callback42(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method42(args);
-}
-static int callback43(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method43(args);
-}
-static int callback44(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method44(args);
-}
-static int callback45(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method45(args);
-}
-static int callback46(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method46(args);
-}
-static int callback47(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method47(args);
-}
-static int callback48(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method48(args);
-}
-static int callback49(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method49(args);
-}
-static int callback5(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method5(args);
-}
-static int callback50(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method50(args);
-}
-static int callback51(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method51(args);
-}
-static int callback52(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method52(args);
-}
-static int callback53(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method53(args);
-}
-static int callback54(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method54(args);
-}
-static int callback55(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method55(args);
-}
-static int callback56(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method56(args);
-}
-static int callback57(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method57(args);
-}
-static int callback58(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method58(args);
-}
-static int callback59(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method59(args);
-}
-static int callback6(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method6(args);
-}
-static int callback60(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method60(args);
-}
-static int callback61(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method61(args);
-}
-static int callback62(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method62(args);
-}
-static int callback63(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method63(args);
-}
-static int callback64(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method64(args);
-}
-static int callback65(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method65(args);
-}
-static int callback66(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method66(args);
-}
-static int callback67(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method67(args);
-}
-static int callback68(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method68(args);
-}
-static int callback69(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method69(args);
-}
-static int callback7(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method7(args);
-}
-static int callback70(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method70(args);
-}
-static int callback71(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method71(args);
-}
-static int callback72(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method72(args);
-}
-static int callback73(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method73(args);
-}
-static int callback74(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method74(args);
-}
-static int callback75(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method75(args);
-}
-static int callback76(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method76(args);
-}
-static int callback77(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method77(args);
-}
-static int callback78(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method78(args);
-}
-static int callback79(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method79(args);
-}
-static int callback8(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method8(args);
-}
-static int callback9(int[] callbackArgs) {
- // find the object on which this call was invoked
- int address = callbackArgs[0];
- Object object = ObjectMap.get(new Integer(address));
- if (object == null) return XPCOM.NS_ERROR_FAILURE;
- int[] args = new int[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method9(args);
-}
-
-public void dispose() {
- // free the memory for this reference
- int[] pVtable = new int[1];
- XPCOM.memmove(pVtable, ppVtable, 4);
- OS.XtFree(pVtable[0]);
- OS.XtFree(ppVtable);
-
- // remove this ppVtable from the list
- ObjectMap.remove(new Integer(ppVtable));
-
- ppVtable = 0;
-}
-
-public int getAddress () {
- return ppVtable;
-}
-
-public int method0(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method1(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method10(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method11(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method12(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method13(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method14(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method15(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method16(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method17(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method18(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method19(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method2(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method20(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method21(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method22(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method23(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method24(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method25(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method26(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method27(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method28(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method29(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method3(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method30(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method31(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method32(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method33(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method34(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method35(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method36(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method37(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method38(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method39(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method4(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method40(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method41(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method42(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method43(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method44(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method45(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method46(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method47(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method48(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method49(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method5(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method50(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method51(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method52(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method53(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method54(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method55(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method56(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method57(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method58(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method59(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method6(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method60(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method61(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method62(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method63(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method64(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method65(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method66(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method67(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method68(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method69(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method7(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method70(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method71(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method72(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method73(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method74(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method75(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method76(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method77(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method78(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method79(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method8(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-public int method9(int[] args) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-}
-
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download.java
index 0f7cf146c1..7b828a8b35 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download.java
@@ -13,7 +13,6 @@ package org.eclipse.swt.browser;
import org.eclipse.swt.SWT;
import org.eclipse.swt.internal.*;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
@@ -29,342 +28,342 @@ class Download {
Label status;
Button cancel;
-public Download() {
- createCOMInterfaces();
+public Download () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- download = new XPCOMObject(new int[]{2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Init(args[0], args[1], args[2],args[3], args[4], args[5], args[6]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method6(int /*long*/[] args) {return GetPersist(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return SetDisplayName(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetListener(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return SetListener(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetObserver(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return SetObserver(args[0]);}
+ download = new XPCOMObject (new int[] {2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetPersist (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetDisplayName (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetListener (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return SetListener (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetObserver (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return SetObserver (args[0]);}
};
- progressDialog = new XPCOMObject(new int[]{2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Init(args[0], args[1], args[2],args[3], args[4], args[5], args[6]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method6(int /*long*/[] args) {return GetPersist(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return SetDisplayName(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetListener(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return SetListener(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetObserver(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return SetObserver(args[0]);}
- public int /*long*/ method16(int /*long*/[] args) {return Open(args[0]);}
- public int /*long*/ method17(int /*long*/[] args) {return GetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method18(int /*long*/[] args) {return SetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method19(int /*long*/[] args) {return GetDialog(args[0]);}
- public int /*long*/ method20(int /*long*/[] args) {return SetDialog(args[0]);}
+ progressDialog = new XPCOMObject (new int[] {2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetPersist (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetDisplayName (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetListener (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return SetListener (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetObserver (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return SetObserver (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return Open (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return GetCancelDownloadOnClose (args[0]);}
+ public int /*long*/ method18 (int /*long*/[] args) {return SetCancelDownloadOnClose (args[0]);}
+ public int /*long*/ method19 (int /*long*/[] args) {return GetDialog (args[0]);}
+ public int /*long*/ method20 (int /*long*/[] args) {return SetDialog (args[0]);}
};
- webProgressListener = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2],args[3],args[4],args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
+ webProgressListener = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], args[2]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (download != null) {
- download.dispose();
+ download.dispose ();
download = null;
}
if (progressDialog != null) {
- progressDialog.dispose();
- progressDialog = null;
+ progressDialog.dispose ();
+ progressDialog = null;
}
if (webProgressListener != null) {
- webProgressListener.dispose();
- webProgressListener = null;
+ webProgressListener.dispose ();
+ webProgressListener = null;
}
}
-int /*long*/ getAddress() {
- return progressDialog.getAddress();
+int /*long*/ getAddress () {
+ return progressDialog.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIDownload.NS_IDOWNLOAD_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {download.getAddress()}, OS.PTR_SIZEOF);
+ if (guid.Equals (nsIDownload.NS_IDOWNLOAD_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIProgressDialog.NS_IPROGRESSDIALOG_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {progressDialog.getAddress()}, OS.PTR_SIZEOF);
+ if (guid.Equals (nsIProgressDialog.NS_IPROGRESSDIALOG_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {progressDialog.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webProgressListener.getAddress()}, OS.PTR_SIZEOF);
+ if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webProgressListener.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIDownload */
/* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
-public int /*long*/ Init(int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aPersist) {
- nsIURI source = new nsIURI(aSource);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- int rc = source.GetHost(aSpec);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
+public int /*long*/ Init (int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aPersist) {
+ nsIURI source = new nsIURI (aSource);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ int rc = source.GetHost (aSpec);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- String url = new String(dest);
-
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ String url = new String (dest);
+
/*
* As of mozilla 1.7 the second argument of the nsIDownload interface's
* Init function changed from nsILocalFile to nsIURI. Detect which of
* these interfaces the second argument implements and act accordingly.
*/
String filename = null;
- nsISupports supports = new nsISupports(aTarget);
+ nsISupports supports = new nsISupports (aTarget);
int /*long*/[] result = new int /*long*/[1];
- rc = supports.QueryInterface(nsIURI.NS_IURI_IID, result);
+ rc = supports.QueryInterface (nsIURI.NS_IURI_IID, result);
if (rc == 0) { /* >= 1.7 */
- nsIURI target = new nsIURI(result[0]);
+ nsIURI target = new nsIURI (result[0]);
result[0] = 0;
- int /*long*/ aPath = XPCOM.nsEmbedCString_new();
- rc = target.GetPath(aPath);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- length = XPCOM.nsEmbedCString_Length(aPath);
- buffer = XPCOM.nsEmbedCString_get(aPath);
+ int /*long*/ aPath = XPCOM.nsEmbedCString_new ();
+ rc = target.GetPath (aPath);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ length = XPCOM.nsEmbedCString_Length (aPath);
+ buffer = XPCOM.nsEmbedCString_get (aPath);
dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aPath);
- filename = new String(dest);
- int separator = filename.lastIndexOf(System.getProperty("file.separator")); //$NON-NLS-1$
- filename = filename.substring(separator + 1);
- target.Release();
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aPath);
+ filename = new String (dest);
+ int separator = filename.lastIndexOf (System.getProperty ("file.separator")); //$NON-NLS-1$
+ filename = filename.substring (separator + 1);
+ target.Release ();
} else { /* < 1.7 */
- nsILocalFile target = new nsILocalFile(aTarget);
- int /*long*/ aNativeTarget = XPCOM.nsEmbedCString_new();
- rc = target.GetNativeLeafName(aNativeTarget);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- length = XPCOM.nsEmbedCString_Length(aNativeTarget);
- buffer = XPCOM.nsEmbedCString_get(aNativeTarget);
+ nsILocalFile target = new nsILocalFile (aTarget);
+ int /*long*/ aNativeTarget = XPCOM.nsEmbedCString_new ();
+ rc = target.GetNativeLeafName (aNativeTarget);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ length = XPCOM.nsEmbedCString_Length (aNativeTarget);
+ buffer = XPCOM.nsEmbedCString_get (aNativeTarget);
dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aNativeTarget);
- filename = new String(dest);
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aNativeTarget);
+ filename = new String (dest);
}
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
+ Listener listener = new Listener () {
+ public void handleEvent (Event event) {
if (event.widget == cancel) {
- shell.close();
+ shell.close ();
}
if (helperAppLauncher != null) {
- helperAppLauncher.Cancel();
- helperAppLauncher.Release();
+ helperAppLauncher.Cancel ();
+ helperAppLauncher.Release ();
}
shell = null;
helperAppLauncher = null;
}
};
- shell = new Shell(SWT.DIALOG_TRIM);
- String msg = Compatibility.getMessage("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
- shell.setText(msg);
- GridLayout gridLayout = new GridLayout();
+ shell = new Shell (SWT.DIALOG_TRIM);
+ String msg = Compatibility.getMessage ("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
+ shell.setText (msg);
+ GridLayout gridLayout = new GridLayout ();
gridLayout.marginHeight = 15;
gridLayout.marginWidth = 15;
gridLayout.verticalSpacing = 20;
shell.setLayout(gridLayout);
- msg = Compatibility.getMessage("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
- new Label(shell, SWT.SIMPLE).setText(msg);
- status = new Label(shell, SWT.SIMPLE);
- msg = Compatibility.getMessage("SWT_Download_Started"); //$NON-NLS-1$
- status.setText(msg);
+ msg = Compatibility.getMessage ("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
+ new Label (shell, SWT.SIMPLE).setText (msg);
+ status = new Label (shell, SWT.SIMPLE);
+ msg = Compatibility.getMessage ("SWT_Download_Started"); //$NON-NLS-1$
+ status.setText (msg);
GridData data = new GridData ();
data.grabExcessHorizontalSpace = true;
data.grabExcessVerticalSpace = true;
status.setLayoutData (data);
-
- cancel = new Button(shell, SWT.PUSH);
- cancel.setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
+
+ cancel = new Button (shell, SWT.PUSH);
+ cancel.setText (SWT.getMessage ("SWT_Cancel")); //$NON-NLS-1$
data = new GridData ();
data.horizontalAlignment = GridData.CENTER;
cancel.setLayoutData (data);
- cancel.addListener(SWT.Selection, listener);
- shell.addListener(SWT.Close, listener);
- shell.pack();
- shell.open();
+ cancel.addListener (SWT.Selection, listener);
+ shell.addListener (SWT.Close, listener);
+ shell.pack ();
+ shell.open ();
return XPCOM.NS_OK;
}
-public int /*long*/ GetSource(int /*long*/ aSource) {
+public int /*long*/ GetSource (int /*long*/ aSource) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetTarget(int /*long*/ aTarget) {
+public int /*long*/ GetTarget (int /*long*/ aTarget) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetPersist(int /*long*/ aPersist) {
+public int /*long*/ GetPersist (int /*long*/ aPersist) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetPercentComplete(int /*long*/ aPercentComplete) {
+public int /*long*/ GetPercentComplete (int /*long*/ aPercentComplete) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetDisplayName(int /*long*/ aDisplayName) {
+public int /*long*/ GetDisplayName (int /*long*/ aDisplayName) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetDisplayName(int /*long*/ aDisplayName) {
+public int /*long*/ SetDisplayName (int /*long*/ aDisplayName) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetStartTime(int /*long*/ aStartTime) {
+public int /*long*/ GetStartTime (int /*long*/ aStartTime) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetMIMEInfo(int /*long*/ aMIMEInfo) {
+public int /*long*/ GetMIMEInfo (int /*long*/ aMIMEInfo) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetListener(int /*long*/ aListener) {
+public int /*long*/ GetListener (int /*long*/ aListener) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetListener(int /*long*/ aListener) {
+public int /*long*/ SetListener (int /*long*/ aListener) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetObserver(int /*long*/ aObserver) {
+public int /*long*/ GetObserver (int /*long*/ aObserver) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetObserver(int /*long*/ aObserver) {
+public int /*long*/ SetObserver (int /*long*/ aObserver) {
if (aObserver != 0) {
- nsISupports supports = new nsISupports(aObserver);
+ nsISupports supports = new nsISupports (aObserver);
int /*long*/[] result = new int /*long*/[1];
- int rc = supports.QueryInterface(nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
- helperAppLauncher = new nsIHelperAppLauncher(result[0]);
+ int rc = supports.QueryInterface (nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ helperAppLauncher = new nsIHelperAppLauncher (result[0]);
}
return XPCOM.NS_OK;
}
/* nsIProgressDialog */
-public int /*long*/ Open(int /*long*/ aParent) {
+public int /*long*/ Open (int /*long*/ aParent) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
+public int /*long*/ GetCancelDownloadOnClose (int /*long*/ aCancelDownloadOnClose) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
+public int /*long*/ SetCancelDownloadOnClose (int /*long*/ aCancelDownloadOnClose) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetDialog(int /*long*/ aDialog) {
+public int /*long*/ GetDialog (int /*long*/ aDialog) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetDialog(int /*long*/ aDialog) {
+public int /*long*/ SetDialog (int /*long*/ aDialog) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIWebProgressListener */
-int /*long*/ OnStateChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
+int /*long*/ OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
- if (helperAppLauncher != null) helperAppLauncher.Release();
+ if (helperAppLauncher != null) helperAppLauncher.Release ();
helperAppLauncher = null;
- if (shell != null && !shell.isDisposed()) shell.dispose();
+ if (shell != null && !shell.isDisposed ()) shell.dispose ();
shell = null;
}
return XPCOM.NS_OK;
}
-int /*long*/ OnProgressChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
+int /*long*/ OnProgressChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
int currentKBytes = (int)/*64*/aCurTotalProgress / 1024;
int totalKBytes = (int)/*64*/aMaxTotalProgress / 1024;
- if (shell != null & !shell.isDisposed()) {
- Object[] arguments = {new Integer(currentKBytes), new Integer(totalKBytes)};
- String statusMsg = Compatibility.getMessage("SWT_Download_Status", arguments); //$NON-NLS-1$
- status.setText(statusMsg);
- shell.layout(true);
- shell.getDisplay().update();
+ if (shell != null & !shell.isDisposed ()) {
+ Object[] arguments = {new Integer (currentKBytes), new Integer (totalKBytes)};
+ String statusMsg = Compatibility.getMessage ("SWT_Download_Status", arguments); //$NON-NLS-1$
+ status.setText (statusMsg);
+ shell.layout (true);
+ shell.getDisplay ().update ();
}
return XPCOM.NS_OK;
}
-int /*long*/ OnLocationChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
+int /*long*/ OnLocationChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
return XPCOM.NS_OK;
}
-
-int /*long*/ OnStatusChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
+
+int /*long*/ OnStatusChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
return XPCOM.NS_OK;
-}
+}
-int /*long*/ OnSecurityChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
+int /*long*/ OnSecurityChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory.java
index f0cae7a0da..8a2937d856 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory.java
@@ -10,91 +10,91 @@
*******************************************************************************/
package org.eclipse.swt.browser;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
class DownloadFactory {
XPCOMObject supports;
XPCOMObject factory;
int refCount = 0;
-public DownloadFactory() {
- createCOMInterfaces();
+public DownloadFactory () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory (args[0]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (factory != null) {
- factory.dispose();
+ factory.dispose ();
factory = null;
}
}
-int /*long*/ getAddress() {
- return factory.getAddress();
+int /*long*/ getAddress () {
+ return factory.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIFactory */
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- Download download = new Download();
- download.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {download.getAddress()}, OS.PTR_SIZEOF);
+public int /*long*/ CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ Download download = new Download ();
+ download.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
-public int /*long*/ LockFactory(int /*long*/ lock) {
+public int /*long*/ LockFactory (int /*long*/ lock) {
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory_1_8.java
index 711145c28c..ea7b67c154 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory_1_8.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/DownloadFactory_1_8.java
@@ -10,91 +10,91 @@
*******************************************************************************/
package org.eclipse.swt.browser;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
class DownloadFactory_1_8 {
XPCOMObject supports;
XPCOMObject factory;
int refCount = 0;
-public DownloadFactory_1_8() {
- createCOMInterfaces();
+public DownloadFactory_1_8 () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory (args[0]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (factory != null) {
- factory.dispose();
+ factory.dispose ();
factory = null;
}
}
-int /*long*/ getAddress() {
- return factory.getAddress();
+int /*long*/ getAddress () {
+ return factory.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
-
+
/* nsIFactory */
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- Download_1_8 download = new Download_1_8();
- download.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {download.getAddress()}, OS.PTR_SIZEOF);
+public int /*long*/ CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ Download_1_8 download = new Download_1_8 ();
+ download.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
-public int /*long*/ LockFactory(int /*long*/ lock) {
+public int /*long*/ LockFactory (int /*long*/ lock) {
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download_1_8.java
index 3486b92f6f..7830221820 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download_1_8.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Download_1_8.java
@@ -13,7 +13,6 @@ package org.eclipse.swt.browser;
import org.eclipse.swt.SWT;
import org.eclipse.swt.internal.*;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
@@ -29,364 +28,364 @@ class Download_1_8 {
Label status;
Button cancel;
- static final boolean is32 = OS.PTR_SIZEOF == 4;
+ static final boolean is32 = C.PTR_SIZEOF == 4;
-public Download_1_8() {
- createCOMInterfaces();
+public Download_1_8 () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- download = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2], args[3], args[4], args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- public int /*long*/ method8(int /*long*/[] args) {
+ download = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], args[2]);}
+ public int /*long*/ method8 (int /*long*/[] args) {
if (args.length == 10) {
- return OnProgressChange64_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
+ return OnProgressChange64_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
} else {
- return OnProgressChange64(args[0], args[1], args[2], args[3], args[4], args[5]);
+ return OnProgressChange64 (args[0], args[1], args[2], args[3], args[4], args[5]);
}
}
- public int /*long*/ method9(int /*long*/[] args) {
+ public int /*long*/ method9 (int /*long*/[] args) {
if (args.length == 8) {
- return Init_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
+ return Init_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
} else {
- return Init(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
+ return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
}
}
- public int /*long*/ method10(int /*long*/[] args) {return GetTargetFile(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetAmountTransferred(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return GetSize(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method16(int /*long*/[] args) {return GetCancelable(args[0]);}
- public int /*long*/ method17(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method18(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method19(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetTargetFile (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetAmountTransferred (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return GetSize (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return GetCancelable (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method18 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method19 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
};
- progressDialog = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2], args[3], args[4], args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- public int /*long*/ method8(int /*long*/[] args) {
+ progressDialog = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], args[2]);}
+ public int /*long*/ method8 (int /*long*/[] args) {
if (args.length == 10) {
- return OnProgressChange64_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
+ return OnProgressChange64_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
} else {
- return OnProgressChange64(args[0], args[1], args[2], args[3], args[4], args[5]);
+ return OnProgressChange64 (args[0], args[1], args[2], args[3], args[4], args[5]);
}
}
- public int /*long*/ method9(int /*long*/[] args) {
+ public int /*long*/ method9 (int /*long*/[] args) {
if (args.length == 8) {
- return Init_32(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
+ return Init_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
} else {
- return Init(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
+ return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
}
}
- public int /*long*/ method10(int /*long*/[] args) {return GetTargetFile(args[0]);}
- public int /*long*/ method11(int /*long*/[] args) {return GetPercentComplete(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return GetAmountTransferred(args[0]);}
- public int /*long*/ method13(int /*long*/[] args) {return GetSize(args[0]);}
- public int /*long*/ method14(int /*long*/[] args) {return GetSource(args[0]);}
- public int /*long*/ method15(int /*long*/[] args) {return GetTarget(args[0]);}
- public int /*long*/ method16(int /*long*/[] args) {return GetCancelable(args[0]);}
- public int /*long*/ method17(int /*long*/[] args) {return GetDisplayName(args[0]);}
- public int /*long*/ method18(int /*long*/[] args) {return GetStartTime(args[0]);}
- public int /*long*/ method19(int /*long*/[] args) {return GetMIMEInfo(args[0]);}
- public int /*long*/ method20(int /*long*/[] args) {return Open(args[0]);}
- public int /*long*/ method21(int /*long*/[] args) {return GetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method22(int /*long*/[] args) {return SetCancelDownloadOnClose(args[0]);}
- public int /*long*/ method23(int /*long*/[] args) {return GetObserver(args[0]);}
- public int /*long*/ method24(int /*long*/[] args) {return SetObserver(args[0]);}
- public int /*long*/ method25(int /*long*/[] args) {return GetDialog(args[0]);}
- public int /*long*/ method26(int /*long*/[] args) {return SetDialog(args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetTargetFile (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetAmountTransferred (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return GetSize (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return GetCancelable (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method18 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method19 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
+ public int /*long*/ method20 (int /*long*/[] args) {return Open (args[0]);}
+ public int /*long*/ method21 (int /*long*/[] args) {return GetCancelDownloadOnClose (args[0]);}
+ public int /*long*/ method22 (int /*long*/[] args) {return SetCancelDownloadOnClose (args[0]);}
+ public int /*long*/ method23 (int /*long*/[] args) {return GetObserver (args[0]);}
+ public int /*long*/ method24 (int /*long*/[] args) {return SetObserver (args[0]);}
+ public int /*long*/ method25 (int /*long*/[] args) {return GetDialog (args[0]);}
+ public int /*long*/ method26 (int /*long*/[] args) {return SetDialog (args[0]);}
};
- webProgressListener = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2],args[3],args[4],args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
+ webProgressListener = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], args[2],args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], args[2]);}
};
}
void disposeCOMInterfaces() {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (download != null) {
- download.dispose();
+ download.dispose ();
download = null;
}
if (progressDialog != null) {
- progressDialog.dispose();
+ progressDialog.dispose ();
progressDialog = null;
}
if (webProgressListener != null) {
- webProgressListener.dispose();
+ webProgressListener.dispose ();
webProgressListener = null;
}
}
-int /*long*/ getAddress() {
- return progressDialog.getAddress();
+int /*long*/ getAddress () {
+ return progressDialog.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIDownload_1_8.NS_IDOWNLOAD_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {download.getAddress()}, OS.PTR_SIZEOF);
+ if (guid.Equals (nsIDownload_1_8.NS_IDOWNLOAD_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIProgressDialog_1_8.NS_IPROGRESSDIALOG_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {progressDialog.getAddress()}, OS.PTR_SIZEOF);
+ if (guid.Equals (nsIProgressDialog_1_8.NS_IPROGRESSDIALOG_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {progressDialog.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webProgressListener.getAddress()}, OS.PTR_SIZEOF);
+ if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webProgressListener.getAddress ()}, C.PTR_SIZEOF);
AddRef();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIDownload */
/* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
-public int Init_32(int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aTempFile, int /*long*/ aCancelable) {
+public int Init_32 (int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aTempFile, int /*long*/ aCancelable) {
long startTime = (startTime2 << 32) + startTime1;
return Init (aSource, aTarget, aDisplayName, aMIMEInfo, startTime, aTempFile, aCancelable);
}
-public int Init(int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, long startTime, int /*long*/ aTempFile, int /*long*/ aCancelable) {
- cancelable = new nsICancelable(aCancelable);
- nsIURI source = new nsIURI(aSource);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- int rc = source.GetHost(aSpec);
+public int Init (int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, long startTime, int /*long*/ aTempFile, int /*long*/ aCancelable) {
+ cancelable = new nsICancelable (aCancelable);
+ nsIURI source = new nsIURI (aSource);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ int rc = source.GetHost (aSpec);
if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- String url = new String(dest);
-
- nsIURI target = new nsIURI(aTarget);
- int /*long*/ aPath = XPCOM.nsEmbedCString_new();
- rc = target.GetPath(aPath);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- length = XPCOM.nsEmbedCString_Length(aPath);
- buffer = XPCOM.nsEmbedCString_get(aPath);
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ String url = new String (dest);
+
+ nsIURI target = new nsIURI (aTarget);
+ int /*long*/ aPath = XPCOM.nsEmbedCString_new ();
+ rc = target.GetPath (aPath);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ length = XPCOM.nsEmbedCString_Length (aPath);
+ buffer = XPCOM.nsEmbedCString_get (aPath);
dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aPath);
- String filename = new String(dest);
- int separator = filename.lastIndexOf(System.getProperty("file.separator")); //$NON-NLS-1$
- filename = filename.substring(separator + 1);
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aPath);
+ String filename = new String (dest);
+ int separator = filename.lastIndexOf (System.getProperty ("file.separator")); //$NON-NLS-1$
+ filename = filename.substring (separator + 1);
Listener listener = new Listener() {
- public void handleEvent(Event event) {
+ public void handleEvent (Event event) {
if (event.widget == cancel) {
- shell.close();
+ shell.close ();
}
if (cancelable != null) {
- int rc = cancelable.Cancel(XPCOM.NS_BINDING_ABORTED);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
+ int rc = cancelable.Cancel (XPCOM.NS_BINDING_ABORTED);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
}
shell = null;
cancelable = null;
}
};
- shell = new Shell(SWT.DIALOG_TRIM);
- String msg = Compatibility.getMessage("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
- shell.setText(msg);
- GridLayout gridLayout = new GridLayout();
+ shell = new Shell (SWT.DIALOG_TRIM);
+ String msg = Compatibility.getMessage ("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
+ shell.setText (msg);
+ GridLayout gridLayout = new GridLayout ();
gridLayout.marginHeight = 15;
gridLayout.marginWidth = 15;
gridLayout.verticalSpacing = 20;
- shell.setLayout(gridLayout);
- msg = Compatibility.getMessage("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
- new Label(shell, SWT.SIMPLE).setText(msg);
- status = new Label(shell, SWT.SIMPLE);
- msg = Compatibility.getMessage("SWT_Download_Started"); //$NON-NLS-1$
- status.setText(msg);
+ shell.setLayout (gridLayout);
+ msg = Compatibility.getMessage ("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
+ new Label (shell, SWT.SIMPLE).setText (msg);
+ status = new Label (shell, SWT.SIMPLE);
+ msg = Compatibility.getMessage ("SWT_Download_Started"); //$NON-NLS-1$
+ status.setText (msg);
GridData data = new GridData ();
data.grabExcessHorizontalSpace = true;
data.grabExcessVerticalSpace = true;
status.setLayoutData (data);
- cancel = new Button(shell, SWT.PUSH);
- cancel.setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
+ cancel = new Button (shell, SWT.PUSH);
+ cancel.setText (SWT.getMessage ("SWT_Cancel")); //$NON-NLS-1$
data = new GridData ();
data.horizontalAlignment = GridData.CENTER;
cancel.setLayoutData (data);
- cancel.addListener(SWT.Selection, listener);
- shell.addListener(SWT.Close, listener);
- shell.pack();
- shell.open();
+ cancel.addListener (SWT.Selection, listener);
+ shell.addListener (SWT.Close, listener);
+ shell.pack ();
+ shell.open ();
return XPCOM.NS_OK;
}
-int /*long*/ GetAmountTransferred(int /*long*/ arg0) {
+int /*long*/ GetAmountTransferred (int /*long*/ arg0) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-int /*long*/ GetCancelable(int /*long*/ arg0) {
+int /*long*/ GetCancelable (int /*long*/ arg0) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetDisplayName(int /*long*/ aDisplayName) {
+public int /*long*/ GetDisplayName (int /*long*/ aDisplayName) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetMIMEInfo(int /*long*/ aMIMEInfo) {
+public int /*long*/ GetMIMEInfo (int /*long*/ aMIMEInfo) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetPercentComplete(int /*long*/ aPercentComplete) {
+public int /*long*/ GetPercentComplete (int /*long*/ aPercentComplete) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-int /*long*/ GetSize(int /*long*/ arg0) {
+int /*long*/ GetSize (int /*long*/ arg0) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetSource(int /*long*/ aSource) {
+public int /*long*/ GetSource (int /*long*/ aSource) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetStartTime(int /*long*/ aStartTime) {
+public int /*long*/ GetStartTime (int /*long*/ aStartTime) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetTarget(int /*long*/ aTarget) {
+public int /*long*/ GetTarget (int /*long*/ aTarget) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-int /*long*/ GetTargetFile(int /*long*/ arg0) {
+int /*long*/ GetTargetFile (int /*long*/ arg0) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIProgressDialog */
-public int /*long*/ GetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
+public int /*long*/ GetCancelDownloadOnClose (int /*long*/ aCancelDownloadOnClose) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetDialog(int /*long*/ aDialog) {
+public int /*long*/ GetDialog (int /*long*/ aDialog) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ GetObserver(int /*long*/ aObserver) {
+public int /*long*/ GetObserver (int /*long*/ aObserver) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ Open(int /*long*/ aParent) {
+public int /*long*/ Open (int /*long*/ aParent) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetCancelDownloadOnClose(int /*long*/ aCancelDownloadOnClose) {
+public int /*long*/ SetCancelDownloadOnClose (int /*long*/ aCancelDownloadOnClose) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetDialog(int /*long*/ aDialog) {
+public int /*long*/ SetDialog (int /*long*/ aDialog) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ SetObserver(int /*long*/ aObserver) {
+public int /*long*/ SetObserver (int /*long*/ aObserver) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIWebProgressListener */
-int /*long*/ OnLocationChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
+int /*long*/ OnLocationChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
return XPCOM.NS_OK;
}
-int /*long*/ OnProgressChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
- return OnProgressChange64(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
+int /*long*/ OnProgressChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
+ return OnProgressChange64 (aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
}
/* Note. The last 4 args in the original interface are defined as PRInt64. These each translate into two java ints. */
-int /*long*/ OnProgressChange64_32(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress1, int /*long*/ aCurSelfProgress2, int /*long*/ aMaxSelfProgress1, int /*long*/ aMaxSelfProgress2, int /*long*/ aCurTotalProgress1, int /*long*/ aCurTotalProgress2, int /*long*/ aMaxTotalProgress1, int /*long*/ aMaxTotalProgress2) {
+int /*long*/ OnProgressChange64_32 (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress1, int /*long*/ aCurSelfProgress2, int /*long*/ aMaxSelfProgress1, int /*long*/ aMaxSelfProgress2, int /*long*/ aCurTotalProgress1, int /*long*/ aCurTotalProgress2, int /*long*/ aMaxTotalProgress1, int /*long*/ aMaxTotalProgress2) {
long aCurSelfProgress = (aCurSelfProgress2 << 32) + aCurSelfProgress1;
long aMaxSelfProgress = (aMaxSelfProgress2 << 32) + aMaxSelfProgress1;
long aCurTotalProgress = (aCurTotalProgress2 << 32) + aCurTotalProgress1;
long aMaxTotalProgress = (aMaxTotalProgress2 << 32) + aMaxTotalProgress1;
- return OnProgressChange64(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
+ return OnProgressChange64 (aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
}
-int /*long*/ OnProgressChange64(int /*long*/ aWebProgress, int /*long*/ aRequest, long aCurSelfProgress, long aMaxSelfProgress, long aCurTotalProgress, long aMaxTotalProgress) {
+int /*long*/ OnProgressChange64 (int /*long*/ aWebProgress, int /*long*/ aRequest, long aCurSelfProgress, long aMaxSelfProgress, long aCurTotalProgress, long aMaxTotalProgress) {
long currentKBytes = aCurTotalProgress / 1024;
long totalKBytes = aMaxTotalProgress / 1024;
- if (shell != null & !shell.isDisposed()) {
- Object[] arguments = {new Long(currentKBytes), new Long(totalKBytes)};
- String statusMsg = Compatibility.getMessage("SWT_Download_Status", arguments); //$NON-NLS-1$
- status.setText(statusMsg);
- shell.layout(true);
- shell.getDisplay().update();
+ if (shell != null & !shell.isDisposed ()) {
+ Object[] arguments = {new Long (currentKBytes), new Long (totalKBytes)};
+ String statusMsg = Compatibility.getMessage ("SWT_Download_Status", arguments); //$NON-NLS-1$
+ status.setText (statusMsg);
+ shell.layout (true);
+ shell.getDisplay ().update ();
}
return XPCOM.NS_OK;
}
-int /*long*/ OnSecurityChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
+int /*long*/ OnSecurityChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
return XPCOM.NS_OK;
}
-int /*long*/ OnStateChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
+int /*long*/ OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
cancelable = null;
- if (shell != null && !shell.isDisposed()) shell.dispose();
+ if (shell != null && !shell.isDisposed ()) shell.dispose ();
shell = null;
}
return XPCOM.NS_OK;
}
-int /*long*/ OnStatusChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
+int /*long*/ OnStatusChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePicker.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePicker.java
index 3c3f1f00aa..3c52b67dff 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePicker.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePicker.java
@@ -11,9 +11,8 @@
package org.eclipse.swt.browser;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.internal.Converter;
+import org.eclipse.swt.internal.*;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
import org.eclipse.swt.widgets.*;
class FilePicker {
@@ -21,7 +20,6 @@ class FilePicker {
XPCOMObject filePicker;
int refCount = 0;
-
int mode;
int /*long*/ parentHandle;
String[] files, masks;
@@ -40,31 +38,31 @@ int AddRef () {
void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject (new int[] {2, 0, 0}){
- public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface(args [0], args [1]);}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
filePicker = new XPCOMObject (new int[] {2, 0, 0, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
- public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args [0], args [1]);}
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
- public int /*long*/ method3 (int /*long*/[] args) {return Init (args [0], args [1], args [2]);}
- public int /*long*/ method4 (int /*long*/[] args) {return AppendFilters (args [0]);}
- public int /*long*/ method5 (int /*long*/[] args) {return AppendFilter (args [0], args [1]);}
- public int /*long*/ method6 (int /*long*/[] args) {return GetDefaultString (args [0]);}
- public int /*long*/ method7 (int /*long*/[] args) {return SetDefaultString (args [0]);}
- public int /*long*/ method8 (int /*long*/[] args) {return GetDefaultExtension (args [0]);}
- public int /*long*/ method9 (int /*long*/[] args) {return SetDefaultExtension (args [0]);}
- public int /*long*/ method10 (int /*long*/[] args) {return GetFilterIndex (args [0]);}
- public int /*long*/ method11 (int /*long*/[] args) {return SetFilterIndex (args [0]);}
- public int /*long*/ method12 (int /*long*/[] args) {return GetDisplayDirectory (args [0]);}
- public int /*long*/ method13 (int /*long*/[] args) {return SetDisplayDirectory (args [0]);}
- public int /*long*/ method14 (int /*long*/[] args) {return GetFile (args [0]);}
- public int /*long*/ method15 (int /*long*/[] args) {return GetFileURL (args [0]);}
- public int /*long*/ method16 (int /*long*/[] args) {return GetFiles (args [0]);}
- public int /*long*/ method17 (int /*long*/[] args) {return Show (args [0]);}
+ public int /*long*/ method3 (int /*long*/[] args) {return Init (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return AppendFilters (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return AppendFilter (args[0], args[1]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetDefaultString (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return SetDefaultString (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetDefaultExtension (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetDefaultExtension (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetFilterIndex (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return SetFilterIndex (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetDisplayDirectory (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return SetDisplayDirectory (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetFile (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return GetFileURL (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return GetFiles (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return Show (args[0]);}
};
}
@@ -89,16 +87,16 @@ int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
XPCOM.memmove (guid, riid, nsID.sizeof);
if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
AddRef ();
return XPCOM.NS_OK;
}
if (guid.Equals (nsIFilePicker.NS_IFILEPICKER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {filePicker.getAddress ()}, OS.PTR_SIZEOF);
+ XPCOM.memmove(ppvObject, new int /*long*/[] {filePicker.getAddress ()}, C.PTR_SIZEOF);
AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove (ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
@@ -115,7 +113,7 @@ int /*long*/ Init (int /*long*/ parent, int /*long*/ title, int /*long*/ mode) {
this.mode = (int)/*64*/mode;
if (title != 0) {
int length = XPCOM.strlen_PRUnichar (title);
- char[] chars = new char [length];
+ char[] chars = new char[length];
XPCOM.memmove (chars, title, length * 2);
this.title = new String (chars);
}
@@ -127,18 +125,17 @@ int /*long*/ Show (int /*long*/ _retval) {
if (mode == nsIFilePicker.modeGetFolder) {
/* picking a directory */
int result = showDirectoryPicker ();
- XPCOM.memmove (_retval, new int /*long*/[] {result}, OS.PTR_SIZEOF);
+ XPCOM.memmove (_retval, new int /*long*/[] {result}, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
/* picking a file */
int style = mode == nsIFilePicker.modeSave ? SWT.SAVE : SWT.OPEN;
if (mode == nsIFilePicker.modeOpenMultiple) style |= SWT.MULTI;
- Shell parent;
- if (parentHandle != 0) {
- parent = Shell.gtk_new (Display.getCurrent (), parentHandle);
- } else {
- parent = new Shell (Display.getCurrent ());
+ Display display = Display.getCurrent ();
+ Shell parent = null; // TODO compute parent
+ if (parent == null) {
+ parent = new Shell (display);
}
FileDialog dialog = new FileDialog (parent, style);
if (title != null) dialog.setText (title);
@@ -151,16 +148,15 @@ int /*long*/ Show (int /*long*/ _retval) {
title = defaultFilename = null;
masks = null;
int result = filename == null ? nsIFilePicker.returnCancel : nsIFilePicker.returnOK;
- XPCOM.memmove (_retval, new int /*long*/[] {result}, OS.PTR_SIZEOF);
+ XPCOM.memmove (_retval, new int /*long*/[] {result}, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
int showDirectoryPicker () {
- Shell parent;
- if (parentHandle != 0) {
- parent = Shell.gtk_new (Display.getCurrent (), parentHandle);
- } else {
- parent = new Shell (Display.getCurrent ());
+ Display display = Display.getCurrent ();
+ Shell parent = null; // TODO compute parent
+ if (parent == null) {
+ parent = new Shell (display);
}
DirectoryDialog dialog = new DirectoryDialog (parent, SWT.NONE);
if (title != null) dialog.setText (title);
@@ -182,14 +178,14 @@ int /*long*/ GetFileURL (int /*long*/ aFileURL) {
int /*long*/ GetFile (int /*long*/ aFile) {
String filename = ""; //$NON-NLS-1$
if (directory != null) filename += directory + SEPARATOR;
- if (files != null && files.length > 0) filename += files [0];
+ if (files != null && files.length > 0) filename += files[0];
nsEmbedString path = new nsEmbedString (filename);
int /*long*/[] file = new int /*long*/[1];
int rc = XPCOM.NS_NewLocalFile (path.getAddress (), true, file);
path.dispose ();
if (rc != XPCOM.NS_OK) Mozilla.error (rc);
- if (file [0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
- XPCOM.memmove (aFile, file, OS.PTR_SIZEOF);
+ if (file[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ XPCOM.memmove (aFile, file, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
@@ -200,10 +196,10 @@ int /*long*/ SetDisplayDirectory (int /*long*/ aDisplayDirectory) {
file.GetNativePath (pathname);
int length = XPCOM.nsEmbedCString_Length (pathname);
int /*long*/ buffer = XPCOM.nsEmbedCString_get (pathname);
- byte[] bytes = new byte [length];
+ byte[] bytes = new byte[length];
XPCOM.memmove (bytes, buffer, length);
XPCOM.nsEmbedCString_delete (pathname);
- char[] chars = Converter.mbcsToWcs (null, bytes);
+ char[] chars = MozillaDelegate.mbcsToWcs (null, bytes);
directory = new String (chars);
return XPCOM.NS_OK;
}
@@ -215,8 +211,8 @@ int /*long*/ GetDisplayDirectory (int /*long*/ aDisplayDirectory) {
int rc = XPCOM.NS_NewLocalFile (path.getAddress (), true, file);
path.dispose ();
if (rc != XPCOM.NS_OK) Mozilla.error (rc);
- if (file [0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
- XPCOM.memmove (aDisplayDirectory, file, OS.PTR_SIZEOF);
+ if (file[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ XPCOM.memmove (aDisplayDirectory, file, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
@@ -239,7 +235,7 @@ int /*long*/ GetDefaultExtension (int /*long*/ aDefaultExtension) {
int /*long*/ SetDefaultString (int /*long*/ aDefaultString) {
if (aDefaultString == 0) return XPCOM.NS_OK;
int length = XPCOM.strlen_PRUnichar (aDefaultString);
- char[] chars = new char [length];
+ char[] chars = new char[length];
XPCOM.memmove (chars, aDefaultString, length * 2);
defaultFilename = new String (chars);
return XPCOM.NS_OK;
@@ -280,7 +276,7 @@ int /*long*/ AppendFilters (int /*long*/ filterMask) {
masks = addFilters;
} else {
if (addFilters != null) {
- String[] newFilters = new String [masks.length + addFilters.length];
+ String[] newFilters = new String[masks.length + addFilters.length];
System.arraycopy (masks, 0, newFilters, 0, masks.length);
System.arraycopy (addFilters, 0, newFilters, masks.length, addFilters.length);
masks = newFilters;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePickerFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePickerFactory.java
index e57d5f8379..bf2d41f728 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePickerFactory.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/FilePickerFactory.java
@@ -10,91 +10,91 @@
*******************************************************************************/
package org.eclipse.swt.browser;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
class FilePickerFactory {
XPCOMObject supports;
XPCOMObject factory;
int refCount = 0;
-public FilePickerFactory() {
- createCOMInterfaces();
+public FilePickerFactory () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory (args[0]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (factory != null) {
- factory.dispose();
+ factory.dispose ();
factory = null;
}
}
-int /*long*/ getAddress() {
- return factory.getAddress();
+int /*long*/ getAddress () {
+ return factory.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIFactory */
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+public int /*long*/ CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
FilePicker picker = new FilePicker ();
- picker.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {picker.getAddress()}, OS.PTR_SIZEOF);
+ picker.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {picker.getAddress ()}, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
-public int /*long*/ LockFactory(int /*long*/ lock) {
+public int /*long*/ LockFactory (int /*long*/ lock) {
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialog.java
index 35e68aaee0..e7fa2f93a9 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialog.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialog.java
@@ -11,8 +11,8 @@
package org.eclipse.swt.browser;
import org.eclipse.swt.*;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
import org.eclipse.swt.widgets.*;
class HelperAppLauncherDialog {
@@ -20,68 +20,68 @@ class HelperAppLauncherDialog {
XPCOMObject helperAppLauncherDialog;
int refCount = 0;
-public HelperAppLauncherDialog() {
- createCOMInterfaces();
+public HelperAppLauncherDialog () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- helperAppLauncherDialog = new XPCOMObject(new int[]{2, 0, 0, 3, 5}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Show(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return PromptForSaveToFile(args[0], args[1], args[2], args[3], args[4]);}
+ helperAppLauncherDialog = new XPCOMObject (new int[] {2, 0, 0, 3, 5}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Show (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return PromptForSaveToFile (args[0], args[1], args[2], args[3], args[4]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (helperAppLauncherDialog != null) {
- helperAppLauncherDialog.dispose();
+ helperAppLauncherDialog.dispose ();
helperAppLauncherDialog = null;
}
}
-int /*long*/ getAddress() {
- return helperAppLauncherDialog.getAddress();
+int /*long*/ getAddress () {
+ return helperAppLauncherDialog.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIHelperAppLauncherDialog.NS_IHELPERAPPLAUNCHERDIALOG_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {helperAppLauncherDialog.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIHelperAppLauncherDialog.NS_IHELPERAPPLAUNCHERDIALOG_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {helperAppLauncherDialog.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
/*
* Note. This instance lives as long as the download it is binded to.
@@ -90,32 +90,32 @@ int Release() {
* cancels the File Dialog, cancels or closes the Download Dialog
* and when the Download Dialog goes away after the download is completed.
*/
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIHelperAppLauncherDialog */
-public int /*long*/ Show(int /*long*/ aLauncher, int /*long*/ aContext, int /*long*/ aReason) {
+public int /*long*/ Show (int /*long*/ aLauncher, int /*long*/ aContext, int /*long*/ aReason) {
/*
* The interface for nsIHelperAppLauncher changed as of mozilla 1.8. Query the received
* nsIHelperAppLauncher for the new interface, and if it is not found then fall back to
* the old interface.
*/
- nsISupports supports = new nsISupports(aLauncher);
+ nsISupports supports = new nsISupports (aLauncher);
int /*long*/[] result = new int /*long*/[1];
- int rc = supports.QueryInterface(nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
+ int rc = supports.QueryInterface (nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
if (rc == 0) { /* >= 1.8 */
- nsIHelperAppLauncher_1_8 helperAppLauncher = new nsIHelperAppLauncher_1_8(aLauncher);
- rc = helperAppLauncher.SaveToDisk(0, false);
- helperAppLauncher.Release();
+ nsIHelperAppLauncher_1_8 helperAppLauncher = new nsIHelperAppLauncher_1_8 (aLauncher);
+ rc = helperAppLauncher.SaveToDisk (0, false);
+ helperAppLauncher.Release ();
return rc;
}
- nsIHelperAppLauncher helperAppLauncher = new nsIHelperAppLauncher(aLauncher); /* < 1.8 */
- return helperAppLauncher.SaveToDisk(0, false);
+ nsIHelperAppLauncher helperAppLauncher = new nsIHelperAppLauncher (aLauncher); /* < 1.8 */
+ return helperAppLauncher.SaveToDisk (0, false);
}
-public int /*long*/ PromptForSaveToFile(int /*long*/ arg0, int /*long*/ arg1, int /*long*/ arg2, int /*long*/ arg3, int /*long*/ arg4) {
+public int /*long*/ PromptForSaveToFile (int /*long*/ arg0, int /*long*/ arg1, int /*long*/ arg2, int /*long*/ arg3, int /*long*/ arg4) {
int /*long*/ aDefaultFile, aSuggestedFileExtension, _retval;
boolean hasLauncher = false;
@@ -132,21 +132,21 @@ public int /*long*/ PromptForSaveToFile(int /*long*/ arg0, int /*long*/ arg1, in
* The interface for nsIHelperAppLauncher changed as of mozilla 1.8, so the first
* argument must be queried for both the old and new nsIHelperAppLauncher interfaces.
*/
- nsISupports support = new nsISupports(arg0);
+ nsISupports support = new nsISupports (arg0);
int /*long*/[] result = new int /*long*/[1];
- int rc = support.QueryInterface(nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
+ int rc = support.QueryInterface (nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
boolean usingMozilla18 = rc == 0;
if (usingMozilla18) {
hasLauncher = true;
- nsISupports supports = new nsISupports(result[0]);
- supports.Release();
+ nsISupports supports = new nsISupports (result[0]);
+ supports.Release ();
} else {
result[0] = 0;
- rc = support.QueryInterface(nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
+ rc = support.QueryInterface (nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
if (rc == 0) {
hasLauncher = true;
- nsISupports supports = new nsISupports(result[0]);
- supports.Release();
+ nsISupports supports = new nsISupports (result[0]);
+ supports.Release ();
}
}
result[0] = 0;
@@ -161,43 +161,43 @@ public int /*long*/ PromptForSaveToFile(int /*long*/ arg0, int /*long*/ arg1, in
_retval = arg3;
}
- int length = XPCOM.strlen_PRUnichar(aDefaultFile);
+ int length = XPCOM.strlen_PRUnichar (aDefaultFile);
char[] dest = new char[length];
- XPCOM.memmove(dest, aDefaultFile, length * 2);
- String defaultFile = new String(dest);
+ XPCOM.memmove (dest, aDefaultFile, length * 2);
+ String defaultFile = new String (dest);
- length = XPCOM.strlen_PRUnichar(aSuggestedFileExtension);
+ length = XPCOM.strlen_PRUnichar (aSuggestedFileExtension);
dest = new char[length];
- XPCOM.memmove(dest, aSuggestedFileExtension, length * 2);
- String suggestedFileExtension = new String(dest);
-
- Shell shell = new Shell();
- FileDialog fileDialog = new FileDialog(shell, SWT.SAVE);
- fileDialog.setFileName(defaultFile);
- fileDialog.setFilterExtensions(new String[] {suggestedFileExtension});
- String name = fileDialog.open();
- shell.close();
+ XPCOM.memmove (dest, aSuggestedFileExtension, length * 2);
+ String suggestedFileExtension = new String (dest);
+
+ Shell shell = new Shell ();
+ FileDialog fileDialog = new FileDialog (shell, SWT.SAVE);
+ fileDialog.setFileName (defaultFile);
+ fileDialog.setFilterExtensions (new String[] {suggestedFileExtension});
+ String name = fileDialog.open ();
+ shell.close ();
if (name == null) {
if (hasLauncher) {
if (usingMozilla18) {
- nsIHelperAppLauncher_1_8 launcher = new nsIHelperAppLauncher_1_8(arg0);
- rc = launcher.Cancel(XPCOM.NS_BINDING_ABORTED);
+ nsIHelperAppLauncher_1_8 launcher = new nsIHelperAppLauncher_1_8 (arg0);
+ rc = launcher.Cancel (XPCOM.NS_BINDING_ABORTED);
} else {
- nsIHelperAppLauncher launcher = new nsIHelperAppLauncher(arg0);
- rc = launcher.Cancel();
+ nsIHelperAppLauncher launcher = new nsIHelperAppLauncher (arg0);
+ rc = launcher.Cancel ();
}
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
return XPCOM.NS_OK;
}
return XPCOM.NS_ERROR_FAILURE;
}
- nsEmbedString path = new nsEmbedString(name);
- rc = XPCOM.NS_NewLocalFile(path.getAddress(), true, result);
- path.dispose();
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NULL_POINTER);
+ nsEmbedString path = new nsEmbedString (name);
+ rc = XPCOM.NS_NewLocalFile (path.getAddress (), true, result);
+ path.dispose ();
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
/* Our own nsIDownload has been registered during the Browser initialization. It will be invoked by Mozilla. */
- XPCOM.memmove(_retval, result, OS.PTR_SIZEOF);
+ XPCOM.memmove (_retval, result, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
index 4ff6c9d35a..b48e422e5d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
@@ -10,91 +10,91 @@
*******************************************************************************/
package org.eclipse.swt.browser;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
class HelperAppLauncherDialogFactory {
XPCOMObject supports;
XPCOMObject factory;
int refCount = 0;
-public HelperAppLauncherDialogFactory() {
- createCOMInterfaces();
+public HelperAppLauncherDialogFactory () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory (args[0]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (factory != null) {
- factory.dispose();
+ factory.dispose ();
factory = null;
}
}
-int /*long*/ getAddress() {
- return factory.getAddress();
+int /*long*/ getAddress () {
+ return factory.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIFactory */
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- HelperAppLauncherDialog helperAppLauncherDialog = new HelperAppLauncherDialog();
- helperAppLauncherDialog.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {helperAppLauncherDialog.getAddress()}, OS.PTR_SIZEOF);
+public int /*long*/ CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ HelperAppLauncherDialog helperAppLauncherDialog = new HelperAppLauncherDialog ();
+ helperAppLauncherDialog.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {helperAppLauncherDialog.getAddress ()}, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
-public int /*long*/ LockFactory(int /*long*/ lock) {
+public int /*long*/ LockFactory (int /*long*/ lock) {
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/InputStream.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/InputStream.java
index 46e685db3a..3800e3a963 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/InputStream.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/InputStream.java
@@ -10,8 +10,8 @@
*******************************************************************************/
package org.eclipse.swt.browser;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
class InputStream {
XPCOMObject inputStream;
@@ -20,110 +20,110 @@ class InputStream {
byte[] buffer;
int index = 0;
-public InputStream(byte[] buffer) {
+public InputStream (byte[] buffer) {
this.buffer = buffer;
index = 0;
- createCOMInterfaces();
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- inputStream = new XPCOMObject(new int[]{2, 0, 0, 0, 1, 3, 4, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Close();}
- public int /*long*/ method4(int /*long*/[] args) {return Available(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return Read(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return ReadSegments(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return IsNonBlocking(args[0]);}
+ inputStream = new XPCOMObject (new int[] {2, 0, 0, 0, 1, 3, 4, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Close ();}
+ public int /*long*/ method4 (int /*long*/[] args) {return Available (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return Read (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return ReadSegments (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return IsNonBlocking (args[0]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (inputStream != null) {
- inputStream.dispose();
+ inputStream.dispose ();
inputStream = null;
}
}
-int /*long*/ getAddress() {
- return inputStream.getAddress();
+int /*long*/ getAddress () {
+ return inputStream.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {inputStream.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {inputStream.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIInputStream.NS_IINPUTSTREAM_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {inputStream.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIInputStream.NS_IINPUTSTREAM_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {inputStream.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIInputStream implementation */
-int /*long*/ Close() {
+int /*long*/ Close () {
buffer = null;
index = 0;
return XPCOM.NS_OK;
}
-int /*long*/ Available(int /*long*/ _retval) {
+int /*long*/ Available (int /*long*/ _retval) {
int available = buffer == null ? 0 : buffer.length - index;
- XPCOM.memmove(_retval, new int[] {available}, 4);
+ XPCOM.memmove (_retval, new int[] {available}, 4);
return XPCOM.NS_OK;
}
int /*long*/ Read(int /*long*/ aBuf, int /*long*/ aCount, int /*long*/ _retval) {
- int max = Math.min((int)/*64*/aCount, buffer == null ? 0 : buffer.length - index);
+ int max = Math.min ((int)/*64*/aCount, buffer == null ? 0 : buffer.length - index);
if (max > 0) {
byte[] src = new byte[max];
- System.arraycopy(buffer, index, src, 0, max);
- XPCOM.memmove(aBuf, src, max);
+ System.arraycopy (buffer, index, src, 0, max);
+ XPCOM.memmove (aBuf, src, max);
index += max;
}
XPCOM.memmove(_retval, new int[] {max}, 4);
return XPCOM.NS_OK;
}
-int /*long*/ ReadSegments(int /*long*/ aWriter, int /*long*/ aClosure, int /*long*/ aCount, int /*long*/ _retval) {
- int max = Math.min((int)/*64*/aCount, buffer == null ? 0 : buffer.length - index);
+int /*long*/ ReadSegments (int /*long*/ aWriter, int /*long*/ aClosure, int /*long*/ aCount, int /*long*/ _retval) {
+ int max = Math.min ((int)/*64*/aCount, buffer == null ? 0 : buffer.length - index);
int cnt = max;
while (cnt > 0) {
int[] aWriteCount = new int[1];
- int /*long*/ rc = XPCOM.Call(aWriter, getAddress(), aClosure, buffer, index, cnt, aWriteCount);
+ int /*long*/ rc = XPCOM.Call (aWriter, getAddress (), aClosure, buffer, index, cnt, aWriteCount);
if (rc != XPCOM.NS_OK) break;
index += aWriteCount[0];
cnt -= aWriteCount[0];
}
- XPCOM.memmove(_retval, new int[] {max - cnt}, 4);
+ XPCOM.memmove (_retval, new int[] {max - cnt}, 4);
return XPCOM.NS_OK;
}
-int /*long*/ IsNonBlocking(int /*long*/ _retval) {
+int /*long*/ IsNonBlocking (int /*long*/ _retval) {
/* blocking */
- XPCOM.memmove(_retval, new int[] {0}, 4);
+ XPCOM.memmove (_retval, new int[] {0}, 4);
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Mozilla.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Mozilla.java
new file mode 100644
index 0000000000..f1155c0184
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/Mozilla.java
@@ -0,0 +1,2144 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import java.io.*;
+import java.util.*;
+import org.eclipse.swt.*;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.graphics.*;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.layout.*;
+
+class Mozilla extends WebBrowser {
+ int /*long*/ embedHandle;
+ nsIWebBrowser webBrowser;
+ MozillaDelegate delegate;
+
+ /* Interfaces for this Mozilla embedding notification */
+ XPCOMObject supports;
+ XPCOMObject weakReference;
+ XPCOMObject webProgressListener;
+ XPCOMObject webBrowserChrome;
+ XPCOMObject webBrowserChromeFocus;
+ XPCOMObject embeddingSiteWindow;
+ XPCOMObject interfaceRequestor;
+ XPCOMObject supportsWeakReference;
+ XPCOMObject contextMenuListener;
+ XPCOMObject uriContentListener;
+ XPCOMObject tooltipListener;
+ XPCOMObject directoryServiceProviderListener;
+ int chromeFlags = nsIWebBrowserChrome.CHROME_DEFAULT;
+ int refCount = 0;
+ int /*long*/ request;
+ Point location;
+ Point size;
+ boolean addressBar, menuBar, statusBar, toolBar;
+ boolean visible, isModal;
+ Shell tip = null;
+
+ static nsIAppShell AppShell;
+ static WindowCreator WindowCreator;
+ static int BrowserCount;
+ static boolean initialized, ignoreDispose;
+ static String profileRootDirectory;
+
+ /* XULRunner detect constants */
+ static final String GRERANGE_LOWER = "1.8"; //$NON-NLS-1$
+ static final boolean LowerRangeInclusive = true;
+ static final String GRERANGE_UPPER = "1.9"; //$NON-NLS-1$
+ static final boolean UpperRangeInclusive = false;
+ static final String SEPARATOR_OS = System.getProperty("file.separator"); //$NON-NLS-1$
+ static final String XPCOM_LIB = SEPARATOR_OS + "libxpcom.so"; //$NON-NLS-1$
+
+ /* Package Name */
+ static final String URI_FROMMEMORY = "file:///"; //$NON-NLS-1$
+ static final String ABOUT_BLANK = "about:blank"; //$NON-NLS-1$
+ static final String PREFERENCE_LANGUAGES = "intl.accept_languages"; //$NON-NLS-1$
+ static final String PREFERENCE_CHARSET = "intl.charset.default"; //$NON-NLS-1$
+ static final String SEPARATOR_LOCALE = "-"; //$NON-NLS-1$
+ static final String TOKENIZER_LOCALE = ","; //$NON-NLS-1$
+ static final String PROFILE_DIR = SEPARATOR_OS + "eclipse" + SEPARATOR_OS; //$NON-NLS-1$
+ static final String HISTORY_FILE = "history.dat"; //$NON-NLS-1$
+ static final String MIMETYPES_FILE = "mimeTypes.rdf"; //$NON-NLS-1$
+ static final String PREFERENCES_FILE = "prefs.js"; //$NON-NLS-1$
+ static final String CHROME_DIR = "chrome"; //$NON-NLS-1$
+ static final String LOCALSTORE_FILE = "localstore.rdf"; //$NON-NLS-1$
+ static final String PROFILE_AFTER_CHANGE = "profile-after-change"; //$NON-NLS-1$
+ static final String PROFILE_BEFORE_CHANGE = "profile-before-change"; //$NON-NLS-1$
+ static final String PROFILE_DO_CHANGE = "profile-do-change"; //$NON-NLS-1$
+ static final String SHUTDOWN_PERSIST = "shutdown-persist"; //$NON-NLS-1$
+ static final String STARTUP = "startup"; //$NON-NLS-1$
+
+ static {
+ MozillaClearSessions = new Runnable () {
+ public void run () {
+ if (!initialized) return;
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_COOKIEMANAGER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsICookieManager.NS_ICOOKIEMANAGER_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsICookieManager manager = new nsICookieManager (result[0]);
+ result[0] = 0;
+ rc = manager.GetEnumerator (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ manager.Release ();
+
+ nsISimpleEnumerator enumerator = new nsISimpleEnumerator (result[0]);
+ boolean[] moreElements = new boolean[1];
+ rc = enumerator.HasMoreElements (moreElements);
+ if (rc != XPCOM.NS_OK) error (rc);
+ while (moreElements[0]) {
+ result[0] = 0;
+ rc = enumerator.GetNext (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ nsICookie cookie = new nsICookie (result[0]);
+ long[] expires = new long[1];
+ rc = cookie.GetExpires (expires);
+ if (expires[0] == 0) {
+ /* indicates a session cookie */
+ int /*long*/ domain = XPCOM.nsEmbedCString_new ();
+ int /*long*/ name = XPCOM.nsEmbedCString_new ();
+ int /*long*/ path = XPCOM.nsEmbedCString_new ();
+ cookie.GetHost (domain);
+ cookie.GetName (name);
+ cookie.GetPath (path);
+ rc = manager.Remove (domain, name, path, false);
+ XPCOM.nsEmbedCString_delete (domain);
+ XPCOM.nsEmbedCString_delete (name);
+ XPCOM.nsEmbedCString_delete (path);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+ cookie.Release ();
+ rc = enumerator.HasMoreElements (moreElements);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+ enumerator.Release ();
+ }
+ };
+ }
+
+public void create (Composite parent, int style) {
+ delegate = new MozillaDelegate (browser);
+ Display display = parent.getDisplay ();
+
+ int /*long*/[] result = new int /*long*/[1];
+ if (!initialized) {
+ String mozillaPath = null;
+
+ boolean initLoaded = false;
+ try {
+ Library.loadLibrary ("swt-xpcominit"); //$NON-NLS-1$
+ initLoaded = true;
+ } catch (UnsatisfiedLinkError e) {
+ try {
+ /*
+ * The initial loadLibrary attempt may have failed as a result of the user's
+ * system not having libstdc++.so.6 installed, so try to load the alternate
+ * swt xpcominit library that depends on libswtc++.so.5 instead.
+ */
+ Library.loadLibrary ("swt-xpcominit-gcc3"); //$NON-NLS-1$
+ initLoaded = true;
+ } catch (UnsatisfiedLinkError ex) {
+ /*
+ * If this library still failed to load then do not attempt to detect a
+ * xulrunner to use. The Browser may still be usable if MOZILLA_FIVE_HOME
+ * points at a GRE.
+ */
+ }
+ }
+
+ boolean isXULRunner = false;
+ if (initLoaded) {
+ /* attempt to discover a XULRunner to use as the GRE */
+ GREVersionRange range = new GREVersionRange ();
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_LOWER, true);
+ int /*long*/ lower = C.malloc (bytes.length);
+ C.memmove (lower, bytes, bytes.length);
+ range.lower = lower;
+ range.lowerInclusive = LowerRangeInclusive;
+
+ bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_UPPER, true);
+ int /*long*/ upper = C.malloc (bytes.length);
+ C.memmove (upper, bytes, bytes.length);
+ range.upper = upper;
+ range.upperInclusive = UpperRangeInclusive;
+
+ int length = XPCOMInit.PATH_MAX;
+ int /*long*/ greBuffer = C.malloc (length);
+ int /*long*/ propertiesPtr = C.malloc (2 * C.PTR_SIZEOF);
+ int rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, propertiesPtr, 0, greBuffer, length);
+ C.free (lower);
+ C.free (upper);
+ C.free (propertiesPtr);
+ if (rc == XPCOM.NS_OK) {
+ /* indicates that a XULRunner was found */
+ length = C.strlen (greBuffer);
+ bytes = new byte[length];
+ C.memmove (bytes, greBuffer, length);
+ mozillaPath = new String (MozillaDelegate.mbcsToWcs (null, bytes));
+ // the following line is intentionally commented
+ isXULRunner = mozillaPath.length () > 0;
+ }
+ C.free (greBuffer);
+ }
+
+ if (isXULRunner) {
+ try {
+ Library.loadLibrary ("swt-xulrunner"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError e) {
+ try {
+ /*
+ * The initial loadLibrary attempt may have failed as a result of the user's
+ * system not having libstdc++.so.6 installed, so try to load the alternate
+ * swt xulrunner library that depends on libswtc++.so.5 instead.
+ */
+ Library.loadLibrary ("swt-xulrunner-gcc3"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError ex) {
+ browser.dispose ();
+ /*
+ * Print the error from the first failed attempt since at this point it's
+ * known that the failure was not due to the libstdc++.so.6 dependency.
+ */
+ SWT.error (SWT.ERROR_NO_HANDLES, e);
+ }
+ }
+ byte[] path = MozillaDelegate.wcsToMbcs (null, mozillaPath, true);
+ int rc = XPCOMGlue.XPCOMGlueStartup (path);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ /*
+ * remove the trailing "libxpcom.so" from mozillaPath because the NS_InitXPCOM2
+ * invocation requires a directory name only
+ */
+ mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
+ } else {
+ /* attempt to use the GRE pointed at by MOZILLA_FIVE_HOME */
+ int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
+ if (ptr != 0) {
+ int length = C.strlen (ptr);
+ byte[] buffer = new byte[length];
+ C.memmove (buffer, ptr, length);
+ mozillaPath = new String (MozillaDelegate.mbcsToWcs (null, buffer));
+ }
+ if (mozillaPath == null) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]"); //$NON-NLS-1$
+ }
+ /*
+ * Note. Embedding a Mozilla GTK1.2 causes a crash. The workaround
+ * is to check the version of GTK used by Mozilla by looking for
+ * the libwidget_gtk.so library used by Mozilla GTK1.2. Mozilla GTK2
+ * uses the libwidget_gtk2.so library.
+ */
+ File file = new File (mozillaPath, "components/libwidget_gtk.so"); //$NON-NLS-1$
+ if (file.exists ()) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [Mozilla GTK2 required (GTK1.2 detected)]"); //$NON-NLS-1$
+ }
+
+ try {
+ Library.loadLibrary ("swt-mozilla"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError e) {
+ try {
+ /*
+ * The initial loadLibrary attempt may have failed as a result of the user's
+ * system not having libstdc++.so.6 installed, so try to load the alternate
+ * swt mozilla library that depends on libswtc++.so.5 instead.
+ */
+ Library.loadLibrary ("swt-mozilla-gcc3"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError ex) {
+ browser.dispose ();
+ /*
+ * Print the error from the first failed attempt since at this point it's
+ * known that the failure was not due to the libstdc++.so.6 dependency.
+ */
+ SWT.error (SWT.ERROR_NO_HANDLES, e);
+ }
+ }
+ }
+
+ int /*long*/[] retVal = new int /*long*/[1];
+ nsEmbedString pathString = new nsEmbedString (mozillaPath);
+ int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), true, retVal);
+ pathString.dispose ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (retVal[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_NULL_POINTER);
+ }
+
+ nsIFile localFile = new nsILocalFile (retVal[0]);
+ rc = XPCOM.NS_InitXPCOM2 (0, localFile.getAddress(), 0);
+ localFile.Release ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [MOZILLA_FIVE_HOME may not point at an embeddable GRE] [NS_InitEmbedding " + mozillaPath + " error " + rc + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+ rc = XPCOM.NS_GetComponentManager (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIComponentManager componentManager = new nsIComponentManager (result[0]);
+ result[0] = 0;
+ rc = componentManager.CreateInstance (XPCOM.NS_APPSHELL_CID, 0, nsIAppShell.NS_IAPPSHELL_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ AppShell = new nsIAppShell (result[0]);
+ rc = AppShell.Create (0, null);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ rc = AppShell.Spinup ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ WindowCreator = new WindowCreator ();
+ WindowCreator.AddRef ();
+
+ rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIWindowWatcher windowWatcher = new nsIWindowWatcher (result[0]);
+ result[0] = 0;
+ rc = windowWatcher.SetWindowCreator (WindowCreator.getAddress());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ windowWatcher.Release ();
+
+ /* compute the root profile directory */
+ byte[] buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_DIRECTORYSERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIDirectoryService.NS_IDIRECTORYSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIDirectoryService directoryService = new nsIDirectoryService (result[0]);
+ result[0] = 0;
+ rc = directoryService.QueryInterface (nsIProperties.NS_IPROPERTIES_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ directoryService.Release ();
+
+ nsIProperties properties = new nsIProperties (result[0]);
+ result[0] = 0;
+ buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_APP_APPLICATION_REGISTRY_DIR, true);
+ rc = properties.Get (buffer, nsIFile.NS_IFILE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ properties.Release ();
+
+ nsIFile profileDir = new nsIFile (result[0]);
+ result[0] = 0;
+ int /*long*/ path = XPCOM.nsEmbedCString_new ();
+ rc = profileDir.GetNativePath (path);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ int length = XPCOM.nsEmbedCString_Length (path);
+ int /*long*/ ptr = XPCOM.nsEmbedCString_get (path);
+ buffer = new byte [length];
+ XPCOM.memmove (buffer, ptr, length);
+ profileRootDirectory = new String (MozillaDelegate.mbcsToWcs (null, buffer)) + PROFILE_DIR;
+ XPCOM.nsEmbedCString_delete (path);
+ profileDir.Release ();
+
+ display.addListener (SWT.Dispose, new Listener () {
+ public void handleEvent (Event event) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_OBSERVER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIObserverService observerService = new nsIObserverService (result[0]);
+ result[0] = 0;
+ buffer = MozillaDelegate.wcsToMbcs (null, PROFILE_BEFORE_CHANGE, true);
+ int length = SHUTDOWN_PERSIST.length ();
+ char[] chars = new char [length + 1];
+ SHUTDOWN_PERSIST.getChars (0, length, chars, 0);
+ rc = observerService.NotifyObservers (0, buffer, chars);
+ if (rc != XPCOM.NS_OK) error (rc);
+ observerService.Release ();
+ }
+ });
+
+ /*
+ * As a result of using a common profile the user cannot change their locale
+ * and charset. The fix for this is to set mozilla's locale and charset
+ * preference values according to the user's current locale and charset.
+ */
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFSERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIPrefService.NS_IPREFSERVICE_IID, result);
+ serviceManager.Release ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIPrefService prefService = new nsIPrefService (result[0]);
+ result[0] = 0;
+ buffer = new byte[1];
+ rc = prefService.GetBranch (buffer, result); /* empty buffer denotes root preference level */
+ prefService.Release ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIPrefBranch prefBranch = new nsIPrefBranch (result[0]);
+ result[0] = 0;
+
+ /* get Mozilla's current locale preference value */
+ String prefLocales = null;
+ nsIPrefLocalizedString localizedString = null;
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_LANGUAGES, true);
+ rc = prefBranch.GetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ /*
+ * Feature of Debian. For some reason attempting to query for the current locale
+ * preference fails on Debian. The workaround for this is to assume a value of
+ * "en-us,en" since this is typically the default value when mozilla is used without
+ * a profile.
+ */
+ if (rc != XPCOM.NS_OK) {
+ prefLocales = "en-us,en" + TOKENIZER_LOCALE; //$NON-NLS-1$
+ } else {
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ rc = localizedString.ToString (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ length = XPCOM.strlen_PRUnichar (result[0]);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, result[0], length * 2);
+ prefLocales = new String (dest) + TOKENIZER_LOCALE;
+ }
+ result[0] = 0;
+
+ /*
+ * construct the new locale preference value by prepending the
+ * user's current locale and language to the original value
+ */
+ Locale locale = Locale.getDefault ();
+ String language = locale.getLanguage ();
+ String country = locale.getCountry ();
+ StringBuffer stringBuffer = new StringBuffer (language);
+ stringBuffer.append (SEPARATOR_LOCALE);
+ stringBuffer.append (country.toLowerCase ());
+ stringBuffer.append (TOKENIZER_LOCALE);
+ stringBuffer.append (language);
+ stringBuffer.append (TOKENIZER_LOCALE);
+ String newLocales = stringBuffer.toString ();
+ StringTokenizer tokenzier = new StringTokenizer (prefLocales, TOKENIZER_LOCALE);
+ while (tokenzier.hasMoreTokens ()) {
+ String token = (tokenzier.nextToken () + TOKENIZER_LOCALE).trim ();
+ /* ensure that duplicate locale values are not added */
+ if (newLocales.indexOf (token) == -1) {
+ stringBuffer.append (token);
+ }
+ }
+ newLocales = stringBuffer.toString ();
+ if (!newLocales.equals (prefLocales)) {
+ /* write the new locale value */
+ newLocales = newLocales.substring (0, newLocales.length () - TOKENIZER_LOCALE.length ()); /* remove trailing tokenizer */
+ length = newLocales.length ();
+ char[] charBuffer = new char[length + 1];
+ newLocales.getChars (0, length, charBuffer, 0);
+ if (localizedString == null) {
+ byte[] contractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
+ rc = componentManager.CreateInstanceByContractID (contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ }
+ localizedString.SetDataWithLength (length, charBuffer);
+ rc = prefBranch.SetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress());
+ }
+ if (localizedString != null) {
+ localizedString.Release ();
+ localizedString = null;
+ }
+
+ /* get Mozilla's current charset preference value */
+ String prefCharset = null;
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_CHARSET, true);
+ rc = prefBranch.GetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ /*
+ * Feature of Debian. For some reason attempting to query for the current charset
+ * preference fails on Debian. The workaround for this is to assume a value of
+ * "ISO-8859-1" since this is typically the default value when mozilla is used
+ * without a profile.
+ */
+ if (rc != XPCOM.NS_OK) {
+ prefCharset = "ISO-8859-1"; //$NON_NLS-1$
+ } else {
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ rc = localizedString.ToString (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ length = XPCOM.strlen_PRUnichar (result[0]);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, result[0], length * 2);
+ prefCharset = new String (dest);
+ }
+ result[0] = 0;
+
+ String newCharset = System.getProperty ("file.encoding"); // $NON-NLS-1$
+ if (!newCharset.equals (prefCharset)) {
+ /* write the new charset value */
+ length = newCharset.length ();
+ char[] charBuffer = new char[length + 1];
+ newCharset.getChars (0, length, charBuffer, 0);
+ if (localizedString == null) {
+ byte[] contractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
+ rc = componentManager.CreateInstanceByContractID (contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ }
+ localizedString.SetDataWithLength (length, charBuffer);
+ rc = prefBranch.SetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress ());
+ }
+ if (localizedString != null) localizedString.Release ();
+ prefBranch.Release ();
+
+ PromptServiceFactory factory = new PromptServiceFactory ();
+ factory.AddRef ();
+
+ rc = componentManager.QueryInterface (nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar (result[0]);
+ result[0] = 0;
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PROMPTSERVICE_CONTRACTID, true);
+ byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "Prompt Service", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_PROMPTSERVICE_CID, aClassName, aContractID, factory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ factory.Release ();
+
+ HelperAppLauncherDialogFactory dialogFactory = new HelperAppLauncherDialogFactory ();
+ dialogFactory.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "Helper App Launcher Dialog", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CID, aClassName, aContractID, dialogFactory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ dialogFactory.Release ();
+
+ DownloadFactory downloadFactory = new DownloadFactory ();
+ downloadFactory.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_DOWNLOAD_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "Download", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ downloadFactory.Release ();
+
+ DownloadFactory_1_8 downloadFactory_1_8 = new DownloadFactory_1_8 ();
+ downloadFactory_1_8.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_TRANSFER_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "Transfer", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory_1_8.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ downloadFactory_1_8.Release ();
+
+ FilePickerFactory pickerFactory = new FilePickerFactory ();
+ pickerFactory.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_FILEPICKER_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "FilePicker", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_FILEPICKER_CID, aClassName, aContractID, pickerFactory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ pickerFactory.Release ();
+
+ componentRegistrar.Release ();
+ componentManager.Release ();
+ initialized = true;
+ }
+
+ BrowserCount++;
+ int rc = XPCOM.NS_GetComponentManager (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIComponentManager componentManager = new nsIComponentManager (result[0]);
+ result[0] = 0;
+ nsID NS_IWEBBROWSER_CID = new nsID ("F1EAC761-87E9-11d3-AF80-00A024FFC08C"); //$NON-NLS-1$
+ rc = componentManager.CreateInstance (NS_IWEBBROWSER_CID, 0, nsIWebBrowser.NS_IWEBBROWSER_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ componentManager.Release ();
+
+ webBrowser = new nsIWebBrowser (result[0]);
+
+ createCOMInterfaces ();
+ AddRef ();
+
+ rc = webBrowser.SetContainerWindow (webBrowserChrome.getAddress());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_NO_INTERFACE);
+ }
+
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ result[0] = 0;
+ Rectangle rect = browser.getClientArea ();
+ if (rect.isEmpty ()) {
+ rect.width = 1;
+ rect.height = 1;
+ }
+
+ embedHandle = delegate.getHandle ();
+
+ rc = baseWindow.InitWindow (embedHandle, 0, 0, 0, rect.width, rect.height);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_FAILURE);
+ }
+ rc = baseWindow.Create ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_FAILURE);
+ }
+ rc = baseWindow.SetVisibility (true);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_FAILURE);
+ }
+ baseWindow.Release ();
+
+ rc = webBrowser.AddWebBrowserListener (weakReference.getAddress (), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ rc = webBrowser.SetParentURIContentListener (uriContentListener.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_DIRECTORYSERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIDirectoryService.NS_IDIRECTORYSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIDirectoryService directoryService = new nsIDirectoryService (result[0]);
+ result[0] = 0;
+ rc = directoryService.RegisterProvider(directoryServiceProviderListener.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ directoryService.Release ();
+
+ buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_OBSERVER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ serviceManager.Release ();
+
+ nsIObserverService observerService = new nsIObserverService (result[0]);
+ result[0] = 0;
+ buffer = MozillaDelegate.wcsToMbcs (null, PROFILE_DO_CHANGE, true);
+ int length = STARTUP.length ();
+ char[] chars = new char [length + 1];
+ STARTUP.getChars (0, length, chars, 0);
+ rc = observerService.NotifyObservers (0, buffer, chars);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ buffer = MozillaDelegate.wcsToMbcs (null, PROFILE_AFTER_CHANGE, true);
+ rc = observerService.NotifyObservers (0, buffer, chars);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ observerService.Release ();
+
+ Listener listener = new Listener () {
+ public void handleEvent (Event event) {
+ switch (event.type) {
+ case SWT.Dispose: {
+ /* make this handler run after other dispose listeners */
+ if (ignoreDispose) {
+ ignoreDispose = false;
+ break;
+ }
+ ignoreDispose = true;
+ browser.notifyListeners (event.type, event);
+ event.type = SWT.NONE;
+ onDispose (event.display);
+ break;
+ }
+ case SWT.Resize: onResize (); break;
+ case SWT.FocusIn: Activate (); break;
+ case SWT.Deactivate: {
+ Display display = event.display;
+ if (Mozilla.this.browser == display.getFocusControl ()) Deactivate ();
+ break;
+ }
+ case SWT.Show: {
+ /*
+ * Feature on GTK Mozilla. Mozilla does not show up when
+ * its container (a GTK fixed handle) is made visible
+ * after having been hidden. The workaround is to reset
+ * its size after the container has been made visible.
+ */
+ Display display = event.display;
+ display.asyncExec(new Runnable () {
+ public void run() {
+ if (browser.isDisposed ()) return;
+ onResize ();
+ }
+ });
+ break;
+ }
+ }
+ }
+ };
+ int[] folderEvents = new int[] {
+ SWT.Dispose,
+ SWT.Resize,
+ SWT.FocusIn,
+ SWT.Deactivate,
+ SWT.Show,
+ SWT.KeyDown // needed to make browser traversable
+ };
+ for (int i = 0; i < folderEvents.length; i++) {
+ browser.addListener (folderEvents[i], listener);
+ }
+}
+
+public boolean back () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.GoBack ();
+ webNavigation.Release ();
+ return rc == XPCOM.NS_OK;
+}
+
+void createCOMInterfaces () {
+ // Create each of the interfaces that this object implements
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ weakReference = new XPCOMObject (new int[] {2, 0, 0, 2}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return QueryReferent (args[0], args[1]);}
+ };
+
+ webProgressListener = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], args[2],args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], args[2]);}
+ };
+
+ webBrowserChrome = new XPCOMObject (new int[] {2, 0, 0, 2, 1, 1, 1, 1, 0, 2, 0, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return SetStatus (args[0], args[1]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetWebBrowser (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return SetWebBrowser (args[0]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetChromeFlags (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return SetChromeFlags (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return DestroyBrowserWindow ();}
+ public int /*long*/ method9 (int /*long*/[] args) {return SizeBrowserTo (args[0], args[1]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return ShowAsModal ();}
+ public int /*long*/ method11 (int /*long*/[] args) {return IsWindowModal (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return ExitModalEventLoop (args[0]);}
+ };
+
+ webBrowserChromeFocus = new XPCOMObject (new int[] {2, 0, 0, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return FocusNextElement ();}
+ public int /*long*/ method4 (int /*long*/[] args) {return FocusPrevElement ();}
+ };
+
+ embeddingSiteWindow = new XPCOMObject (new int[] {2, 0, 0, 5, 5, 0, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return SetDimensions (args[0], args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetDimensions (args[0], args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return SetFocus ();}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetVisibility (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return SetVisibility (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetTitle (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetTitle (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetSiteWindow (args[0]);}
+ };
+
+ interfaceRequestor = new XPCOMObject (new int[] {2, 0, 0, 2} ){
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return GetInterface (args[0], args[1]);}
+ };
+
+ supportsWeakReference = new XPCOMObject (new int[] {2, 0, 0, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return GetWeakReference (args[0]);}
+ };
+
+ contextMenuListener = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnShowContextMenu (args[0],args[1],args[2]);}
+ };
+
+ uriContentListener = new XPCOMObject (new int[] {2, 0, 0, 2, 5, 3, 4, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStartURIOpen (args[0], args[1]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return DoContent (args[0], args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return IsPreferred (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return CanHandleContent (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return GetLoadCookie (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return SetLoadCookie (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return GetParentContentListener (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return SetParentContentListener (args[0]);}
+ };
+
+ tooltipListener = new XPCOMObject (new int[] {2, 0, 0, 3, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnShowTooltip (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnHideTooltip ();}
+ };
+
+ directoryServiceProviderListener = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return GetFile (args[0], args[1], args[2]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (weakReference != null) {
+ weakReference.dispose ();
+ weakReference = null;
+ }
+ if (webProgressListener != null) {
+ webProgressListener.dispose ();
+ webProgressListener = null;
+ }
+ if (webBrowserChrome != null) {
+ webBrowserChrome.dispose ();
+ webBrowserChrome = null;
+ }
+ if (webBrowserChromeFocus != null) {
+ webBrowserChromeFocus.dispose ();
+ webBrowserChromeFocus = null;
+ }
+ if (embeddingSiteWindow != null) {
+ embeddingSiteWindow.dispose ();
+ embeddingSiteWindow = null;
+ }
+ if (interfaceRequestor != null) {
+ interfaceRequestor.dispose ();
+ interfaceRequestor = null;
+ }
+ if (supportsWeakReference != null) {
+ supportsWeakReference.dispose ();
+ supportsWeakReference = null;
+ }
+ if (contextMenuListener != null) {
+ contextMenuListener.dispose ();
+ contextMenuListener = null;
+ }
+ if (uriContentListener != null) {
+ uriContentListener.dispose ();
+ uriContentListener = null;
+ }
+ if (tooltipListener != null) {
+ tooltipListener.dispose ();
+ tooltipListener = null;
+ }
+}
+
+public boolean execute (String script) {
+ String url = "javascript:" + script + ";void(0);"; //$NON-NLS-1$ //$NON-NLS-2$
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ char[] arg = url.toCharArray ();
+ char[] c = new char[arg.length+1];
+ System.arraycopy (arg, 0, c, 0, arg.length);
+ rc = webNavigation.LoadURI (c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
+ webNavigation.Release ();
+ return rc == XPCOM.NS_OK;
+}
+
+static Browser findBrowser (int /*long*/ handle) {
+ return MozillaDelegate.findBrowser (handle);
+}
+
+public boolean forward () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.GoForward ();
+ webNavigation.Release ();
+
+ return rc == XPCOM.NS_OK;
+}
+
+public String getUrl () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ int /*long*/[] aCurrentURI = new int /*long*/[1];
+ rc = webNavigation.GetCurrentURI (aCurrentURI);
+ if (rc != XPCOM.NS_OK) error (rc);
+ webNavigation.Release ();
+
+ byte[] dest = null;
+ if (aCurrentURI[0] != 0) {
+ nsIURI uri = new nsIURI (aCurrentURI[0]);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ rc = uri.GetSpec (aSpec);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ uri.Release ();
+ }
+ if (dest == null) return ""; //$NON-NLS-1$
+ /*
+ * If the URI indicates that the current page is being rendered from
+ * memory (ie.- via setText()) then answer about:blank as the URL
+ * to be consistent with win32.
+ */
+ String location = new String (dest);
+ if (location.equals (URI_FROMMEMORY)) location = ABOUT_BLANK;
+ return location;
+}
+
+public boolean isBackEnabled () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ boolean[] aCanGoBack = new boolean[1];
+ rc = webNavigation.GetCanGoBack (aCanGoBack);
+ webNavigation.Release ();
+ return aCanGoBack[0];
+}
+
+public boolean isForwardEnabled () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ boolean[] aCanGoForward = new boolean[1];
+ rc = webNavigation.GetCanGoForward (aCanGoForward);
+ webNavigation.Release ();
+ return aCanGoForward[0];
+}
+
+static String error (int code) {
+ throw new SWTError ("XPCOM error " + code); //$NON-NLS-1$
+}
+
+void onDispose (Display display) {
+ int rc = webBrowser.RemoveWebBrowserListener (weakReference.getAddress (), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ rc = webBrowser.SetParentURIContentListener (0);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ int /*long*/[] result = new int /*long*/[1];
+ rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ rc = baseWindow.Destroy ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ baseWindow.Release ();
+
+ Release ();
+ webBrowser.Release ();
+
+ if (tip != null && !tip.isDisposed ()) tip.dispose ();
+ tip = null;
+
+ delegate.onDispose (embedHandle);
+ embedHandle = 0;
+ BrowserCount--;
+}
+
+void Activate () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus (result[0]);
+ rc = webBrowserFocus.Activate ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ webBrowserFocus.Release ();
+}
+
+void Deactivate () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus (result[0]);
+ rc = webBrowserFocus.Deactivate ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ webBrowserFocus.Release ();
+}
+
+void onResize () {
+ Rectangle rect = browser.getClientArea ();
+ int width = Math.max (1, rect.width);
+ int height = Math.max (1, rect.height);
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ delegate.setSize (embedHandle, width, height);
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ rc = baseWindow.SetPositionAndSize (0, 0, width, height, true);
+ if (rc != XPCOM.NS_OK) error (rc);
+ baseWindow.Release ();
+}
+
+public void refresh () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error(rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.Reload (nsIWebNavigation.LOAD_FLAGS_NONE);
+ webNavigation.Release ();
+ if (rc == XPCOM.NS_OK) return;
+ /*
+ * Feature in Mozilla. Reload returns an error code NS_ERROR_INVALID_POINTER
+ * when it is called immediately after a request to load a new document using
+ * LoadURI. The workaround is to ignore this error code.
+ *
+ * Feature in Mozilla. Attempting to reload a file that no longer exists
+ * returns an error code of NS_ERROR_FILE_NOT_FOUND. This is equivalent to
+ * attempting to load a non-existent local url, which is not a Browser error,
+ * so this error code should be ignored.
+ */
+ if (rc != XPCOM.NS_ERROR_INVALID_POINTER && rc != XPCOM.NS_ERROR_FILE_NOT_FOUND) error (rc);
+}
+
+public boolean setText (String html) {
+ /*
+ * Feature in Mozilla. The focus memory of Mozilla must be
+ * properly managed through the nsIWebBrowserFocus interface.
+ * In particular, nsIWebBrowserFocus.deactivate must be called
+ * when the focus moves from the browser (or one of its children
+ * managed by Mozilla to another widget. We currently do not
+ * get notified when a widget takes focus away from the Browser.
+ * As a result, deactivate is not properly called. This causes
+ * Mozilla to retake focus the next time a document is loaded.
+ * This breaks the case where the HTML loaded in the Browser
+ * varies while the user enters characters in a text widget. The text
+ * widget loses focus every time new content is loaded.
+ * The current workaround is to call deactivate everytime if
+ * the browser currently does not have focus. A better workaround
+ * would be to have a way to call deactivate when the Browser
+ * or one of its children loses focus.
+ */
+ if (browser != browser.getDisplay ().getFocusControl ()) Deactivate ();
+
+ /*
+ * Convert the String containing HTML to an array of
+ * bytes with UTF-8 data.
+ */
+ byte[] data = null;
+ try {
+ data = html.getBytes ("UTF-8"); //$NON-NLS-1$
+ } catch (UnsupportedEncodingException e) {
+ return false;
+ }
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ rc = serviceManager.GetService (XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIIOService ioService = new nsIIOService (result[0]);
+ result[0] = 0;
+ /*
+ * Note. Mozilla ignores LINK tags used to load CSS stylesheets
+ * when the URI protocol for the nsInputStreamChannel
+ * is about:blank. The fix is to specify the file protocol.
+ */
+ byte[] aString = MozillaDelegate.wcsToMbcs (null, URI_FROMMEMORY, false);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new (aString, aString.length);
+ rc = ioService.NewURI (aSpec, null, 0, result);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ ioService.Release ();
+
+ nsIURI uri = new nsIURI (result[0]);
+ result[0] = 0;
+
+ /* aContentType */
+ byte[] contentTypeBuffer = MozillaDelegate.wcsToMbcs (null, "text/html", true); // $NON-NLS-1$
+ int /*long*/ aContentType = XPCOM.nsEmbedCString_new (contentTypeBuffer, contentTypeBuffer.length);
+
+ /*
+ * First try to use nsIWebBrowserStream to set the text into the Browser, since this
+ * interface is frozen. However, this may fail because this interface was only introduced
+ * as of mozilla 1.8; if this interface is not found then use the pre-1.8 approach of
+ * utilizing nsIDocShell instead.
+ */
+ result[0] = 0;
+ rc = webBrowser.QueryInterface (nsIWebBrowserStream.NS_IWEBBROWSERSTREAM_IID, result);
+ if (rc == XPCOM.NS_OK) {
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ nsIWebBrowserStream stream = new nsIWebBrowserStream (result[0]);
+ rc = stream.OpenStream (uri.getAddress (), aContentType);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int /*long*/ ptr = C.malloc (data.length);
+ XPCOM.memmove (ptr, data, data.length);
+ int pageSize = 8192;
+ int pageCount = data.length / pageSize + 1;
+ int /*long*/ current = ptr;
+ for (int i = 0; i < pageCount; i++) {
+ int length = i == pageCount - 1 ? data.length % pageSize : pageSize;
+ if (length > 0) {
+ rc = stream.AppendToStream (current, length);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+ current += pageSize;
+ }
+ rc = stream.CloseStream ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ C.free (ptr);
+ stream.Release ();
+ } else {
+ rc = webBrowser.QueryInterface (nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor (result[0]);
+ result[0] = 0;
+ rc = interfaceRequestor.GetInterface (nsIDocShell.NS_IDOCSHELL_IID, result);
+ interfaceRequestor.Release ();
+
+ nsIDocShell docShell = new nsIDocShell (result[0]);
+ result[0] = 0;
+ byte[] contentCharsetBuffer = MozillaDelegate.wcsToMbcs (null, "UTF-8", true); //$NON-NLS-1$
+ int /*long*/ aContentCharset = XPCOM.nsEmbedCString_new (contentCharsetBuffer, contentCharsetBuffer.length);
+
+ /*
+ * Feature in Mozilla. LoadStream invokes the nsIInputStream argument
+ * through a different thread. The callback mechanism must attach
+ * a non java thread to the JVM otherwise the nsIInputStream Read and
+ * Close methods never get called.
+ */
+ InputStream inputStream = new InputStream (data);
+ inputStream.AddRef ();
+ rc = docShell.LoadStream(inputStream.getAddress (), uri.getAddress (), aContentType, aContentCharset, 0);
+ if (rc != XPCOM.NS_OK) error (rc);
+ XPCOM.nsEmbedCString_delete (aContentCharset);
+ inputStream.Release ();
+ docShell.Release ();
+ }
+
+ XPCOM.nsEmbedCString_delete (aContentType);
+ uri.Release ();
+ return true;
+}
+
+public boolean setUrl (String url) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ char[] arg = url.toCharArray ();
+ char[] c = new char[arg.length + 1];
+ System.arraycopy (arg, 0, c, 0, arg.length);
+ rc = webNavigation.LoadURI (c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
+ webNavigation.Release ();
+ return rc == XPCOM.NS_OK;
+}
+
+public void stop () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.Stop (nsIWebNavigation.STOP_ALL);
+ if (rc != XPCOM.NS_OK) error (rc);
+ webNavigation.Release ();
+}
+
+/* nsISupports */
+
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWeakReference.NS_IWEAKREFERENCE_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {weakReference.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webProgressListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebBrowserChrome.NS_IWEBBROWSERCHROME_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webBrowserChrome.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebBrowserChromeFocus.NS_IWEBBROWSERCHROMEFOCUS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webBrowserChromeFocus.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {embeddingSiteWindow.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {interfaceRequestor.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsISupportsWeakReference.NS_ISUPPORTSWEAKREFERENCE_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supportsWeakReference.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIContextMenuListener.NS_ICONTEXTMENULISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {contextMenuListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIURIContentListener.NS_IURICONTENTLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {uriContentListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsITooltipListener.NS_ITOOLTIPLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {tooltipListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIDirectoryServiceProvider.NS_IDIRECTORYSERVICEPROVIDER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {directoryServiceProviderListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int /*long*/ AddRef () {
+ refCount++;
+ return refCount;
+}
+
+int /*long*/ Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIWeakReference */
+
+int /*long*/ QueryReferent (int /*long*/ riid, int /*long*/ ppvObject) {
+ return QueryInterface (riid,ppvObject);
+}
+
+/* nsIInterfaceRequestor */
+
+int /*long*/ GetInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+ if (guid.Equals (nsIDOMWindow.NS_IDOMWINDOW_IID)) {
+ int /*long*/[] aContentDOMWindow = new int /*long*/[1];
+ int rc = webBrowser.GetContentDOMWindow (aContentDOMWindow);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aContentDOMWindow[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ XPCOM.memmove (ppvObject, aContentDOMWindow, C.PTR_SIZEOF);
+ return rc;
+ }
+ return QueryInterface (riid,ppvObject);
+}
+
+int /*long*/ GetWeakReference (int /*long*/ ppvObject) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {weakReference.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+}
+
+/* nsIWebProgressListener */
+
+int /*long*/ OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
+ if ((aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) == 0) return XPCOM.NS_OK;
+ if ((aStateFlags & nsIWebProgressListener.STATE_START) != 0) {
+ if (request == 0) request = aRequest;
+ } else if ((aStateFlags & nsIWebProgressListener.STATE_REDIRECTING) != 0) {
+ if (request == aRequest) request = 0;
+ } else if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
+ /*
+ * Feature on Mozilla. When a request is redirected (STATE_REDIRECTING),
+ * it never reaches the state STATE_STOP and it is replaced with a new request.
+ * The new request is received when it is in the state STATE_STOP.
+ * To handle this case, the variable request is set to 0 when the corresponding
+ * request is redirected. The following request received with the state STATE_STOP
+ * - the new request resulting from the redirection - is used to send
+ * the ProgressListener.completed event.
+ */
+ if (request == aRequest || request == 0) {
+ request = 0;
+ StatusTextEvent event = new StatusTextEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ event.text = ""; //$NON-NLS-1$
+ for (int i = 0; i < statusTextListeners.length; i++) {
+ statusTextListeners[i].changed (event);
+ }
+ ProgressEvent event2 = new ProgressEvent (browser);
+ event2.display = browser.getDisplay ();
+ event2.widget = browser;
+ for (int i = 0; i < progressListeners.length; i++) {
+ progressListeners[i].completed (event2);
+ }
+ }
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ OnProgressChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
+ if (progressListeners.length == 0) return XPCOM.NS_OK;
+ ProgressEvent event = new ProgressEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ event.current = (int)/*64*/aCurTotalProgress;
+ event.total = (int)/*64*/aMaxTotalProgress;
+ for (int i = 0; i < progressListeners.length; i++) {
+ progressListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ OnLocationChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
+ /*
+ * Feature on Mozilla. When a page is loaded via setText before a previous
+ * setText page load has completed, the expected OnStateChange STATE_STOP for the
+ * original setText never arrives because it gets replaced by the OnStateChange
+ * STATE_STOP for the new request. This results in the request field never being
+ * cleared because the original request's OnStateChange STATE_STOP is still expected
+ * (but never arrives). To handle this case, the request field is updated to the new
+ * overriding request since its OnStateChange STATE_STOP will be received next.
+ */
+ if (request != 0 && request != aRequest) request = aRequest;
+
+ if (locationListeners.length == 0) return XPCOM.NS_OK;
+
+ nsIWebProgress webProgress = new nsIWebProgress (aWebProgress);
+ int /*long*/[] aDOMWindow = new int /*long*/[1];
+ int rc = webProgress.GetDOMWindow (aDOMWindow);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aDOMWindow[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIDOMWindow domWindow = new nsIDOMWindow (aDOMWindow[0]);
+ int /*long*/[] aTop = new int /*long*/[1];
+ rc = domWindow.GetTop (aTop);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aTop[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ domWindow.Release ();
+
+ nsIDOMWindow topWindow = new nsIDOMWindow (aTop[0]);
+ topWindow.Release ();
+
+ nsIURI location = new nsIURI (aLocation);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ location.GetSpec (aSpec);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+
+ LocationEvent event = new LocationEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ event.location = new String (dest);
+ if (event.location.equals (URI_FROMMEMORY)) {
+ /*
+ * If the URI indicates that the page is being rendered from memory
+ * (ie.- via setText()) then set the event location to about:blank
+ * to be consistent with win32.
+ */
+ event.location = ABOUT_BLANK;
+ }
+ event.top = aTop[0] == aDOMWindow[0];
+ for (int i = 0; i < locationListeners.length; i++) {
+ locationListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ OnStatusChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
+ if (statusTextListeners.length == 0) return XPCOM.NS_OK;
+ StatusTextEvent event = new StatusTextEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ int length = XPCOM.strlen_PRUnichar (aMessage);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aMessage, length * 2);
+ event.text = new String (dest);
+ for (int i = 0; i < statusTextListeners.length; i++) {
+ statusTextListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ OnSecurityChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
+ return XPCOM.NS_OK;
+}
+
+/* nsIWebBrowserChrome */
+
+int /*long*/ SetStatus (int /*long*/ statusType, int /*long*/ status) {
+ StatusTextEvent event = new StatusTextEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ int length = XPCOM.strlen_PRUnichar (status);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, status, length * 2);
+ String string = new String (dest);
+ event.text = string;
+ for (int i = 0; i < statusTextListeners.length; i++) {
+ statusTextListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ GetWebBrowser (int /*long*/ aWebBrowser) {
+ int /*long*/[] ret = new int /*long*/[1];
+ if (webBrowser != null) {
+ webBrowser.AddRef ();
+ ret[0] = webBrowser.getAddress ();
+ }
+ XPCOM.memmove (aWebBrowser, ret, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ SetWebBrowser (int /*long*/ aWebBrowser) {
+ if (webBrowser != null) webBrowser.Release ();
+ webBrowser = aWebBrowser != 0 ? new nsIWebBrowser (aWebBrowser) : null;
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ GetChromeFlags (int /*long*/ aChromeFlags) {
+ int[] ret = new int[1];
+ ret[0] = chromeFlags;
+ /* aChromeFlags is a pointer to a type of size 4 */
+ XPCOM.memmove (aChromeFlags, ret, 4);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ SetChromeFlags (int /*long*/ aChromeFlags) {
+ chromeFlags = (int)/*64*/aChromeFlags;
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ DestroyBrowserWindow () {
+ WindowEvent newEvent = new WindowEvent (browser);
+ newEvent.display = browser.getDisplay ();
+ newEvent.widget = browser;
+ for (int i = 0; i < closeWindowListeners.length; i++) {
+ closeWindowListeners[i].close (newEvent);
+ }
+ /*
+ * Note on Mozilla. The DestroyBrowserWindow notification cannot be cancelled.
+ * The browser widget cannot be used after this notification has been received.
+ * The application is advised to close the window hosting the browser widget.
+ * The browser widget must be disposed in all cases.
+ */
+ browser.dispose ();
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ SizeBrowserTo (int /*long*/ aCX, int /*long*/ aCY) {
+ size = new Point ((int)/*64*/aCX, (int)/*64*/aCY);
+ if (isModal) {
+ Shell shell = browser.getShell ();
+ shell.setSize (shell.computeSize (size.x, size.y));
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ ShowAsModal () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_CONTEXTSTACK_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIJSContextStack.NS_IJSCONTEXTSTACK_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIJSContextStack stack = new nsIJSContextStack (result[0]);
+ result[0] = 0;
+ rc = stack.Push (0);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ Shell shell = browser.getShell ();
+ Display display = browser.getDisplay ();
+ while (!shell.isDisposed ()) {
+ if (!display.readAndDispatch ()) display.sleep ();
+ }
+
+ rc = stack.Pop (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ stack.Release ();
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ IsWindowModal (int /*long*/ retval) {
+ /* Note. boolean remains of size 4 on 64 bit machine */
+ XPCOM.memmove (retval, new int[] {isModal ? 1 : 0}, 4);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ ExitModalEventLoop (int /*long*/ aStatus) {
+ return XPCOM.NS_OK;
+}
+
+/* nsIEmbeddingSiteWindow */
+
+int /*long*/ SetDimensions (int /*long*/ flags, int /*long*/ x, int /*long*/ y, int /*long*/ cx, int /*long*/ cy) {
+ if (flags == nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) location = new Point ((int)/*64*/x, (int)/*64*/y);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ GetDimensions (int /*long*/ flags, int /*long*/ x, int /*long*/ y, int /*long*/ cx, int /*long*/ cy) {
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ SetFocus () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ rc = baseWindow.SetFocus ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ baseWindow.Release ();
+
+ /*
+ * Note. Mozilla notifies here that one of the children took
+ * focus. This could or should be used to fire an SWT.FOCUS_IN
+ * event on Browser focus listeners.
+ */
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ GetVisibility (int /*long*/ aVisibility) {
+ /* Note. boolean remains of size 4 on 64 bit machine */
+ XPCOM.memmove (aVisibility, new int[] {browser.isVisible () ? 1 : 0}, 4);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ SetVisibility (int /*long*/ aVisibility) {
+ WindowEvent event = new WindowEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ if (aVisibility == 1) {
+ /*
+ * Bug in Mozilla. When the JavaScript window.open is executed, Mozilla
+ * fires multiple SetVisibility 1 notifications. The workaround is
+ * to ignore subsequent notifications.
+ */
+ if (!visible) {
+ visible = true;
+ event.location = location;
+ event.size = size;
+ event.addressBar = addressBar;
+ event.menuBar = menuBar;
+ event.statusBar = statusBar;
+ event.toolBar = toolBar;
+ for (int i = 0; i < visibilityWindowListeners.length; i++) {
+ visibilityWindowListeners[i].show (event);
+ }
+ location = null;
+ size = null;
+ }
+ } else {
+ visible = false;
+ for (int i = 0; i < visibilityWindowListeners.length; i++) {
+ visibilityWindowListeners[i].hide (event);
+ }
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ GetTitle (int /*long*/ aTitle) {
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ SetTitle (int /*long*/ aTitle) {
+ if (titleListeners.length == 0) return XPCOM.NS_OK;
+ TitleEvent event = new TitleEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ /*
+ * To be consistent with other platforms the title event should
+ * contain the page's url if the page does not contain a <title>
+ * tag.
+ */
+ int length = XPCOM.strlen_PRUnichar (aTitle);
+ if (length > 0) {
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aTitle, length * 2);
+ event.title = new String (dest);
+ } else {
+ event.title = getUrl ();
+ }
+ for (int i = 0; i < titleListeners.length; i++) {
+ titleListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ GetSiteWindow (int /*long*/ aSiteWindow) {
+ /*
+ * Note. The handle is expected to be an HWND on Windows and
+ * a GtkWidget* on GTK. This callback is invoked on Windows
+ * when the javascript window.print is invoked and the print
+ * dialog comes up. If no handle is returned, the print dialog
+ * does not come up on this platform.
+ */
+ XPCOM.memmove (aSiteWindow, new int /*long*/[] {embedHandle}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+/* nsIWebBrowserChromeFocus */
+
+int /*long*/ FocusNextElement () {
+ /*
+ * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
+ * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
+ * with the Mozilla application TestGtkEmbed. The workaround is to
+ * send the traversal notification after this callback returns.
+ */
+ browser.getDisplay ().asyncExec (new Runnable () {
+ public void run () {
+ browser.traverse (SWT.TRAVERSE_TAB_NEXT);
+ }
+ });
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ FocusPrevElement () {
+ /*
+ * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
+ * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
+ * with the Mozilla application TestGtkEmbed. The workaround is to
+ * send the traversal notification after this callback returns.
+ */
+ browser.getDisplay ().asyncExec (new Runnable () {
+ public void run () {
+ browser.traverse (SWT.TRAVERSE_TAB_PREVIOUS);
+ }
+ });
+ return XPCOM.NS_OK;
+}
+
+/* nsIContextMenuListener */
+
+int /*long*/ OnShowContextMenu (int /*long*/ aContextFlags, int /*long*/ aEvent, int /*long*/ aNode) {
+ nsIDOMEvent domEvent = new nsIDOMEvent (aEvent);
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = domEvent.QueryInterface (nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIDOMMouseEvent domMouseEvent = new nsIDOMMouseEvent (result[0]);
+ int[] aScreenX = new int[1], aScreenY = new int[1];
+ rc = domMouseEvent.GetScreenX (aScreenX);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domMouseEvent.GetScreenY (aScreenY);
+ if (rc != XPCOM.NS_OK) error (rc);
+ domMouseEvent.Release ();
+
+ Event event = new Event ();
+ event.x = aScreenX[0];
+ event.y = aScreenY[0];
+ browser.notifyListeners (SWT.MenuDetect, event);
+ if (!event.doit) return XPCOM.NS_OK;
+ Menu menu = browser.getMenu ();
+ if (menu != null && !menu.isDisposed ()) {
+ if (aScreenX[0] != event.x || aScreenY[0] != event.y) {
+ menu.setLocation (event.x, event.y);
+ }
+ menu.setVisible (true);
+ }
+ return XPCOM.NS_OK;
+}
+
+/* nsIURIContentListener */
+
+int /*long*/ OnStartURIOpen (int /*long*/ aURI, int /*long*/ retval) {
+ nsIURI location = new nsIURI (aURI);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ location.GetSpec (aSpec);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ String value = new String (dest);
+ if (locationListeners.length == 0) {
+ XPCOM.memmove (retval, new int[] {0}, 4);
+ return XPCOM.NS_OK;
+ }
+ boolean doit = true;
+ if (request == 0) {
+ LocationEvent event = new LocationEvent (browser);
+ event.display = browser.getDisplay();
+ event.widget = browser;
+ event.location = value;
+ if (event.location.equals (URI_FROMMEMORY)) {
+ /*
+ * If the URI indicates that the page is being rendered from memory
+ * (ie.- via setText()) then set the event location to about:blank
+ * to be consistent with win32.
+ */
+ event.location = ABOUT_BLANK;
+ }
+ event.doit = doit;
+ for (int i = 0; i < locationListeners.length; i++) {
+ locationListeners[i].changing (event);
+ }
+ doit = event.doit;
+ }
+ /* Note. boolean remains of size 4 on 64 bit machine */
+ XPCOM.memmove (retval, new int[] {doit ? 0 : 1}, 4);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ DoContent (int /*long*/ aContentType, int /*long*/ aIsContentPreferred, int /*long*/ aRequest, int /*long*/ aContentHandler, int /*long*/ retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int /*long*/ IsPreferred (int /*long*/ aContentType, int /*long*/ aDesiredContentType, int /*long*/ retval) {
+ boolean preferred = false;
+ int size = XPCOM.strlen (aContentType);
+ if (size > 0) {
+ byte[] typeBytes = new byte[size + 1];
+ XPCOM.memmove (typeBytes, aContentType, size);
+ String contentType = new String (typeBytes);
+
+ /* do not attempt to handle known problematic content types */
+ if (!contentType.equals (XPCOM.CONTENT_MAYBETEXT) && !contentType.equals (XPCOM.CONTENT_MULTIPART)) {
+ /* determine whether browser can handle the content type */
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ rc = serviceManager.GetService (XPCOM.NS_CATEGORYMANAGER_CID, nsICategoryManager.NS_ICATEGORYMANAGER_IID, result);
+ serviceManager.Release ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsICategoryManager categoryManager = new nsICategoryManager (result[0]);
+ result[0] = 0;
+ byte[] categoryBytes = MozillaDelegate.wcsToMbcs (null, "Gecko-Content-Viewers", true); //$NON-NLS-1$
+ rc = categoryManager.GetCategoryEntry (categoryBytes, typeBytes, result);
+ categoryManager.Release ();
+ /* if no viewer for the content type is registered then rc == XPCOM.NS_ERROR_NOT_AVAILABLE */
+ preferred = rc == XPCOM.NS_OK;
+ }
+ }
+
+ /* note that boolean remains of size 4 on 64 bit machines */
+ XPCOM.memmove(retval, new int[] {preferred ? 1 : 0}, 4);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ CanHandleContent (int /*long*/ aContentType, int /*long*/ aIsContentPreferred, int /*long*/ aDesiredContentType, int /*long*/ retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int /*long*/ GetLoadCookie (int /*long*/ aLoadCookie) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int /*long*/ SetLoadCookie (int /*long*/ aLoadCookie) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int /*long*/ GetParentContentListener (int /*long*/ aParentContentListener) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int /*long*/ SetParentContentListener (int /*long*/ aParentContentListener) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* nsITooltipListener */
+
+int /*long*/ OnShowTooltip (int /*long*/ aXCoords, int /*long*/ aYCoords, int /*long*/ aTipText) {
+ int length = XPCOM.strlen_PRUnichar (aTipText);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aTipText, length * 2);
+ String text = new String (dest);
+ if (tip != null && !tip.isDisposed ()) tip.dispose ();
+ Display display = browser.getDisplay ();
+ Shell parent = browser.getShell ();
+ tip = new Shell (parent, SWT.ON_TOP);
+ tip.setLayout (new FillLayout());
+ Label label = new Label (tip, SWT.CENTER);
+ label.setForeground (display.getSystemColor (SWT.COLOR_INFO_FOREGROUND));
+ label.setBackground (display.getSystemColor (SWT.COLOR_INFO_BACKGROUND));
+ label.setText (text);
+ /*
+ * Bug in Mozilla embedded API. Tooltip coordinates are wrong for
+ * elements inside an inline frame (IFrame tag). The workaround is
+ * to position the tooltip based on the mouse cursor location.
+ */
+ Point point = display.getCursorLocation ();
+ /* Assuming cursor is 21x21 because this is the size of
+ * the arrow cursor on Windows
+ */
+ point.y += 21;
+ tip.setLocation (point);
+ tip.pack ();
+ tip.setVisible (true);
+ return XPCOM.NS_OK;
+}
+
+int /*long*/ OnHideTooltip () {
+ if (tip != null && !tip.isDisposed ()) tip.dispose ();
+ tip = null;
+ return XPCOM.NS_OK;
+}
+
+/* nsIDirectoryServiceProvider */
+
+int /*long*/ GetFile (int /*long*/ prop, int /*long*/ persistent, int /*long*/ retVal) {
+ int size = XPCOM.strlen (prop);
+ byte[] bytes = new byte[size];
+ XPCOM.memmove (bytes, prop, size);
+ String propertyName = new String (MozillaDelegate.mbcsToWcs (null, bytes));
+ String propertyValue = null;
+
+ if (propertyName.equals (XPCOM.NS_APP_HISTORY_50_FILE)) {
+ propertyValue = profileRootDirectory + HISTORY_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_USER_MIMETYPES_50_FILE)) {
+ propertyValue = profileRootDirectory + MIMETYPES_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_PREFS_50_FILE)) {
+ propertyValue = profileRootDirectory + PREFERENCES_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_PREFS_50_DIR)) {
+ propertyValue = profileRootDirectory;
+ } else if (propertyName.equals (XPCOM.NS_APP_USER_CHROME_DIR)) {
+ propertyValue = profileRootDirectory + CHROME_DIR;
+ } else if (propertyName.equals (XPCOM.NS_APP_USER_PROFILE_50_DIR)) {
+ propertyValue = profileRootDirectory;
+ } else if (propertyName.equals (XPCOM.NS_APP_LOCALSTORE_50_FILE)) {
+ propertyValue = profileRootDirectory + LOCALSTORE_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_CACHE_PARENT_DIR)) {
+ propertyValue = profileRootDirectory;
+ } else if (propertyName.equals (XPCOM.NS_OS_HOME_DIR)) {
+ propertyValue = System.getProperty("user.home"); //$NON-NLS-1$
+ } else if (propertyName.equals (XPCOM.NS_OS_TEMP_DIR)) {
+ propertyValue = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$
+ }
+
+ if (propertyValue != null && propertyValue.length () > 0) {
+ int /*long*/[] result = new int /*long*/[1];
+ nsEmbedString pathString = new nsEmbedString (propertyValue);
+ int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), true, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NULL_POINTER);
+ pathString.dispose ();
+ XPCOM.memmove (retVal, new int /*long*/[] {result[0]}, C.PTR_SIZEOF);
+ /* note that boolean remains of size 4 on 64 bit machines */
+ XPCOM.memmove (persistent, new int[] {1}, 4);
+ }
+
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptService.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptService.java
index 4d7eb9472d..83430783cd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptService.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptService.java
@@ -13,7 +13,6 @@ package org.eclipse.swt.browser;
import org.eclipse.swt.*;
import org.eclipse.swt.internal.*;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
import org.eclipse.swt.widgets.*;
class PromptService {
@@ -21,132 +20,132 @@ class PromptService {
XPCOMObject promptService;
int refCount = 0;
-public PromptService() {
- createCOMInterfaces();
+public PromptService () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- promptService = new XPCOMObject(new int[]{2, 0, 0, 3, 5, 4, 6, 10, 7, 8, 7, 7}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return Alert(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return AlertCheck(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method5(int /*long*/[] args) {return Confirm(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method6(int /*long*/[] args) {return ConfirmCheck(args[0], args[1], args[2], args[3], args[4], args[5]);}
- public int /*long*/ method7(int /*long*/[] args) {return ConfirmEx(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);}
- public int /*long*/ method8(int /*long*/[] args) {return Prompt(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
- public int /*long*/ method9(int /*long*/[] args) {return PromptUsernameAndPassword(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);}
- public int /*long*/ method10(int /*long*/[] args) {return PromptPassword(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
- public int /*long*/ method11(int /*long*/[] args) {return Select(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ promptService = new XPCOMObject (new int[] {2, 0, 0, 3, 5, 4, 6, 10, 7, 8, 7, 7}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Alert (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return AlertCheck (args[0], args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return Confirm (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return ConfirmCheck (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return ConfirmEx (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return Prompt (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return PromptUsernameAndPassword (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return PromptPassword (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return Select (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (promptService != null) {
- promptService.dispose();
+ promptService.dispose ();
promptService = null;
}
}
-int /*long*/ getAddress() {
- return promptService.getAddress();
+int /*long*/ getAddress () {
+ return promptService.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIPromptService.NS_IPROMPTSERVICE_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {promptService.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIPromptService.NS_IPROMPTSERVICE_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {promptService.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
-Browser getBrowser(int /*long*/ aDOMWindow) {
+Browser getBrowser (int /*long*/ aDOMWindow) {
int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
result[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
- nsIWindowWatcher windowWatcher = new nsIWindowWatcher(result[0]);
+ nsIWindowWatcher windowWatcher = new nsIWindowWatcher (result[0]);
result[0] = 0;
- rc = windowWatcher.GetChromeForWindow(aDOMWindow, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- windowWatcher.Release();
+ rc = windowWatcher.GetChromeForWindow (aDOMWindow, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ windowWatcher.Release ();
- nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome(result[0]);
+ nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome (result[0]);
result[0] = 0;
- rc = webBrowserChrome.QueryInterface(nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- webBrowserChrome.Release();
+ rc = webBrowserChrome.QueryInterface (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ webBrowserChrome.Release ();
- nsIEmbeddingSiteWindow embeddingSiteWindow = new nsIEmbeddingSiteWindow(result[0]);
+ nsIEmbeddingSiteWindow embeddingSiteWindow = new nsIEmbeddingSiteWindow (result[0]);
result[0] = 0;
- rc = embeddingSiteWindow.GetSiteWindow(result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE);
- embeddingSiteWindow.Release();
+ rc = embeddingSiteWindow.GetSiteWindow (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ embeddingSiteWindow.Release ();
- return Mozilla.findBrowser(result[0]);
+ return Mozilla.findBrowser (result[0]);
}
-String getLabel(int buttonFlag, int index, int /*long*/ buttonTitle) {
+String getLabel (int buttonFlag, int index, int /*long*/ buttonTitle) {
String label = null;
int flag = (buttonFlag & (0xff * index)) / index;
switch (flag) {
- case nsIPromptService.BUTTON_TITLE_CANCEL : label = SWT.getMessage("SWT_Cancel"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_NO : label = SWT.getMessage("SWT_No"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_OK : label = SWT.getMessage("SWT_OK"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_SAVE : label = SWT.getMessage("SWT_Save"); break; //$NON-NLS-1$
- case nsIPromptService.BUTTON_TITLE_YES : label = SWT.getMessage("SWT_Yes"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_CANCEL : label = SWT.getMessage ("SWT_Cancel"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_NO : label = SWT.getMessage ("SWT_No"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_OK : label = SWT.getMessage ("SWT_OK"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_SAVE : label = SWT.getMessage ("SWT_Save"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_YES : label = SWT.getMessage ("SWT_Yes"); break; //$NON-NLS-1$
case nsIPromptService.BUTTON_TITLE_IS_STRING : {
- int length = XPCOM.strlen_PRUnichar(buttonTitle);
+ int length = XPCOM.strlen_PRUnichar (buttonTitle);
char[] dest = new char[length];
- XPCOM.memmove(dest, buttonTitle, length * 2);
- label = new String(dest);
+ XPCOM.memmove (dest, buttonTitle, length * 2);
+ label = new String (dest);
}
}
return label;
@@ -154,130 +153,130 @@ String getLabel(int buttonFlag, int index, int /*long*/ buttonTitle) {
/* nsIPromptService */
-public int /*long*/ Alert(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text) {
- Browser browser = getBrowser(parent);
+public int /*long*/ Alert (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text) {
+ Browser browser = getBrowser (parent);
- int length = XPCOM.strlen_PRUnichar(dialogTitle);
+ int length = XPCOM.strlen_PRUnichar (dialogTitle);
char[] dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- String titleLabel = new String(dest);
+ XPCOM.memmove (dest, dialogTitle, length * 2);
+ String titleLabel = new String (dest);
- length = XPCOM.strlen_PRUnichar(text);
+ length = XPCOM.strlen_PRUnichar (text);
dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- String textLabel = new String(dest);
+ XPCOM.memmove (dest, text, length * 2);
+ String textLabel = new String (dest);
- MessageBox messageBox = new MessageBox(browser.getShell(), SWT.OK | SWT.ICON_WARNING);
- messageBox.setText(titleLabel);
- messageBox.setMessage(textLabel);
- messageBox.open();
+ MessageBox messageBox = new MessageBox (browser.getShell (), SWT.OK | SWT.ICON_WARNING);
+ messageBox.setText (titleLabel);
+ messageBox.setMessage (textLabel);
+ messageBox.open ();
return XPCOM.NS_OK;
}
-public int /*long*/ AlertCheck(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ checkMsg, int /*long*/ checkValue) {
+public int /*long*/ AlertCheck (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ checkMsg, int /*long*/ checkValue) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ Confirm(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
+public int /*long*/ Confirm (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ _retval) {
+ Browser browser = getBrowser (parent);
- int length = XPCOM.strlen_PRUnichar(dialogTitle);
+ int length = XPCOM.strlen_PRUnichar (dialogTitle);
char[] dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- String titleLabel = new String(dest);
+ XPCOM.memmove (dest, dialogTitle, length * 2);
+ String titleLabel = new String (dest);
- length = XPCOM.strlen_PRUnichar(text);
+ length = XPCOM.strlen_PRUnichar (text);
dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- String textLabel = new String(dest);
+ XPCOM.memmove (dest, text, length * 2);
+ String textLabel = new String (dest);
- MessageBox messageBox = new MessageBox(browser.getShell(), SWT.OK | SWT.CANCEL | SWT.ICON_QUESTION);
- messageBox.setText(titleLabel);
- messageBox.setMessage(textLabel);
- int id = messageBox.open();
- int[] result = { id == SWT.OK ? 1 : 0};
- XPCOM.memmove(_retval, result, 4);
+ MessageBox messageBox = new MessageBox (browser.getShell (), SWT.OK | SWT.CANCEL | SWT.ICON_QUESTION);
+ messageBox.setText (titleLabel);
+ messageBox.setMessage (textLabel);
+ int id = messageBox.open ();
+ int[] result = {id == SWT.OK ? 1 : 0};
+ XPCOM.memmove (_retval, result, 4);
return XPCOM.NS_OK;
}
-public int /*long*/ ConfirmCheck(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
+public int /*long*/ ConfirmCheck (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ ConfirmEx(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ buttonFlags, int /*long*/ button0Title, int /*long*/ button1Title, int /*long*/ button2Title, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
+public int /*long*/ ConfirmEx (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ buttonFlags, int /*long*/ button0Title, int /*long*/ button1Title, int /*long*/ button2Title, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
+ Browser browser = getBrowser (parent);
- int length = XPCOM.strlen_PRUnichar(dialogTitle);
+ int length = XPCOM.strlen_PRUnichar (dialogTitle);
char[] dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- String titleLabel = new String(dest);
-
- length = XPCOM.strlen_PRUnichar(text);
+ XPCOM.memmove (dest, dialogTitle, length * 2);
+ String titleLabel = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (text);
dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- String textLabel = new String(dest);
+ XPCOM.memmove (dest, text, length * 2);
+ String textLabel = new String (dest);
String checkLabel = null;
if (checkMsg != 0) {
- length = XPCOM.strlen_PRUnichar(checkMsg);
+ length = XPCOM.strlen_PRUnichar (checkMsg);
dest = new char[length];
- XPCOM.memmove(dest, checkMsg, length * 2);
- checkLabel = new String(dest);
+ XPCOM.memmove (dest, checkMsg, length * 2);
+ checkLabel = new String (dest);
}
- String button1Label = getLabel((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_0, button0Title);
- String button2Label = getLabel((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_1, button1Title);
- String button3Label = getLabel((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_2, button2Title);
+ String button1Label = getLabel ((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_0, button0Title);
+ String button2Label = getLabel ((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_1, button1Title);
+ String button3Label = getLabel ((int)/*64*/buttonFlags, nsIPromptService.BUTTON_POS_2, button2Title);
- PromptDialog dialog = new PromptDialog(browser.getShell());
+ PromptDialog dialog = new PromptDialog (browser.getShell ());
int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.confirmEx(titleLabel, textLabel, checkLabel, button1Label, button2Label, button3Label, check, result);
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
- XPCOM.memmove(_retval, result, 4);
+ if (checkValue != 0) XPCOM.memmove (check, checkValue, 4);
+ dialog.confirmEx (titleLabel, textLabel, checkLabel, button1Label, button2Label, button3Label, check, result);
+ if (checkValue != 0) XPCOM.memmove (checkValue, check, 4);
+ XPCOM.memmove (_retval, result, 4);
return XPCOM.NS_OK;
}
-public int /*long*/ Prompt(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ value, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
+public int /*long*/ Prompt (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ value, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
+ Browser browser = getBrowser (parent);
String titleLabel = null, textLabel, checkLabel = null;
String[] valueLabel = new String[1];
char[] dest;
int length;
if (dialogTitle != 0) {
- length = XPCOM.strlen_PRUnichar(dialogTitle);
+ length = XPCOM.strlen_PRUnichar (dialogTitle);
dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- titleLabel = new String(dest);
+ XPCOM.memmove (dest, dialogTitle, length * 2);
+ titleLabel = new String (dest);
}
- length = XPCOM.strlen_PRUnichar(text);
+ length = XPCOM.strlen_PRUnichar (text);
dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- textLabel = new String(dest);
+ XPCOM.memmove (dest, text, length * 2);
+ textLabel = new String (dest);
int /*long*/[] valueAddr = new int /*long*/[1];
- XPCOM.memmove(valueAddr, value, OS.PTR_SIZEOF);
+ XPCOM.memmove (valueAddr, value, C.PTR_SIZEOF);
if (valueAddr[0] != 0) {
- length = XPCOM.strlen_PRUnichar(valueAddr[0]);
+ length = XPCOM.strlen_PRUnichar (valueAddr[0]);
dest = new char[length];
- XPCOM.memmove(dest, valueAddr[0], length * 2);
- valueLabel[0] = new String(dest);
+ XPCOM.memmove (dest, valueAddr[0], length * 2);
+ valueLabel[0] = new String (dest);
}
if (checkMsg != 0) {
- length = XPCOM.strlen_PRUnichar(checkMsg);
+ length = XPCOM.strlen_PRUnichar (checkMsg);
dest = new char[length];
- XPCOM.memmove(dest, checkMsg, length * 2);
- checkLabel = new String(dest);
+ XPCOM.memmove (dest, checkMsg, length * 2);
+ checkLabel = new String (dest);
}
- PromptDialog dialog = new PromptDialog(browser.getShell());
+ PromptDialog dialog = new PromptDialog (browser.getShell());
int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.prompt(titleLabel, textLabel, checkLabel, valueLabel, check, result);
+ if (checkValue != 0) XPCOM.memmove (check, checkValue, 4);
+ dialog.prompt (titleLabel, textLabel, checkLabel, valueLabel, check, result);
- XPCOM.memmove(_retval, result, 4);
+ XPCOM.memmove (_retval, result, 4);
if (result[0] == 1) {
/*
* User selected OK. User name and password are returned as PRUnichar values. Any default
@@ -288,89 +287,89 @@ public int /*long*/ Prompt(int /*long*/ parent, int /*long*/ dialogTitle, int /*
char[] buffer;
int /*long*/[] result2 = new int /*long*/[1];
if (valueLabel[0] != null) {
- cnt = valueLabel[0].length();
+ cnt = valueLabel[0].length ();
buffer = new char[cnt + 1];
- valueLabel[0].getChars(0, cnt, buffer, 0);
+ valueLabel[0].getChars (0, cnt, buffer, 0);
size = buffer.length * 2;
- ptr = OS.g_malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(value, new int /*long*/[] {ptr}, OS.PTR_SIZEOF);
+ ptr = C.malloc (size);
+ XPCOM.memmove (ptr, buffer, size);
+ XPCOM.memmove (value, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
if (valueAddr[0] != 0) {
- int rc = XPCOM.NS_GetServiceManager(result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
+ int rc = XPCOM.NS_GetServiceManager (result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager(result2[0]);
+ nsIServiceManager serviceManager = new nsIServiceManager (result2[0]);
result2[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_MEMORY_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
- nsIMemory memory = new nsIMemory(result2[0]);
+ nsIMemory memory = new nsIMemory (result2[0]);
result2[0] = 0;
- memory.Free(valueAddr[0]);
- memory.Release();
+ memory.Free (valueAddr[0]);
+ memory.Release ();
}
}
}
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
+ if (checkValue != 0) XPCOM.memmove (checkValue, check, 4);
return XPCOM.NS_OK;
}
-public int /*long*/ PromptUsernameAndPassword(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ username, int /*long*/ password, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
- Browser browser = getBrowser(parent);
+public int /*long*/ PromptUsernameAndPassword (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ username, int /*long*/ password, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
+ Browser browser = getBrowser (parent);
String titleLabel, textLabel, checkLabel = null;
String[] userLabel = new String[1], passLabel = new String[1];
char[] dest;
int length;
if (dialogTitle != 0) {
- length = XPCOM.strlen_PRUnichar(dialogTitle);
+ length = XPCOM.strlen_PRUnichar (dialogTitle);
dest = new char[length];
- XPCOM.memmove(dest, dialogTitle, length * 2);
- titleLabel = new String(dest);
+ XPCOM.memmove (dest, dialogTitle, length * 2);
+ titleLabel = new String (dest);
} else {
titleLabel = ""; //$NON-NLS-1$
}
- length = XPCOM.strlen_PRUnichar(text);
+ length = XPCOM.strlen_PRUnichar (text);
dest = new char[length];
- XPCOM.memmove(dest, text, length * 2);
- textLabel = new String(dest);
+ XPCOM.memmove (dest, text, length * 2);
+ textLabel = new String (dest);
int /*long*/[] userAddr = new int /*long*/[1];
- XPCOM.memmove(userAddr, username, OS.PTR_SIZEOF);
+ XPCOM.memmove (userAddr, username, C.PTR_SIZEOF);
if (userAddr[0] != 0) {
- length = XPCOM.strlen_PRUnichar(userAddr[0]);
+ length = XPCOM.strlen_PRUnichar (userAddr[0]);
dest = new char[length];
- XPCOM.memmove(dest, userAddr[0], length * 2);
- userLabel[0] = new String(dest);
+ XPCOM.memmove (dest, userAddr[0], length * 2);
+ userLabel[0] = new String (dest);
}
int /*long*/[] passAddr = new int /*long*/[1];
- XPCOM.memmove(passAddr, password, OS.PTR_SIZEOF);
+ XPCOM.memmove (passAddr, password, C.PTR_SIZEOF);
if (passAddr[0] != 0) {
- length = XPCOM.strlen_PRUnichar(passAddr[0]);
+ length = XPCOM.strlen_PRUnichar (passAddr[0]);
dest = new char[length];
- XPCOM.memmove(dest, passAddr[0], length * 2);
- passLabel[0] = new String(dest);
+ XPCOM.memmove (dest, passAddr[0], length * 2);
+ passLabel[0] = new String (dest);
}
if (checkMsg != 0) {
- length = XPCOM.strlen_PRUnichar(checkMsg);
+ length = XPCOM.strlen_PRUnichar (checkMsg);
dest = new char[length];
- XPCOM.memmove(dest, checkMsg, length * 2);
- checkLabel = new String(dest);
+ XPCOM.memmove (dest, checkMsg, length * 2);
+ checkLabel = new String (dest);
}
- PromptDialog dialog = new PromptDialog(browser.getShell());
+ PromptDialog dialog = new PromptDialog (browser.getShell());
int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.promptUsernameAndPassword(titleLabel, textLabel, checkLabel, userLabel, passLabel, check, result);
+ if (checkValue != 0) XPCOM.memmove (check, checkValue, 4);
+ dialog.promptUsernameAndPassword (titleLabel, textLabel, checkLabel, userLabel, passLabel, check, result);
- XPCOM.memmove(_retval, result, 4);
+ XPCOM.memmove (_retval, result, 4);
if (result[0] == 1) {
/*
* User selected OK. User name and password are returned as PRUnichar values. Any default
@@ -381,71 +380,71 @@ public int /*long*/ PromptUsernameAndPassword(int /*long*/ parent, int /*long*/
char[] buffer;
int /*long*/[] result2 = new int /*long*/[1];
if (userLabel[0] != null) {
- cnt = userLabel[0].length();
+ cnt = userLabel[0].length ();
buffer = new char[cnt + 1];
- userLabel[0].getChars(0, cnt, buffer, 0);
+ userLabel[0].getChars (0, cnt, buffer, 0);
size = buffer.length * 2;
- ptr = OS.g_malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(username, new int /*long*/[] {ptr}, OS.PTR_SIZEOF);
+ ptr = C.malloc (size);
+ XPCOM.memmove (ptr, buffer, size);
+ XPCOM.memmove (username, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
if (userAddr[0] != 0) {
- int rc = XPCOM.NS_GetServiceManager(result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
+ int rc = XPCOM.NS_GetServiceManager (result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager(result2[0]);
+ nsIServiceManager serviceManager = new nsIServiceManager (result2[0]);
result2[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_MEMORY_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
- nsIMemory memory = new nsIMemory(result2[0]);
+ nsIMemory memory = new nsIMemory (result2[0]);
result2[0] = 0;
- memory.Free(userAddr[0]);
- memory.Release();
+ memory.Free (userAddr[0]);
+ memory.Release ();
}
}
if (passLabel[0] != null) {
- cnt = passLabel[0].length();
+ cnt = passLabel[0].length ();
buffer = new char[cnt + 1];
- passLabel[0].getChars(0, cnt, buffer, 0);
+ passLabel[0].getChars (0, cnt, buffer, 0);
size = buffer.length * 2;
- ptr = OS.g_malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(password, new int /*long*/[] {ptr}, OS.PTR_SIZEOF);
+ ptr = C.malloc (size);
+ XPCOM.memmove (ptr, buffer, size);
+ XPCOM.memmove (password, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
if (passAddr[0] != 0) {
- int rc = XPCOM.NS_GetServiceManager(result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result2[0]);
+ int rc = XPCOM.NS_GetServiceManager (result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result2[0]);
result2[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_MEMORY_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result2);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result2[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIMemory memory = new nsIMemory(result2[0]);
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result2[0]);
result2[0] = 0;
- memory.Free(passAddr[0]);
- memory.Release();
+ memory.Free (passAddr[0]);
+ memory.Release ();
}
}
}
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
+ if (checkValue != 0) XPCOM.memmove (checkValue, check, 4);
return XPCOM.NS_OK;
}
-public int /*long*/ PromptPassword(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ password, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
+public int /*long*/ PromptPassword (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ password, int /*long*/ checkMsg, int /*long*/ checkValue, int /*long*/ _retval) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ Select(int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ count, int /*long*/ selectList, int /*long*/ outSelection, int /*long*/ _retval) {
+public int /*long*/ Select (int /*long*/ parent, int /*long*/ dialogTitle, int /*long*/ text, int /*long*/ count, int /*long*/ selectList, int /*long*/ outSelection, int /*long*/ _retval) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptServiceFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptServiceFactory.java
index 8988887590..d6b674d485 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptServiceFactory.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/PromptServiceFactory.java
@@ -10,91 +10,91 @@
*******************************************************************************/
package org.eclipse.swt.browser;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.*;
class PromptServiceFactory {
XPCOMObject supports;
XPCOMObject factory;
int refCount = 0;
-public PromptServiceFactory() {
- createCOMInterfaces();
+public PromptServiceFactory () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- factory = new XPCOMObject(new int[]{2, 0, 0, 3, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateInstance(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return LockFactory(args[0]);}
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory (args[0]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (factory != null) {
- factory.dispose();
+ factory.dispose ();
factory = null;
}
}
-int /*long*/ getAddress() {
- return factory.getAddress();
+int /*long*/ getAddress () {
+ return factory.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIFactory.NS_IFACTORY_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {factory.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIFactory */
-public int /*long*/ CreateInstance(int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
- PromptService promptService = new PromptService();
- promptService.AddRef();
- XPCOM.memmove(result, new int /*long*/[] {promptService.getAddress()}, OS.PTR_SIZEOF);
+public int /*long*/ CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ PromptService promptService = new PromptService ();
+ promptService.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {promptService.getAddress ()}, C.PTR_SIZEOF);
return XPCOM.NS_OK;
}
-public int /*long*/ LockFactory(int /*long*/ lock) {
+public int /*long*/ LockFactory (int /*long*/ lock) {
return XPCOM.NS_OK;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/WindowCreator.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/WindowCreator.java
index 9c59675e44..e501c74d3d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/WindowCreator.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/browser/WindowCreator.java
@@ -12,8 +12,8 @@ package org.eclipse.swt.browser;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
+import org.eclipse.swt.internal.C;
import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.internal.gtk.OS;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
@@ -22,102 +22,102 @@ class WindowCreator {
XPCOMObject windowCreator;
int refCount = 0;
-public WindowCreator() {
- createCOMInterfaces();
+public WindowCreator () {
+ createCOMInterfaces ();
}
-int AddRef() {
+int AddRef () {
refCount++;
return refCount;
}
-void createCOMInterfaces() {
+void createCOMInterfaces () {
/* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
};
- windowCreator = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return CreateChromeWindow(args[0], args[1], args[2]);}
+ windowCreator = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateChromeWindow (args[0], args[1], args[2]);}
};
}
-void disposeCOMInterfaces() {
+void disposeCOMInterfaces () {
if (supports != null) {
- supports.dispose();
+ supports.dispose ();
supports = null;
}
if (windowCreator != null) {
- windowCreator.dispose();
+ windowCreator.dispose ();
windowCreator = null;
}
}
-int /*long*/ getAddress() {
- return windowCreator.getAddress();
+int /*long*/ getAddress () {
+ return windowCreator.getAddress ();
}
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
+int /*long*/ QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- if (guid.Equals(nsIWindowCreator.NS_IWINDOWCREATOR_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {windowCreator.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
+ if (guid.Equals (nsIWindowCreator.NS_IWINDOWCREATOR_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {windowCreator.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
return XPCOM.NS_OK;
}
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
return XPCOM.NS_ERROR_NO_INTERFACE;
}
-int Release() {
+int Release () {
refCount--;
- if (refCount == 0) disposeCOMInterfaces();
+ if (refCount == 0) disposeCOMInterfaces ();
return refCount;
}
/* nsIWindowCreator */
-int /*long*/ CreateChromeWindow(int /*long*/ parent, int /*long*/ chromeFlags, int /*long*/ _retval) {
+int /*long*/ CreateChromeWindow (int /*long*/ parent, int /*long*/ chromeFlags, int /*long*/ _retval) {
if (parent == 0 && (chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) == 0) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
Browser src = null;
if (parent != 0) {
- nsIWebBrowserChrome browserChromeParent = new nsIWebBrowserChrome(parent);
+ nsIWebBrowserChrome browserChromeParent = new nsIWebBrowserChrome (parent);
int /*long*/[] aWebBrowser = new int /*long*/[1];
- int rc = browserChromeParent.GetWebBrowser(aWebBrowser);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (aWebBrowser[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
+ int rc = browserChromeParent.GetWebBrowser (aWebBrowser);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (aWebBrowser[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
- nsIWebBrowser webBrowser = new nsIWebBrowser(aWebBrowser[0]);
+ nsIWebBrowser webBrowser = new nsIWebBrowser (aWebBrowser[0]);
int /*long*/[] result = new int /*long*/[1];
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (result[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
- webBrowser.Release();
+ rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ webBrowser.Release ();
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
result[0] = 0;
int /*long*/[] aParentNativeWindow = new int /*long*/[1];
- rc = baseWindow.GetParentNativeWindow(aParentNativeWindow);
- if (rc != XPCOM.NS_OK) Mozilla.error(rc);
- if (aParentNativeWindow[0] == 0) Mozilla.error(XPCOM.NS_ERROR_NO_INTERFACE);
- baseWindow.Release();
+ rc = baseWindow.GetParentNativeWindow (aParentNativeWindow);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (aParentNativeWindow[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ baseWindow.Release ();
- src = Mozilla.findBrowser(aParentNativeWindow[0]);
+ src = Mozilla.findBrowser (aParentNativeWindow[0]);
}
final Browser browser;
boolean doit = false;
@@ -131,39 +131,39 @@ int /*long*/ CreateChromeWindow(int /*long*/ parent, int /*long*/ chromeFlags, i
* modal requests are handled here and not exposed to the user.
*/
final Shell shell = src == null ?
- new Shell(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL) :
- new Shell(src.getShell(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- shell.setLayout(new FillLayout());
- browser = new Browser(shell, src.getStyle() & SWT.NONE /*MOZILLA*/); // TODO
- browser.addVisibilityWindowListener(new VisibilityWindowListener() {
- public void hide(WindowEvent event) {
+ new Shell (SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL) :
+ new Shell (src.getShell(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+ shell.setLayout (new FillLayout ());
+ browser = new Browser (shell, src.getStyle () & SWT.MOZILLA);
+ browser.addVisibilityWindowListener (new VisibilityWindowListener () {
+ public void hide (WindowEvent event) {
}
- public void show(WindowEvent event) {
- if (event.location != null) shell.setLocation(event.location);
+ public void show (WindowEvent event) {
+ if (event.location != null) shell.setLocation (event.location);
if (event.size != null) {
Point size = event.size;
- shell.setSize(shell.computeSize(size.x, size.y));
+ shell.setSize (shell.computeSize (size.x, size.y));
}
- shell.open();
+ shell.open ();
((Mozilla)browser.webBrowser).isModal = true;
}
});
- browser.addCloseWindowListener(new CloseWindowListener() {
- public void close(WindowEvent event) {
- shell.close();
+ browser.addCloseWindowListener (new CloseWindowListener () {
+ public void close (WindowEvent event) {
+ shell.close ();
}
});
doit = true;
} else {
- WindowEvent event = new WindowEvent(src);
- event.display = src.getDisplay();
+ WindowEvent event = new WindowEvent (src);
+ event.display = src.getDisplay ();
event.widget = src;
event.required = true;
for (int i = 0; i < src.webBrowser.openWindowListeners.length; i++) {
- src.webBrowser.openWindowListeners[i].open(event);
+ src.webBrowser.openWindowListeners[i].open (event);
}
browser = event.browser;
- doit = browser != null && !browser.isDisposed();
+ doit = browser != null && !browser.isDisposed ();
if (doit) {
((Mozilla)browser.webBrowser).addressBar = (chromeFlags & nsIWebBrowserChrome.CHROME_LOCATIONBAR) != 0;
((Mozilla)browser.webBrowser).menuBar = (chromeFlags & nsIWebBrowserChrome.CHROME_MENUBAR) != 0;
@@ -172,10 +172,10 @@ int /*long*/ CreateChromeWindow(int /*long*/ parent, int /*long*/ chromeFlags, i
}
}
if (doit) {
- int /*long*/ address = ((Mozilla)browser.webBrowser).webBrowserChrome.getAddress();
- nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome(address);
- webBrowserChrome.AddRef();
- XPCOM.memmove(_retval, new int /*long*/[] {address}, OS.PTR_SIZEOF);
+ int /*long*/ address = ((Mozilla)browser.webBrowser).webBrowserChrome.getAddress ();
+ nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome (address);
+ webBrowserChrome.AddRef ();
+ XPCOM.memmove (_retval, new int /*long*/[] {address}, C.PTR_SIZEOF);
}
return doit ? XPCOM.NS_OK : XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/internal/mozilla/XPCOMObject.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/internal/mozilla/XPCOMObject.java
index 4959c25264..05296f6cfd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/internal/mozilla/XPCOMObject.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/mozilla/org/eclipse/swt/internal/mozilla/XPCOMObject.java
@@ -13,7 +13,6 @@ package org.eclipse.swt.internal.mozilla;
import java.util.*;
import org.eclipse.swt.*;
import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.gtk.*;
public class XPCOMObject {
@@ -22,755 +21,755 @@ public class XPCOMObject {
static private final int MAX_ARG_COUNT = 12;
static private final int MAX_VTABLE_LENGTH = 80;
static private Callback[][] Callbacks = new Callback[MAX_VTABLE_LENGTH][MAX_ARG_COUNT];
- static private Hashtable ObjectMap = new Hashtable();
+ static private Hashtable ObjectMap = new Hashtable ();
-public XPCOMObject(int[] argCounts) {
+public XPCOMObject (int[] argCounts) {
int /*long*/[] callbackAddresses = new int /*long*/[argCounts.length];
for (int i = 0, length = argCounts.length; i < length; i++){
if ((Callbacks[i][argCounts[i]]) == null) {
- Callbacks[i][argCounts[i]] = new Callback(this.getClass(), "callback"+i, argCounts[i] + 1, true); //$NON-NLS-1$
+ Callbacks[i][argCounts[i]] = new Callback (getClass (), "callback"+i, argCounts[i] + 1, true); //$NON-NLS-1$
}
- callbackAddresses[i] = Callbacks[i][argCounts[i]].getAddress();
+ callbackAddresses[i] = Callbacks[i][argCounts[i]].getAddress ();
if (callbackAddresses[i] == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
}
- int /*long*/ pVtable = OS.g_malloc(OS.PTR_SIZEOF * argCounts.length);
- XPCOM.memmove(pVtable, callbackAddresses, OS.PTR_SIZEOF * argCounts.length);
- ppVtable = OS.g_malloc(OS.PTR_SIZEOF);
- XPCOM.memmove(ppVtable, new int /*long*/[] {pVtable}, OS.PTR_SIZEOF);
- ObjectMap.put(new LONG(ppVtable), this);
+ int /*long*/ pVtable = C.malloc (C.PTR_SIZEOF * argCounts.length);
+ XPCOM.memmove (pVtable, callbackAddresses, C.PTR_SIZEOF * argCounts.length);
+ ppVtable = C.malloc (C.PTR_SIZEOF);
+ XPCOM.memmove (ppVtable, new int /*long*/[] {pVtable}, C.PTR_SIZEOF);
+ ObjectMap.put (new LONG (ppVtable), this);
}
-static int /*long*/ callback0(int /*long*/[] callbackArgs) {
+static int /*long*/ callback0 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method0(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method0 (args);
}
-static int /*long*/ callback1(int /*long*/[] callbackArgs) {
+static int /*long*/ callback1 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method1(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method1 (args);
}
-static int /*long*/ callback10(int /*long*/[] callbackArgs) {
+static int /*long*/ callback10 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method10(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method10 (args);
}
-static int /*long*/ callback11(int /*long*/[] callbackArgs) {
+static int /*long*/ callback11 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method11(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method11 (args);
}
-static int /*long*/ callback12(int /*long*/[] callbackArgs) {
+static int /*long*/ callback12 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method12(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method12 (args);
}
-static int /*long*/ callback13(int /*long*/[] callbackArgs) {
+static int /*long*/ callback13 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method13(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method13 (args);
}
-static int /*long*/ callback14(int /*long*/[] callbackArgs) {
+static int /*long*/ callback14 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method14(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method14 (args);
}
-static int /*long*/ callback15(int /*long*/[] callbackArgs) {
+static int /*long*/ callback15 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method15(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method15 (args);
}
-static int /*long*/ callback16(int /*long*/[] callbackArgs) {
+static int /*long*/ callback16 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method16(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method16 (args);
}
-static int /*long*/ callback17(int /*long*/[] callbackArgs) {
+static int /*long*/ callback17 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method17(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method17 (args);
}
-static int /*long*/ callback18(int /*long*/[] callbackArgs) {
+static int /*long*/ callback18 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method18(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method18 (args);
}
-static int /*long*/ callback19(int /*long*/[] callbackArgs) {
+static int /*long*/ callback19 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method19(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method19 (args);
}
-static int /*long*/ callback2(int /*long*/[] callbackArgs) {
+static int /*long*/ callback2 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method2(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method2 (args);
}
-static int /*long*/ callback20(int /*long*/[] callbackArgs) {
+static int /*long*/ callback20 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method20(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method20 (args);
}
-static int /*long*/ callback21(int /*long*/[] callbackArgs) {
+static int /*long*/ callback21 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method21(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method21 (args);
}
-static int /*long*/ callback22(int /*long*/[] callbackArgs) {
+static int /*long*/ callback22 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method22(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method22 (args);
}
-static int /*long*/ callback23(int /*long*/[] callbackArgs) {
+static int /*long*/ callback23 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method23(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method23 (args);
}
-static int /*long*/ callback24(int /*long*/[] callbackArgs) {
+static int /*long*/ callback24 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method24(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method24 (args);
}
-static int /*long*/ callback25(int /*long*/[] callbackArgs) {
+static int /*long*/ callback25 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method25(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method25 (args);
}
-static int /*long*/ callback26(int /*long*/[] callbackArgs) {
+static int /*long*/ callback26 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method26(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method26 (args);
}
-static int /*long*/ callback27(int /*long*/[] callbackArgs) {
+static int /*long*/ callback27 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method27(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method27 (args);
}
-static int /*long*/ callback28(int /*long*/[] callbackArgs) {
+static int /*long*/ callback28 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method28(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method28 (args);
}
-static int /*long*/ callback29(int /*long*/[] callbackArgs) {
+static int /*long*/ callback29 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method29(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method29 (args);
}
-static int /*long*/ callback3(int /*long*/[] callbackArgs) {
+static int /*long*/ callback3 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method3(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method3 (args);
}
-static int /*long*/ callback30(int /*long*/[] callbackArgs) {
+static int /*long*/ callback30 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method30(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method30 (args);
}
-static int /*long*/ callback31(int /*long*/[] callbackArgs) {
+static int /*long*/ callback31 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method31(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method31 (args);
}
-static int /*long*/ callback32(int /*long*/[] callbackArgs) {
+static int /*long*/ callback32 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method32(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method32 (args);
}
-static int /*long*/ callback33(int /*long*/[] callbackArgs) {
+static int /*long*/ callback33 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method33(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method33 (args);
}
-static int /*long*/ callback34(int /*long*/[] callbackArgs) {
+static int /*long*/ callback34 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method34(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method34 (args);
}
-static int /*long*/ callback35(int /*long*/[] callbackArgs) {
+static int /*long*/ callback35 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method35(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method35 (args);
}
-static int /*long*/ callback36(int /*long*/[] callbackArgs) {
+static int /*long*/ callback36 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method36(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method36 (args);
}
-static int /*long*/ callback37(int /*long*/[] callbackArgs) {
+static int /*long*/ callback37 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method37(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method37 (args);
}
-static int /*long*/ callback38(int /*long*/[] callbackArgs) {
+static int /*long*/ callback38 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method38(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method38 (args);
}
-static int /*long*/ callback39(int /*long*/[] callbackArgs) {
+static int /*long*/ callback39 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method39(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method39 (args);
}
-static int /*long*/ callback4(int /*long*/[] callbackArgs) {
+static int /*long*/ callback4 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method4(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method4 (args);
}
-static int /*long*/ callback40(int /*long*/[] callbackArgs) {
+static int /*long*/ callback40 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method40(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method40 (args);
}
-static int /*long*/ callback41(int /*long*/[] callbackArgs) {
+static int /*long*/ callback41 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method41(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method41 (args);
}
-static int /*long*/ callback42(int /*long*/[] callbackArgs) {
+static int /*long*/ callback42 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method42(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method42 (args);
}
-static int /*long*/ callback43(int /*long*/[] callbackArgs) {
+static int /*long*/ callback43 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method43(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method43 (args);
}
-static int /*long*/ callback44(int /*long*/[] callbackArgs) {
+static int /*long*/ callback44 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method44(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method44 (args);
}
-static int /*long*/ callback45(int /*long*/[] callbackArgs) {
+static int /*long*/ callback45 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method45(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method45 (args);
}
-static int /*long*/ callback46(int /*long*/[] callbackArgs) {
+static int /*long*/ callback46 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method46(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method46 (args);
}
-static int /*long*/ callback47(int /*long*/[] callbackArgs) {
+static int /*long*/ callback47 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method47(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method47 (args);
}
-static int /*long*/ callback48(int /*long*/[] callbackArgs) {
+static int /*long*/ callback48 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method48(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method48 (args);
}
-static int /*long*/ callback49(int /*long*/[] callbackArgs) {
+static int /*long*/ callback49 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method49(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method49 (args);
}
-static int /*long*/ callback5(int /*long*/[] callbackArgs) {
+static int /*long*/ callback5 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method5(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method5 (args);
}
-static int /*long*/ callback50(int /*long*/[] callbackArgs) {
+static int /*long*/ callback50 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method50(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method50 (args);
}
-static int /*long*/ callback51(int /*long*/[] callbackArgs) {
+static int /*long*/ callback51 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method51(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method51 (args);
}
-static int /*long*/ callback52(int /*long*/[] callbackArgs) {
+static int /*long*/ callback52 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method52(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method52 (args);
}
-static int /*long*/ callback53(int /*long*/[] callbackArgs) {
+static int /*long*/ callback53 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method53(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method53 (args);
}
-static int /*long*/ callback54(int /*long*/[] callbackArgs) {
+static int /*long*/ callback54 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method54(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method54 (args);
}
-static int /*long*/ callback55(int /*long*/[] callbackArgs) {
+static int /*long*/ callback55 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method55(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method55 (args);
}
-static int /*long*/ callback56(int /*long*/[] callbackArgs) {
+static int /*long*/ callback56 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method56(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method56 (args);
}
-static int /*long*/ callback57(int /*long*/[] callbackArgs) {
+static int /*long*/ callback57 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method57(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method57 (args);
}
-static int /*long*/ callback58(int /*long*/[] callbackArgs) {
+static int /*long*/ callback58 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method58(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method58 (args);
}
-static int /*long*/ callback59(int /*long*/[] callbackArgs) {
+static int /*long*/ callback59 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method59(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method59 (args);
}
-static int /*long*/ callback6(int /*long*/[] callbackArgs) {
+static int /*long*/ callback6 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method6(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method6 (args);
}
-static int /*long*/ callback60(int /*long*/[] callbackArgs) {
+static int /*long*/ callback60 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method60(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method60 (args);
}
-static int /*long*/ callback61(int /*long*/[] callbackArgs) {
+static int /*long*/ callback61 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method61(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method61 (args);
}
-static int /*long*/ callback62(int /*long*/[] callbackArgs) {
+static int /*long*/ callback62 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method62(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method62 (args);
}
-static int /*long*/ callback63(int /*long*/[] callbackArgs) {
+static int /*long*/ callback63 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method63(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method63 (args);
}
-static int /*long*/ callback64(int /*long*/[] callbackArgs) {
+static int /*long*/ callback64 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method64(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method64 (args);
}
-static int /*long*/ callback65(int /*long*/[] callbackArgs) {
+static int /*long*/ callback65 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method65(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method65 (args);
}
-static int /*long*/ callback66(int /*long*/[] callbackArgs) {
+static int /*long*/ callback66 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method66(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method66 (args);
}
-static int /*long*/ callback67(int /*long*/[] callbackArgs) {
+static int /*long*/ callback67 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method67(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method67 (args);
}
-static int /*long*/ callback68(int /*long*/[] callbackArgs) {
+static int /*long*/ callback68 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method68(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method68 (args);
}
-static int /*long*/ callback69(int /*long*/[] callbackArgs) {
+static int /*long*/ callback69 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method69(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method69 (args);
}
-static int /*long*/ callback7(int /*long*/[] callbackArgs) {
+static int /*long*/ callback7 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method7(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method7 (args);
}
-static int /*long*/ callback70(int /*long*/[] callbackArgs) {
+static int /*long*/ callback70 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method70(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method70 (args);
}
-static int /*long*/ callback71(int /*long*/[] callbackArgs) {
+static int /*long*/ callback71 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method71(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method71 (args);
}
-static int /*long*/ callback72(int /*long*/[] callbackArgs) {
+static int /*long*/ callback72 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method72(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method72 (args);
}
-static int /*long*/ callback73(int /*long*/[] callbackArgs) {
+static int /*long*/ callback73 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method73(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method73 (args);
}
-static int /*long*/ callback74(int /*long*/[] callbackArgs) {
+static int /*long*/ callback74 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method74(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method74 (args);
}
-static int /*long*/ callback75(int /*long*/[] callbackArgs) {
+static int /*long*/ callback75 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method75(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method75 (args);
}
-static int /*long*/ callback76(int /*long*/[] callbackArgs) {
+static int /*long*/ callback76 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method76(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method76 (args);
}
-static int /*long*/ callback77(int /*long*/[] callbackArgs) {
+static int /*long*/ callback77 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method77(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method77 (args);
}
-static int /*long*/ callback78(int /*long*/[] callbackArgs) {
+static int /*long*/ callback78 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method78(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method78 (args);
}
-static int /*long*/ callback79(int /*long*/[] callbackArgs) {
+static int /*long*/ callback79 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method79(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method79 (args);
}
-static int /*long*/ callback8(int /*long*/[] callbackArgs) {
+static int /*long*/ callback8 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method8(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method8 (args);
}
-static int /*long*/ callback9(int /*long*/[] callbackArgs) {
+static int /*long*/ callback9 (int /*long*/[] callbackArgs) {
// find the object on which this call was invoked
int /*long*/ address = callbackArgs[0];
- Object object = ObjectMap.get(new LONG(address));
+ Object object = ObjectMap.get (new LONG (address));
if (object == null) return XPCOM.NS_ERROR_FAILURE;
int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
- System.arraycopy(callbackArgs, 1, args, 0, args.length);
- return ((XPCOMObject) object).method9(args);
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method9 (args);
}
public void dispose() {
// free the memory for this reference
int /*long*/[] pVtable = new int /*long*/[1];
- XPCOM.memmove(pVtable, ppVtable, OS.PTR_SIZEOF);
- OS.g_free(pVtable[0]);
- OS.g_free(ppVtable);
+ XPCOM.memmove (pVtable, ppVtable, C.PTR_SIZEOF);
+ C.free (pVtable[0]);
+ C.free (ppVtable);
// remove this ppVtable from the list
- ObjectMap.remove(new LONG(ppVtable));
+ ObjectMap.remove (new LONG (ppVtable));
ppVtable = 0;
}
@@ -779,244 +778,244 @@ public int /*long*/ getAddress () {
return ppVtable;
}
-public int /*long*/ method0(int /*long*/[] args) {
+public int /*long*/ method0 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method1(int /*long*/[] args) {
+public int /*long*/ method1 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method10(int /*long*/[] args) {
+public int /*long*/ method10 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method11(int /*long*/[] args) {
+public int /*long*/ method11 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method12(int /*long*/[] args) {
+public int /*long*/ method12 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method13(int /*long*/[] args) {
+public int /*long*/ method13 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method14(int /*long*/[] args) {
+public int /*long*/ method14 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method15(int /*long*/[] args) {
+public int /*long*/ method15 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method16(int /*long*/[] args) {
+public int /*long*/ method16 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method17(int /*long*/[] args) {
+public int /*long*/ method17 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method18(int /*long*/[] args) {
+public int /*long*/ method18 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method19(int /*long*/[] args) {
+public int /*long*/ method19 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method2(int /*long*/[] args) {
+public int /*long*/ method2 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method20(int /*long*/[] args) {
+public int /*long*/ method20 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method21(int /*long*/[] args) {
+public int /*long*/ method21 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method22(int /*long*/[] args) {
+public int /*long*/ method22 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method23(int /*long*/[] args) {
+public int /*long*/ method23 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method24(int /*long*/[] args) {
+public int /*long*/ method24 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method25(int /*long*/[] args) {
+public int /*long*/ method25 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method26(int /*long*/[] args) {
+public int /*long*/ method26 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method27(int /*long*/[] args) {
+public int /*long*/ method27 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method28(int /*long*/[] args) {
+public int /*long*/ method28 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method29(int /*long*/[] args) {
+public int /*long*/ method29 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method3(int /*long*/[] args) {
+public int /*long*/ method3 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method30(int /*long*/[] args) {
+public int /*long*/ method30 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method31(int /*long*/[] args) {
+public int /*long*/ method31 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method32(int /*long*/[] args) {
+public int /*long*/ method32 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method33(int /*long*/[] args) {
+public int /*long*/ method33 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method34(int /*long*/[] args) {
+public int /*long*/ method34 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method35(int /*long*/[] args) {
+public int /*long*/ method35 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method36(int /*long*/[] args) {
+public int /*long*/ method36 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method37(int /*long*/[] args) {
+public int /*long*/ method37 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method38(int /*long*/[] args) {
+public int /*long*/ method38 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method39(int /*long*/[] args) {
+public int /*long*/ method39 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method4(int /*long*/[] args) {
+public int /*long*/ method4 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method40(int /*long*/[] args) {
+public int /*long*/ method40 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method41(int /*long*/[] args) {
+public int /*long*/ method41 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method42(int /*long*/[] args) {
+public int /*long*/ method42 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method43(int /*long*/[] args) {
+public int /*long*/ method43 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method44(int /*long*/[] args) {
+public int /*long*/ method44 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method45(int /*long*/[] args) {
+public int /*long*/ method45 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method46(int /*long*/[] args) {
+public int /*long*/ method46 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method47(int /*long*/[] args) {
+public int /*long*/ method47 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method48(int /*long*/[] args) {
+public int /*long*/ method48 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method49(int /*long*/[] args) {
+public int /*long*/ method49 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method5(int /*long*/[] args) {
+public int /*long*/ method5 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method50(int /*long*/[] args) {
+public int /*long*/ method50 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method51(int /*long*/[] args) {
+public int /*long*/ method51 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method52(int /*long*/[] args) {
+public int /*long*/ method52 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method53(int /*long*/[] args) {
+public int /*long*/ method53 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method54(int /*long*/[] args) {
+public int /*long*/ method54 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method55(int /*long*/[] args) {
+public int /*long*/ method55 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method56(int /*long*/[] args) {
+public int /*long*/ method56 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method57(int /*long*/[] args) {
+public int /*long*/ method57 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method58(int /*long*/[] args) {
+public int /*long*/ method58 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method59(int /*long*/[] args) {
+public int /*long*/ method59 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method6(int /*long*/[] args) {
+public int /*long*/ method6 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method60(int /*long*/[] args) {
+public int /*long*/ method60 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method61(int /*long*/[] args) {
+public int /*long*/ method61 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method62(int /*long*/[] args) {
+public int /*long*/ method62 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method63(int /*long*/[] args) {
+public int /*long*/ method63 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method64(int /*long*/[] args) {
+public int /*long*/ method64 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method65(int /*long*/[] args) {
+public int /*long*/ method65 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method66(int /*long*/[] args) {
+public int /*long*/ method66 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method67(int /*long*/[] args) {
+public int /*long*/ method67 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method68(int /*long*/[] args) {
+public int /*long*/ method68 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method69(int /*long*/[] args) {
+public int /*long*/ method69 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method7(int /*long*/[] args) {
+public int /*long*/ method7 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method70(int /*long*/[] args) {
+public int /*long*/ method70 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method71(int /*long*/[] args) {
+public int /*long*/ method71 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method72(int /*long*/[] args) {
+public int /*long*/ method72 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method73(int /*long*/[] args) {
+public int /*long*/ method73 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method74(int /*long*/[] args) {
+public int /*long*/ method74 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method75(int /*long*/[] args) {
+public int /*long*/ method75 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method76(int /*long*/[] args) {
+public int /*long*/ method76 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method77(int /*long*/[] args) {
+public int /*long*/ method77 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method78(int /*long*/[] args) {
+public int /*long*/ method78 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method79(int /*long*/[] args) {
+public int /*long*/ method79 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method8(int /*long*/[] args) {
+public int /*long*/ method8 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
-public int /*long*/ method9(int /*long*/[] args) {
+public int /*long*/ method9 (int /*long*/[] args) {
return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..99b56ac95c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.internal.win32.OS;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+
+MozillaDelegate (Browser browser) {
+ super ();
+ this.browser = browser;
+}
+
+static Browser findBrowser (int /*long*/ handle) {
+ Display display = Display.getCurrent ();
+ return (Browser)display.findWidget (handle);
+}
+
+int /*long*/ getHandle () {
+ return browser.handle;
+}
+
+public static char[] mbcsToWcs (String codePage, byte[] buffer) {
+ char[] chars = new char[buffer.length];
+ int charCount = OS.MultiByteToWideChar (OS.CP_ACP, OS.MB_PRECOMPOSED, buffer, buffer.length, chars, chars.length);
+ if (charCount == chars.length) return chars;
+ char[] result = new char[charCount];
+ System.arraycopy (chars, 0, result, 0, charCount);
+ return result;
+}
+
+void onDispose (int /*long*/ embedHandle) {
+}
+
+void setSize (int /*long*/ embedHandle, int width, int height) {
+}
+
+public static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ int byteCount;
+ char[] chars = new char[string.length()];
+ string.getChars (0, chars.length, chars, 0);
+ byte[] bytes = new byte[byteCount = chars.length * 2 + (terminate ? 1 : 0)];
+ byteCount = OS.WideCharToMultiByte (OS.CP_ACP, 0, chars, chars.length, bytes, byteCount, null, null);
+ if (terminate) {
+ byteCount++;
+ } else {
+ if (bytes.length != byteCount) {
+ byte[] result = new byte[byteCount];
+ System.arraycopy (bytes, 0, result, 0, byteCount);
+ bytes = result;
+ }
+ }
+ return bytes;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc
new file mode 100644
index 0000000000..e46095f457
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "windows.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION SWT_COMMA_VERSION
+ PRODUCTVERSION 0,0,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40000L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "Eclipse Foundation\0"
+ VALUE "FileDescription", "SWT for Windows native library\0"
+ VALUE "FileVersion", SWT_FILE_VERSION
+ VALUE "InternalName", "SWT\0"
+ VALUE "LegalCopyright", "Copyright (c) 2000, 2006 IBM Corp. All Rights Reserved.\0"
+ VALUE "OriginalFilename", SWT_ORG_FILENAME
+ VALUE "ProductName", "Standard Widget Toolkit\0"
+ VALUE "ProductVersion", "0,0,0,0\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp
index fea900c84b..a00d3335ef 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp
@@ -2094,22 +2094,6 @@ JNIEXPORT jboolean JNICALL XPCOM_NATIVE(nsID_1Equals)
}
#endif
-#ifndef NO_nsID_1Parse
-JNIEXPORT jboolean JNICALL XPCOM_NATIVE(nsID_1Parse)
- (JNIEnv *env, jclass that, jint arg0, jstring arg1)
-{
- const char *lparg1= NULL;
- jboolean rc = 0;
- XPCOM_NATIVE_ENTER(env, that, nsID_1Parse_FUNC);
- if (arg1) if ((lparg1 = env->GetStringUTFChars(arg1, NULL)) == NULL) goto fail;
- rc = (jboolean)((nsID *)arg0)->Parse((const char *)lparg1);
-fail:
- if (arg1 && lparg1) env->ReleaseStringUTFChars(arg1, lparg1);
- XPCOM_NATIVE_EXIT(env, that, nsID_1Parse_FUNC);
- return rc;
-}
-#endif
-
#ifndef NO_nsID_1delete
JNIEXPORT void JNICALL XPCOM_NATIVE(nsID_1delete)
(JNIEnv *env, jclass that, jint arg0)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp
index 716d40b77e..f5db4e2af8 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp
@@ -14,8 +14,8 @@
#ifdef NATIVE_STATS
-int XPCOM_nativeFunctionCount = 124;
-int XPCOM_nativeFunctionCallCount[124];
+int XPCOM_nativeFunctionCount = 123;
+int XPCOM_nativeFunctionCallCount[123];
char * XPCOM_nativeFunctionNames[] = {
"Call",
"NS_1GetComponentManager",
@@ -137,7 +137,6 @@ char * XPCOM_nativeFunctionNames[] = {
"nsEmbedString_1new__",
"nsEmbedString_1new___3C",
"nsID_1Equals",
- "nsID_1Parse",
"nsID_1delete",
"nsID_1new",
"strlen_1PRUnichar",
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h
index 35a667c44e..a615c7580f 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h
@@ -141,7 +141,6 @@ typedef enum {
nsEmbedString_1new___FUNC,
nsEmbedString_1new___3C_FUNC,
nsID_1Equals_FUNC,
- nsID_1Parse_FUNC,
nsID_1delete_FUNC,
nsID_1new_FUNC,
strlen_1PRUnichar_FUNC,
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcomglue.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcomglue.h
index 6ed2fa8ab5..795a73b714 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcomglue.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcomglue.h
@@ -14,6 +14,7 @@
#define NDEBUG
+#define XPCOM_GLUE 1
#include "nsXPCOMGlue.h"
#ifdef _WIN32
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java
index aafd1e43ad..51b806ac75 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java
@@ -114,7 +114,6 @@ public static final native int nsEmbedCString_Length(int /*long*/ ptr);
public static final native int /*long*/ nsEmbedCString_get(int /*long*/ ptr);
public static final native void nsID_delete(int /*long*/ ptr);
public static final native int /*long*/ nsID_new();
-public static final native boolean nsID_Parse(int /*long*/ ptr, String aIDStr);
public static final native boolean nsID_Equals(int /*long*/ ptr, int /*long*/ other);
public static final native int /*long*/ nsEmbedString_new();
public static final native int /*long*/ nsEmbedString_new(char[] aString);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java
index 7cf9ad5c6b..9ecff4eeaa 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java
@@ -41,7 +41,7 @@ public nsID() {
public nsID(String id) {
Parse(id);
}
-
+
public boolean Equals(nsID other) {
int /*long*/ ptr = XPCOM.nsID_new();
XPCOM.memmove(ptr, this, nsID.sizeof);
@@ -53,11 +53,24 @@ public boolean Equals(nsID other) {
return result;
}
-public boolean Parse(String aIDStr) {
- int /*long*/ ptr = XPCOM.nsID_new();
- boolean result = XPCOM.nsID_Parse(ptr, aIDStr);
- XPCOM.memmove(this, ptr, nsID.sizeof);
- XPCOM.nsID_delete(ptr);
- return result;
-}
+public void Parse (String aIDStr) {
+ if(aIDStr == null) throw new Error ();
+ int i = 0;
+ for (; i < 8; i++) m0 = (m0 << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16);
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 13; i++) m1 = (short)((m1 << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 18; i++) m2 = (short)((m2 << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 21; i++) m3[0] = (byte)((m3[0] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 23; i++) m3[1] = (byte)((m3[1] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 26; i++) m3[2] = (byte)((m3[2] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 28; i++) m3[3] = (byte)((m3[3] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 30; i++) m3[4] = (byte)((m3[4] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 32; i++) m3[5] = (byte)((m3[5] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 34; i++) m3[6] = (byte)((m3[6] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 36; i++) m3[7] = (byte)((m3[7] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+}
+
} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Mozilla.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Mozilla.java
deleted file mode 100755
index 27a1c4861f..0000000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Mozilla.java
+++ /dev/null
@@ -1,2267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.browser;
-
-import java.io.*;
-import java.util.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.gtk.*;
-import org.eclipse.swt.internal.mozilla.*;
-import org.eclipse.swt.layout.*;
-
-class Mozilla extends WebBrowser {
- int /*long*/ embedHandle;
- int /*long*/ mozillaHandle;
- nsIWebBrowser webBrowser;
-
- /* Interfaces for this Mozilla embedding notification */
- XPCOMObject supports;
- XPCOMObject weakReference;
- XPCOMObject webProgressListener;
- XPCOMObject webBrowserChrome;
- XPCOMObject webBrowserChromeFocus;
- XPCOMObject embeddingSiteWindow;
- XPCOMObject interfaceRequestor;
- XPCOMObject supportsWeakReference;
- XPCOMObject contextMenuListener;
- XPCOMObject uriContentListener;
- XPCOMObject tooltipListener;
- XPCOMObject directoryServiceProviderListener;
- int chromeFlags = nsIWebBrowserChrome.CHROME_DEFAULT;
- int refCount = 0;
- int /*long*/ request;
- Point location;
- Point size;
- boolean addressBar, menuBar, statusBar, toolBar;
- boolean visible, isModal;
- Shell tip = null;
-
- static nsIAppShell AppShell;
- static WindowCreator WindowCreator;
- static int BrowserCount;
- static boolean initialized, ignoreDispose;
- static Callback eventCallback;
- static int /*long*/ eventProc;
- static String profileRootDirectory;
-
- /* XULRunner detect constants */
- static final String GRERANGE_LOWER = "1.8"; //$NON-NLS-1$
- static final boolean LowerRangeInclusive = true;
- static final String GRERANGE_UPPER = "1.9"; //$NON-NLS-1$
- static final boolean UpperRangeInclusive = false;
- static final String SEPARATOR_OS = System.getProperty("file.separator"); //$NON-NLS-1$
- static final String XPCOM_LIB = "/libxpcom.so"; //$NON-NLS-1$
-
- /* Package Name */
- static final String ADD_WIDGET_KEY = "org.eclipse.swt.internal.addWidget"; //$NON-NLS-1$
- static final String URI_FROMMEMORY = "file:///"; //$NON-NLS-1$
- static final String ABOUT_BLANK = "about:blank"; //$NON-NLS-1$
- static final String PREFERENCE_LANGUAGES = "intl.accept_languages"; //$NON-NLS-1$
- static final String PREFERENCE_CHARSET = "intl.charset.default"; //$NON-NLS-1$
- static final String SEPARATOR_LOCALE = "-"; //$NON-NLS-1$
- static final String TOKENIZER_LOCALE = ","; //$NON-NLS-1$
- static final String PROFILE_DIR = "/eclipse/"; //$NON-NLS-1$
- static final String HISTORY_FILE = "history.dat"; //$NON-NLS-1$
- static final String MIMETYPES_FILE = "mimeTypes.rdf"; //$NON-NLS-1$
- static final String PREFERENCES_FILE = "prefs.js"; //$NON-NLS-1$
- static final String CHROME_DIR = "chrome"; //$NON-NLS-1$
- static final String LOCALSTORE_FILE = "localstore.rdf"; //$NON-NLS-1$
- static final String PROFILE_AFTER_CHANGE = "profile-after-change"; //$NON-NLS-1$
- static final String PROFILE_BEFORE_CHANGE = "profile-before-change"; //$NON-NLS-1$
- static final String PROFILE_DO_CHANGE = "profile-do-change"; //$NON-NLS-1$
- static final String SHUTDOWN_PERSIST = "shutdown-persist"; //$NON-NLS-1$
- static final String STARTUP = "startup"; //$NON-NLS-1$
- static final int STOP_PROPOGATE = 1;
-
- static {
- MozillaClearSessions = new Runnable() {
- public void run() {
- if (!initialized) return;
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager (result);
- if (rc != XPCOM.NS_OK) error (rc);
- if (result [0] == 0) error (XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager (result [0]);
- result [0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_COOKIEMANAGER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID (aContractID, nsICookieManager.NS_ICOOKIEMANAGER_IID, result);
- if (rc != XPCOM.NS_OK) error (rc);
- if (result [0] == 0) error (XPCOM.NS_NOINTERFACE);
- serviceManager.Release ();
-
- nsICookieManager manager = new nsICookieManager (result [0]);
- result [0] = 0;
- rc = manager.GetEnumerator (result);
- if (rc != XPCOM.NS_OK) error (rc);
- manager.Release ();
-
- nsISimpleEnumerator enumerator = new nsISimpleEnumerator (result [0]);
- boolean[] moreElements = new boolean [1];
- rc = enumerator.HasMoreElements (moreElements);
- if (rc != XPCOM.NS_OK) error (rc);
- while (moreElements [0]) {
- result [0] = 0;
- rc = enumerator.GetNext (result);
- if (rc != XPCOM.NS_OK) error (rc);
- nsICookie cookie = new nsICookie (result [0]);
- long[] expires = new long [1];
- rc = cookie.GetExpires (expires);
- if (expires [0] == 0) {
- /* indicates a session cookie */
- int /*long*/ domain = XPCOM.nsEmbedCString_new ();
- int /*long*/ name = XPCOM.nsEmbedCString_new ();
- int /*long*/ path = XPCOM.nsEmbedCString_new ();
- cookie.GetHost (domain);
- cookie.GetName (name);
- cookie.GetPath (path);
- rc = manager.Remove (domain, name, path, false);
- XPCOM.nsEmbedCString_delete (domain);
- XPCOM.nsEmbedCString_delete (name);
- XPCOM.nsEmbedCString_delete (path);
- if (rc != XPCOM.NS_OK) error (rc);
- }
- cookie.Release ();
- rc = enumerator.HasMoreElements (moreElements);
- if (rc != XPCOM.NS_OK) error (rc);
- }
- enumerator.Release ();
- }
- };
- }
-
-/**
- * Constructs a new instance of this class given its parent
- * and a style value describing its behavior and appearance.
- * <p>
- * The style value is either one of the style constants defined in
- * class <code>SWT</code> which is applicable to instances of this
- * class, or must be built by <em>bitwise OR</em>'ing together
- * (that is, using the <code>int</code> "|" operator) two or more
- * of those <code>SWT</code> style constants. The class description
- * lists the style constants that are applicable to the class.
- * Style bits are also inherited from superclasses.
- * </p>
- *
- * @param parent a widget which will be the parent of the new instance (cannot be null)
- * @param style the style of widget to construct
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
- * </ul>
- * @exception SWTException <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
- * </ul>
- * @exception SWTError <ul>
- * <li>ERROR_NO_HANDLES if a handle could not be obtained for browser creation</li>
- * </ul>
- *
- * @see #getStyle
- *
- * @since 3.0
- */
-public void create(Composite parent, int style) {
- Display display = parent.getDisplay();
- display.setData(Browser.NO_INPUT_METHOD, null);
-
- int /*long*/[] result = new int /*long*/[1];
- if (!initialized) {
- String mozillaPath = null;
-
- boolean initLoaded = false;
- try {
- Library.loadLibrary ("swt-xpcominit"); //$NON-NLS-1$
- initLoaded = true;
- } catch (UnsatisfiedLinkError e) {
- try {
- /*
- * The initial loadLibrary attempt may have failed as a result of the user's
- * system not having libstdc++.so.6 installed, so try to load the alternate
- * swt xpcominit library that depends on libswtc++.so.5 instead.
- */
- Library.loadLibrary ("swt-xpcominit-gcc3"); //$NON-NLS-1$
- initLoaded = true;
- } catch (UnsatisfiedLinkError ex) {
- /*
- * If this library still failed to load then do not attempt to detect a
- * xulrunner to use. The Browser may still be usable if MOZILLA_FIVE_HOME
- * points at a GRE.
- */
- }
- }
-
- boolean isXULRunner = false;
- if (initLoaded) {
- /* attempt to discover a XULRunner to use as the GRE */
- GREVersionRange range = new GREVersionRange();
- byte[] bytes = Converter.wcsToMbcs(null, GRERANGE_LOWER, true);
- int /*long*/ lower = OS.g_malloc (bytes.length);
- OS.memmove (lower, bytes, bytes.length);
- range.lower = lower;
- range.lowerInclusive = LowerRangeInclusive;
-
- bytes = Converter.wcsToMbcs(null, GRERANGE_UPPER, true);
- int /*long*/ upper = OS.g_malloc (bytes.length);
- OS.memmove (upper, bytes, bytes.length);
- range.upper = upper;
- range.upperInclusive = UpperRangeInclusive;
-
- int length = XPCOMInit.PATH_MAX;
- int /*long*/ greBuffer = OS.g_malloc(length);
- int /*long*/ propertiesPtr = OS.g_malloc(2 * OS.PTR_SIZEOF);
- int rc = XPCOMInit.GRE_GetGREPathWithProperties(range, 1, propertiesPtr, 0, greBuffer, length);
- OS.g_free(lower);
- OS.g_free(upper);
- OS.g_free(propertiesPtr);
- if (rc == XPCOM.NS_OK) {
- /* indicates that a XULRunner was found */
- length = OS.strlen(greBuffer);
- bytes = new byte[length];
- OS.memmove(bytes, greBuffer, length);
- mozillaPath = new String(Converter.mbcsToWcs(null, bytes));
- // the following line is intentionally commented
- isXULRunner = mozillaPath.length() > 0;
- }
- OS.g_free(greBuffer);
- }
-
- if (isXULRunner) {
- try {
- Library.loadLibrary ("swt-xulrunner"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError e) {
- try {
- /*
- * The initial loadLibrary attempt may have failed as a result of the user's
- * system not having libstdc++.so.6 installed, so try to load the alternate
- * swt xulrunner library that depends on libswtc++.so.5 instead.
- */
- Library.loadLibrary ("swt-xulrunner-gcc3"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError ex) {
- browser.dispose ();
- /*
- * Print the error from the first failed attempt since at this point it's
- * known that the failure was not due to the libstdc++.so.6 dependency.
- */
- SWT.error (SWT.ERROR_NO_HANDLES, e);
- }
- }
- byte[] path = Converter.wcsToMbcs(null, mozillaPath, true);
- int rc = XPCOMGlue.XPCOMGlueStartup(path);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- /*
- * remove the trailing "libxpcom.so" from mozillaPath because the NS_InitXPCOM2
- * invocation requires a directory name only
- */
- mozillaPath = mozillaPath.substring(0, mozillaPath.lastIndexOf(SEPARATOR_OS));
- } else {
- /* attempt to use the GRE pointed at by MOZILLA_FIVE_HOME */
- int /*long*/ ptr = OS.getenv(Converter.wcsToMbcs(null, XPCOM.MOZILLA_FIVE_HOME, true));
- if (ptr != 0) {
- int length = OS.strlen(ptr);
- byte[] buffer = new byte[length];
- OS.memmove(buffer, ptr, length);
- mozillaPath = new String (Converter.mbcsToWcs (null, buffer));
- }
- if (mozillaPath == null) {
- browser.dispose();
- SWT.error(SWT.ERROR_NO_HANDLES, null, " [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]"); //$NON-NLS-1$
- }
- /*
- * Note. Embedding a Mozilla GTK1.2 causes a crash. The workaround
- * is to check the version of GTK used by Mozilla by looking for
- * the libwidget_gtk.so library used by Mozilla GTK1.2. Mozilla GTK2
- * uses the libwidget_gtk2.so library.
- */
- File file = new File(mozillaPath, "components/libwidget_gtk.so"); //$NON-NLS-1$
- if (file.exists()) {
- browser.dispose();
- SWT.error(SWT.ERROR_NO_HANDLES, null, " [Mozilla GTK2 required (GTK1.2 detected)]"); //$NON-NLS-1$
- }
-
- try {
- Library.loadLibrary ("swt-mozilla"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError e) {
- try {
- /*
- * The initial loadLibrary attempt may have failed as a result of the user's
- * system not having libstdc++.so.6 installed, so try to load the alternate
- * swt mozilla library that depends on libswtc++.so.5 instead.
- */
- Library.loadLibrary ("swt-mozilla-gcc3"); //$NON-NLS-1$
- } catch (UnsatisfiedLinkError ex) {
- browser.dispose ();
- /*
- * Print the error from the first failed attempt since at this point it's
- * known that the failure was not due to the libstdc++.so.6 dependency.
- */
- SWT.error (SWT.ERROR_NO_HANDLES, e);
- }
- }
- }
-
- int /*long*/[] retVal = new int /*long*/[1];
- nsEmbedString pathString = new nsEmbedString(mozillaPath);
- int rc = XPCOM.NS_NewLocalFile(pathString.getAddress(), true, retVal);
- pathString.dispose();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (retVal[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_ERROR_NULL_POINTER);
- }
-
- nsIFile localFile = new nsILocalFile(retVal[0]);
- rc = XPCOM.NS_InitXPCOM2(0, localFile.getAddress(), 0);
- localFile.Release();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- SWT.error(SWT.ERROR_NO_HANDLES, null, " [MOZILLA_FIVE_HOME may not point at an embeddable GRE] [NS_InitEmbedding " + mozillaPath + " error " + rc + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- rc = componentManager.CreateInstance(XPCOM.NS_APPSHELL_CID, 0, nsIAppShell.NS_IAPPSHELL_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- AppShell = new nsIAppShell(result[0]);
- rc = AppShell.Create(0, null);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- rc = AppShell.Spinup();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- WindowCreator = new WindowCreator();
- WindowCreator.AddRef();
-
- rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIWindowWatcher windowWatcher = new nsIWindowWatcher(result[0]);
- result[0] = 0;
- rc = windowWatcher.SetWindowCreator(WindowCreator.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- windowWatcher.Release();
-
- /* compute the root profile directory */
- byte[] buffer = Converter.wcsToMbcs(null, XPCOM.NS_DIRECTORYSERVICE_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIDirectoryService.NS_IDIRECTORYSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIDirectoryService directoryService = new nsIDirectoryService(result[0]);
- result[0] = 0;
- rc = directoryService.QueryInterface(nsIProperties.NS_IPROPERTIES_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- directoryService.Release();
-
- nsIProperties properties = new nsIProperties(result[0]);
- result[0] = 0;
- buffer = Converter.wcsToMbcs(null, XPCOM.NS_APP_APPLICATION_REGISTRY_DIR, true);
- rc = properties.Get(buffer, nsIFile.NS_IFILE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- properties.Release();
-
- nsIFile profileDir = new nsIFile(result[0]);
- result[0] = 0;
- int /*long*/ path = XPCOM.nsEmbedCString_new();
- rc = profileDir.GetNativePath(path);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- int length = XPCOM.nsEmbedCString_Length(path);
- int /*long*/ ptr = XPCOM.nsEmbedCString_get(path);
- buffer = new byte [length];
- XPCOM.memmove(buffer, ptr, length);
- profileRootDirectory = new String(Converter.mbcsToWcs(null, buffer)) + PROFILE_DIR;
- XPCOM.nsEmbedCString_delete(path);
- profileDir.Release();
-
- display.addListener(SWT.Dispose, new Listener() {
- public void handleEvent(Event event) {
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] buffer = Converter.wcsToMbcs(null, XPCOM.NS_OBSERVER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIObserverService observerService = new nsIObserverService(result[0]);
- result[0] = 0;
- buffer = Converter.wcsToMbcs(null, PROFILE_BEFORE_CHANGE, true);
- int length = SHUTDOWN_PERSIST.length();
- char[] chars = new char [length + 1];
- SHUTDOWN_PERSIST.getChars(0, length, chars, 0);
- rc = observerService.NotifyObservers(0, buffer, chars);
- if (rc != XPCOM.NS_OK) error(rc);
- observerService.Release();
- }
- });
-
- /*
- * As a result of using a common profile the user cannot change their locale
- * and charset. The fix for this is to set mozilla's locale and charset
- * preference values according to the user's current locale and charset.
- */
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_PREFSERVICE_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIPrefService.NS_IPREFSERVICE_IID, result);
- serviceManager.Release();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIPrefService prefService = new nsIPrefService(result[0]);
- result[0] = 0;
- buffer = new byte[1];
- rc = prefService.GetBranch(buffer, result); /* empty buffer denotes root preference level */
- prefService.Release();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIPrefBranch prefBranch = new nsIPrefBranch(result[0]);
- result[0] = 0;
-
- /* get Mozilla's current locale preference value */
- String prefLocales = null;
- nsIPrefLocalizedString localizedString = null;
- buffer = Converter.wcsToMbcs(null, PREFERENCE_LANGUAGES, true);
- rc = prefBranch.GetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- /*
- * Feature of Debian. For some reason attempting to query for the current locale
- * preference fails on Debian. The workaround for this is to assume a value of
- * "en-us,en" since this is typically the default value when mozilla is used without
- * a profile.
- */
- if (rc != XPCOM.NS_OK) {
- prefLocales = "en-us,en" + TOKENIZER_LOCALE; //$NON-NLS-1$
- } else {
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- rc = localizedString.ToString(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- length = XPCOM.strlen_PRUnichar(result[0]);
- char[] dest = new char[length];
- XPCOM.memmove(dest, result[0], length * 2);
- prefLocales = new String(dest) + TOKENIZER_LOCALE;
- }
- result[0] = 0;
-
- /*
- * construct the new locale preference value by prepending the
- * user's current locale and language to the original value
- */
- Locale locale = Locale.getDefault();
- String language = locale.getLanguage();
- String country = locale.getCountry();
- StringBuffer stringBuffer = new StringBuffer (language);
- stringBuffer.append(SEPARATOR_LOCALE);
- stringBuffer.append(country.toLowerCase());
- stringBuffer.append(TOKENIZER_LOCALE);
- stringBuffer.append(language);
- stringBuffer.append(TOKENIZER_LOCALE);
- String newLocales = stringBuffer.toString();
- StringTokenizer tokenzier = new StringTokenizer(prefLocales, TOKENIZER_LOCALE);
- while (tokenzier.hasMoreTokens()) {
- String token = (tokenzier.nextToken() + TOKENIZER_LOCALE).trim();
- /* ensure that duplicate locale values are not added */
- if (newLocales.indexOf(token) == -1) {
- stringBuffer.append(token);
- }
- }
- newLocales = stringBuffer.toString();
- if (!newLocales.equals(prefLocales)) {
- /* write the new locale value */
- newLocales = newLocales.substring(0, newLocales.length() - TOKENIZER_LOCALE.length ()); /* remove trailing tokenizer */
- length = newLocales.length();
- char[] charBuffer = new char[length + 1];
- newLocales.getChars(0, length, charBuffer, 0);
- if (localizedString == null) {
- byte[] contractID = Converter.wcsToMbcs(null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
- rc = componentManager.CreateInstanceByContractID(contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- }
- localizedString.SetDataWithLength(length, charBuffer);
- rc = prefBranch.SetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress());
- }
- if (localizedString != null) {
- localizedString.Release();
- localizedString = null;
- }
-
- /* get Mozilla's current charset preference value */
- String prefCharset = null;
- buffer = Converter.wcsToMbcs(null, PREFERENCE_CHARSET, true);
- rc = prefBranch.GetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- /*
- * Feature of Debian. For some reason attempting to query for the current charset
- * preference fails on Debian. The workaround for this is to assume a value of
- * "ISO-8859-1" since this is typically the default value when mozilla is used
- * without a profile.
- */
- if (rc != XPCOM.NS_OK) {
- prefCharset = "ISO-8859-1"; //$NON_NLS-1$
- } else {
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- rc = localizedString.ToString(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- length = XPCOM.strlen_PRUnichar(result[0]);
- char[] dest = new char[length];
- XPCOM.memmove(dest, result[0], length * 2);
- prefCharset = new String(dest);
- }
- result[0] = 0;
-
- String newCharset = System.getProperty("file.encoding"); // $NON-NLS-1$
- if (!newCharset.equals(prefCharset)) {
- /* write the new charset value */
- length = newCharset.length();
- char[] charBuffer = new char[length + 1];
- newCharset.getChars(0, length, charBuffer, 0);
- if (localizedString == null) {
- byte[] contractID = Converter.wcsToMbcs(null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
- rc = componentManager.CreateInstanceByContractID(contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- localizedString = new nsIPrefLocalizedString(result[0]);
- result[0] = 0;
- }
- localizedString.SetDataWithLength(length, charBuffer);
- rc = prefBranch.SetComplexValue(buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress());
- }
- if (localizedString != null) localizedString.Release();
- prefBranch.Release();
-
- PromptServiceFactory factory = new PromptServiceFactory();
- factory.AddRef();
-
- rc = componentManager.QueryInterface(nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar(result[0]);
- result[0] = 0;
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_PROMPTSERVICE_CONTRACTID, true);
- byte[] aClassName = Converter.wcsToMbcs(null, "Prompt Service", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_PROMPTSERVICE_CID, aClassName, aContractID, factory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- factory.Release();
-
- HelperAppLauncherDialogFactory dialogFactory = new HelperAppLauncherDialogFactory();
- dialogFactory.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "Helper App Launcher Dialog", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CID, aClassName, aContractID, dialogFactory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- dialogFactory.Release();
-
- DownloadFactory downloadFactory = new DownloadFactory();
- downloadFactory.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_DOWNLOAD_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "Download", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- downloadFactory.Release();
-
- DownloadFactory_1_8 downloadFactory_1_8 = new DownloadFactory_1_8();
- downloadFactory_1_8.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_TRANSFER_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "Transfer", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory_1_8.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- downloadFactory_1_8.Release();
-
- FilePickerFactory pickerFactory = new FilePickerFactory();
- pickerFactory.AddRef();
- aContractID = Converter.wcsToMbcs(null, XPCOM.NS_FILEPICKER_CONTRACTID, true);
- aClassName = Converter.wcsToMbcs(null, "FilePicker", true); //$NON-NLS-1$
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_FILEPICKER_CID, aClassName, aContractID, pickerFactory.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- pickerFactory.Release();
-
- componentRegistrar.Release();
- componentManager.Release();
- initialized = true;
- }
-
- BrowserCount++;
- int rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- nsID NS_IWEBBROWSER_CID = new nsID("F1EAC761-87E9-11d3-AF80-00A024FFC08C"); //$NON-NLS-1$
- rc = componentManager.CreateInstance(NS_IWEBBROWSER_CID, 0, nsIWebBrowser.NS_IWEBBROWSER_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- componentManager.Release();
-
- webBrowser = new nsIWebBrowser(result[0]);
-
- createCOMInterfaces();
- AddRef();
-
- rc = webBrowser.SetContainerWindow(webBrowserChrome.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_ERROR_NO_INTERFACE);
- }
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- result[0] = 0;
- Rectangle rect = browser.getClientArea();
- if (rect.isEmpty()) {
- rect.width = 1;
- rect.height = 1;
- }
-
- /*
- * Bug in Mozilla Linux GTK. Embedding Mozilla into a GtkFixed
- * handle causes problems with some Mozilla plug-ins. For some
- * reason, the Flash plug-in causes the child of the GtkFixed
- * handle to be resized to 1 when the Flash document is loaded.
- * That could be due to gtk_container_resize_children being called
- * by Mozilla - or one of its plug-ins - on the GtkFixed handle,
- * causing the child of the GtkFixed handle to be resized to 1.
- * The workaround is to embed Mozilla into a GtkHBox handle.
- */
- embedHandle = OS.gtk_hbox_new (false, 0);
- OS.gtk_container_add (browser.handle, embedHandle);
- OS.gtk_widget_show (embedHandle);
-
- rc = baseWindow.InitWindow(embedHandle, 0, 0, 0, rect.width, rect.height);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(XPCOM.NS_ERROR_FAILURE);
- }
- rc = baseWindow.Create();
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(XPCOM.NS_ERROR_FAILURE);
- }
- rc = baseWindow.SetVisibility(true);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(XPCOM.NS_ERROR_FAILURE);
- }
- baseWindow.Release();
-
- rc = webBrowser.AddWebBrowserListener(weakReference.getAddress(), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- rc = webBrowser.SetParentURIContentListener(uriContentListener.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
-
- if (eventCallback == null) {
- eventCallback = new Callback(Mozilla.class, "eventProc", 3);
- eventProc = eventCallback.getAddress();
- if (eventProc == 0) {
- browser.dispose();
- error(SWT.ERROR_NO_MORE_CALLBACKS);
- }
- }
-
- rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] buffer = Converter.wcsToMbcs(null, XPCOM.NS_DIRECTORYSERVICE_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIDirectoryService.NS_IDIRECTORYSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
-
- nsIDirectoryService directoryService = new nsIDirectoryService(result[0]);
- result[0] = 0;
- rc = directoryService.RegisterProvider(directoryServiceProviderListener.getAddress());
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- directoryService.Release();
-
- buffer = Converter.wcsToMbcs(null, XPCOM.NS_OBSERVER_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- if (result[0] == 0) {
- browser.dispose();
- error(XPCOM.NS_NOINTERFACE);
- }
- serviceManager.Release();
-
- nsIObserverService observerService = new nsIObserverService(result[0]);
- result[0] = 0;
- buffer = Converter.wcsToMbcs(null, PROFILE_DO_CHANGE, true);
- int length = STARTUP.length();
- char[] chars = new char [length + 1];
- STARTUP.getChars(0, length, chars, 0);
- rc = observerService.NotifyObservers(0, buffer, chars);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- buffer = Converter.wcsToMbcs(null, PROFILE_AFTER_CHANGE, true);
- rc = observerService.NotifyObservers(0, buffer, chars);
- if (rc != XPCOM.NS_OK) {
- browser.dispose();
- error(rc);
- }
- observerService.Release();
-
- /*
- * Feature in Mozilla. GtkEvents such as key down, key pressed may be consumed
- * by Mozilla and never be received by the parent embedder. The workaround
- * is to find the top Mozilla gtk widget that receives all the Mozilla GtkEvents,
- * i.e. the first child of the parent embedder. Then hook event callbacks and
- * forward the event to the parent embedder before Mozilla received and consumed
- * them.
- */
- int /*long*/ list = OS.gtk_container_get_children(embedHandle);
- if (list != 0) {
- mozillaHandle = OS.g_list_data(list);
- OS.g_list_free(list);
-
- if (mozillaHandle != 0) {
- browser.getDisplay().setData(ADD_WIDGET_KEY, new Object[] {new LONG(mozillaHandle), browser});
-
- /* Note. Callback to get events before Mozilla receives and consumes them. */
- OS.g_signal_connect (mozillaHandle, OS.event, eventProc, 0);
-
- /*
- * Note. Callback to get the events not consumed by Mozilla - and to block
- * them so that they don't get propagated to the parent handle twice.
- * This hook is set after Mozilla and is therefore called after Mozilla's
- * handler because GTK dispatches events in their order of registration.
- */
- OS.g_signal_connect (mozillaHandle, OS.key_press_event, eventProc, STOP_PROPOGATE);
- OS.g_signal_connect (mozillaHandle, OS.key_release_event, eventProc, STOP_PROPOGATE);
- }
- }
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- switch (event.type) {
- case SWT.Dispose: {
- /* make this handler run after other dispose listeners */
- if (ignoreDispose) {
- ignoreDispose = false;
- break;
- }
- ignoreDispose = true;
- browser.notifyListeners (event.type, event);
- event.type = SWT.NONE;
- onDispose(event.display);
- break;
- }
- case SWT.Resize: onResize(); break;
- case SWT.FocusIn: Activate(); break;
- case SWT.Deactivate: {
- Display display = event.display;
- if (Mozilla.this.browser == display.getFocusControl()) Deactivate();
- break;
- }
- case SWT.Show: {
- /*
- * Feature on GTK Mozilla. Mozilla does not show up when
- * its container (a GTK fixed handle) is made visible
- * after having been hidden. The workaround is to reset
- * its size after the container has been made visible.
- */
- Display display = event.display;
- display.asyncExec(new Runnable() {
- public void run() {
- if (Mozilla.this.browser.isDisposed()) return;
- onResize();
- }
- });
- break;
- }
- }
- }
- };
- int[] folderEvents = new int[]{
- SWT.Dispose,
- SWT.Resize,
- SWT.FocusIn,
- SWT.Deactivate,
- SWT.Show,
- SWT.KeyDown // needed to make browser traversable
- };
- for (int i = 0; i < folderEvents.length; i++) {
- browser.addListener(folderEvents[i], listener);
- }
-}
-
-static int /*long*/ eventProc (int /*long*/ handle, int /*long*/ gdkEvent, int /*long*/ pointer) {
- Widget widget = Display.getCurrent().findWidget(handle);
- if (widget != null && widget instanceof Browser) {
- return ((Mozilla)((Browser)widget).webBrowser).gtk_event(handle, gdkEvent, pointer);
- }
- return 0;
-}
-
-int /*long*/ gtk_event (int /*long*/ handle, int /*long*/ gdkEvent, int /*long*/ pointer) {
- /*
- * Stop the propagation of events that are not consumed by Mozilla, before
- * they reach the parent embedder. These event have already been received.
- */
- if (pointer == STOP_PROPOGATE) return 1;
-
- GdkEvent event = new GdkEvent ();
- OS.memmove (event, gdkEvent, GdkEvent.sizeof);
- switch (event.type) {
- case OS.GDK_KEY_PRESS:
- case OS.GDK_KEY_RELEASE:
- case OS.GDK_BUTTON_PRESS:
- case OS.GDK_BUTTON_RELEASE: {
- /*
- * Forward the event to the parent embedder before Mozilla receives it,
- * as Mozilla may or may not consume it.
- */
- OS.gtk_widget_event (browser.handle, gdkEvent);
- break;
- }
- }
- return 0;
-}
-
-public boolean back() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.GoBack();
- webNavigation.Release();
-
- return rc == XPCOM.NS_OK;
-}
-
-void createCOMInterfaces() {
- // Create each of the interfaces that this object implements
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- };
-
- weakReference = new XPCOMObject(new int[]{2, 0, 0, 2}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return QueryReferent(args[0], args[1]);}
- };
-
- webProgressListener = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStateChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnProgressChange(args[0], args[1], args[2],args[3],args[4],args[5]);}
- public int /*long*/ method5(int /*long*/[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return OnStatusChange(args[0], args[1], args[2],args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- };
-
- webBrowserChrome = new XPCOMObject(new int[]{2, 0, 0, 2, 1, 1, 1, 1, 0, 2, 0, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return SetStatus(args[0], args[1]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetWebBrowser(args[0]);}
- public int /*long*/ method5(int /*long*/[] args) {return SetWebBrowser(args[0]);}
- public int /*long*/ method6(int /*long*/[] args) {return GetChromeFlags(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return SetChromeFlags(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return DestroyBrowserWindow();}
- public int /*long*/ method9(int /*long*/[] args) {return SizeBrowserTo(args[0], args[1]);}
- public int /*long*/ method10(int /*long*/[] args) {return ShowAsModal();}
- public int /*long*/ method11(int /*long*/[] args) {return IsWindowModal(args[0]);}
- public int /*long*/ method12(int /*long*/[] args) {return ExitModalEventLoop(args[0]);}
- };
-
- webBrowserChromeFocus = new XPCOMObject(new int[]{2, 0, 0, 0, 0}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return FocusNextElement();}
- public int /*long*/ method4(int /*long*/[] args) {return FocusPrevElement();}
- };
-
- embeddingSiteWindow = new XPCOMObject(new int[]{2, 0, 0, 5, 5, 0, 1, 1, 1, 1, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return SetDimensions(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method4(int /*long*/[] args) {return GetDimensions(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method5(int /*long*/[] args) {return SetFocus();}
- public int /*long*/ method6(int /*long*/[] args) {return GetVisibility(args[0]);}
- public int /*long*/ method7(int /*long*/[] args) {return SetVisibility(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return GetTitle(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return SetTitle(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return GetSiteWindow(args[0]);}
- };
-
- interfaceRequestor = new XPCOMObject(new int[]{2, 0, 0, 2}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return GetInterface(args[0], args[1]);}
- };
-
- supportsWeakReference = new XPCOMObject(new int[]{2, 0, 0, 1}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return GetWeakReference(args[0]);}
- };
-
- contextMenuListener = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnShowContextMenu(args[0],args[1],args[2]);}
- };
-
- uriContentListener = new XPCOMObject(new int[]{2, 0, 0, 2, 5, 3, 4, 1, 1, 1, 1}) {
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnStartURIOpen(args[0], args[1]);}
- public int /*long*/ method4(int /*long*/[] args) {return DoContent(args[0], args[1], args[2], args[3], args[4]);}
- public int /*long*/ method5(int /*long*/[] args) {return IsPreferred(args[0], args[1], args[2]);}
- public int /*long*/ method6(int /*long*/[] args) {return CanHandleContent(args[0], args[1], args[2], args[3]);}
- public int /*long*/ method7(int /*long*/[] args) {return GetLoadCookie(args[0]);}
- public int /*long*/ method8(int /*long*/[] args) {return SetLoadCookie(args[0]);}
- public int /*long*/ method9(int /*long*/[] args) {return GetParentContentListener(args[0]);}
- public int /*long*/ method10(int /*long*/[] args) {return SetParentContentListener(args[0]);}
- };
-
- tooltipListener = new XPCOMObject(new int[]{2, 0, 0, 3, 0}) {
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return OnShowTooltip(args[0], args[1], args[2]);}
- public int /*long*/ method4(int /*long*/[] args) {return OnHideTooltip();}
- };
-
- directoryServiceProviderListener = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int /*long*/ method0(int /*long*/[] args) {return QueryInterface(args[0], args[1]);}
- public int /*long*/ method1(int /*long*/[] args) {return AddRef();}
- public int /*long*/ method2(int /*long*/[] args) {return Release();}
- public int /*long*/ method3(int /*long*/[] args) {return GetFile(args[0], args[1], args[2]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (weakReference != null) {
- weakReference.dispose();
- weakReference = null;
- }
- if (webProgressListener != null) {
- webProgressListener.dispose();
- webProgressListener = null;
- }
- if (webBrowserChrome != null) {
- webBrowserChrome.dispose();
- webBrowserChrome = null;
- }
- if (webBrowserChromeFocus != null) {
- webBrowserChromeFocus.dispose();
- webBrowserChromeFocus = null;
- }
- if (embeddingSiteWindow != null) {
- embeddingSiteWindow.dispose();
- embeddingSiteWindow = null;
- }
- if (interfaceRequestor != null) {
- interfaceRequestor.dispose();
- interfaceRequestor = null;
- }
- if (supportsWeakReference != null) {
- supportsWeakReference.dispose();
- supportsWeakReference = null;
- }
- if (contextMenuListener != null) {
- contextMenuListener.dispose();
- contextMenuListener = null;
- }
- if (uriContentListener != null) {
- uriContentListener.dispose();
- uriContentListener = null;
- }
- if (tooltipListener != null) {
- tooltipListener.dispose();
- tooltipListener = null;
- }
-}
-
-public boolean execute(String script) {
- String url = "javascript:" + script + ";void(0);"; //$NON-NLS-1$ //$NON-NLS-2$
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- char[] arg = url.toCharArray();
- char[] c = new char[arg.length+1];
- System.arraycopy(arg,0,c,0,arg.length);
- rc = webNavigation.LoadURI(c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
- webNavigation.Release();
- return rc == XPCOM.NS_OK;
-}
-
-static Browser findBrowser(int /*long*/ handle) {
- /*
- * Note. On GTK, Mozilla is embedded into a GtkHBox handle
- * and not directly into the parent Composite handle.
- */
- int /*long*/ parent = OS.gtk_widget_get_parent(handle);
- Display display = Display.getCurrent();
- return (Browser)display.findWidget(parent);
-}
-
-public boolean forward() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.GoForward();
- webNavigation.Release();
-
- return rc == XPCOM.NS_OK;
-}
-
-public String getUrl() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- int /*long*/[] aCurrentURI = new int /*long*/[1];
- rc = webNavigation.GetCurrentURI(aCurrentURI);
- if (rc != XPCOM.NS_OK) error(rc);
- webNavigation.Release();
-
- byte[] dest = null;
- if (aCurrentURI[0] != 0) {
- nsIURI uri = new nsIURI(aCurrentURI[0]);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- rc = uri.GetSpec(aSpec);
- if (rc != XPCOM.NS_OK) error(rc);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- uri.Release();
- }
- if (dest == null) return ""; //$NON-NLS-1$
- /*
- * If the URI indicates that the current page is being rendered from
- * memory (ie.- via setText()) then answer about:blank as the URL
- * to be consistent with win32.
- */
- String location = new String (dest);
- if (location.equals (URI_FROMMEMORY)) location = ABOUT_BLANK;
- return location;
-}
-
-public boolean isBackEnabled() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- boolean[] aCanGoBack = new boolean[1];
- rc = webNavigation.GetCanGoBack(aCanGoBack);
- webNavigation.Release();
-
- return aCanGoBack[0];
-}
-
-public boolean isForwardEnabled() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- boolean[] aCanGoForward = new boolean[1];
- rc = webNavigation.GetCanGoForward(aCanGoForward);
- webNavigation.Release();
-
- return aCanGoForward[0];
-}
-
-static String error(int code) {
- throw new SWTError("XPCOM error " + code); //$NON-NLS-1$
-}
-
-void onDispose(Display display) {
- display.setData(ADD_WIDGET_KEY, new Object[] {new LONG(mozillaHandle), null});
-
- int rc = webBrowser.RemoveWebBrowserListener(weakReference.getAddress(), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
- if (rc != XPCOM.NS_OK) error(rc);
-
- rc = webBrowser.SetParentURIContentListener(0);
- if (rc != XPCOM.NS_OK) error(rc);
-
- int /*long*/[] result = new int /*long*/[1];
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.Destroy();
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-
- Release();
- webBrowser.Release();
-
- if (tip != null && !tip.isDisposed()) tip.dispose();
- tip = null;
-
- BrowserCount--;
-}
-
-void Activate() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus(result[0]);
- rc = webBrowserFocus.Activate();
- if (rc != XPCOM.NS_OK) error(rc);
- webBrowserFocus.Release();
-}
-
-void Deactivate() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus(result[0]);
- rc = webBrowserFocus.Deactivate();
- if (rc != XPCOM.NS_OK) error(rc);
- webBrowserFocus.Release();
-}
-
-void onResize() {
- Rectangle rect = browser.getClientArea();
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- OS.gtk_widget_set_size_request(embedHandle, rect.width, rect.height);
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.SetPositionAndSize(rect.x, rect.y, rect.width, rect.height, true);
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-}
-
-public void refresh() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.Reload(nsIWebNavigation.LOAD_FLAGS_NONE);
- webNavigation.Release();
- if (rc == XPCOM.NS_OK) return;
- /*
- * Feature in Mozilla. Reload returns an error code NS_ERROR_INVALID_POINTER
- * when it is called immediately after a request to load a new document using
- * LoadURI. The workaround is to ignore this error code.
- *
- * Feature in Mozilla. Attempting to reload a file that no longer exists
- * returns an error code of NS_ERROR_FILE_NOT_FOUND. This is equivalent to
- * attempting to load a non-existent local url, which is not a Browser error,
- * so this error code should be ignored.
- */
- if (rc != XPCOM.NS_ERROR_INVALID_POINTER && rc != XPCOM.NS_ERROR_FILE_NOT_FOUND) error(rc);
-}
-
-public boolean setText(String html) {
- /*
- * Feature in Mozilla. The focus memory of Mozilla must be
- * properly managed through the nsIWebBrowserFocus interface.
- * In particular, nsIWebBrowserFocus.deactivate must be called
- * when the focus moves from the browser (or one of its children
- * managed by Mozilla to another widget. We currently do not
- * get notified when a widget takes focus away from the Browser.
- * As a result, deactivate is not properly called. This causes
- * Mozilla to retake focus the next time a document is loaded.
- * This breaks the case where the HTML loaded in the Browser
- * varies while the user enters characters in a text widget. The text
- * widget loses focus every time new content is loaded.
- * The current workaround is to call deactivate everytime if
- * the browser currently does not have focus. A better workaround
- * would be to have a way to call deactivate when the Browser
- * or one of its children loses focus.
- */
- if (browser != browser.getDisplay().getFocusControl()) Deactivate();
-
- /*
- * Convert the String containing HTML to an array of
- * bytes with UTF-8 data.
- */
- byte[] data = null;
- try {
- data = html.getBytes("UTF-8"); //$NON-NLS-1$
- } catch (UnsupportedEncodingException e) {
- return false;
- }
-
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- rc = serviceManager.GetService(XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIIOService ioService = new nsIIOService(result[0]);
- result[0] = 0;
- /*
- * Note. Mozilla ignores LINK tags used to load CSS stylesheets
- * when the URI protocol for the nsInputStreamChannel
- * is about:blank. The fix is to specify the file protocol.
- */
- byte[] aString = Converter.wcsToMbcs(null, URI_FROMMEMORY, false);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new(aString, aString.length);
- rc = ioService.NewURI(aSpec, null, 0, result);
- XPCOM.nsEmbedCString_delete(aSpec);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- ioService.Release();
-
- nsIURI uri = new nsIURI(result[0]);
- result[0] = 0;
-
- /* aContentType */
- byte[] contentTypeBuffer = Converter.wcsToMbcs(null, "text/html", true); // $NON-NLS-1$
- int /*long*/ aContentType = XPCOM.nsEmbedCString_new(contentTypeBuffer, contentTypeBuffer.length);
-
- /*
- * First try to use nsIWebBrowserStream to set the text into the Browser, since this
- * interface is frozen. However, this may fail because this interface was only introduced
- * as of mozilla 1.8; if this interface is not found then use the pre-1.8 approach of
- * utilizing nsIDocShell instead.
- */
- result[0] = 0;
- rc = webBrowser.QueryInterface(nsIWebBrowserStream.NS_IWEBBROWSERSTREAM_IID, result);
- if (rc == XPCOM.NS_OK) {
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- nsIWebBrowserStream stream = new nsIWebBrowserStream(result[0]);
- rc = stream.OpenStream(uri.getAddress(), aContentType);
- if (rc != XPCOM.NS_OK) error(rc);
- int /*long*/ ptr = OS.g_malloc(data.length);
- XPCOM.memmove(ptr, data, data.length);
- int pageSize = 8192;
- int pageCount = data.length / pageSize + 1;
- int /*long*/ current = ptr;
- for (int i = 0; i < pageCount; i++) {
- int length = i == pageCount - 1 ? data.length % pageSize : pageSize;
- if (length > 0) {
- rc = stream.AppendToStream(current, length);
- if (rc != XPCOM.NS_OK) error(rc);
- }
- current += pageSize;
- }
- rc = stream.CloseStream();
- if (rc != XPCOM.NS_OK) error(rc);
- OS.g_free(ptr);
- stream.Release();
- } else {
- rc = webBrowser.QueryInterface(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor(result[0]);
- result[0] = 0;
- rc = interfaceRequestor.GetInterface(nsIDocShell.NS_IDOCSHELL_IID, result);
- interfaceRequestor.Release();
-
- nsIDocShell docShell = new nsIDocShell(result[0]);
- result[0] = 0;
- byte[] contentCharsetBuffer = Converter.wcsToMbcs(null, "UTF-8", true); //$NON-NLS-1$
- int /*long*/ aContentCharset = XPCOM.nsEmbedCString_new(contentCharsetBuffer, contentCharsetBuffer.length);
-
- /*
- * Feature in Mozilla. LoadStream invokes the nsIInputStream argument
- * through a different thread. The callback mechanism must attach
- * a non java thread to the JVM otherwise the nsIInputStream Read and
- * Close methods never get called.
- */
- InputStream inputStream = new InputStream(data);
- inputStream.AddRef();
- rc = docShell.LoadStream(inputStream.getAddress(), uri.getAddress(), aContentType, aContentCharset, 0);
- if (rc != XPCOM.NS_OK) error(rc);
- XPCOM.nsEmbedCString_delete(aContentCharset);
- inputStream.Release();
- docShell.Release();
- }
-
- XPCOM.nsEmbedCString_delete(aContentType);
- uri.Release();
- return true;
-}
-
-public boolean setUrl(String url) {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- char[] arg = url.toCharArray();
- char[] c = new char[arg.length+1];
- System.arraycopy(arg,0,c,0,arg.length);
- rc = webNavigation.LoadURI(c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
- webNavigation.Release();
- return rc == XPCOM.NS_OK;
-}
-
-public void stop() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.Stop(nsIWebNavigation.STOP_ALL);
- if (rc != XPCOM.NS_OK) error(rc);
- webNavigation.Release();
-}
-
-/* nsISupports */
-
-int /*long*/ QueryInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
-
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supports.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWeakReference.NS_IWEAKREFERENCE_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {weakReference.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webProgressListener.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebBrowserChrome.NS_IWEBBROWSERCHROME_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webBrowserChrome.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebBrowserChromeFocus.NS_IWEBBROWSERCHROMEFOCUS_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {webBrowserChromeFocus.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {embeddingSiteWindow.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {interfaceRequestor.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsISupportsWeakReference.NS_ISUPPORTSWEAKREFERENCE_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {supportsWeakReference.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIContextMenuListener.NS_ICONTEXTMENULISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {contextMenuListener.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIURIContentListener.NS_IURICONTENTLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {uriContentListener.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsITooltipListener.NS_ITOOLTIPLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {tooltipListener.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDirectoryServiceProvider.NS_IDIRECTORYSERVICEPROVIDER_IID)) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {directoryServiceProviderListener.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
- }
- XPCOM.memmove(ppvObject, new int /*long*/[] {0}, OS.PTR_SIZEOF);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int /*long*/ AddRef() {
- refCount++;
- return refCount;
-}
-
-int /*long*/ Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIWeakReference */
-
-int /*long*/ QueryReferent(int /*long*/ riid, int /*long*/ ppvObject) {
- return QueryInterface(riid,ppvObject);
-}
-
-/* nsIInterfaceRequestor */
-
-int /*long*/ GetInterface(int /*long*/ riid, int /*long*/ ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
- if (guid.Equals(nsIDOMWindow.NS_IDOMWINDOW_IID)) {
- int /*long*/[] aContentDOMWindow = new int /*long*/[1];
- int rc = webBrowser.GetContentDOMWindow(aContentDOMWindow);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aContentDOMWindow[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- XPCOM.memmove(ppvObject, aContentDOMWindow, OS.PTR_SIZEOF);
- return rc;
- }
- return QueryInterface(riid,ppvObject);
-}
-
-int /*long*/ GetWeakReference(int /*long*/ ppvObject) {
- XPCOM.memmove(ppvObject, new int /*long*/[] {weakReference.getAddress()}, OS.PTR_SIZEOF);
- AddRef();
- return XPCOM.NS_OK;
-}
-
-/* nsIWebProgressListener */
-
-int /*long*/ OnStateChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStateFlags, int /*long*/ aStatus) {
- if ((aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) == 0) return XPCOM.NS_OK;
- if ((aStateFlags & nsIWebProgressListener.STATE_START) != 0) {
- if (request == 0) request = aRequest;
- } else if ((aStateFlags & nsIWebProgressListener.STATE_REDIRECTING) != 0) {
- if (request == aRequest) request = 0;
- } else if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
- /*
- * Feature on Mozilla. When a request is redirected (STATE_REDIRECTING),
- * it never reaches the state STATE_STOP and it is replaced with a new request.
- * The new request is received when it is in the state STATE_STOP.
- * To handle this case, the variable request is set to 0 when the corresponding
- * request is redirected. The following request received with the state STATE_STOP
- * - the new request resulting from the redirection - is used to send
- * the ProgressListener.completed event.
- */
- if (request == aRequest || request == 0) {
- request = 0;
- StatusTextEvent event = new StatusTextEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.text = ""; //$NON-NLS-1$
- for (int i = 0; i < statusTextListeners.length; i++)
- statusTextListeners[i].changed(event);
-
- ProgressEvent event2 = new ProgressEvent(browser);
- event2.display = browser.getDisplay();
- event2.widget = browser;
- for (int i = 0; i < progressListeners.length; i++)
- progressListeners[i].completed(event2);
- }
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnProgressChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress, int /*long*/ aMaxSelfProgress, int /*long*/ aCurTotalProgress, int /*long*/ aMaxTotalProgress) {
- if (progressListeners.length == 0) return XPCOM.NS_OK;
- ProgressEvent event = new ProgressEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.current = (int)/*64*/aCurTotalProgress;
- event.total = (int)/*64*/aMaxTotalProgress;
- for (int i = 0; i < progressListeners.length; i++) {
- progressListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnLocationChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
- /*
- * Feature on Mozilla. When a page is loaded via setText before a previous
- * setText page load has completed, the expected OnStateChange STATE_STOP for the
- * original setText never arrives because it gets replaced by the OnStateChange
- * STATE_STOP for the new request. This results in the request field never being
- * cleared because the original request's OnStateChange STATE_STOP is still expected
- * (but never arrives). To handle this case, the request field is updated to the new
- * overriding request since its OnStateChange STATE_STOP will be received next.
- */
- if (request != 0 && request != aRequest) request = aRequest;
-
- if (locationListeners.length == 0) return XPCOM.NS_OK;
-
- nsIWebProgress webProgress = new nsIWebProgress(aWebProgress);
- int /*long*/[] aDOMWindow = new int /*long*/[1];
- int rc = webProgress.GetDOMWindow(aDOMWindow);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aDOMWindow[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIDOMWindow domWindow = new nsIDOMWindow(aDOMWindow[0]);
- int /*long*/[] aTop = new int /*long*/[1];
- rc = domWindow.GetTop(aTop);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aTop[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- domWindow.Release();
-
- nsIDOMWindow topWindow = new nsIDOMWindow(aTop[0]);
- topWindow.Release();
-
- nsIURI location = new nsIURI(aLocation);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- location.GetSpec(aSpec);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
-
- LocationEvent event = new LocationEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.location = new String(dest);
- if (event.location.equals (URI_FROMMEMORY)) {
- /*
- * If the URI indicates that the page is being rendered from memory
- * (ie.- via setText()) then set the event location to about:blank
- * to be consistent with win32.
- */
- event.location = ABOUT_BLANK;
- }
- event.top = aTop[0] == aDOMWindow[0];
- for (int i = 0; i < locationListeners.length; i++) {
- locationListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnStatusChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aStatus, int /*long*/ aMessage) {
- if (statusTextListeners.length == 0) return XPCOM.NS_OK;
- StatusTextEvent event = new StatusTextEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- int length = XPCOM.strlen_PRUnichar(aMessage);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aMessage, length * 2);
- event.text = new String(dest);
- for (int i = 0; i < statusTextListeners.length; i++) {
- statusTextListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnSecurityChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ state) {
- return XPCOM.NS_OK;
-}
-
-/* nsIWebBrowserChrome */
-
-int /*long*/ SetStatus(int /*long*/ statusType, int /*long*/ status) {
- StatusTextEvent event = new StatusTextEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- int length = XPCOM.strlen_PRUnichar(status);
- char[] dest = new char[length];
- XPCOM.memmove(dest, status, length * 2);
- String string = new String(dest);
- event.text = string;
- for (int i = 0; i < statusTextListeners.length; i++) {
- statusTextListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetWebBrowser(int /*long*/ aWebBrowser) {
- int /*long*/[] ret = new int /*long*/[1];
- if (webBrowser != null) {
- webBrowser.AddRef();
- ret[0] = webBrowser.getAddress();
- }
- XPCOM.memmove(aWebBrowser, ret, OS.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetWebBrowser(int /*long*/ aWebBrowser) {
- if (webBrowser != null) webBrowser.Release();
- webBrowser = aWebBrowser != 0 ? new nsIWebBrowser(aWebBrowser) : null;
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetChromeFlags(int /*long*/ aChromeFlags) {
- int[] ret = new int[1];
- ret[0] = chromeFlags;
- /* aChromeFlags is a pointer to a type of size 4 */
- XPCOM.memmove(aChromeFlags, ret, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetChromeFlags(int /*long*/ aChromeFlags) {
- chromeFlags = (int)/*64*/aChromeFlags;
- return XPCOM.NS_OK;
-}
-
-int /*long*/ DestroyBrowserWindow() {
- WindowEvent newEvent = new WindowEvent(browser);
- newEvent.display = browser.getDisplay();
- newEvent.widget = browser;
- for (int i = 0; i < closeWindowListeners.length; i++) {
- closeWindowListeners[i].close(newEvent);
- }
- /*
- * Note on Mozilla. The DestroyBrowserWindow notification cannot be cancelled.
- * The browser widget cannot be used after this notification has been received.
- * The application is advised to close the window hosting the browser widget.
- * The browser widget must be disposed in all cases.
- */
- browser.dispose();
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SizeBrowserTo(int /*long*/ aCX, int /*long*/ aCY) {
- size = new Point((int)/*64*/aCX, (int)/*64*/aCY);
- if (isModal) {
- Shell shell = browser.getShell();
- shell.setSize(shell.computeSize(size.x, size.y));
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ ShowAsModal() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] aContractID = Converter.wcsToMbcs(null, XPCOM.NS_CONTEXTSTACK_CONTRACTID, true);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIJSContextStack.NS_IJSCONTEXTSTACK_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIJSContextStack stack = new nsIJSContextStack(result[0]);
- result[0] = 0;
- rc = stack.Push(0);
- if (rc != XPCOM.NS_OK) error(rc);
-
- Shell shell = browser.getShell();
- Display display = browser.getDisplay();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch()) display.sleep();
- }
-
- rc = stack.Pop(result);
- if (rc != XPCOM.NS_OK) error(rc);
- stack.Release();
- return XPCOM.NS_OK;
-}
-
-int /*long*/ IsWindowModal(int /*long*/ retval) {
- /* Note. boolean remains of size 4 on 64 bit machine */
- XPCOM.memmove(retval, new int[] {isModal ? 1 : 0}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ ExitModalEventLoop(int /*long*/ aStatus) {
- return XPCOM.NS_OK;
-}
-
-/* nsIEmbeddingSiteWindow */
-
-int /*long*/ SetDimensions(int /*long*/ flags, int /*long*/ x, int /*long*/ y, int /*long*/ cx, int /*long*/ cy) {
- if (flags == nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) location = new Point((int)/*64*/x, (int)/*64*/y);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetDimensions(int /*long*/ flags, int /*long*/ x, int /*long*/ y, int /*long*/ cx, int /*long*/ cy) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetFocus() {
- int /*long*/[] result = new int /*long*/[1];
- int rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.SetFocus();
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-
- /*
- * Note. Mozilla notifies here that one of the children took
- * focus. This could or should be used to fire an SWT.FOCUS_IN
- * event on Browser focus listeners.
- */
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetVisibility(int /*long*/ aVisibility) {
- /* Note. boolean remains of size 4 on 64 bit machine */
- XPCOM.memmove(aVisibility, new int[] {browser.isVisible() ? 1 : 0}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetVisibility(int /*long*/ aVisibility) {
- WindowEvent event = new WindowEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- if (aVisibility == 1) {
- /*
- * Bug in Mozilla. When the JavaScript window.open is executed, Mozilla
- * fires multiple SetVisibility 1 notifications. The workaround is
- * to ignore subsequent notifications.
- */
- if (!visible) {
- visible = true;
- event.location = location;
- event.size = size;
- event.addressBar = addressBar;
- event.menuBar = menuBar;
- event.statusBar = statusBar;
- event.toolBar = toolBar;
- for (int i = 0; i < visibilityWindowListeners.length; i++)
- visibilityWindowListeners[i].show(event);
- location = null;
- size = null;
- }
- } else {
- visible = false;
- for (int i = 0; i < visibilityWindowListeners.length; i++) {
- visibilityWindowListeners[i].hide(event);
- }
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetTitle(int /*long*/ aTitle) {
- return XPCOM.NS_OK;
-}
-
-int /*long*/ SetTitle(int /*long*/ aTitle) {
- if (titleListeners.length == 0) return XPCOM.NS_OK;
- TitleEvent event = new TitleEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- /*
- * To be consistent with other platforms the title event should
- * contain the page's url if the page does not contain a <title>
- * tag.
- */
- int length = XPCOM.strlen_PRUnichar(aTitle);
- if (length > 0) {
- char[] dest = new char[length];
- XPCOM.memmove(dest, aTitle, length * 2);
- event.title = new String(dest);
- } else {
- event.title = getUrl();
- }
- for (int i = 0; i < titleListeners.length; i++) {
- titleListeners[i].changed(event);
- }
- return XPCOM.NS_OK;
-}
-
-int /*long*/ GetSiteWindow(int /*long*/ aSiteWindow) {
- /*
- * Note. The handle is expected to be an HWND on Windows and
- * a GtkWidget* on GTK. This callback is invoked on Windows
- * when the javascript window.print is invoked and the print
- * dialog comes up. If no handle is returned, the print dialog
- * does not come up on this platform.
- */
- XPCOM.memmove(aSiteWindow, new int /*long*/[] {embedHandle}, OS.PTR_SIZEOF);
- return XPCOM.NS_OK;
-}
-
-/* nsIWebBrowserChromeFocus */
-
-int /*long*/ FocusNextElement() {
- /*
- * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
- * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
- * with the Mozilla application TestGtkEmbed. The workaround is to
- * send the traversal notification after this callback returns.
- */
- browser.getDisplay().asyncExec(new Runnable() {
- public void run() {
- browser.traverse(SWT.TRAVERSE_TAB_NEXT);
- }
- });
- return XPCOM.NS_OK;
-}
-
-int /*long*/ FocusPrevElement() {
- /*
- * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
- * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
- * with the Mozilla application TestGtkEmbed. The workaround is to
- * send the traversal notification after this callback returns.
- */
- browser.getDisplay().asyncExec(new Runnable() {
- public void run() {
- browser.traverse(SWT.TRAVERSE_TAB_PREVIOUS);
- }
- });
- return XPCOM.NS_OK;
-}
-
-/* nsIContextMenuListener */
-
-int /*long*/ OnShowContextMenu(int /*long*/ aContextFlags, int /*long*/ aEvent, int /*long*/ aNode) {
- nsIDOMEvent domEvent = new nsIDOMEvent(aEvent);
- int /*long*/[] result = new int /*long*/[1];
- int rc = domEvent.QueryInterface(nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIDOMMouseEvent domMouseEvent = new nsIDOMMouseEvent(result[0]);
- int[] aScreenX = new int[1], aScreenY = new int[1];
- rc = domMouseEvent.GetScreenX(aScreenX);
- if (rc != XPCOM.NS_OK) error(rc);
- rc = domMouseEvent.GetScreenY(aScreenY);
- if (rc != XPCOM.NS_OK) error(rc);
- domMouseEvent.Release();
-
- Event event = new Event();
- event.x = aScreenX[0];
- event.y = aScreenY[0];
- browser.notifyListeners(SWT.MenuDetect, event);
- if (!event.doit) return XPCOM.NS_OK;
- Menu menu = browser.getMenu();
- if (menu != null && !menu.isDisposed ()) {
- if (aScreenX[0] != event.x || aScreenY[0] != event.y) {
- menu.setLocation (event.x, event.y);
- }
- menu.setVisible (true);
- }
- return XPCOM.NS_OK;
-}
-
-/* nsIURIContentListener */
-
-int /*long*/ OnStartURIOpen(int /*long*/ aURI, int /*long*/ retval) {
- nsIURI location = new nsIURI(aURI);
- int /*long*/ aSpec = XPCOM.nsEmbedCString_new();
- location.GetSpec(aSpec);
- int length = XPCOM.nsEmbedCString_Length(aSpec);
- int /*long*/ buffer = XPCOM.nsEmbedCString_get(aSpec);
- buffer = XPCOM.nsEmbedCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsEmbedCString_delete(aSpec);
- String value = new String(dest);
- if (locationListeners.length == 0) {
- XPCOM.memmove(retval, new int[] {0}, 4);
- return XPCOM.NS_OK;
- }
- boolean doit = true;
- if (request == 0) {
- LocationEvent event = new LocationEvent(browser);
- event.display = browser.getDisplay();
- event.widget = browser;
- event.location = value;
- if (event.location.equals (URI_FROMMEMORY)) {
- /*
- * If the URI indicates that the page is being rendered from memory
- * (ie.- via setText()) then set the event location to about:blank
- * to be consistent with win32.
- */
- event.location = ABOUT_BLANK;
- }
- event.doit = doit;
- for (int i = 0; i < locationListeners.length; i++) {
- locationListeners[i].changing(event);
- }
- doit = event.doit;
- }
- /* Note. boolean remains of size 4 on 64 bit machine */
- XPCOM.memmove(retval, new int[] {doit ? 0 : 1}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ DoContent(int /*long*/ aContentType, int /*long*/ aIsContentPreferred, int /*long*/ aRequest, int /*long*/ aContentHandler, int /*long*/ retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ IsPreferred(int /*long*/ aContentType, int /*long*/ aDesiredContentType, int /*long*/ retval) {
- boolean preferred = false;
- int size = XPCOM.strlen(aContentType);
- if (size > 0) {
- byte[] typeBytes = new byte[size + 1];
- XPCOM.memmove(typeBytes, aContentType, size);
- String contentType = new String(typeBytes);
-
- /* do not attempt to handle known problematic content types */
- if (!contentType.equals(XPCOM.CONTENT_MAYBETEXT) && !contentType.equals(XPCOM.CONTENT_MULTIPART)) {
- /* determine whether browser can handle the content type */
- int /*long*/[] result = new int /*long*/[1];
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- rc = serviceManager.GetService(XPCOM.NS_CATEGORYMANAGER_CID, nsICategoryManager.NS_ICATEGORYMANAGER_IID, result);
- serviceManager.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsICategoryManager categoryManager = new nsICategoryManager(result[0]);
- result[0] = 0;
- byte[] categoryBytes = Converter.wcsToMbcs(null, "Gecko-Content-Viewers", true); //$NON-NLS-1$
- rc = categoryManager.GetCategoryEntry(categoryBytes, typeBytes, result);
- categoryManager.Release();
- /* if no viewer for the content type is registered then rc == XPCOM.NS_ERROR_NOT_AVAILABLE */
- preferred = rc == XPCOM.NS_OK;
- }
- }
-
- /* note that boolean remains of size 4 on 64 bit machines */
- XPCOM.memmove(retval, new int[] {preferred ? 1 : 0}, 4);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ CanHandleContent(int /*long*/ aContentType, int /*long*/ aIsContentPreferred, int /*long*/ aDesiredContentType, int /*long*/ retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetLoadCookie(int /*long*/ aLoadCookie) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ SetLoadCookie(int /*long*/ aLoadCookie) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ GetParentContentListener(int /*long*/ aParentContentListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int /*long*/ SetParentContentListener(int /*long*/ aParentContentListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-/* nsITooltipListener */
-
-int /*long*/ OnShowTooltip(int /*long*/ aXCoords, int /*long*/ aYCoords, int /*long*/ aTipText) {
- int length = XPCOM.strlen_PRUnichar(aTipText);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aTipText, length * 2);
- String text = new String(dest);
- if (tip != null && !tip.isDisposed()) tip.dispose();
- Display display = browser.getDisplay();
- Shell parent = browser.getShell();
- tip = new Shell(parent, SWT.ON_TOP);
- tip.setLayout(new FillLayout());
- Label label = new Label(tip, SWT.CENTER);
- label.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
- label.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- label.setText(text);
- /*
- * Bug in Mozilla embedded API. Tooltip coordinates are wrong for
- * elements inside an inline frame (IFrame tag). The workaround is
- * to position the tooltip based on the mouse cursor location.
- */
- Point point = display.getCursorLocation();
- /* Assuming cursor is 21x21 because this is the size of
- * the arrow cursor on Windows
- */
- point.y += 21;
- tip.setLocation(point);
- tip.pack();
- tip.setVisible(true);
- return XPCOM.NS_OK;
-}
-
-int /*long*/ OnHideTooltip() {
- if (tip != null && !tip.isDisposed()) tip.dispose();
- tip = null;
- return XPCOM.NS_OK;
-}
-
-/* nsIDirectoryServiceProvider */
-
-int /*long*/ GetFile(int /*long*/ prop, int /*long*/ persistent, int /*long*/ retVal) {
- int size = XPCOM.strlen(prop);
- byte[] bytes = new byte[size];
- XPCOM.memmove(bytes, prop, size);
- String propertyName = new String(Converter.mbcsToWcs(null, bytes));
- String propertyValue = null;
-
- if (propertyName.equals(XPCOM.NS_APP_HISTORY_50_FILE)) {
- propertyValue = profileRootDirectory + HISTORY_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_USER_MIMETYPES_50_FILE)) {
- propertyValue = profileRootDirectory + MIMETYPES_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_PREFS_50_FILE)) {
- propertyValue = profileRootDirectory + PREFERENCES_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_PREFS_50_DIR)) {
- propertyValue = profileRootDirectory;
- } else if (propertyName.equals(XPCOM.NS_APP_USER_CHROME_DIR)) {
- propertyValue = profileRootDirectory + CHROME_DIR;
- } else if (propertyName.equals(XPCOM.NS_APP_USER_PROFILE_50_DIR)) {
- propertyValue = profileRootDirectory;
- } else if (propertyName.equals(XPCOM.NS_APP_LOCALSTORE_50_FILE)) {
- propertyValue = profileRootDirectory + LOCALSTORE_FILE;
- } else if (propertyName.equals(XPCOM.NS_APP_CACHE_PARENT_DIR)) {
- propertyValue = profileRootDirectory;
- } else if (propertyName.equals(XPCOM.NS_OS_HOME_DIR)) {
- propertyValue = System.getProperty("user.home"); //$NON-NLS-1$
- } else if (propertyName.equals(XPCOM.NS_OS_TEMP_DIR)) {
- propertyValue = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$
- }
-
- if (propertyValue != null && propertyValue.length() > 0) {
- int /*long*/[] result = new int /*long*/[1];
- nsEmbedString pathString = new nsEmbedString(propertyValue);
- int rc = XPCOM.NS_NewLocalFile(pathString.getAddress(), true, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NULL_POINTER);
- pathString.dispose();
- XPCOM.memmove(retVal, new int /*long*/[] {result[0]}, OS.PTR_SIZEOF);
- /* note that boolean remains of size 4 on 64 bit machines */
- XPCOM.memmove(persistent, new int[] {1}, 4);
- }
-
- return XPCOM.NS_OK;
-}
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c
index e6edff12ab..f552f1ccfa 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c
@@ -17,6 +17,31 @@
extern id objc_msgSend(id, SEL, ...);
+#include <JavaVM/jawt_md.h>
+JNIEXPORT jlong JNICALL Cocoa_NATIVE(getNativeHandleFromAWT)
+ (JNIEnv* env, jobject that, jobject widget)
+{
+ jlong handle = 0;
+ JAWT awt;
+ awt.version = JAWT_VERSION_1_4;
+ if (!JAWT_GetAWT(env, &awt)) return 0;
+ JAWT_DrawingSurface* ds = awt.GetDrawingSurface(env, widget);
+ if (ds != NULL) {
+ jint lock = ds->Lock(ds);
+ if (!(lock & JAWT_LOCK_ERROR)) {
+ JAWT_DrawingSurfaceInfo* dsi = ds->GetDrawingSurfaceInfo(ds);
+ if (dsi) {
+ JAWT_MacOSXDrawingSurfaceInfo* dsi_mac = (JAWT_MacOSXDrawingSurfaceInfo*) (dsi->platformInfo);
+ handle = (jlong) (dsi_mac->cocoaViewRef);
+ ds->FreeDrawingSurfaceInfo(dsi);
+ }
+ ds->Unlock(ds);
+ }
+ awt.FreeDrawingSurface(ds);
+ }
+ return handle;
+}
+
#ifndef NO_objc_1msgSend__IIF
JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1msgSend__IIF)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/make_macosx.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/make_macosx.mak
index 511941ebf9..1394f3e394 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/make_macosx.mak
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/make_macosx.mak
@@ -17,12 +17,16 @@ SWT_PREFIX=swt
SWTPI_PREFIX=swt-pi
SWTCOCOA_PREFIX=swt-cocoa
SWTAGL_PREFIX=swt-agl
+SWTXULRUNNER_PREFIX=swt-xulrunner
+SWTXPCOMINIT_PREFIX=swt-xpcominit
WS_PREFIX=carbon
SWT_VERSION=$(maj_ver)$(min_ver)
SWT_LIB=lib$(SWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).jnilib
SWTPI_LIB=lib$(SWTPI_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).jnilib
COCOA_LIB=lib$(SWTCOCOA_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).jnilib
AGL_LIB=lib$(SWTAGL_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).jnilib
+XULRUNNER_LIB=lib$(SWTXULRUNNER_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).jnilib
+XPCOMINIT_LIB=lib$(SWTXPCOMINIT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).jnilib
# Uncomment for Native Stats tool
#NATIVE_STATS = -DNATIVE_STATS
@@ -38,8 +42,16 @@ SWT_OBJECTS = swt.o c.o c_stats.o callback.o
SWTPI_OBJECTS = swt.o os.o os_custom.o os_structs.o os_stats.o
COCOA_OBJECTS = swt.o cocoa.o cocoa_custom.o cocoa_structs.o cocoa_stats.o
AGL_OBJECTS = swt.o agl.o agl_stats.o
+XULRUNNER_OBJECTS = swt.o xpcom.o xpcom_custom.o xpcom_structs.o xpcom_stats.o xpcomglue.o xpcomglue_stats.o
+XPCOMINIT_OBJECTS = swt.o xpcominit.o xpcominit_structs.o xpcom_stats.o
-all: $(SWT_LIB) $(SWTPI_LIB) $(COCOA_LIB) $(AGL_LIB)
+XULRUNNER_SDK = /Users/Shared/xulrunner/1.8.0.1/mozilla/dist/i386/dist/sdk
+#XULRUNNER_SDK = /Users/Shared/gecko-sdk
+XULRUNNER_LIBS = -L${XULRUNNER_SDK}/lib -lxpcomglue
+XULRUNNERCFLAGS = -c -Wall -DSWT_VERSION=$(SWT_VERSION) $(NATIVE_STATS) $(SWT_DEBUG) -DCARBON -I /System/Library/Frameworks/JavaVM.framework/Headers -include ${XULRUNNER_SDK}/include/mozilla-config.h -I${XULRUNNER_SDK}/include
+XULRUNNERLFLAGS = -bundle -framework JavaVM -framework Carbon
+
+all: $(SWT_LIB) $(SWTPI_LIB) $(COCOA_LIB) $(AGL_LIB) $(XULRUNNER_LIB) $(XPCOMINIT_LIB)
.c.o:
cc $(CFLAGS) $*.c
@@ -65,6 +77,32 @@ $(COCOA_LIB): $(COCOA_OBJECTS)
$(AGL_LIB): $(AGL_OBJECTS)
cc -o $(AGL_LIB) $(AGLLFLAGS) $(AGL_OBJECTS)
+$(XULRUNNER_LIB): $(XULRUNNER_OBJECTS)
+ g++ -o $(XULRUNNER_LIB) $(XULRUNNERLFLAGS) $(XULRUNNER_LIBS) $(XULRUNNER_OBJECTS)
+
+$(XPCOMINIT_LIB): $(XPCOMINIT_OBJECTS)
+ g++ -o $(XPCOMINIT_LIB) $(XULRUNNERLFLAGS) $(XULRUNNER_LIBS) $(XPCOMINIT_OBJECTS)
+
+xpcom.o: xpcom.cpp
+ g++ $(XULRUNNERCFLAGS) xpcom.cpp
+xpcom_custom.o: xpcom_custom.cpp
+ g++ $(XULRUNNERCFLAGS) xpcom_custom.cpp
+xpcom_structs.o: xpcom_structs.cpp
+ g++ $(XULRUNNERCFLAGS) xpcom_structs.cpp
+xpcom_stats.o: xpcom_stats.cpp
+ g++ $(XULRUNNERCFLAGS) xpcom_stats.cpp
+xpcomglue.o: xpcomglue.cpp
+ g++ $(XULRUNNERCFLAGS) xpcomglue.cpp
+xpcomglue_stats.o: xpcomglue_stats.cpp
+ g++ $(XULRUNNERCFLAGS) xpcomglue_stats.cpp
+xpcominit.o: xpcominit.cpp
+ g++ $(XULRUNNERCFLAGS) xpcominit.cpp
+xpcominit_structs.o: xpcominit_structs.cpp
+ g++ $(XULRUNNERCFLAGS) xpcominit_structs.cpp
+xpcominit_stats.o: xpcominit_stats.cpp
+ g++ $(XULRUNNERCFLAGS) xpcominit _stats.cpp
+
+
install: all
cp *.jnilib $(OUTPUT_DIR)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java
index f288db84ee..2ae1714277 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/carbon/OS.java
@@ -1827,7 +1827,6 @@ public static final native int X2Fix(double x);
public static final native int ZoomWindowIdeal(int inWindow, short inPartCode, Point ioIdealSize);
public static final native int kCFNumberFormatterDecimalSeparator();
public static final native int getpid();
-public static final native int getenv(byte[] name);
public static final native void memcpy(ATSTrapezoid dest, int src, int n);
public static final native void memcpy(RGBColor dest, int src, int n);
public static final native void memcpy(CGPathElement dest, int src, int n);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java
index b2725fd144..49dda4a606 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java
@@ -169,4 +169,6 @@ static int sel_registerName(String selector) {
static int objc_getClass(String className) {
return Cocoa.objc_getClass(ascii(className));
}
+
+public static final native long getNativeHandleFromAWT(Object frame);
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.c b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.c
index 77ad6aa632..aa68b6b274 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.c
@@ -37,6 +37,22 @@ JNIEXPORT void JNICALL C_NATIVE(free)
}
#endif
+#ifndef NO_getenv
+JNIEXPORT jint JNICALL C_NATIVE(getenv)
+ (JNIEnv *env, jclass that, jbyteArray arg0)
+{
+ jbyte *lparg0=NULL;
+ jint rc = 0;
+ C_NATIVE_ENTER(env, that, getenv_FUNC);
+ if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail;
+ rc = (jint)getenv((const char *)lparg0);
+fail:
+ if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);
+ C_NATIVE_EXIT(env, that, getenv_FUNC);
+ return rc;
+}
+#endif
+
#ifndef NO_malloc
JNIEXPORT jint JNICALL C_NATIVE(malloc)
(JNIEnv *env, jclass that, jint arg0)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.h b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.h
index e2a4ca91f1..01b8da85af 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c.h
@@ -17,4 +17,9 @@
#define PTR_sizeof() sizeof(void *)
+/* Functions excludes */
+#ifdef _WIN32_WCE
+#define NO_getenv
+#endif /* _WIN32_WCE */
+
#endif /* INC_c_H */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.c
index dfa857b7f5..0a7bcfdc95 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.c
@@ -14,11 +14,12 @@
#ifdef NATIVE_STATS
-int C_nativeFunctionCount = 22;
-int C_nativeFunctionCallCount[22];
+int C_nativeFunctionCount = 23;
+int C_nativeFunctionCallCount[23];
char * C_nativeFunctionNames[] = {
"PTR_1sizeof",
"free",
+ "getenv",
"malloc",
"memmove__III",
"memmove__I_3BI",
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.h
index 25f47481c1..2e05f2c78f 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_stats.h
@@ -23,6 +23,7 @@ extern char* C_nativeFunctionNames[];
typedef enum {
PTR_1sizeof_FUNC,
free_FUNC,
+ getenv_FUNC,
malloc_FUNC,
memmove__III_FUNC,
memmove__I_3BI_FUNC,
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LONG.java b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_structs.c
index ea45c669fe..aa35a82b69 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LONG.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/library/c_structs.c
@@ -6,25 +6,9 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.swt.internal.win32;
-public class LONG {
- public int /*long*/ value;
+#include "swt.h"
+#include "c_structs.h"
- public LONG(int /*long*/ value) {
- this.value = value;
- }
-
- public boolean equals (Object object) {
- if (object == this) return true;
- if (!(object instanceof LONG)) return false;
- LONG obj = (LONG)object;
- return obj.value == this.value;
- }
-
- public int hashCode () {
- return (int)/*64*/value;
- }
-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/C.java b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/C.java
index a3efb6cf7f..5f09641de0 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/C.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/C.java
@@ -13,7 +13,7 @@ package org.eclipse.swt.internal;
public class C extends Platform {
static {
- if ("Linux".equals(System.getProperty ("os.name")) && "motif".equals(Platform.PLATFORM)) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ if ("Linux".equals (System.getProperty ("os.name")) && "motif".equals (Platform.PLATFORM)) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
try {
Library.loadLibrary ("libXm.so.2", false); //$NON-NLS-1$
} catch (UnsatisfiedLinkError ex) {}
@@ -24,25 +24,26 @@ public class C extends Platform {
public static final int PTR_SIZEOF = PTR_sizeof ();
public static final native void free (int /*long*/ ptr);
+public static final native int /*long*/ getenv (byte[] wcsToMbcs);
public static final native int /*long*/ malloc (int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, byte[] src, int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, char[] src, int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, double[] src, int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, float[] src, int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, int[] src, int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, long[] src, int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, short[] src, int /*long*/ size);
-public static final native void memmove(byte[] dest, char[] src, int /*long*/ size);
-public static final native void memmove(byte[] dest, int /*long*/ src, int /*long*/ size);
-public static final native void memmove(int /*long*/ dest, int /*long*/ src, int /*long*/ size);
-public static final native void memmove(char[] dest, int /*long*/ src, int /*long*/ size);
-public static final native void memmove(double[] dest, int /*long*/ src, int /*long*/ size);
-public static final native void memmove(float[] dest, int /*long*/ src, int /*long*/ size);
-public static final native void memmove(int[] dest, byte[] src, int /*long*/ size);
-public static final native void memmove(short[] dest, int /*long*/ src, int /*long*/ size);
-public static final native void memmove(int[] dest, int /*long*/ src, int /*long*/ size);
-public static final native void memmove(long[] dest, int /*long*/ src, int /*long*/ size);
-public static final native int /*long*/ memset(int /*long*/ buffer, int c, int /*long*/ num);
+public static final native void memmove (int /*long*/ dest, byte[] src, int /*long*/ size);
+public static final native void memmove (int /*long*/ dest, char[] src, int /*long*/ size);
+public static final native void memmove (int /*long*/ dest, double[] src, int /*long*/ size);
+public static final native void memmove (int /*long*/ dest, float[] src, int /*long*/ size);
+public static final native void memmove (int /*long*/ dest, int[] src, int /*long*/ size);
+public static final native void memmove (int /*long*/ dest, long[] src, int /*long*/ size);
+public static final native void memmove (int /*long*/ dest, short[] src, int /*long*/ size);
+public static final native void memmove (byte[] dest, char[] src, int /*long*/ size);
+public static final native void memmove (byte[] dest, int /*long*/ src, int /*long*/ size);
+public static final native void memmove (int /*long*/ dest, int /*long*/ src, int /*long*/ size);
+public static final native void memmove (char[] dest, int /*long*/ src, int /*long*/ size);
+public static final native void memmove (double[] dest, int /*long*/ src, int /*long*/ size);
+public static final native void memmove (float[] dest, int /*long*/ src, int /*long*/ size);
+public static final native void memmove (int[] dest, byte[] src, int /*long*/ size);
+public static final native void memmove (short[] dest, int /*long*/ src, int /*long*/ size);
+public static final native void memmove (int[] dest, int /*long*/ src, int /*long*/ size);
+public static final native void memmove (long[] dest, int /*long*/ src, int /*long*/ size);
+public static final native int /*long*/ memset (int /*long*/ buffer, int c, int /*long*/ num);
public static final native int PTR_sizeof ();
public static final native int strlen (int /*long*/ s);
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/LONG.java b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/LONG.java
index a35e1deeb7..0202542f58 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/LONG.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/LONG.java
@@ -8,12 +8,12 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.swt.internal.gtk;
+package org.eclipse.swt.internal;
public class LONG {
public int /*long*/ value;
- public LONG(int /*long*/ value) {
+ public LONG (int /*long*/ value) {
this.value = value;
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak
index d694695e00..7c1e02369d 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak
@@ -67,7 +67,6 @@ GLXLIBS = -shared -fPIC -L/usr/X11R6/lib -lGL -lGLU -lm
MOZILLACFLAGS = -O \
-DSWT_VERSION=$(SWT_VERSION) \
$(NATIVE_STATS) \
- -DXPCOM_GLUE=1 \
-DMOZILLA_STRICT_API=1 \
-fno-rtti \
-fno-exceptions \
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak
index b7c27b721b..d63df25cf3 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak
@@ -67,7 +67,6 @@ GLXLIBS = -shared -fPIC -L/usr/X11R6/lib -lGL -lGLU -lm
MOZILLACFLAGS = -O \
-DSWT_VERSION=$(SWT_VERSION) \
$(NATIVE_STATS) \
- -DXPCOM_GLUE=1 \
-DMOZILLA_STRICT_API=1 \
-fno-rtti \
-fno-exceptions \
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_solaris.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_solaris.mak
index 2c63bb1c52..4ae400c1c3 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_solaris.mak
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_solaris.mak
@@ -61,7 +61,6 @@ GLXLIBS = -G -K PIC -L/usr/X11R6/lib -lGL -lGLU -lm
#NATIVE_STATS = -DNATIVE_STATS
MOZILLACFLAGS = -O \
- -DXPCOM_GLUE=1 \
-DMOZILLA_STRICT_API=1 \
-fno-rtti \
-fno-exceptions \
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
index b7dd7cff79..da42c7c668 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
@@ -555,7 +555,6 @@ public static final native int XExposeEvent_sizeof();
public static final native int XFocusChangeEvent_sizeof();
public static final native int XVisibilityEvent_sizeof();
public static final native int XWindowChanges_sizeof();
-public static final native int /*long*/ getenv(byte[] name);
public static final native int /*long*/ localeconv_decimal_point();
public static final native int /*long*/ realpath(byte[] path, byte[] realPath);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_linux.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_linux.mak
index f248e8eb69..f1e8b36c8a 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_linux.mak
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_linux.mak
@@ -62,7 +62,6 @@ MOZILLA_PREFIX = swt-mozilla
MOZILLA_LIB = lib$(MOZILLA_PREFIX)$(GCC_VERSION)-$(WS_PREFIX)-$(SWT_VERSION).so
MOZILLA_OBJECTS = swt.o xpcom.o xpcom_custom.o xpcom_structs.o xpcom_stats.o
MOZILLACFLAGS = -O \
- -DXPCOM_GLUE=1 \
-DMOZILLA_STRICT_API=1 \
-fno-rtti \
-fno-exceptions \
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os.c
index 59788f6972..e521691a0d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os.c
@@ -5687,22 +5687,6 @@ JNIEXPORT jint JNICALL OS_NATIVE(fd_1set_1sizeof)
}
#endif
-#ifndef NO_getenv
-JNIEXPORT jint JNICALL OS_NATIVE(getenv)
- (JNIEnv *env, jclass that, jbyteArray arg0)
-{
- jbyte *lparg0=NULL;
- jint rc = 0;
- OS_NATIVE_ENTER(env, that, getenv_FUNC);
- if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail;
- rc = (jint)getenv((const char *)lparg0);
-fail:
- if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);
- OS_NATIVE_EXIT(env, that, getenv_FUNC);
- return rc;
-}
-#endif
-
#ifndef NO_iconv
JNIEXPORT jint JNICALL OS_NATIVE(iconv)
(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2, jintArray arg3, jintArray arg4)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.c
index 5dc86ffa83..d84ab46f64 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.c
@@ -14,8 +14,8 @@
#ifdef NATIVE_STATS
-int OS_nativeFunctionCount = 466;
-int OS_nativeFunctionCallCount[466];
+int OS_nativeFunctionCount = 465;
+int OS_nativeFunctionCallCount[465];
char * OS_nativeFunctionNames[] = {
"CODESET",
"FD_1ISSET",
@@ -433,7 +433,6 @@ char * OS_nativeFunctionNames[] = {
"_1xmMenuShellWidgetClass",
"close",
"fd_1set_1sizeof",
- "getenv",
"iconv",
"iconv_1close",
"iconv_1open",
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.h
index cf0d9464e8..fef0734f2b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/os_stats.h
@@ -437,7 +437,6 @@ typedef enum {
_1xmMenuShellWidgetClass_FUNC,
close_FUNC,
fd_1set_1sizeof_FUNC,
- getenv_FUNC,
iconv_FUNC,
iconv_1close_FUNC,
iconv_1open_FUNC,
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/OS.java
index d7cf586987..751501a7cd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/OS.java
@@ -4306,7 +4306,6 @@ public static final void _XmSetMenuTraversal(int menu, boolean traversal) {
}
public static final native int close(int filedes);
public static final native int fd_set_sizeof();
-public static final native int getenv(byte[] name);
public static final native int iconv(int cd, int[] inBuf, int[] inBytesLeft, int[] outBuf, int[] outBytesLeft);
public static final native int iconv_close(int cd);
public static final native int iconv_open(byte[] tocode, byte[] fromcode);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/build.bat b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/build.bat
index ac77bf1d1c..60079627fa 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/build.bat
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/build.bat
@@ -31,6 +31,11 @@ rem ******
set Mssdk=K:\dev\PRODUCTS\PLATSDK\feb2003
call %mssdk%\setenv.bat
+rem *********
+rem XULRunner
+rem *********
+set XULRUNNER_SDK=j:\teamswt\swt-builddir\gecko-sdk
+
set OUTPUT_DIR=..\..\..\org.eclipse.swt.win32.win32.x86
:MAKE
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/make_win32.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/make_win32.mak
index 92da506cee..6632ec5686 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/make_win32.mak
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/make_win32.mak
@@ -50,13 +50,54 @@ WGL_OBJS = wgl.obj wgl_structs.obj wgl_stats.obj
#SWT_CDEBUG = -Zi -Odi
#SWT_LDEBUG = /DEBUG /DEBUGTYPE:both
+XULRUNNER_PREFIX = swt-xulrunner
+XULRUNNER_LIB = $(XULRUNNER_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).dll
+XULRUNNER_LIBS = Advapi32.lib $(XULRUNNER_SDK)\lib\xpcomglue.lib
+XULRUNNER_OBJS = xpcom.obj xpcom_custom.obj xpcom_structs.obj xpcom_stats.obj xpcomglue.obj xpcomglue_stats.obj
+
+XPCOMINIT_PREFIX = swt-xpcominit
+XPCOMINIT_LIB = $(XPCOMINIT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).dll
+XPCOMINIT_OBJS = xpcominit.obj xpcominit_structs.obj xpcominit_stats.obj
+
+MOZILLACFLAGS = -c \
+ -O1 \
+ $(SWT_CDEBUG) \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+ -MD \
+ -DMOZILLA_STRICT_API=1 \
+ -W3 \
+ -I. \
+ -I$(JAVA_HOME)/include \
+ -I$(JAVA_HOME)/include/win32 \
+ /I$(XULRUNNER_SDK)\include\mozilla-config.h /I$(XULRUNNER_SDK)\include
+
# note: thoroughly test all examples after changing any optimization flags
SWT_WINDOWS_SDK = -DWINVER=0x0500 -D_WIN32_WINDOWS=0x0400 -D_WIN32_WINNT=0x501 -D_WIN32_IE=0x0500
CFLAGS = -c -W3 -G6 -GD -O1 $(SWT_CDEBUG) -DSWT_VERSION=$(SWT_VERSION) $(NATIVE_STATS) -DUSE_ASSEMBLER $(SWT_WINDOWS_SDK) -DVC_EXTRALEAN -nologo -MT -D_X86_=1 -DWIN32 -D_WIN32 -D_WIN32_DCOM /I$(JAVA_HOME)\include /I$(JAVA_HOME)\include\win32 /I.
RCFLAGS = -DSWT_FILE_VERSION=\"$(maj_ver).$(min_ver)\" -DSWT_COMMA_VERSION=$(comma_ver)
LFLAGS = /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO $(SWT_LDEBUG) -entry:_DllMainCRTStartup@12 -dll /BASE:0x10000000 /comment:$(pgm_ver_str) /comment:$(copyright) /DLL
-all: $(SWT_LIB) $(AWT_LIB) $(GDIP_LIB) $(WGL_LIB)
+all: $(SWT_LIB) $(AWT_LIB) $(GDIP_LIB) $(WGL_LIB) $(XULRUNNER_LIB) $(XPCOMINIT_LIB)
+
+xpcom_custom.obj: xpcom_custom.cpp
+ cl $(MOZILLACFLAGS) xpcom_custom.cpp
+xpcom_stats.obj: xpcom_stats.cpp
+ cl $(MOZILLACFLAGS) xpcom_stats.cpp
+xpcom_structs.obj: xpcom_structs.cpp
+ cl $(MOZILLACFLAGS) xpcom_structs.cpp
+xpcom.obj: xpcom.cpp
+ cl $(MOZILLACFLAGS) xpcom.cpp
+xpcomglue.obj: xpcomglue.cpp
+ cl $(MOZILLACFLAGS) xpcomglue.cpp
+xpcomglue_stats.obj: xpcomglue_stats.cpp
+ cl $(MOZILLACFLAGS) xpcomglue_stats.cpp
+xpcominit_stats.obj: xpcominit_stats.cpp
+ cl $(MOZILLACFLAGS) xpcominit_stats.cpp
+xpcominit_structs.obj: xpcominit_structs.cpp
+ cl $(MOZILLACFLAGS) xpcominit_structs.cpp
+xpcominit.obj: xpcominit.cpp
+ cl $(MOZILLACFLAGS) xpcominit.cpp
.c.obj:
cl $(CFLAGS) $*.c
@@ -108,6 +149,24 @@ $(WGL_LIB): $(WGL_OBJS) swt_wgl.res
link @templrf
del templrf
+$(XULRUNNER_LIB): $(XULRUNNER_OBJS) swt_xpcom.res
+ echo $(LFLAGS) >templrf
+ echo $(XULRUNNER_LIBS) >>templrf
+ echo -machine:IX86 >>templrf
+ echo -subsystem:windows >>templrf
+ echo -out:$(XULRUNNER_LIB) >>templrf
+ echo $(XULRUNNER_OBJS) >>templrf
+ link @templrf
+
+$(XPCOMINIT_LIB): $(XPCOMINIT_OBJS) swt_xpcominit.res
+ echo $(LFLAGS) >templrf
+ echo $(XULRUNNER_LIBS) >>templrf
+ echo -machine:IX86 >>templrf
+ echo -subsystem:windows >>templrf
+ echo -out:$(XPCOMINIT_LIB) >>templrf
+ echo $(XPCOMINIT_OBJS) >>templrf
+ link @templrf
+
swt.res:
rc $(RCFLAGS) -DSWT_ORG_FILENAME=\"$(SWT_LIB)\" -r -fo swt.res swt.rc
@@ -120,6 +179,12 @@ swt_awt.res:
swt_wgl.res:
rc $(RCFLAGS) -DSWT_ORG_FILENAME=\"$(WGL_LIB)\" -r -fo swt_wgl.res swt_wgl.rc
+swt_xpcom.res:
+ rc $(RCFLAGS) -DSWT_ORG_FILENAME=\"$(XULRUNNER_LIB)\" -r -fo swt_xpcom.res swt_xpcom.rc
+
+swt_xpcominit.res:
+ rc $(RCFLAGS) -DSWT_ORG_FILENAME=\"$(XPCOMINIT_LIB)\" -r -fo swt_xpcom.res swt_xpcom.rc
+
install: all
copy *.dll $(OUTPUT_DIR)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java
index f9fe47c6d1..2709799e10 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java
@@ -1561,6 +1561,18 @@ public class SWT {
public static final int LONG = 1 << 28;
/**
+ * Style constant specifying that a Browser should use a Mozilla GRE
+ * for rendering its content (value is 1&lt;&lt;15).
+ * <p>
+ * <p><b>Used By:</b><ul>
+ * <li><code>Browser</code></li>
+ * </ul></p>
+ *
+ * @since 3.3
+ */
+ public static final int MOZILLA = 1 << 15;
+
+ /**
* Style constant for balloon behavior (value is 1&lt;&lt;12).
* <p><b>Used By:</b><ul>
* <li><code>ToolTip</code></li>

Back to the top