Mercurial > projects > qtd
annotate include/qtd_core.h @ 257:17b5e13364b7 lifetime
(none)
author | maxter |
---|---|
date | Wed, 16 Sep 2009 13:56:02 +0000 |
parents | 34a37904ff77 |
children |
rev | line source |
---|---|
1 | 1 /** |
2 * | |
3 * Copyright: Copyright QtD Team, 2008-2009 | |
4 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a> | |
5 * | |
6 * Copyright QtD Team, 2008-2009 | |
7 * Distributed under the Boost Software License, Version 1.0. | |
8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 * | |
10 */ | |
11 | |
12 #ifndef QTD_CORE_H | |
13 #define QTD_CORE_H | |
14 | |
15 #include <QAbstractItemModel> | |
257 | 16 #include <QObject> |
1 | 17 |
18 #if defined WIN32 | |
19 #define DLL_PUBLIC __declspec(dllexport) | |
20 #else | |
21 #define DLL_PUBLIC | |
22 #endif | |
23 | |
24 #ifdef CPP_SHARED | |
254 | 25 #define QTD_EXPORT(TYPE, NAME, ARGS) \ |
1 | 26 extern "C" typedef TYPE (*pf_##NAME)ARGS; \ |
27 extern "C" pf_##NAME qtd_get_##NAME(); | |
28 #define QTD_EXPORT_VAR(NAME) \ | |
29 pf_##NAME m_##NAME; \ | |
30 extern "C" DLL_PUBLIC pf_##NAME qtd_get_##NAME() { return m_##NAME; } | |
254 | 31 #define QTD_EXPORT_VAR_SET(NAME, VALUE) \ |
1 | 32 m_##NAME = (pf_##NAME) VALUE |
33 #else | |
254 | 34 #define QTD_EXPORT(TYPE, NAME, ARGS) \ |
1 | 35 extern "C" TYPE NAME ARGS; |
36 #endif | |
37 | |
257 | 38 |
39 //TODO: user data ID must be registered with QObject::registerUserData; | |
40 #define userDataId 0 | |
41 | |
1 | 42 struct QModelIndexAccessor { |
43 int row; | |
44 int col; | |
45 void *ptr; | |
46 QAbstractItemModel *model; | |
47 }; | |
48 | |
49 struct DArray { | |
50 size_t length; | |
51 void* ptr; | |
52 }; | |
53 | |
254 | 54 class QtD_Entity |
55 { | |
56 public: | |
57 void* dId; | |
58 | |
59 QtD_Entity(void* id) : dId(id) | |
60 { | |
61 } | |
62 }; | |
105
3aa118a9ae71
each QObject now has associated child QObject for handling signals. fixes #15
eldar
parents:
35
diff
changeset
|
63 |
257 | 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 | |
33
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
73 #define Array DArray |
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
74 |
1 | 75 #ifdef CPP_SHARED |
76 typedef void (*pfunc_abstr)(); | |
77 #endif | |
78 | |
254 | 79 QTD_EXPORT(void, qtd_toUtf8, (const unsigned short* arr, uint size, void* str)) |
80 QTD_EXPORT(void, qtd_dummy, ()) | |
257 | 81 QTD_EXPORT(void, qtd_delete_d_object, (void* dPtr)) |
1 | 82 |
83 #ifdef CPP_SHARED | |
254 | 84 #define qtd_toUtf8 qtd_get_qtd_toUtf8() |
85 #define qtd_dummy qtd_get_qtd_dummy() | |
257 | 86 #define qtd_delete_d_object qtd_get_qtd_delete_d_object() |
1 | 87 #endif |
88 | |
89 extern "C" QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia); | |
90 extern "C" QModelIndexAccessor qtd_from_QModelIndex(const QModelIndex &index); | |
91 | |
254 | 92 |
93 | |
1 | 94 #endif // QTD_CORE_H |