changeset 344:8198e6052012

more fixups:
author John Reimer <terminal.node@gmail.com>
date Mon, 27 Oct 2008 22:41:01 -0700
parents 96243e3ebcf0
children 5abc6f7f7a95
files dwt/browser/AppFileLocProvider.d dwt/browser/Browser.d dwt/browser/Download.d dwt/browser/Download_1_8.d dwt/browser/FilePicker.d dwt/browser/FilePicker_1_8.d dwt/browser/PromptDialog.d dwt/browser/SimpleEnumerator.d dwt/browser/VisibilityWindowAdapter.d dwt/internal/mozilla/nsIDownload.d dwt/internal/mozilla/nsIDownload_1_8.d dwt/internal/mozilla/nsIFilePicker.d dwt/internal/mozilla/nsIFilePicker_1_8.d dwt/internal/mozilla/nsIProgressDialog_1_8.d
diffstat 14 files changed, 153 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/dwt/browser/AppFileLocProvider.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/AppFileLocProvider.d	Mon Oct 27 22:41:01 2008 -0700
@@ -17,6 +17,7 @@
 
 import dwt.dwthelper.utils;
 import dwt.browser.Mozilla;
+import dwt.browser.SimpleEnumerator;
 
 import dwt.internal.Compatibility;
 
