Mercurial > projects > qtd
diff qt/core/QString.d @ 302:55ee4603365d signals
string arguments for signals
author | eldar_ins@eldar-laptop |
---|---|
date | Sat, 12 Dec 2009 03:22:54 +0500 |
parents | 5173835bb372 |
children |
line wrap: on
line diff
--- a/qt/core/QString.d Tue Dec 08 21:13:24 2009 +0000 +++ b/qt/core/QString.d Sat Dec 12 03:22:54 2009 +0500 @@ -13,30 +13,26 @@ struct QString { - public static QString opCall(void* ptr, bool proxy) { + public static QString opCall() + { QString str; - str.__nativeId = ptr; + qtd_QString_placed_ctor(&str); return str; } - public void* __nativeId; - - public static final string toNativeString(void* qstring) { - wchar* arr = qtd_QString_utf16(qstring); - int size = qtd_QString_size(qstring); - return .toUTF8(arr[0..size]); + ~this() + { + qtd_QString_call_destructor(&this); } - public final string toNativeString() { - return toNativeString(__nativeId); + void opAssign(string str) + { + qtd_QString_assign_fromUtf8(&this, str); } - public void assign(string text) { - qtd_QString_operatorAssign(__nativeId, text); - } - - public static string fromUtf8(string source) { - return source; + this(string str) + { + qtd_QString_new_fromUtf8_at(&this, str); } public static void __constructPlacedQString(void* place, string source) { @@ -67,6 +63,38 @@ enum bool isPointer = false; enum bool isDummy = false; } + +private: + void *dummy; // sizeof(QString) == sizeof(void*) +} + +struct QStringUtil +{ + 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 static string fromUtf8(string source) { + return source; + } + + public static QStringUtil opCall(void* ptr, bool proxy) { + QStringUtil str; + str.__nativeId = ptr; + return str; + } + + public void* __nativeId; + + public final string toNativeString() { + return QStringUtil.toNativeString(__nativeId); + } + + public void assign(string text) { + qtd_QString_operatorAssign(__nativeId, text); + } } private extern(C) void* qtd_QString_placed_copy(const void* orig, void* place); @@ -78,4 +106,7 @@ 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); -private extern (C) void qtd_QString_new_fromUtf8_at(void* place, string text); \ No newline at end of file +private extern (C) void* qtd_QString_new_fromUtf8_at(void* place, string text); + +private extern (C) void qtd_QString_placed_ctor(void* place); +private extern (C) void qtd_QString_assign_fromUtf8(QString *__qt_this, string text); \ No newline at end of file