comparison d1/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 */