@@ -89,13 +90,13 @@
 void setProfilePath (String path) {
     profilePath = path;
     if (!Compatibility.fileExists (path, "")) { //$NON-NLS-1$
-        nsILocalFile result;
+        nsILocalFile file;
         scope auto nsEmbedString pathString = new nsEmbedString (toString16(path));
-        int rc = XPCOM.NS_NewLocalFile (cast(nsAString*)pathString, 1, &result);
+        int rc = XPCOM.NS_NewLocalFile (cast(nsAString*)pathString, 1, &file);
         if (rc !is XPCOM.NS_OK) Mozilla.error (rc);
-        if (result is null) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+        if (file is null) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
 
-        rc = result.Create (nsILocalFile.DIRECTORY_TYPE, 0700);
+        rc = file.Create (nsILocalFile.DIRECTORY_TYPE, 0700);
         if (rc !is XPCOM.NS_OK) Mozilla.error (rc);
         file.Release ();
     }
@@ -104,7 +105,7 @@
 /* nsIDirectoryServiceProvider2 */
 
 nsresult GetFiles (char* prop, nsISimpleEnumerator* _retval) {
-    String propertyName = prop.fromStringz;
+    String propertyName = fromStringz(prop);
     String[] propertyValues = null;
 
     if (propertyName == XPCOM.NS_APP_PLUGINS_DIR_LIST) {
@@ -114,8 +115,8 @@
             String value = Environment.get (XPCOM.MOZILLA_PLUGIN_PATH);
             if (value !is null) {
                 if (value.length > 0) {
-                    String separator = System.getProperty ("path.separator"); // $NON-NLS-1$
-                    foreach (segment; delimiter(value, separator))
+                    String separator = System.getProperty ("file.separator"); // $NON-NLS-1$
+                    foreach (segment; delimiters(value, separator))
                         pluginDirs ~= segment;
                 }
             }
@@ -140,14 +141,14 @@
         nsISupports[] files = new nsISupports [propertyValues.length];
         int index = 0;
         for (int i = 0; i < propertyValues.length; i++) {
-            scope auto pathString = new nsEmbedString (propertyValues[i]);
-            int rc = XPCOM.NS_NewLocalFile (cast(nsAString*)pathString, 1, &(cast(void*)localFile));
+            scope auto pathString = new nsEmbedString (toString16(propertyValues[i]));
+            int rc = XPCOM.NS_NewLocalFile (cast(nsAString*)pathString, 1, &localFile);
             if (rc !is XPCOM.NS_ERROR_FILE_UNRECOGNIZED_PATH) {
                 /* value appears to be a valid pathname */
                 if (rc !is XPCOM.NS_OK) Mozilla.error (rc);
                 if (localFile is null) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
 
-                rc = localFile.QueryInterface (nsIFile.NS_IFILE_IID, cast(void**)&file); 
+                rc = localFile.QueryInterface (&nsIFile.IID, cast(void**)&file); 
                 if (rc !is XPCOM.NS_OK) Mozilla.error (rc);
                 if (file is null) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
                 localFile.Release ();
@@ -158,9 +159,7 @@
 
         if (index < propertyValues.length) {
             /* there were some invalid values so remove the trailing empty array slots */
-            nsISupports[] temp = new nsISupports [index];
-            System.arraycopy (files, 0, temp, 0, index);
-            files = temp;
+            files = files[0..index];
         }
 
         auto enumerator = new SimpleEnumerator (files);
@@ -228,8 +227,8 @@
     *_retval = null;
     if (propertyValue !is null && propertyValue.length > 0) {
         nsILocalFile localFile;
-        scope auto pathString = new nsEmbedString (propertyValue);
-        int rc = XPCOM.NS_NewLocalFile (cast(nsAString*)pathString, 1, &(cast(void*)localFile));
+        scope auto pathString = new nsEmbedString (propertyValue.toString16());
+        int rc = XPCOM.NS_NewLocalFile (cast(nsAString*)pathString, 1, &localFile);
         if (rc !is XPCOM.NS_OK) Mozilla.error (rc);
         if (localFile is null) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
         
--- a/dwt/browser/Browser.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/Browser.d	Mon Oct 27 22:41:01 2008 -0700
@@ -14,6 +14,8 @@
 
 import dwt.dwthelper.utils;
 
+import tango.core.Thread;
+
 import dwt.DWT;
 import dwt.DWTError;
 import dwt.DWTException;
@@ -127,8 +129,8 @@
     if (parent !is null && !parent.isDisposed ()) {
         Display display = parent.getDisplay ();
         if (display !is null) {
-            if (display.getThread () is Thread.currentThread ()) {
-                display.setData (NO_INPUT_METHOD, "true"); //$NON-NLS-1$
+            if (display.getThread () is Thread.getThis ()) {
+                display.setData (NO_INPUT_METHOD, stringcast("true")); //$NON-NLS-1$
             }
         }
     }
--- a/dwt/browser/Download.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/Download.d	Mon Oct 27 22:41:01 2008 -0700
@@ -20,7 +20,9 @@
 
 //import dwt.internal.Compatibility;
 import XPCOM = dwt.internal.mozilla.XPCOM;
-import dwt.internal.mozilla.XPCOMObject;
+//import dwt.internal.mozilla.XPCOMObject;
+import dwt.internal.mozilla.prtime;
+import dwt.internal.mozilla.Common;
 import dwt.internal.mozilla.nsID;
 import dwt.internal.mozilla.nsIDownload;
 import dwt.internal.mozilla.nsIHelperAppLauncher;
@@ -29,6 +31,13 @@
 import dwt.internal.mozilla.nsISupports;
 import dwt.internal.mozilla.nsIURI;
 import dwt.internal.mozilla.nsIWebProgressListener;
+import dwt.internal.mozilla.nsIMIMEInfo;
+import dwt.internal.mozilla.nsIObserver;
+import dwt.internal.mozilla.nsIDOMWindow;
+import dwt.internal.mozilla.nsIWebProgress;
+import dwt.internal.mozilla.nsIRequest;
+import dwt.internal.mozilla.nsStringAPI;
+
 import dwt.layout.GridData;
 import dwt.layout.GridLayout;
 import dwt.widgets.Button;
@@ -56,7 +65,7 @@
 nsresult QueryInterface (nsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
  
-    if (*riid == nsISupports.IID)) {
+    if (*riid == nsISupports.IID) {
         *ppvObject = cast(void*)cast(nsISupports)this;
         AddRef();
         return XPCOM.NS_OK;
@@ -89,7 +98,7 @@
 /* nsIDownload */
 
 /* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
-int Init (nsIURI aSource, nsIURI aTarget, nsAString* aDisplayName, nsIMIMEInfo aMIMEInfo, PRTime startTime, PRBool aPersist) {
+nsresult Init (nsIURI aSource, nsIURI aTarget, nsAString* aDisplayName, nsIMIMEInfo aMIMEInfo, PRTime startTime, PRBool aPersist) {
     //nsIURI source = new nsIURI (aSource);
     scope auto aSpec = new nsEmbedString;
     int rc = aSource.GetHost (cast(nsAString*)aSpec);
@@ -138,7 +147,7 @@
         filename = aNativeTarget.toString;
     }
 
-    Listener listener = new Listener () {
+    Listener listener = new class() Listener  {
         public void handleEvent (Event event) {
             if (event.widget is cancel) {
                 shell.close ();
@@ -160,7 +169,8 @@
     gridLayout.verticalSpacing = 20;
     shell.setLayout(gridLayout);
     //msg = Compatibility.getMessage ("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
-    new Label (shell, DWT.SIMPLE).setText ("Saving " ~ filename ~ " from " ~ url);
+    auto lbl = new Label (shell, DWT.SIMPLE);
+    lbl.setText ("Saving " ~ filename ~ " from " ~ url);
     status = new Label (shell, DWT.SIMPLE);
     //msg = Compatibility.getMessage ("SWT_Download_Started"); //$NON-NLS-1$
     status.setText ("Downloading...");
@@ -201,7 +211,7 @@
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
-nsresult SetDisplayName (PRUNichar* aDisplayName) {
+nsresult SetDisplayName (PRUnichar* aDisplayName) {
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
@@ -225,7 +235,7 @@
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
-nsresult SetObserver (nsIOBserver aObserver) {
+nsresult SetObserver (nsIObserver aObserver) {
     if (aObserver !is null) {
         // nsISupports supports = new nsISupports (aObserver);
         nsIHelperAppLauncher result;
@@ -291,7 +301,7 @@
     return XPCOM.NS_OK;
 }
 
-nsresult OnSecurityChange (nsIWebProgresss aWebProgress, nsIRequest aRequest, PRUint32 state) {
+nsresult OnSecurityChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRUint32 state) {
     return XPCOM.NS_OK;
 }
 }
--- a/dwt/browser/Download_1_8.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/Download_1_8.d	Mon Oct 27 22:41:01 2008 -0700
@@ -13,11 +13,15 @@
 module dwt.browser.Download_1_8;
 
 import dwt.dwthelper.utils;
+import tango.text.convert.Format;
 
 import dwt.DWT;
 
 // import dwt.internal.Compatibility;
 import XPCOM = dwt.internal.mozilla.XPCOM;
+
+import dwt.internal.mozilla.Common;
+import dwt.internal.mozilla.prtime;
 import dwt.internal.mozilla.nsICancelable;
 import dwt.internal.mozilla.nsID;
 import dwt.internal.mozilla.nsIDownload_1_8;
@@ -25,6 +29,17 @@
 import dwt.internal.mozilla.nsISupports;
 import dwt.internal.mozilla.nsIURI;
 import dwt.internal.mozilla.nsIWebProgressListener;
+import dwt.internal.mozilla.nsIMIMEInfo;
+import dwt.internal.mozilla.nsIObserver;
+import dwt.internal.mozilla.nsIDOMWindow;
+import dwt.internal.mozilla.nsIWebProgress;
+import dwt.internal.mozilla.nsIRequest;
+import dwt.internal.mozilla.nsILocalFile;
+import dwt.internal.mozilla.nsStringAPI;
+import dwt.internal.mozilla.nsEmbedString;
+
+import dwt.browser.Mozilla;
+
 import dwt.layout.GridData;
 import dwt.layout.GridLayout;
 import dwt.widgets.Button;
@@ -46,20 +61,20 @@
 this () {
 }
 
-int AddRef () {
+nsrefcnt AddRef () {
     refCount++;
     return refCount;
 }
 
-int QueryInterface ( nsID* riid, void** ppvObject) {
+nsresult QueryInterface ( nsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
    
-    if (*riid == nsISupports.IID)) {
+    if (*riid == nsISupports.IID) {
         *ppvObject = cast(void*)cast(nsISupports)this;
         AddRef();
         return XPCOM.NS_OK;
     }
-    if (*riid == nsIDownload_1_8.IID)) {
+    if (*riid == nsIDownload_1_8.IID) {
         *ppvObject = cast(void*)cast(nsIDownload_1_8)this;
         AddRef();
         return XPCOM.NS_OK;
@@ -78,7 +93,7 @@
     return XPCOM.NS_ERROR_NO_INTERFACE;
 }
 
-int Release () {
+nsrefcnt Release () {
     refCount--;
     if (refCount is 0) return 0;
     return refCount;
@@ -87,7 +102,7 @@
 /* nsIDownload */
 
 /* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
-int Init_32 (nsIURI aSource, nsIURI aTarget, nsAstring* aDisplayName, nsIMIMEInfo aMIMEInfo, PRInt32 startTime1, PRIn32 startTime2, nsILocalFile aTempFile, nsICancelable aCancelable) {
+nsresult Init_32 (nsIURI aSource, nsIURI aTarget, nsAString* aDisplayName, nsIMIMEInfo aMIMEInfo, PRInt32 startTime1, PRInt32 startTime2, nsILocalFile aTempFile, nsICancelable aCancelable) {
     long startTime = (startTime2 << 32) + startTime1;
     return Init (aSource, aTarget, aDisplayName, aMIMEInfo, startTime, aTempFile, aCancelable);
 }
@@ -95,7 +110,7 @@
 // FIXME: I've hardcoded the string values in place of Compatibility.getMessage calls in 
 // the Init method; this will need fixing in future releases. -JJR
 
-int Init (nsIURI aSource, nsIURI aTarget, nsAstring* aDisplayName, nsIMIMEInfo aMIMEInfo, PRTime startTime, nsILocalFile aTempFile, nsICancelable aCancelable) {
+nsresult Init (nsIURI aSource, nsIURI aTarget, nsAString* aDisplayName, nsIMIMEInfo aMIMEInfo, PRTime startTime, nsILocalFile aTempFile, nsICancelable aCancelable) {
     cancelable = aCancelable;
     // nsIURI source = new nsIURI (aSource);
     scope auto aSpec = new nsEmbedCString;
@@ -110,7 +125,7 @@
 
     //nsIURI target = new nsIURI (aTarget);
     scope auto aPath = new nsEmbedCString;
-    rc = aTarget.GetPath (aPath);
+    rc = aTarget.GetPath (cast(nsACString*)aPath);
     if (rc !is XPCOM.NS_OK) Mozilla.error (rc);
     //length = XPCOM.nsEmbedCString_Length (aPath);
     //buffer = XPCOM.nsEmbedCString_get (aPath);
@@ -118,12 +133,12 @@
     //XPCOM.memmove (dest, buffer, length);
     //XPCOM.nsEmbedCString_delete (aPath);
     String filename = aPath.toString;
-    int separator = locatePrior(filename, System.getProperty ("file.separator"));
-    //int separator = filename.lastIndexOf (System.getProperty ("file.separator"));   //$NON-NLS-1$
+    //int separator = locatePrior(filename, System.getProperty ("file.separator"));
+    int separator = filename.lastIndexOf (System.getProperty ("file.separator"));   //$NON-NLS-1$
     // NOTE: Not sure if this is correct; watch out for bugs here. -JJR
-    filename = filename[separator + 1 .. $];
+    filename = filename.substring (separator + 1);
 
-    Listener listener = new Listener() {
+    Listener listener = new class() Listener {
         public void handleEvent (Event event) {
             if (event.widget is cancel) {
                 shell.close ();
@@ -147,7 +162,8 @@
     gridLayout.verticalSpacing = 20;
     shell.setLayout (gridLayout);
     //msg = Compatibility.getMessage ("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
-    new Label (shell, DWT.SIMPLE).setText ("Saving " ~ filename ~ " from " ~ url );
+    auto lbl = new Label (shell, DWT.SIMPLE);
+    lbl.setText ("Saving " ~ filename ~ " from " ~ url );
     status = new Label (shell, DWT.SIMPLE);
     //msg = Compatibility.getMessage ("SWT_Download_Started"); //$NON-NLS-1$
     status.setText ("Downloading...");
@@ -169,7 +185,7 @@
     return XPCOM.NS_OK;
 }
 
-nsresult GetAmountTransferred (PRUInt64* arg0) {
+nsresult GetAmountTransferred (PRUint64* arg0) {
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
@@ -189,7 +205,7 @@
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
-nsresult GetSize (PRUInt64* arg0) {
+nsresult GetSize (PRUint64* arg0) {
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
@@ -218,7 +234,7 @@
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
-nsresult GetObserver (nsIOBserver* aObserver) {
+nsresult GetObserver (nsIObserver* aObserver) {
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
@@ -234,7 +250,7 @@
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
-nsresult SetObserver (nsIOBserver aObserver) {
+nsresult SetObserver (nsIObserver aObserver) {
     return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
 }
 
@@ -263,7 +279,7 @@
     if (shell !is null && !shell.isDisposed ()) {
         //Object[] arguments = {new Long (currentKBytes), new Long (totalKBytes)};
         //String statusMsg = Compatibility.getMessage ("SWT_Download_Status", arguments); //$NON-NLS-1$
-        String statusMsg = format("Download:  {0} KB of {1} KB", currentKBytes, totalKBytes); 
+        String statusMsg = Format("Download:  {0} KB of {1} KB", currentKBytes, totalKBytes); 
         status.setText (statusMsg);
         shell.layout (true);
         shell.getDisplay ().update ();
@@ -271,11 +287,11 @@
     return XPCOM.NS_OK;
 }
 
-nsresult OnSecurityChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRUInt32 state) {
+nsresult OnSecurityChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRUint32 state) {
     return XPCOM.NS_OK;
 }
 
-nsresult OnStateChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRUInt32 aStateFlags, nsresult aStatus) {
+nsresult OnStateChange (nsIWebProgress aWebProgress, nsIRequest aRequest, PRUint32 aStateFlags, nsresult aStatus) {
     if ((aStateFlags & nsIWebProgressListener.STATE_STOP) !is 0) {
         cancelable = null;
         if (shell !is null && !shell.isDisposed ()) shell.dispose ();
--- a/dwt/browser/FilePicker.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/FilePicker.d	Mon Oct 27 22:41:01 2008 -0700
@@ -18,12 +18,18 @@
 
 import XPCOM = dwt.internal.mozilla.XPCOM;
 
+import dwt.internal.mozilla.Common;
 import dwt.internal.mozilla.nsEmbedString;
+import dwt.internal.mozilla.nsISupports;
 import dwt.internal.mozilla.nsID;
 import dwt.internal.mozilla.nsIFilePicker;
 import dwt.internal.mozilla.nsIFilePicker_1_8;
 import dwt.internal.mozilla.nsILocalFile;
-import dwt.internal.mozilla.nsISupports;
+import dwt.internal.mozilla.nsIFileURL;
+import dwt.internal.mozilla.nsIDOMWindow;
+import dwt.internal.mozilla.nsISimpleEnumerator;
+import dwt.internal.mozilla.nsStringAPI;
+
 import dwt.widgets.DirectoryDialog;
 import dwt.widgets.Display;
 import dwt.widgets.FileDialog;
@@ -80,7 +86,7 @@
  * answers a java string based on the type of string that is appropriate for the Mozilla
  * version being used.
  */
-override String parseAString (nsAString* string) {
+String parseAString (nsAString* string) {
     return null;
 }
 
--- a/dwt/browser/FilePicker_1_8.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/FilePicker_1_8.d	Mon Oct 27 22:41:01 2008 -0700
@@ -22,6 +22,6 @@
 
 String parseAString (nsAString* string) {
     if (string is null) return null;
-    return nsAString.toString(string));
+    return nsAString.toString(string);
 }
 }
--- a/dwt/browser/PromptDialog.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/PromptDialog.d	Mon Oct 27 22:41:01 2008 -0700
@@ -13,7 +13,7 @@
 module dwt.browser.PromptDialog;
 
 import Math = tango.math.Math; 
-//import dwt.dwthelper.utils;
+import dwt.dwthelper.utils;
 
 import dwt.DWT;
 import dwt.layout.GridData;
@@ -71,7 +71,7 @@
         data = new GridData ();
         data.horizontalAlignment = GridData.CENTER;
         okButton.setLayoutData (data);
-        okButton.addListener(DWT.Selection, new Listener() {
+        okButton.addListener(DWT.Selection, new class() Listener {
             public void handleEvent(Event event) {
                 if (checkButton !is null) checkValue = checkButton.getSelection() ? 1 : 0;
                 shell.close();
@@ -104,7 +104,7 @@
         label.setLayoutData (data);
 
         final Button[] buttons = new Button[4];
-        Listener listener = new Listener() {
+        Listener listener = new class() Listener {
             public void handleEvent(Event event) {
                 if (buttons[0] !is null) checkValue = buttons[0].getSelection() ? 1 : 0;
                 Widget widget = event.widget;
@@ -193,7 +193,7 @@
         valueText.setLayoutData(data);
 
         final Button[] buttons = new Button[3];
-        Listener listener = new Listener() {
+        Listener listener = new class() Listener {
             public void handleEvent(Event event) {
                 if (buttons[0] !is null) checkValue = buttons[0].getSelection() ? 1 : 0;
                 value = valueText.getText();
@@ -271,7 +271,7 @@
         passwordText.setLayoutData(data);
 
         final Button[] buttons = new Button[3];
-        Listener listener = new Listener() {
+        Listener listener = new class() Listener {
             public void handleEvent(Event event) {
                 if (buttons[0] !is null) checkValue = buttons[0].getSelection() ? 1 : 0;
                 user = userText.getText();
--- a/dwt/browser/SimpleEnumerator.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/SimpleEnumerator.d	Mon Oct 27 22:41:01 2008 -0700
@@ -16,7 +16,8 @@
 
 //import dwt.internal.C;
 import XPCOM = dwt.internal.mozilla.XPCOM;
-//import dwt.internal.mozilla.XPCOMObject;
+
+import dwt.internal.mozilla.Common;
 import dwt.internal.mozilla.nsID;
 import dwt.internal.mozilla.nsISimpleEnumerator;
 import dwt.internal.mozilla.nsISupports;
--- a/dwt/browser/VisibilityWindowAdapter.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/browser/VisibilityWindowAdapter.d	Mon Oct 27 22:41:01 2008 -0700
@@ -13,7 +13,7 @@
 module dwt.browser.VisibilityWindowAdapter;
 
 import dwt.browser.WindowEvent;
-//import dwt.dwthelper.utils;
+import dwt.browser.VisibilityWindowListener;
 
 /**
  * This adapter class provides default implementations for the
--- a/dwt/internal/mozilla/nsIDownload.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/internal/mozilla/nsIDownload.d	Mon Oct 27 22:41:01 2008 -0700
@@ -1,6 +1,7 @@
 module dwt.internal.mozilla.nsIDownload;
 
 import dwt.internal.mozilla.Common;
+import dwt.internal.mozilla.nsISupports;
 import dwt.internal.mozilla.nsID;
 import dwt.internal.mozilla.nsITransfer;
 import dwt.internal.mozilla.nsIWebProgressListener;
@@ -9,6 +10,8 @@
 import dwt.internal.mozilla.nsIObserver; 
 import dwt.internal.mozilla.nsICancelable;
 import dwt.internal.mozilla.nsIMIMEInfo; 
+import dwt.internal.mozilla.nsStringAPI;
+import dwt.internal.mozilla.prtime;
 
 const char[] NS_IDOWNLOAD_IID_STR = "9e1fd9f2-9727-4926-85cd-f16c375bba6d";
 
@@ -18,7 +21,7 @@
 
 //extern(System)
 
-interface nsIDownload : nsISuppports {
+interface nsIDownload : nsISupports {
 
   static const char[] IID_STR = NS_IDOWNLOAD_IID_STR;
   static const nsIID IID = NS_IDOWNLOAD_IID;
--- a/dwt/internal/mozilla/nsIDownload_1_8.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/internal/mozilla/nsIDownload_1_8.d	Mon Oct 27 22:41:01 2008 -0700
@@ -1,4 +1,4 @@
-module dwt.internal.mozilla.nsIDownload;
+module dwt.internal.mozilla.nsIDownload_1_8;
 
 import dwt.internal.mozilla.Common;
 import dwt.internal.mozilla.nsID;
--- a/dwt/internal/mozilla/nsIFilePicker.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/internal/mozilla/nsIFilePicker.d	Mon Oct 27 22:41:01 2008 -0700
@@ -9,11 +9,11 @@
 import dwt.internal.mozilla.nsISimpleEnumerator;
 import dwt.internal.mozilla.nsStringAPI;
 
-const char[] NS_IFILEPICKER_IID_STR = "80faf095-c807-4558-a2cc-185ed70754ea";
+const char[] NS_IFILEPICKER_IID_STR = "c47de916-1dd1-11b2-8141-82507fa02b21";
 
 const nsIID NS_IFILEPICKER_IID= 
-  {0x80faf095, 0xc807, 0x4558, 
-    [ 0xa2, 0xcc, 0x18, 0x5e, 0xd7, 0x07, 0x54, 0xea ]};
+  {0xc47de916, 0x1dd1, 0x11b2, 
+    [ 0x81, 0x41, 0x82, 0x50, 0x7f, 0xa0, 0x2b, 0x21 ]};
 
 //extern(System)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/mozilla/nsIFilePicker_1_8.d	Mon Oct 27 22:41:01 2008 -0700
@@ -0,0 +1,55 @@
+module dwt.internal.mozilla.nsIFilePicker_1_8;
+
+import dwt.internal.mozilla.Common;
+import dwt.internal.mozilla.nsID;
+import dwt.internal.mozilla.nsISupports;
+import dwt.internal.mozilla.nsILocalFile;
+import dwt.internal.mozilla.nsIFileURL; 
+import dwt.internal.mozilla.nsIDOMWindow; 
+import dwt.internal.mozilla.nsISimpleEnumerator;
+import dwt.internal.mozilla.nsStringAPI;
+
+const char[] NS_IFILEPICKER_IID_STR = "80faf095-c807-4558-a2cc-185ed70754ea";
+
+const nsIID NS_IFILEPICKER_IID= 
+  {0x80faf095, 0xc807, 0x4558, 
+    [ 0xa2, 0xcc, 0x18, 0x5e, 0xd7, 0x07, 0x54, 0xea ]};
+
+//extern(System)
+interface nsIFilePicker_1_8 : nsISupports {
+
+  static const char[] IID_STR = NS_IFILEPICKER_IID_STR;
+  static const nsIID IID = NS_IFILEPICKER_IID;
+
+  enum { modeOpen = 0 };
+  enum { modeSave = 1 };
+  enum { modeGetFolder = 2 };
+  enum { modeOpenMultiple = 3 };
+  enum { returnOK = 0 };
+  enum { returnCancel = 1 };
+  enum { returnReplace = 2 };
+  enum { filterAll = 1 };
+  enum { filterHTML = 2 };
+  enum { filterText = 4 };
+  enum { filterImages = 8 };
+  enum { filterXML = 16 };
+  enum { filterXUL = 32 };
+  enum { filterApps = 64 };
+
+  nsresult Init(nsIDOMWindow parent, nsAString * title, PRInt16 mode);
+  nsresult AppendFilters(PRInt32 filterMask);
+  nsresult AppendFilter(nsAString * title, nsAString * filter);
+  nsresult GetDefaultString(nsAString * aDefaultString);
+  nsresult SetDefaultString(nsAString * aDefaultString);
+  nsresult GetDefaultExtension(nsAString * aDefaultExtension);
+  nsresult SetDefaultExtension(nsAString * aDefaultExtension);
+  nsresult GetFilterIndex(PRInt32 *aFilterIndex);
+  nsresult SetFilterIndex(PRInt32 aFilterIndex);
+  nsresult GetDisplayDirectory(nsILocalFile  *aDisplayDirectory);
+  nsresult SetDisplayDirectory(nsILocalFile  aDisplayDirectory);
+  nsresult GetFile(nsILocalFile  *aFile);
+  nsresult GetFileURL(nsIFileURL  *aFileURL);
+  nsresult GetFiles(nsISimpleEnumerator  *aFiles);
+  nsresult Show(PRInt16 *_retval);
+
+}
\ No newline at end of file
--- a/dwt/internal/mozilla/nsIProgressDialog_1_8.d	Mon Oct 27 06:28:02 2008 -0700
+++ b/dwt/internal/mozilla/nsIProgressDialog_1_8.d	Mon Oct 27 22:41:01 2008 -0700
@@ -6,6 +6,7 @@
 import dwt.internal.mozilla.nsIDownload;
 import dwt.internal.mozilla.nsIDOMWindow; 
 import dwt.internal.mozilla.nsIObserver;
+import dwt.internal.mozilla.nsIDownload_1_8;
 
 const char[] NS_IPROGRESSDIALOG_IID_STR = "20e790a2-76c6-462d-851a-22ab6cbbe48b";