changeset 53:7e78af7adab5

[swt lin]
author Frank Benoit <benoit@tionex.de>
date Fri, 27 Mar 2009 21:29:10 +0100
parents fa9548cd8d89
children 70388b0e6dad
files org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/AppFileLocProvider.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/DownloadFactory.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download_1_8.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/FilePicker.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/FilePickerFactory.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialog.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/InputStream.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Mozilla.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/MozillaDelegate.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2Factory.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/SimpleEnumerator.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/WindowCreator2.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/Clipboard.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/ClipboardProxy.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/DragSource.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/DropTarget.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/URLTransfer.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/gtk/OS.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsEmbedString.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsIServiceManager.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsISupports.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsStringAPI.d
diffstat 26 files changed, 67 insertions(+), 58 deletions(-) [+]
line wrap: on
line diff
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/AppFileLocProvider.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/AppFileLocProvider.d	Fri Mar 27 21:29:10 2009 +0100
@@ -68,7 +68,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
 
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download.d	Fri Mar 27 21:29:10 2009 +0100
@@ -68,7 +68,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
  
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/DownloadFactory.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/DownloadFactory.d	Fri Mar 27 21:29:10 2009 +0100
@@ -34,7 +34,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download_1_8.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download_1_8.d	Fri Mar 27 21:29:10 2009 +0100
@@ -66,7 +66,7 @@
 }
 
 extern(System)
