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

(none)
author maxter
date Wed, 16 Sep 2009 13:56:02 +0000
parents 34a37904ff77
children
comparison
equal deleted inserted replaced
256:b1abe7f57321 257:17b5e13364b7
11 11
12 #ifndef QTD_CORE_H 12 #ifndef QTD_CORE_H
13 #define QTD_CORE_H 13 #define QTD_CORE_H
14 14
15 #include <QAbstractItemModel> 15 #include <QAbstractItemModel>
16 #include <QObject>
16 17
17 #if defined WIN32 18 #if defined WIN32
18 #define DLL_PUBLIC __declspec(dllexport) 19 #define DLL_PUBLIC __declspec(dllexport)
19 #else 20 #else
20 #define DLL_PUBLIC 21 #define DLL_PUBLIC
32 #else 33 #else
33 #define QTD_EXPORT(TYPE, NAME, ARGS) \ 34 #define QTD_EXPORT(TYPE, NAME, ARGS) \
34 extern "C" TYPE NAME ARGS; 35 extern "C" TYPE NAME ARGS;
35 #endif 36 #endif
36 37
38
39 //TODO: user data ID must be registered with QObject::registerUserData;
40 #define userDataId 0
41
37 struct QModelIndexAccessor { 42 struct QModelIndexAccessor {
38 int row; 43 int row;
39 int col; 44 int col;
40 void *ptr; 45 void *ptr;
41 QAbstractItemModel *model; 46 QAbstractItemModel *model;
44 struct DArray { 49 struct DArray {
45 size_t length; 50 size_t length;
46 void* ptr; 51 void* ptr;
47 }; 52 };
48 53
49 enum QtdObjectFlags
50 {
51 qNone,
52 qNativeOwnership = 0x01,
53 qDOwnership = 0x02
54 //gcManaged = 0x04
55 };
56
57 class QtD_Entity 54 class QtD_Entity
58 { 55 {
59 public: 56 public:
60 void* dId; 57 void* dId;
61 58
62 QtD_Entity(void* id) : dId(id) 59 QtD_Entity(void* id) : dId(id)
63 { 60 {
64 } 61 }
65 }; 62 };
66 63
64 class QtD_QObjectEntity : public QtD_Entity, public QObjectUserData
65 {
66 public:
67 QtD_QObjectEntity(QObject *qObject, void *dId);
68 virtual ~QtD_QObjectEntity();
69 void destroyEntity(QObject *qObject = NULL);
70 static QtD_QObjectEntity* getQObjectEntity(const QObject *qObject);
71 };
72
67 #define Array DArray 73 #define Array DArray
68 74
69 #ifdef CPP_SHARED 75 #ifdef CPP_SHARED
70 typedef void (*pfunc_abstr)(); 76 typedef void (*pfunc_abstr)();
71 #endif 77 #endif
72 78
73 QTD_EXPORT(void, qtd_toUtf8, (const unsigned short* arr, uint size, void* str)) 79 QTD_EXPORT(void, qtd_toUtf8, (const unsigned short* arr, uint size, void* str))
74 QTD_EXPORT(void, qtd_dummy, ()) 80 QTD_EXPORT(void, qtd_dummy, ())
81 QTD_EXPORT(void, qtd_delete_d_object, (void* dPtr))
75 82
76 #ifdef CPP_SHARED 83 #ifdef CPP_SHARED
77 #define qtd_toUtf8 qtd_get_qtd_toUtf8() 84 #define qtd_toUtf8 qtd_get_qtd_toUtf8()
78 #define qtd_dummy qtd_get_qtd_dummy() 85 #define qtd_dummy qtd_get_qtd_dummy()
86 #define qtd_delete_d_object qtd_get_qtd_delete_d_object()
79 #endif 87 #endif
80 88
81 extern "C" QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia); 89 extern "C" QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia);
82 extern "C" QModelIndexAccessor qtd_from_QModelIndex(const QModelIndex &index); 90 extern "C" QModelIndexAccessor qtd_from_QModelIndex(const QModelIndex &index);
83 91