1
|
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 */
|