-nsresult QueryInterface ( nsID* riid, void** ppvObject) {
+nsresult QueryInterface ( cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
    
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/FilePicker.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/FilePicker.d	Fri Mar 27 21:29:10 2009 +0100
@@ -59,7 +59,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/FilePickerFactory.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/FilePickerFactory.d	Fri Mar 27 21:29:10 2009 +0100
@@ -38,7 +38,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     //nsID guid = new nsID ();
     //XPCOM.memmove (guid, riid, nsID.sizeof);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialog.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialog.d	Fri Mar 27 21:29:10 2009 +0100
@@ -58,7 +58,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     
     if (*riid == nsISupports.IID) {
@@ -168,12 +168,12 @@
 +/
     //int span = XPCOM.strlen_PRUnichar (aDefaultFile);
     // XPCOM.memmove (dest, aDefaultFile, length * 2);
-    String defaultFile = Utf.toString(fromString16z(aDefaultFile));
+    String defaultFile = String_valueOf(fromString16z(aDefaultFile));
 
     //span = XPCOM.strlen_PRUnichar (aSuggestedFileExtension);
     //dest = new char[length];
     //XPCOM.memmove (dest, aSuggestedFileExtension, length * 2);
-    String suggestedFileExtension =  Utf.toString(fromString16z(aSuggestedFileExtension));
+    String suggestedFileExtension =  String_valueOf(fromString16z(aSuggestedFileExtension));
 
     Shell shell = new Shell ();
     FileDialog fileDialog = new FileDialog (shell, SWT.SAVE);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.d	Fri Mar 27 21:29:10 2009 +0100
@@ -39,7 +39,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.d	Fri Mar 27 21:29:10 2009 +0100
@@ -52,7 +52,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
 
     if (*riid is nsISupports.IID) {
@@ -95,12 +95,12 @@
     //int length = XPCOM.strlen_PRUnichar (aDefaultFileName);
     //char[] dest = new char[length];
     //XPCOM.memmove (dest, aDefaultFileName, length * 2);
-    String defaultFile = Utf.toString(fromString16z(aDefaultFileName));
+    String defaultFile = String_valueOf(fromString16z(aDefaultFileName));
 
     //length = XPCOM.strlen_PRUnichar (aSuggestedFileExtension);
     //dest = new char[length];
     //XPCOM.memmove (dest, aSuggestedFileExtension, length * 2);
-    String suggestedFileExtension = Utf.toString(fromString16z(aSuggestedFileExtension));
+    String suggestedFileExtension = String_valueOf(fromString16z(aSuggestedFileExtension));
 
     Shell shell = new Shell ();
     FileDialog fileDialog = new FileDialog (shell, SWT.SAVE);
@@ -116,7 +116,7 @@
         if (rc !is XPCOM.NS_OK) Mozilla.error (rc,__FILE__,__LINE__);
         return XPCOM.NS_ERROR_FAILURE;
     }
-    scope auto path = new nsEmbedString (name.toString16());
+    scope auto path = new nsEmbedString (name.toWCharArray());
     
     nsILocalFile localFile;
     int rc = XPCOM.NS_NewLocalFile (cast(nsAString*)path, 1, &localFile);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/InputStream.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/InputStream.d	Fri Mar 27 21:29:10 2009 +0100
@@ -40,7 +40,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     //nsID guid = new nsID ();
     //XPCOM.memmove (guid, riid, nsID.sizeof);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Mozilla.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Mozilla.d	Fri Mar 27 21:29:10 2009 +0100
@@ -17,7 +17,6 @@
 
 version(Tango){
 import tango.text.locale.Core;
-import tango.io.Console;
 import tango.sys.Environment;
 import tango.stdc.string;
 } else { // Phobos
@@ -157,10 +156,10 @@
     static bool Initialized, IsPre_1_8, PerformedVersionCheck, XPCOMWasGlued, XPCOMInitWasGlued;
 
     /* XULRunner detect constants */
-    static const String GRERANGE_LOWER = "1.8.1.2"; //$NON-NLS-1$
-    static const String GRERANGE_LOWER_FALLBACK = "1.8"; //$NON-NLS-1$
+    static String GRERANGE_LOWER = "1.8.1.2"; //$NON-NLS-1$
+    static String GRERANGE_LOWER_FALLBACK = "1.8"; //$NON-NLS-1$
     static const bool LowerRangeInclusive = true;
-    static const String GRERANGE_UPPER = "1.9.*"; //$NON-NLS-1$
+    static String GRERANGE_UPPER = "1.9.*"; //$NON-NLS-1$
     static const bool UpperRangeInclusive = true;
 
     static const int MAX_PORT = 65535;
@@ -315,7 +314,7 @@
                     rc = XPCOMInit.XPCOMGlueStartup (mozillaPath.ptr);
                     if (rc !is XPCOM.NS_OK) {
                         mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
-                        if (Device.DEBUG) Cerr ("cannot use detected XULRunner: ") (mozillaPath).newline; //$NON-NLS-1$
+                        if (Device.DEBUG) getDwtLogger().error (__FILE__, __LINE__, "cannot use detected XULRunner: {}", mozillaPath); //$NON-NLS-1$
                         
                         /* attempt to XPCOMGlueStartup the GRE pointed at by MOZILLA_FIVE_HOME */
                         auto ptr = Environment.get(XPCOM.MOZILLA_FIVE_HOME);
@@ -337,7 +336,7 @@
                                 if (rc !is XPCOM.NS_OK) {
                                     IsXULRunner = false;
                                     mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
-                                    if (Device.DEBUG) Cerr ("failed to start as XULRunner: " )(mozillaPath).newline; //$NON-NLS-1$
+                                    if (Device.DEBUG) getDwtLogger().error( __FILE__, __LINE__, "failed to start as XULRunner: {}", mozillaPath); //$NON-NLS-1$
                                 }
                             }
                         } 
@@ -350,7 +349,7 @@
         }
 
         if (IsXULRunner) {
-            if (Device.DEBUG) Cerr ("XULRunner path: ") (mozillaPath).newline; //$NON-NLS-1$
+            if (Device.DEBUG) getDwtLogger().error( __FILE__, __LINE__, "XULRunner path: {}", mozillaPath); //$NON-NLS-1$
 
             XPCOMWasGlued = true;
 
@@ -376,7 +375,7 @@
                 browser.dispose ();
                 SWT.error (SWT.ERROR_NO_HANDLES, null, " [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]"); //$NON-NLS-1$
             }
-            if (Device.DEBUG) Cerr ("Mozilla path: ") (mozillaPath).newline; //$NON-NLS-1$
+            if (Device.DEBUG) getDwtLogger().error( __FILE__, __LINE__, "Mozilla path: {}", mozillaPath); //$NON-NLS-1$
 
             /*
             * Note.  Embedding a Mozilla GTK1.2 causes a crash.  The workaround
@@ -1445,7 +1444,7 @@
 }
 
 extern(D)
-static String error (int code, char[] file, int line) {
+static String error (int code, CString file, int line) {
     getDwtLogger().info( __FILE__, __LINE__,  "File: {}  Line: {}", file, line);
     throw new SWTError ("XPCOM error " ~ Integer.toString(code)); //$NON-NLS-1$
 }
@@ -1886,7 +1885,7 @@
 /* nsISupports */
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
 
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/MozillaDelegate.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/MozillaDelegate.d	Fri Mar 27 21:29:10 2009 +0100
@@ -30,7 +30,7 @@
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.browser.Mozilla;
 
-import org.eclipse.swt.internal.c.glib_object;
+//import org.eclipse.swt.internal.c.glib_object;
 
 class MozillaDelegate {
     Browser browser;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2.d	Fri Mar 27 21:29:10 2009 +0100
@@ -64,7 +64,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
  
     if (*riid == nsISupports.IID) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2Factory.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2Factory.d	Fri Mar 27 21:29:10 2009 +0100
@@ -38,7 +38,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     //nsID guid = new nsID ();
     //XPCOM.memmove (guid, riid, nsID.sizeof);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/SimpleEnumerator.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/SimpleEnumerator.d	Fri Mar 27 21:29:10 2009 +0100
@@ -41,7 +41,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     //nsID guid = new nsID ();
     //XPCOM.memmove (guid, riid, nsID.sizeof);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/WindowCreator2.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/WindowCreator2.d	Fri Mar 27 21:29:10 2009 +0100
@@ -54,7 +54,7 @@
 }
 
 extern(System)
-nsresult QueryInterface (nsID* riid, void** ppvObject) {
+nsresult QueryInterface (cnsID* riid, void** ppvObject) {
     if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
     //nsID guid = new nsID ();
     //XPCOM.memmove (guid, riid, nsID.sizeof);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/Clipboard.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/Clipboard.d	Fri Mar 27 21:29:10 2009 +0100
@@ -569,7 +569,7 @@
         if (pName is null) {
             continue;
         }
-        String buffer = fromStringz( pName ).dup;
+        String buffer = fromStringz( pName )._idup();
         OS.g_free (pName);
         result[count++] = "GTKCLIPBOARD "~buffer;
     }
@@ -578,7 +578,7 @@
         if (pName is null) {
             continue;
         }
-        String buffer = fromStringz( pName ).dup;
+        String buffer = fromStringz( pName )._idup();
         OS.g_free (pName);
         result[count++] = "GTKPRIMARYCLIPBOARD "~buffer;
     }
@@ -598,7 +598,7 @@
             GtkSelectionData* gtkSelectionData = selection_data;
             if (gtkSelectionData.length !is 0) {
                 types = cast(void*[])new int[gtkSelectionData.length * 8 / gtkSelectionData.format];
-                tango.stdc.string.memmove( cast(void*)types.ptr, gtkSelectionData.data, gtkSelectionData.length );
+                OS.memmove( cast(void*)types.ptr, gtkSelectionData.data, gtkSelectionData.length );
             }
         } finally {
             OS.gtk_selection_data_free(selection_data);
@@ -614,7 +614,7 @@
             GtkSelectionData* gtkSelectionData = selection_data;
             if (gtkSelectionData.length !is 0) {
                 types = cast(void*[])new int[gtkSelectionData.length * 8 / gtkSelectionData.format];
-                tango.stdc.string.memmove( cast(void*)types, gtkSelectionData.data, gtkSelectionData.length);
+                OS.memmove( cast(void*)types, gtkSelectionData.data, gtkSelectionData.length);
             }
         } finally {
             OS.gtk_selection_data_free(selection_data);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/ClipboardProxy.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/ClipboardProxy.d	Fri Mar 27 21:29:10 2009 +0100
@@ -171,7 +171,7 @@
         pTargetsList = cast(GtkTargetEntry*)OS.g_malloc(GtkTargetEntry.sizeof * entries.length);
         int offset = 0;
         for (int i = 0; i < entries.length; i++) {
-            tango.stdc.string.memmove(pTargetsList + i, entries[i], GtkTargetEntry.sizeof);
+            OS.memmove(pTargetsList + i, entries[i], GtkTargetEntry.sizeof);
             offset += GtkTargetEntry.sizeof;
         }
         if ((clipboards & DND.CLIPBOARD) !is 0) {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/DragSource.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/DragSource.d	Fri Mar 27 21:29:10 2009 +0100
@@ -612,7 +612,7 @@
 
     void* pTargets = OS.g_malloc(targets.length * GtkTargetEntry.sizeof);
     for (int i = 0; i < targets.length; i++) {
-        tango.stdc.string.memmove(pTargets + i*GtkTargetEntry.sizeof, targets[i], GtkTargetEntry.sizeof);
+        OS.memmove(pTargets + i*GtkTargetEntry.sizeof, targets[i], GtkTargetEntry.sizeof);
     }
     targetList = OS.gtk_target_list_new(pTargets, targets.length);
 
@@ -642,15 +642,15 @@
         byte[] maskLine = new byte[maskStride];
         for (int y=0; y<h; y++) {
             auto offset = pixels + (y * stride);
-            tango.stdc.string.memmove(line.ptr, offset, stride);
+            OS.memmove(line.ptr, offset, stride);
             auto maskOffset = maskPixels + (y * maskStride);
-            tango.stdc.string.memmove(maskLine.ptr, maskOffset, maskStride);
+            OS.memmove(maskLine.ptr, maskOffset, maskStride);
             for (int x=0; x<w; x++) {
                 if (maskLine[x * 3] is 0) {
                     line[x * 4 + 3] = 0;
                 }
             }
-            tango.stdc.string.memmove(offset, line.ptr, stride);
+            OS.memmove(offset, line.ptr, stride);
         }
         OS.g_object_unref(maskPixbuf);
     } else {
@@ -666,11 +666,11 @@
             byte [] line = new byte [stride];
             for (int y = 0; y < h ; y++) {
                 auto offset = pixels + (y * stride);
-                tango.stdc.string.memmove (line.ptr, offset, stride);
+                OS.memmove (line.ptr, offset, stride);
                 for (int x = 0; x < w ; x++) {
                     line [x*4+3] = alpha [y*w +x];
                 }
-                tango.stdc.string.memmove (offset, line.ptr, stride);
+                OS.memmove (offset, line.ptr, stride);
             }
         }
     }
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/DropTarget.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/DropTarget.d	Fri Mar 27 21:29:10 2009 +0100
@@ -765,7 +765,7 @@
 
     auto pTargets = OS.g_malloc(targets.length * GtkTargetEntry.sizeof);
     for (int i = 0; i < targets.length; i++) {
-        tango.stdc.string.memmove(pTargets + i*GtkTargetEntry.sizeof, targets[i], GtkTargetEntry.sizeof);
+        OS.memmove(pTargets + i*GtkTargetEntry.sizeof, targets[i], GtkTargetEntry.sizeof);
     }
 
     int actions = opToOsOp(getStyle());
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/URLTransfer.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/URLTransfer.d	Fri Mar 27 21:29:10 2009 +0100
@@ -72,7 +72,7 @@
     if (!checkURL(object) || !isSupportedType(transferData)) {
         DND.error(DND.ERROR_INVALID_DATA);
     }
-    wchar[] string = (cast(ArrayWrapperString)object).array.toWCharArray();
+    String16 string = stringcast(object).toWCharArray();
     int byteCount = (string.length+1)*2;
     wchar* pValue = cast(wchar*)OS.g_malloc(byteCount);
     if (pValue is null) return;
@@ -106,7 +106,7 @@
             break;
         }
     }
