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 #ifndef ZUNE_CUSTOMCLASS_PASS
11 #define ZUNE_CUSTOMCLASS_PASS 100
14 #define __ZUNE_CUSTOMCLASS_START(name) \
15 BOOPSI_DISPATCHER_PROTO(IPTR, name ## _Dispatcher, __class, __self, __msg); \
16 BOOPSI_DISPATCHER(IPTR, name ## _Dispatcher, __class, __self, __msg) \
18 switch (__msg->MethodID) \
21 #define __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
23 return DoSuperMethodA(__class, __self, __msg); \
28 BOOPSI_DISPATCHER_END \
30 struct MUI_CustomClass * name ## _CLASS; \
32 int name ## _Initialize(void); \
33 int name ## _Initialize(void) \
35 name ## _CLASS = MUI_CreateCustomClass \
37 base, parent_name, parent_class, \
38 sizeof(struct name ## _DATA), (APTR) name ## _Dispatcher \
41 if (!name ## _CLASS) \
45 "Could not create Zune custom class `" #name "'.", NULL \
54 void name ## _Deinitialize(void); \
55 void name ## _Deinitialize(void) \
57 MUI_DeleteCustomClass(name ## _CLASS); \
60 ADD2INIT(name ## _Initialize, ZUNE_CUSTOMCLASS_PASS); \
61 ADD2EXIT(name ## _Deinitialize, ZUNE_CUSTOMCLASS_PASS); \
63 #if !defined(ZCC_QUIET)
65 #define __ZUNE_CUSTOMCLASS_METHOD(mname, mid, m_msg_type) \
68 D(bug("[ZCC] ENTERING "__AROS_STR(mname) \
69 "("__AROS_STR(m_msg_type)")\n")); \
71 return (IPTR) mname(__class, __self, (m_msg_type)__msg) \
75 #define __ZUNE_CUSTOMCLASS_METHOD(mname, mid, m_msg_type) \
77 return (IPTR) mname(__class, __self, (m_msg_type)__msg) \
81 /******************************************************************/
83 #define ZUNE_CUSTOMCLASS_1(name, base, parent_name, parent_class, \
85 __ZUNE_CUSTOMCLASS_START(name) \
86 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
87 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
89 #define ZUNE_CUSTOMCLASS_2(name, base, parent_name, parent_class, \
92 __ZUNE_CUSTOMCLASS_START(name) \
93 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
94 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
95 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
97 #define ZUNE_CUSTOMCLASS_3(name, base, parent_name, parent_class, \
101 __ZUNE_CUSTOMCLASS_START(name) \
102 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
103 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
104 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
105 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
107 #define ZUNE_CUSTOMCLASS_4(name, base, parent_name, parent_class, \
112 __ZUNE_CUSTOMCLASS_START(name) \
113 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
114 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
115 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
116 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
117 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
119 #define ZUNE_CUSTOMCLASS_5(name, base, parent_name, parent_class, \
125 __ZUNE_CUSTOMCLASS_START(name) \
126 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
127 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
128 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
129 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
130 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
131 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
133 #define ZUNE_CUSTOMCLASS_6(name, base, parent_name, parent_class, \
140 __ZUNE_CUSTOMCLASS_START(name) \
141 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
142 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
143 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
144 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
145 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
146 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
147 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
149 #define ZUNE_CUSTOMCLASS_7(name, base, parent_name, parent_class, \
157 __ZUNE_CUSTOMCLASS_START(name) \
158 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
159 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
160 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
161 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
162 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
163 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
164 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
165 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
167 #define ZUNE_CUSTOMCLASS_8(name, base, parent_name, parent_class, \
176 __ZUNE_CUSTOMCLASS_START(name) \
177 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
178 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
179 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
180 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
181 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
182 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
183 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
184 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
185 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
187 #define ZUNE_CUSTOMCLASS_9(name, base, parent_name, parent_class, \
197 __ZUNE_CUSTOMCLASS_START(name) \
198 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
199 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
200 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
201 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
202 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
203 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
204 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
205 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
206 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
207 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
209 #define ZUNE_CUSTOMCLASS_10(name, base, parent_name, parent_class, \
220 __ZUNE_CUSTOMCLASS_START(name) \
221 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
222 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
223 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
224 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
225 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
226 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
227 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
228 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
229 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
230 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
231 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
233 #define ZUNE_CUSTOMCLASS_11(name, base, parent_name, parent_class, \
245 __ZUNE_CUSTOMCLASS_START(name) \
246 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
247 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
248 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
249 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
250 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
251 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
252 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
253 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
254 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
255 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
256 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
257 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
259 #define ZUNE_CUSTOMCLASS_14(name, base, parent_name, parent_class, \
274 __ZUNE_CUSTOMCLASS_START(name) \
275 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
276 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
277 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
278 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
279 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
280 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
281 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
282 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
283 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
284 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
285 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
286 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m12, m12, m12_msg_type); \
287 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m13, m13, m13_msg_type); \
288 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m14, m14, m14_msg_type); \
289 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
291 #define ZUNE_CUSTOMCLASS_17(name, base, parent_name, parent_class, \
309 __ZUNE_CUSTOMCLASS_START(name) \
310 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
311 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
312 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
313 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
314 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
315 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
316 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
317 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
318 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
319 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
320 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
321 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m12, m12, m12_msg_type); \
322 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m13, m13, m13_msg_type); \
323 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m14, m14, m14_msg_type); \
324 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m15, m15, m15_msg_type); \
325 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m16, m16, m16_msg_type); \
326 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m17, m17, m17_msg_type); \
327 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
329 #define ZUNE_CUSTOMCLASS_20(name, base, parent_name, parent_class, \
350 __ZUNE_CUSTOMCLASS_START(name) \
351 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
352 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
353 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
354 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
355 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
356 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
357 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
358 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
359 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
360 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
361 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
362 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m12, m12, m12_msg_type); \
363 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m13, m13, m13_msg_type); \
364 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m14, m14, m14_msg_type); \
365 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m15, m15, m15_msg_type); \
366 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m16, m16, m16_msg_type); \
367 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m17, m17, m17_msg_type); \
368 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m18, m18, m18_msg_type); \
369 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m19, m19, m19_msg_type); \
370 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m20, m20, m20_msg_type); \
371 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
373 #define ZUNE_CUSTOMCLASS_21(name, base, parent_name, parent_class, \
395 __ZUNE_CUSTOMCLASS_START(name) \
396 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
397 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
398 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
399 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
400 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
401 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
402 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
403 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
404 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
405 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
406 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
407 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m12, m12, m12_msg_type); \
408 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m13, m13, m13_msg_type); \
409 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m14, m14, m14_msg_type); \
410 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m15, m15, m15_msg_type); \
411 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m16, m16, m16_msg_type); \
412 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m17, m17, m17_msg_type); \
413 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m18, m18, m18_msg_type); \
414 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m19, m19, m19_msg_type); \
415 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m20, m20, m20_msg_type); \
416 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m21, m21, m21_msg_type); \
417 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
420 /*************************************************************************/
422 #define __ZUNE_CUSTOMCLASS_REMPARENS(...) __VA_ARGS__
424 #define __ZUNE_CUSTOMCLASS_INLINEMETHOD(cname, mname, m_msg_type, m_code) \
425 IPTR mname(Class *CLASS, Object *self, m_msg_type message); \
426 IPTR mname(Class *CLASS, Object *self, m_msg_type message) \
428 struct cname ## _DATA *data __unused = INST_DATA(CLASS, self); \
430 { __ZUNE_CUSTOMCLASS_REMPARENS m_code } \
433 #define __ZUNE_CUSTOMCLASS_INSTDATA(cname, inst_data) \
434 struct cname ## _DATA { __ZUNE_CUSTOMCLASS_REMPARENS inst_data }
436 #define ZUNE_CUSTOMCLASS_INLINE_1(name, base, parent_name, parent_class, \
438 m1, m1_msg_type, m1_code) \
439 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
440 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
441 __ZUNE_CUSTOMCLASS_START(name) \
442 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
443 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
445 #define ZUNE_CUSTOMCLASS_INLINE_2(name, base, parent_name, parent_class, \
447 m1, m1_msg_type, m1_code, \
448 m2, m2_msg_type, m2_code) \
449 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
450 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
451 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
452 __ZUNE_CUSTOMCLASS_START(name) \
453 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
454 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
455 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
457 #define ZUNE_CUSTOMCLASS_INLINE_3(name, base, parent_name, parent_class, \
459 m1, m1_msg_type, m1_code, \
460 m2, m2_msg_type, m2_code, \
461 m3, m3_msg_type, m3_code) \
462 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
463 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
464 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
465 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
466 __ZUNE_CUSTOMCLASS_START(name) \
467 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
468 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
469 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
470 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
472 #define ZUNE_CUSTOMCLASS_INLINE_4(name, base, parent_name, parent_class, \
474 m1, m1_msg_type, m1_code, \
475 m2, m2_msg_type, m2_code, \
476 m3, m3_msg_type, m3_code, \
477 m4, m4_msg_type, m4_code) \
478 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
479 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
480 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
481 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
482 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
483 __ZUNE_CUSTOMCLASS_START(name) \
484 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
485 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
486 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
487 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
488 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
490 #define ZUNE_CUSTOMCLASS_INLINE_5(name, base, parent_name, parent_class, \
492 m1, m1_msg_type, m1_code, \
493 m2, m2_msg_type, m2_code, \
494 m3, m3_msg_type, m3_code, \
495 m4, m4_msg_type, m4_code, \
496 m5, m5_msg_type, m5_code) \
497 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
498 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
499 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
500 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
501 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
502 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
503 __ZUNE_CUSTOMCLASS_START(name) \
504 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
505 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
506 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
507 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
508 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
509 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
511 #define ZUNE_CUSTOMCLASS_INLINE_6(name, base, parent_name, parent_class, \
513 m1, m1_msg_type, m1_code, \
514 m2, m2_msg_type, m2_code, \
515 m3, m3_msg_type, m3_code, \
516 m4, m4_msg_type, m4_code, \
517 m5, m5_msg_type, m5_code, \
518 m6, m6_msg_type, m6_code) \
519 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
520 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
521 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
522 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
523 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
524 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
525 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
526 __ZUNE_CUSTOMCLASS_START(name) \
527 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
528 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
529 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
530 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
531 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
532 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
533 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
535 #define ZUNE_CUSTOMCLASS_INLINE_7(name, base, parent_name, parent_class, \
537 m1, m1_msg_type, m1_code, \
538 m2, m2_msg_type, m2_code, \
539 m3, m3_msg_type, m3_code, \
540 m4, m4_msg_type, m4_code, \
541 m5, m5_msg_type, m5_code, \
542 m6, m6_msg_type, m6_code, \
543 m7, m7_msg_type, m7_code) \
544 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
545 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
546 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
547 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
548 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
549 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
550 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
551 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
552 __ZUNE_CUSTOMCLASS_START(name) \
553 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
554 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
555 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
556 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
557 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
558 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
559 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
560 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
562 #define ZUNE_CUSTOMCLASS_INLINE_8(name, base, parent_name, parent_class, \
564 m1, m1_msg_type, m1_code, \
565 m2, m2_msg_type, m2_code, \
566 m3, m3_msg_type, m3_code, \
567 m4, m4_msg_type, m4_code, \
568 m5, m5_msg_type, m5_code, \
569 m6, m6_msg_type, m6_code, \
570 m7, m7_msg_type, m7_code, \
571 m8, m8_msg_type, m8_code) \
572 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
573 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
574 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
575 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
576 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
577 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
578 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
579 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
580 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
581 __ZUNE_CUSTOMCLASS_START(name) \
582 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
583 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
584 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
585 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
586 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
587 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
588 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
589 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
590 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
592 #define ZUNE_CUSTOMCLASS_INLINE_9(name, base, parent_name, parent_class, \
594 m1, m1_msg_type, m1_code, \
595 m2, m2_msg_type, m2_code, \
596 m3, m3_msg_type, m3_code, \
597 m4, m4_msg_type, m4_code, \
598 m5, m5_msg_type, m5_code, \
599 m6, m6_msg_type, m6_code, \
600 m7, m7_msg_type, m7_code, \
601 m8, m8_msg_type, m8_code, \
602 m9, m9_msg_type, m9_code) \
603 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
604 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
605 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
606 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
607 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
608 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
609 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
610 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
611 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
612 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
613 __ZUNE_CUSTOMCLASS_START(name) \
614 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
615 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
616 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
617 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
618 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
619 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
620 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
621 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
622 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
623 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
625 #define ZUNE_CUSTOMCLASS_INLINE_10(name, base, parent_name, parent_class, \
627 m1, m1_msg_type, m1_code, \
628 m2, m2_msg_type, m2_code, \
629 m3, m3_msg_type, m3_code, \
630 m4, m4_msg_type, m4_code, \
631 m5, m5_msg_type, m5_code, \
632 m6, m6_msg_type, m6_code, \
633 m7, m7_msg_type, m7_code, \
634 m8, m8_msg_type, m8_code, \
635 m9, m9_msg_type, m9_code, \
636 m10, m10_msg_type, m10_code) \
637 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
638 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
639 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
640 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
641 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
642 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
643 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
644 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
645 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
646 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
647 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
648 __ZUNE_CUSTOMCLASS_START(name) \
649 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
650 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
651 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
652 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
653 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
654 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
655 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
656 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
657 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
658 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
659 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
661 #define ZUNE_CUSTOMCLASS_INLINE_11(name, base, parent_name, parent_class, \
663 m1, m1_msg_type, m1_code, \
664 m2, m2_msg_type, m2_code, \
665 m3, m3_msg_type, m3_code, \
666 m4, m4_msg_type, m4_code, \
667 m5, m5_msg_type, m5_code, \
668 m6, m6_msg_type, m6_code, \
669 m7, m7_msg_type, m7_code, \
670 m8, m8_msg_type, m8_code, \
671 m9, m9_msg_type, m9_code, \
672 m10, m10_msg_type, m10_code, \
673 m11, m11_msg_type, m11_code) \
674 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
675 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
676 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
677 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
678 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
679 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
680 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
681 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
682 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
683 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
684 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
685 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m11, m11_msg_type, m11_code); \
686 __ZUNE_CUSTOMCLASS_START(name) \
687 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
688 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
689 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
690 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
691 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
692 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
693 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
694 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
695 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
696 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
697 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
698 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
700 #endif /* !ZUNE_CUSTOMCLASSES_H */