1 #ifndef ZUNE_CUSTOMCLASSES_H
2 #define ZUNE_CUSTOMCLASSES_H
4 #include <proto/muimaster.h>
6 #include <aros/symbolsets.h>
7 #include <aros/autoinit.h>
8 #include <aros/debug.h>
10 #define __ZUNE_CUSTOMCLASS_START(name) \
11 BOOPSI_DISPATCHER_PROTO(IPTR, name ## _Dispatcher, __class, __self, __msg); \
12 BOOPSI_DISPATCHER(IPTR, name ## _Dispatcher, __class, __self, __msg) \
14 switch (__msg->MethodID) \
17 #define __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
19 return DoSuperMethodA(__class, __self, __msg); \
24 BOOPSI_DISPATCHER_END \
26 struct MUI_CustomClass * name ## _CLASS; \
28 int name ## _Initialize(void); \
29 int name ## _Initialize(void) \
31 name ## _CLASS = MUI_CreateCustomClass \
33 base, parent_name, parent_class, \
34 sizeof(struct name ## _DATA), (APTR) name ## _Dispatcher \
37 if (!name ## _CLASS) \
41 "Could not create Zune custom class `" #name "'.", NULL \
50 void name ## _Deinitialize(void); \
51 void name ## _Deinitialize(void) \
53 MUI_DeleteCustomClass(name ## _CLASS); \
56 ADD2INIT(name ## _Initialize, 100); \
57 ADD2EXIT(name ## _Deinitialize, 100); \
59 #if !defined(ZCC_QUIET)
61 #define __ZUNE_CUSTOMCLASS_METHOD(mname, mid, m_msg_type) \
64 D(bug("[ZCC] ENTERING "__AROS_STR(mname) \
65 "("__AROS_STR(m_msg_type)")\n")); \
67 return (IPTR) mname(__class, __self, (m_msg_type)__msg) \
71 #define __ZUNE_CUSTOMCLASS_METHOD(mname, mid, m_msg_type) \
73 return (IPTR) mname(__class, __self, (m_msg_type)__msg) \
77 /******************************************************************/
79 #define ZUNE_CUSTOMCLASS_1(name, base, parent_name, parent_class, \
81 __ZUNE_CUSTOMCLASS_START(name) \
82 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
83 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
85 #define ZUNE_CUSTOMCLASS_2(name, base, parent_name, parent_class, \
88 __ZUNE_CUSTOMCLASS_START(name) \
89 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
90 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
91 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
93 #define ZUNE_CUSTOMCLASS_3(name, base, parent_name, parent_class, \
97 __ZUNE_CUSTOMCLASS_START(name) \
98 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
99 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
100 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
101 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
103 #define ZUNE_CUSTOMCLASS_4(name, base, parent_name, parent_class, \
108 __ZUNE_CUSTOMCLASS_START(name) \
109 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
110 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
111 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
112 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
113 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
115 #define ZUNE_CUSTOMCLASS_5(name, base, parent_name, parent_class, \
121 __ZUNE_CUSTOMCLASS_START(name) \
122 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
123 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
124 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
125 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
126 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
127 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
129 #define ZUNE_CUSTOMCLASS_6(name, base, parent_name, parent_class, \
136 __ZUNE_CUSTOMCLASS_START(name) \
137 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
138 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
139 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
140 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
141 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
142 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
143 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
145 #define ZUNE_CUSTOMCLASS_7(name, base, parent_name, parent_class, \
153 __ZUNE_CUSTOMCLASS_START(name) \
154 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
155 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
156 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
157 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
158 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
159 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
160 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
161 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
163 #define ZUNE_CUSTOMCLASS_8(name, base, parent_name, parent_class, \
172 __ZUNE_CUSTOMCLASS_START(name) \
173 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
174 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
175 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
176 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
177 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
178 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
179 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
180 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
181 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
183 #define ZUNE_CUSTOMCLASS_9(name, base, parent_name, parent_class, \
193 __ZUNE_CUSTOMCLASS_START(name) \
194 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
195 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
196 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
197 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
198 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
199 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
200 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
201 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
202 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
203 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
205 #define ZUNE_CUSTOMCLASS_10(name, base, parent_name, parent_class, \
216 __ZUNE_CUSTOMCLASS_START(name) \
217 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
218 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
219 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
220 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
221 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
222 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
223 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
224 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
225 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
226 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
227 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
229 /*************************************************************************/
231 #define __ZUNE_CUSTOMCLASS_REMPARENS(...) __VA_ARGS__
233 #define __ZUNE_CUSTOMCLASS_INLINEMETHOD(cname, mname, m_msg_type, m_code) \
234 IPTR mname(Class *CLASS, Object *self, m_msg_type message); \
235 IPTR mname(Class *CLASS, Object *self, m_msg_type message) \
237 struct cname ## _DATA *data __unused = INST_DATA(CLASS, self); \
239 { __ZUNE_CUSTOMCLASS_REMPARENS m_code } \
242 #define __ZUNE_CUSTOMCLASS_INSTDATA(cname, inst_data) \
243 struct cname ## _DATA { __ZUNE_CUSTOMCLASS_REMPARENS inst_data }
245 #define ZUNE_CUSTOMCLASS_INLINE_1(name, base, parent_name, parent_class, \
247 m1, m1_msg_type, m1_code) \
248 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
249 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
250 __ZUNE_CUSTOMCLASS_START(name) \
251 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
252 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
254 #define ZUNE_CUSTOMCLASS_INLINE_2(name, base, parent_name, parent_class, \
256 m1, m1_msg_type, m1_code, \
257 m2, m2_msg_type, m2_code) \
258 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
259 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
260 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
261 __ZUNE_CUSTOMCLASS_START(name) \
262 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
263 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
264 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
266 #define ZUNE_CUSTOMCLASS_INLINE_3(name, base, parent_name, parent_class, \
268 m1, m1_msg_type, m1_code, \
269 m2, m2_msg_type, m2_code, \
270 m3, m3_msg_type, m3_code) \
271 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
272 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
273 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
274 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
275 __ZUNE_CUSTOMCLASS_START(name) \
276 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
277 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
278 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
279 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
281 #define ZUNE_CUSTOMCLASS_INLINE_4(name, base, parent_name, parent_class, \
283 m1, m1_msg_type, m1_code, \
284 m2, m2_msg_type, m2_code, \
285 m3, m3_msg_type, m3_code, \
286 m4, m4_msg_type, m4_code) \
287 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
288 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
289 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
290 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
291 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
292 __ZUNE_CUSTOMCLASS_START(name) \
293 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
294 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
295 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
296 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
297 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
299 #define ZUNE_CUSTOMCLASS_INLINE_5(name, base, parent_name, parent_class, \
301 m1, m1_msg_type, m1_code, \
302 m2, m2_msg_type, m2_code, \
303 m3, m3_msg_type, m3_code, \
304 m4, m4_msg_type, m4_code, \
305 m5, m5_msg_type, m5_code) \
306 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
307 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
308 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
309 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
310 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
311 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
312 __ZUNE_CUSTOMCLASS_START(name) \
313 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
314 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
315 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
316 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
317 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
318 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
320 #define ZUNE_CUSTOMCLASS_INLINE_6(name, base, parent_name, parent_class, \
322 m1, m1_msg_type, m1_code, \
323 m2, m2_msg_type, m2_code, \
324 m3, m3_msg_type, m3_code, \
325 m4, m4_msg_type, m4_code, \
326 m5, m5_msg_type, m5_code, \
327 m6, m6_msg_type, m6_code) \
328 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
329 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
330 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
331 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
332 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
333 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
334 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
335 __ZUNE_CUSTOMCLASS_START(name) \
336 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
337 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
338 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
339 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
340 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
341 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
342 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
344 #define ZUNE_CUSTOMCLASS_INLINE_7(name, base, parent_name, parent_class, \
346 m1, m1_msg_type, m1_code, \
347 m2, m2_msg_type, m2_code, \
348 m3, m3_msg_type, m3_code, \
349 m4, m4_msg_type, m4_code, \
350 m5, m5_msg_type, m5_code, \
351 m6, m6_msg_type, m6_code, \
352 m7, m7_msg_type, m7_code) \
353 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
354 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
355 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
356 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
357 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
358 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
359 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
360 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
361 __ZUNE_CUSTOMCLASS_START(name) \
362 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
363 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
364 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
365 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
366 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
367 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
368 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
369 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
371 #define ZUNE_CUSTOMCLASS_INLINE_8(name, base, parent_name, parent_class, \
373 m1, m1_msg_type, m1_code, \
374 m2, m2_msg_type, m2_code, \
375 m3, m3_msg_type, m3_code, \
376 m4, m4_msg_type, m4_code, \
377 m5, m5_msg_type, m5_code, \
378 m6, m6_msg_type, m6_code, \
379 m7, m7_msg_type, m7_code, \
380 m8, m8_msg_type, m8_code) \
381 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
382 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
383 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
384 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
385 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
386 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
387 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
388 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
389 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
390 __ZUNE_CUSTOMCLASS_START(name) \
391 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
392 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
393 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
394 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
395 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
396 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
397 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
398 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
399 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
401 #define ZUNE_CUSTOMCLASS_INLINE_9(name, base, parent_name, parent_class, \
403 m1, m1_msg_type, m1_code, \
404 m2, m2_msg_type, m2_code, \
405 m3, m3_msg_type, m3_code, \
406 m4, m4_msg_type, m4_code, \
407 m5, m5_msg_type, m5_code, \
408 m6, m6_msg_type, m6_code, \
409 m7, m7_msg_type, m7_code, \
410 m8, m8_msg_type, m8_code, \
411 m9, m9_msg_type, m9_code) \
412 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
413 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
414 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
415 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
416 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
417 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
418 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
419 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
420 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
421 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
422 __ZUNE_CUSTOMCLASS_START(name) \
423 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
424 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
425 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
426 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
427 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
428 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
429 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
430 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
431 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
432 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
434 #define ZUNE_CUSTOMCLASS_INLINE_10(name, base, parent_name, parent_class, \
436 m1, m1_msg_type, m1_code, \
437 m2, m2_msg_type, m2_code, \
438 m3, m3_msg_type, m3_code, \
439 m4, m4_msg_type, m4_code, \
440 m5, m5_msg_type, m5_code, \
441 m6, m6_msg_type, m6_code, \
442 m7, m7_msg_type, m7_code, \
443 m8, m8_msg_type, m8_code, \
444 m9, m9_msg_type, m9_code, \
445 m10, m10_msg_type, m10_code) \
446 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
447 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
448 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
449 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
450 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
451 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
452 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
453 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
454 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
455 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
456 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
457 __ZUNE_CUSTOMCLASS_START(name) \
458 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
459 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
460 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
461 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
462 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
463 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
464 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
465 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
466 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
467 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
468 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
470 #define ZUNE_CUSTOMCLASS_INLINE_11(name, base, parent_name, parent_class, \
472 m1, m1_msg_type, m1_code, \
473 m2, m2_msg_type, m2_code, \
474 m3, m3_msg_type, m3_code, \
475 m4, m4_msg_type, m4_code, \
476 m5, m5_msg_type, m5_code, \
477 m6, m6_msg_type, m6_code, \
478 m7, m7_msg_type, m7_code, \
479 m8, m8_msg_type, m8_code, \
480 m9, m9_msg_type, m9_code, \
481 m10, m10_msg_type, m10_code, \
482 m11, m11_msg_type, m11_code) \
483 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
484 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
485 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
486 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
487 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
488 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
489 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
490 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
491 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
492 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
493 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
494 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m11, m11_msg_type, m11_code); \
495 __ZUNE_CUSTOMCLASS_START(name) \
496 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
497 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
498 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
499 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
500 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
501 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
502 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
503 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
504 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
505 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
506 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
507 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
509 #endif /* !ZUNE_CUSTOMCLASSES_H */