Mercurial > projects > qtd
comparison include/QObjectEntity.h @ 252:37eed70de029
More things broken than fixed. Rolling back to 263
author | maxter |
---|---|
date | Sat, 22 Aug 2009 12:50:58 +0000 |
parents | 7664de4a55e5 |
children | 34a37904ff77 |
comparison
equal
deleted
inserted
replaced
251:739d0ee5bd91 | 252:37eed70de029 |
---|---|
1 #ifndef QQOBJECTENTITY_H | 1 #ifndef QQOBJECTENTITY_H |
2 #define QQOBJECTENTITY_H | 2 #define QQOBJECTENTITY_H |
3 | 3 |
4 #include "qtd_core.h" | 4 #include <cstdlib> |
5 #include <qobject.h> | |
6 #include <iostream> | |
7 | 5 |
8 QTD_EXPORT(void, qtd_delete_d_qobject, (void* dPtr)) | 6 class Qtd_QObjectEntity |
9 | |
10 #ifdef CPP_SHARED | |
11 #define qtd_delete_d_qobject qtd_get_qtd_delete_d_qobject() | |
12 #endif | |
13 | |
14 //TODO: user data ID must be registered with QObject::registerUserData; | |
15 #define userDataId 0 | |
16 | |
17 class QtD_QObjectEntity : public QtD_Entity, public QObjectUserData | |
18 { | 7 { |
19 public: | 8 public: |
9 Qtd_QObjectEntity(void *d_ptr) { _d_ptr = d_ptr; } | |
10 void *d_entity() const { return _d_ptr; } | |
20 | 11 |
21 QtD_QObjectEntity(QObject *qObject, void *dId) : QtD_Entity(dId) | 12 private: |
22 { | 13 void *_d_ptr; |
23 qObject->setUserData(userDataId, this); | |
24 } | |
25 | |
26 virtual ~QtD_QObjectEntity() | |
27 { | |
28 qtd_delete_d_qobject(dId); | |
29 } | |
30 | |
31 inline static QtD_QObjectEntity* getQObjectEntity(const QObject *qObject) | |
32 { | |
33 return static_cast<QtD_QObjectEntity*>(qObject->userData(userDataId)); | |
34 } | |
35 }; | 14 }; |
36 | 15 |
37 #endif // QQOBJECTENTITY_H | 16 #endif // QQOBJECTENTITY_H |