-    String string = tango.text.convert.Utf.toString((cast(wchar*)transferData.pValue)[ 0 .. size ]);
+    String string = String_valueOf((cast(wchar*)transferData.pValue)[ 0 .. size ]);
     return new ArrayWrapperString( string );
 }
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/gtk/OS.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/gtk/OS.d	Fri Mar 27 21:29:10 2009 +0100
@@ -50,6 +50,7 @@
 public alias org.eclipse.swt.internal.c.glib_object.GPollFD GPollFD;
 public alias org.eclipse.swt.internal.c.glib_object.GClosure GClosure;
 public alias org.eclipse.swt.internal.c.glib_object.GList GList;
+public alias org.eclipse.swt.internal.c.glib_object.gpointer gpointer;
 public alias org.eclipse.swt.internal.c.glib_object.GObject GObject;
 public alias org.eclipse.swt.internal.c.glib_object.GTypeInfo GTypeInfo;
 public alias org.eclipse.swt.internal.c.glib_object.GCallback GCallback;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsEmbedString.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsEmbedString.d	Fri Mar 27 21:29:10 2009 +0100
@@ -8,10 +8,10 @@
 
 scope class nsEmbedString
 {    
-    this(wchar[] s)
+    this(String16 s)
     {
         nsresult result;
-        result = NS_StringContainerInit2(&str, s.ptr, s.length, 0);
+        result = NS_StringContainerInit2(&str, cast(wchar*)s.ptr, s.length, 0);
         if (XPCOM.NS_FAILED(result)) 
             throw new Exception("Init string container fail");
     }
@@ -29,12 +29,12 @@
         return cast(nsAString*)&str;
     }
 
