diff include/qtd_core.h @ 257:17b5e13364b7 lifetime

(none)
author maxter
date Wed, 16 Sep 2009 13:56:02 +0000
parents 34a37904ff77
children
line wrap: on
line diff
--- a/include/qtd_core.h	Mon Aug 31 12:07:28 2009 +0000
+++ b/include/qtd_core.h	Wed Sep 16 13:56:02 2009 +0000
@@ -13,6 +13,7 @@
 #define QTD_CORE_H
 
 #include <QAbstractItemModel>
+#include <QObject>
 
 #if defined WIN32
   #define DLL_PUBLIC __declspec(dllexport)
@@ -34,6 +35,10 @@
     extern "C" TYPE NAME ARGS;
 #endif
 
+
+//TODO: user data ID must be registered with QObject::registerUserData;
+#define userDataId 0
+
 struct QModelIndexAccessor {
 	int row;
 	int col;
@@ -46,14 +51,6 @@
     void* ptr;
 };
 
-enum QtdObjectFlags
-{
-    qNone,
-    qNativeOwnership            = 0x01,
-    qDOwnership                 = 0x02
-    //gcManaged                 = 0x04
-};
-
 class QtD_Entity
 {
 public:
@@ -64,6 +61,15 @@
     }
 };
 
+class QtD_QObjectEntity : public QtD_Entity, public QObjectUserData
+{
+public:
+    QtD_QObjectEntity(QObject *qObject, void *dId);
+    virtual ~QtD_QObjectEntity();
+    void destroyEntity(QObject *qObject = NULL);
+    static QtD_QObjectEntity* getQObjectEntity(const QObject *qObject);
+};
+
 #define Array DArray
 
 #ifdef CPP_SHARED
@@ -72,10 +78,12 @@
 
 QTD_EXPORT(void, qtd_toUtf8, (const unsigned short* arr, uint size, void* str))
 QTD_EXPORT(void, qtd_dummy, ())
+QTD_EXPORT(void, qtd_delete_d_object, (void* dPtr))
 
 #ifdef CPP_SHARED
 #define qtd_toUtf8 qtd_get_qtd_toUtf8()
 #define qtd_dummy qtd_get_qtd_dummy()
+#define qtd_delete_d_object qtd_get_qtd_delete_d_object()
 #endif
 
 extern "C" QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia);