diff qt/QGlobal.d @ 110:136c9ee83ee5

put conversion code in separate functions
author eldar
date Mon, 01 Jun 2009 23:32:57 +0000
parents a5cba313c924
children 2a85b786fa3a
line wrap: on
line diff
--- a/qt/QGlobal.d	Mon Jun 01 07:15:52 2009 +0000
+++ b/qt/QGlobal.d	Mon Jun 01 23:32:57 2009 +0000
@@ -582,5 +582,18 @@
 const ushort QT_EDITION_EDUCATIONAL = QT_EDITION_DESKTOP;
 const ushort QT_EDITION_EVALUATION =  QT_EDITION_DESKTOP;
 
+T qObjectFromPtr(T)(void *__qt_return_value) {
+    if (__qt_return_value is null)
+        return null;
+    mixin("void* d_obj = qtd_" ~ T.stringof ~ "_d_pointer(__qt_return_value);");
+    if (d_obj is null) {
+        T new_obj = new T(__qt_return_value, true);
+        mixin("qtd_" ~ T.stringof ~ "_create_link(new_obj.nativeId, cast(void*) new_obj);");
+        new_obj.__no_real_delete = true;
+        return new_obj;
+    } else
+        return cast(T) d_obj;
+}
+
 mixin QT_END_NAMESPACE;
 mixin QT_END_HEADER;