-    wchar[] toString16()
+    String16 toString16()
     {
         wchar* buffer = null;
         PRBool terminated;
         uint len = NS_StringGetData(cast(nsAString*)&str, &buffer, &terminated);
-        return buffer[0 .. len].dup;
+        return buffer[0 .. len]._idup();
     }
     
     override String toString()
@@ -52,7 +52,7 @@
 
 scope class nsEmbedCString
 {
-    this(char[] s)
+    this(String s)
     {
         nsresult result;
         result = NS_CStringContainerInit2(&str, s.ptr, s.length, 0);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsIServiceManager.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsIServiceManager.d	Fri Mar 27 21:29:10 2009 +0100
@@ -18,7 +18,7 @@
 
 extern(System):
   nsresult GetService(nsCID * aClass, nsIID * aIID, void * *result);
-  nsresult GetServiceByContractID(char *aContractID, nsIID * aIID, void * *result);
+  nsresult GetServiceByContractID( in char *aContractID, cnsIID * aIID, void * *result);
   nsresult IsServiceInstantiated(nsCID * aClass, nsIID * aIID, PRBool *_retval);
   nsresult IsServiceInstantiatedByContractID(char *aContractID, nsIID * aIID, PRBool *_retval);
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsISupports.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsISupports.d	Fri Mar 27 21:29:10 2009 +0100
@@ -11,13 +11,20 @@
         { 0x00000000, 0x0000, 0x0000, 
           [ 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 ] };
 
+version(D_Version2){
+    mixin("alias const(nsIID) cnsIID;");
+    mixin("alias const(nsID) cnsID;");
+} else { // D1
+    alias nsIID cnsIID;
+    alias nsID cnsID;
+}
 interface IUnknown
 {
     static const char[] IID_STR = NS_ISUPPORTS_IID_STR;
     static const nsIID IID = NS_ISUPPORTS_IID;
 
 extern(System):
-    nsresult QueryInterface( nsIID* uuid, void **result);
+    nsresult QueryInterface( cnsIID* uuid, void **result);
 
     nsrefcnt AddRef();
     nsrefcnt Release();
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsStringAPI.d	Fri Mar 27 20:14:07 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsStringAPI.d	Fri Mar 27 21:29:10 2009 +0100
@@ -22,13 +22,15 @@
 }
 
 nsresult    NS_StringContainerInit ( nsStringContainer *aContainer );
-nsresult    NS_StringContainerInit2( nsStringContainer *aContainer, PRUnichar *aData, PRUint32                                      aDataLength, PRUint32 aFlags );
+nsresult    NS_StringContainerInit2( nsStringContainer *aContainer, in PRUnichar *aData, PRUint32
+        aDataLength, PRUint32 aFlags );
 void        NS_StringContainerFinish(nsStringContainer *aContainer);
 PRUint32    NS_StringGetData(nsAString *aStr, PRUnichar **aData, PRBool *aTerminated);
 PRUint32    NS_StringGetMutableData(nsAString *aStr, PRUint32 aDataLength, PRUnichar **aData);
 PRUnichar * NS_StringCloneData(nsAString *aStr);
-nsresult    NS_StringSetData(nsAString *aStr, PRUnichar *aData, PRUint32 aDataLength);
-nsresult    NS_StringSetDataRange( nsAString *aStr, PRUint32 aCutOffset, PRUint32 aCutLength,                                     PRUnichar *aData, PRUint32 aDataLength );
+nsresult    NS_StringSetData(nsAString *aStr, in PRUnichar *aData, PRUint32 aDataLength);
+nsresult    NS_StringSetDataRange( nsAString *aStr, PRUint32 aCutOffset, PRUint32 aCutLength,
+        in PRUnichar *aData, PRUint32 aDataLength );
 nsresult    NS_StringCopy(nsAString *aDestStr, nsAString *aSrcStr);
 
 /******************************************************************************
@@ -43,14 +45,14 @@
 }
 
 nsresult    NS_CStringContainerInit( nsCStringContainer *aContainer );
-nsresult    NS_CStringContainerInit2( nsCStringContainer *aContainer, char *aData, PRUint32                                          aDataLength, PRUint32 aFlags );
+nsresult    NS_CStringContainerInit2( nsCStringContainer *aContainer, in char *aData, PRUint32                                          aDataLength, PRUint32 aFlags );
 void        NS_CStringContainerFinish( nsCStringContainer *aContainer );
 PRUint32    NS_CStringGetData( nsACString *aStr, char **aData, PRBool *aTerminated );
 PRUint32    NS_CStringGetMutableData( nsACString *aStr, PRUint32 aDataLength, char **aData );
 char *      NS_CStringCloneData( nsACString *aStr);
-nsresult    NS_CStringSetData( nsACString *aStr, char *aData, PRUint32 aDataLength );
+nsresult    NS_CStringSetData( nsACString *aStr, in char *aData, PRUint32 aDataLength );
 nsresult    NS_CStringSetDataRange( nsACString *aStr, PRUint32 aCutOffset, 
-                                    PRUint32 aCutLength, char *aData, PRUint32 aDataLength );
+                                    PRUint32 aCutLength, in char *aData, PRUint32 aDataLength );
 nsresult    NS_CStringCopy( nsACString *aDestStr, nsACString *aSrcStr );
 
 /******************************************************************************
@@ -80,7 +82,7 @@
 struct nsAString
 {
 
-    static nsAString opCall(wchar[] s)
+    static nsAString opCall(String16 s)
     {
         nsAString result;
         NS_StringSetData(&result, cast(PRUnichar*)s, uint.max);