Mercurial > projects > qtd
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;