Mercurial > projects > qtd
comparison d2/qt/QObjectDefs.d @ 311:8674fd5f34f4 lifetime
Added d1/d2 top directories
author | maxter <spambox@d-coding.com> |
---|---|
date | Wed, 23 Dec 2009 16:17:22 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
310:5bcfe9e7db7f | 311:8674fd5f34f4 |
---|---|
1 module qt.QObjectDefs; | |
2 | |
3 //import qt.core.QGlobal; | |
4 //import qt.core.Qt; | |
5 import QGlobal; | |
6 | |
7 const byte Q_MOC_OUTPUT_REVISION = 59; | |
8 | |
9 template QT_TR_FUNCTIONS_NOUTF8() | |
10 { | |
11 static QString tr(char[] s, char[] c = null) | |
12 { return staticMetaObject.tr(s, c); } | |
13 static QString tr(char[] s, char[] c, int n) | |
14 { return staticMetaObject.tr(s, c, n); } | |
15 } | |
16 | |
17 template QT_TR_FUNCTIONS_UTF8() | |
18 { | |
19 static QString trUtf8(char[] s, char[] c = null) | |
20 { return staticMetaObject.trUtf8(s, c); } | |
21 static QString trUtf8(char[] s, char[] c, int n) | |
22 { return staticMetaObject.trUtf8(s, c, n); } | |
23 } | |
24 | |
25 template QT_TR_FUNCTIONS() | |
26 { | |
27 mixin QT_TR_FUNCTIONS_NOUTF8; | |
28 mixin QT_TR_FUNCTIONS_UTF8; | |
29 } | |
30 | |
31 template Q_OBJECT_CHECK() | |
32 { | |
33 void qt_check_for_QOBJECT_macro(T)(T _q_argument) const | |
34 { int i = qYouForgotTheQ_OBJECT_Macro(this, _q_argument); i = i; } | |
35 } | |
36 | |
37 int qYouForgotTheQ_OBJECT_Macro(T)(T, T) { return 0; } | |
38 | |
39 void qYouForgotTheQ_OBJECT_Macro(T1,T2)(T1, T2) {} | |
40 | |
41 template Q_OBJECT() | |
42 { | |
43 public mixin Q_OBJECT_CHECK; | |
44 public static const QMetaObject staticMetaObject; | |
45 public const QMetaObject *metaObject() const{} | |
46 public void *qt_metacast(const char *){} | |
47 public mixin QT_TR_FUNCTIONS; | |
48 public int qt_metacall(QMetaObject.Call, int, void **){} | |
49 } | |
50 | |
51 template Q_OBJECT_FAKE() | |
52 { | |
53 mixin Q_OBJECT; | |
54 } | |
55 | |
56 template Q_GADGET() | |
57 { | |
58 public static const QMetaObject staticMetaObject; | |
59 } | |
60 | |
61 char[] METHOD( char[] a ) { return "0"~a; } | |
62 char[] SLOT( char[] a ) { return "1"~a; } | |
63 char[] SIGNAL( char[] a ) { return "2"~a; } | |
64 | |
65 version(QT3_SUPPORT) { | |
66 const byte METHOD_CODE = 0; // member type codes | |
67 const byte SLOT_CODE = 1; | |
68 const byte SIGNAL_CODE = 2; | |
69 } | |
70 | |
71 const byte QMETHOD_CODE = 0; // member type codes | |
72 const byte QSLOT_CODE = 1; | |
73 const byte QSIGNAL_CODE = 2; | |
74 | |
75 QArgument!(T) Q_ARG(T)(char [] type, T data) | |
76 { return QArgument!(T)(type, data); } | |
77 | |
78 QReturnArgument!(T) Q_RETURN_ARG(T)(char [] type, T data) | |
79 { return QReturnArgument!(T)(type, data); } | |
80 | |
81 class QGenericArgument | |
82 { | |
83 public: | |
84 this(char[] aName = null, const void *aData = null) | |
85 { _data = aData; _name = aName; } | |
86 void *data() const { return cast(void *)(_data); } | |
87 char[] name() { return _name; } | |
88 | |
89 private: | |
90 const void *_data; | |
91 char[] _name; | |
92 }; | |
93 | |
94 class QGenericReturnArgument : QGenericArgument | |
95 { | |
96 }; | |
97 | |
98 class QArgument(T) : QGenericArgument | |
99 { | |
100 public: | |
101 this(char[] aName, T aData) | |
102 { this(aName, cast(void *)aData); } | |
103 }; | |
104 | |
105 class QReturnArgument(T) : QGenericReturnArgument | |
106 { | |
107 public: | |
108 this(char[] aName, T aData) | |
109 { this(aName, cast(void *)aData); } | |
110 }; | |
111 | |
112 //TODO(katrina) enable this when all the classes it uses are available | |
113 /*struct QMetaObject | |
114 { | |
115 char[] className() const; | |
116 const QMetaObject *superClass() const; | |
117 | |
118 //TODO(katrina) enable QObject cast(QObject obj) const; | |
119 | |
120 // ### Qt 4: Merge overloads | |
121 QString tr(const char *s, const char *c) const; | |
122 QString trUtf8(const char *s, const char *c) const; | |
123 QString tr(const char *s, const char *c, int n) const; | |
124 QString trUtf8(const char *s, const char *c, int n) const; | |
125 | |
126 int methodOffset() const; | |
127 int enumeratorOffset() const; | |
128 int propertyOffset() const; | |
129 int classInfoOffset() const; | |
130 | |
131 int methodCount() const; | |
132 int enumeratorCount() const; | |
133 int propertyCount() const; | |
134 int classInfoCount() const; | |
135 | |
136 int indexOfMethod(const char *method) const; | |
137 int indexOfSignal(const char *signal) const; | |
138 int indexOfSlot(const char *slot) const; | |
139 int indexOfEnumerator(const char *name) const; | |
140 int indexOfProperty(const char *name) const; | |
141 int indexOfClassInfo(const char *name) const; | |
142 | |
143 QMetaMethod method(int index) const; | |
144 QMetaEnum enumerator(int index) const; | |
145 QMetaProperty property(int index) const; | |
146 QMetaClassInfo classInfo(int index) const; | |
147 QMetaProperty userProperty() const; | |
148 | |
149 static bool checkConnectArgs(const char *signal, const char *method); | |
150 static QByteArray normalizedSignature(const char *method); | |
151 static QByteArray normalizedType(const char *type); | |
152 | |
153 // internal index-based connect | |
154 static bool connect(const QObject *sender, int signal_index, | |
155 const QObject *receiver, int method_index, | |
156 int type = 0, int *types = 0); | |
157 // internal index-based disconnect | |
158 static bool disconnect(const QObject *sender, int signal_index, | |
159 const QObject *receiver, int method_index); | |
160 // internal slot-name based connect | |
161 static void connectSlotsByName(QObject *o); | |
162 | |
163 // internal index-based signal activation | |
164 static void activate(QObject *sender, int signal_index, void **argv); | |
165 static void activate(QObject *sender, int from_signal_index, int to_signal_index, void **argv); | |
166 static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); | |
167 static void activate(QObject *sender, const QMetaObject *, int from_local_signal_index, int to_local_signal_index, void **argv); | |
168 // internal guarded pointers | |
169 static void addGuard(QObject **ptr); | |
170 static void removeGuard(QObject **ptr); | |
171 static void changeGuard(QObject **ptr, QObject *o); | |
172 | |
173 static bool invokeMethod(QObject *obj, const char *member, | |
174 qt.core.Qt.ConnectionType, | |
175 QGenericReturnArgument ret, | |
176 QGenericArgument val0 = QGenericArgument(0), | |
177 QGenericArgument val1 = QGenericArgument(), | |
178 QGenericArgument val2 = QGenericArgument(), | |
179 QGenericArgument val3 = QGenericArgument(), | |
180 QGenericArgument val4 = QGenericArgument(), | |
181 QGenericArgument val5 = QGenericArgument(), | |
182 QGenericArgument val6 = QGenericArgument(), | |
183 QGenericArgument val7 = QGenericArgument(), | |
184 QGenericArgument val8 = QGenericArgument(), | |
185 QGenericArgument val9 = QGenericArgument()); | |
186 | |
187 static bool invokeMethod(QObject *obj, const char *member, | |
188 QGenericReturnArgument ret, | |
189 QGenericArgument val0 = QGenericArgument(0), | |
190 QGenericArgument val1 = QGenericArgument(), | |
191 QGenericArgument val2 = QGenericArgument(), | |
192 QGenericArgument val3 = QGenericArgument(), | |
193 QGenericArgument val4 = QGenericArgument(), | |
194 QGenericArgument val5 = QGenericArgument(), | |
195 QGenericArgument val6 = QGenericArgument(), | |
196 QGenericArgument val7 = QGenericArgument(), | |
197 QGenericArgument val8 = QGenericArgument(), | |
198 QGenericArgument val9 = QGenericArgument()) | |
199 { | |
200 return invokeMethod(obj, member, qt.core.Qt.AutoConnection, ret, val0, val1, val2, val3, | |
201 val4, val5, val6, val7, val8, val9); | |
202 } | |
203 | |
204 static bool invokeMethod(QObject *obj, const char *member, | |
205 qt.core.Qt.ConnectionType type, | |
206 QGenericArgument val0 = QGenericArgument(0), | |
207 QGenericArgument val1 = QGenericArgument(), | |
208 QGenericArgument val2 = QGenericArgument(), | |
209 QGenericArgument val3 = QGenericArgument(), | |
210 QGenericArgument val4 = QGenericArgument(), | |
211 QGenericArgument val5 = QGenericArgument(), | |
212 QGenericArgument val6 = QGenericArgument(), | |
213 QGenericArgument val7 = QGenericArgument(), | |
214 QGenericArgument val8 = QGenericArgument(), | |
215 QGenericArgument val9 = QGenericArgument()) | |
216 { | |
217 return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, | |
218 val3, val4, val5, val6, val7, val8, val9); | |
219 } | |
220 | |
221 | |
222 static bool invokeMethod(QObject *obj, const char *member, | |
223 QGenericArgument val0 = QGenericArgument(0), | |
224 QGenericArgument val1 = QGenericArgument(), | |
225 QGenericArgument val2 = QGenericArgument(), | |
226 QGenericArgument val3 = QGenericArgument(), | |
227 QGenericArgument val4 = QGenericArgument(), | |
228 QGenericArgument val5 = QGenericArgument(), | |
229 QGenericArgument val6 = QGenericArgument(), | |
230 QGenericArgument val7 = QGenericArgument(), | |
231 QGenericArgument val8 = QGenericArgument(), | |
232 QGenericArgument val9 = QGenericArgument()) | |
233 { | |
234 return invokeMethod(obj, member, qt.core.Qt.AutoConnection, QGenericReturnArgument(), val0, | |
235 val1, val2, val3, val4, val5, val6, val7, val8, val9); | |
236 } | |
237 | |
238 enum Call { | |
239 InvokeMetaMethod, | |
240 ReadProperty, | |
241 WriteProperty, | |
242 ResetProperty, | |
243 QueryPropertyDesignable, | |
244 QueryPropertyScriptable, | |
245 QueryPropertyStored, | |
246 QueryPropertyEditable, | |
247 QueryPropertyUser | |
248 }; | |
249 | |
250 version(QT3_SUPPORT) { | |
251 const char *superClassName() const; | |
252 } | |
253 | |
254 struct d_struct{ // private data | |
255 const QMetaObject *superdata; | |
256 const char *stringdata; | |
257 const uint *data; | |
258 const QMetaObject **extradata; | |
259 }; | |
260 d_struct d; | |
261 }; | |
262 */ |