diff d2/qt/core/QString.d @ 311:8674fd5f34f4 lifetime

Added d1/d2 top directories
author maxter <spambox@d-coding.com>
date Wed, 23 Dec 2009 16:17:22 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/d2/qt/core/QString.d	Wed Dec 23 16:17:22 2009 +0200
@@ -0,0 +1,49 @@
+module qt.core.QString;
+
+import qt.QGlobal;
+
+version (Tango)
+{
+    public import tango.text.convert.Utf : toUTF8 = toString;
+}
+else
+{
+    public import std.utf : toUTF8;
+}
+
+struct QString
+{
+    public static QString opCall(void* ptr, bool proxy) {
+        QString str;
+        str.native_id = ptr;
+        return str;
+    }
+    
+    private void* native_id;
+    
+    public static final string toNativeString(void* qstring) {
+        wchar* arr = __qtd_QString_utf16(qstring);
+        int size = __qtd_QString_size(qstring);
+        return .toUTF8(arr[0..size]);
+    }
+    
+    public final string toNativeString() {
+        return toNativeString(native_id);
+    }
+    
+    public void assign(string text) {
+        __qtd_QString_operatorAssign(native_id, text);
+    }
+    
+    public static string fromUtf8(string source) {
+        return source;
+    }
+/*    
+    public static string fromUtf16(wstring src) {
+        version(Tango)
+    }*/
+}
+
+private extern (C) wchar* __qtd_QString_utf16(void* __this_nativeId);
+private extern (C) int __qtd_QString_size(void* __this_nativeId);
+private extern (C) void __qtd_QString_operatorAssign(void* __this_nativeId, string text);
\ No newline at end of file