Don't call InvertPixelArray with negative width and/or height.
[tangerine.git] / workbench / libs / muimaster / customclasses.h
blob6e7831a7348e03a07daf75ede13e9631e04b0645
1 #ifndef ZUNE_CUSTOMCLASSES_H
2 #define ZUNE_CUSTOMCLASSES_H
4 #include <proto/muimaster.h>
5 #include <dos/dos.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) \
13 { \
14 switch (__msg->MethodID) \
15 { \
17 #define __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
18 default: \
19 return DoSuperMethodA(__class, __self, __msg); \
20 } \
22 return (IPTR) NULL; \
23 } \
24 BOOPSI_DISPATCHER_END \
26 struct MUI_CustomClass * name ## _CLASS; \
28 int name ## _Initialize(void); \
29 int name ## _Initialize(void) \
30 { \
31 name ## _CLASS = MUI_CreateCustomClass \
32 ( \
33 base, parent_name, parent_class, \
34 sizeof(struct name ## _DATA), name ## _Dispatcher \
35 ); \
37 if (!name ## _CLASS) \
38 { \
39 __showerror \
40 ( \
41 "Could not create Zune custom class `" #name "'.", NULL \
42 ); \
44 return 0; \
45 } \
47 return 1; \
48 } \
50 void name ## _Deinitialize(void); \
51 void name ## _Deinitialize(void) \
52 { \
53 MUI_DeleteCustomClass(name ## _CLASS); \
54 } \
56 ADD2INIT(name ## _Initialize, 100); \
57 ADD2EXIT(name ## _Deinitialize, 100); \
59 #define __ZUNE_CUSTOMCLASS_METHOD(mname, mid, m_msg_type) \
60 case mid: \
62 D(bug("[ZCC] ENTERING "__AROS_STR(mname) \
63 "("__AROS_STR(m_msg_type)")\n")); \
65 return (IPTR) mname(__class, __self, (m_msg_type)__msg) \
67 /******************************************************************/
69 #define ZUNE_CUSTOMCLASS_1(name, base, parent_name, parent_class, \
70 m1, m1_msg_type) \
71 __ZUNE_CUSTOMCLASS_START(name) \
72 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
73 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
75 #define ZUNE_CUSTOMCLASS_2(name, base, parent_name, parent_class, \
76 m1, m1_msg_type, \
77 m2, m2_msg_type) \
78 __ZUNE_CUSTOMCLASS_START(name) \
79 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
80 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
81 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
83 #define ZUNE_CUSTOMCLASS_3(name, base, parent_name, parent_class, \
84 m1, m1_msg_type, \
85 m2, m2_msg_type, \
86 m3, m3_msg_type) \
87 __ZUNE_CUSTOMCLASS_START(name) \
88 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
89 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
90 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
91 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
93 #define ZUNE_CUSTOMCLASS_4(name, base, parent_name, parent_class, \
94 m1, m1_msg_type, \
95 m2, m2_msg_type, \
96 m3, m3_msg_type, \
97 m4, m4_msg_type) \
98 __ZUNE_CUSTOMCLASS_START(name) \
99 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
100 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
101 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
102 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
103 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
105 #define ZUNE_CUSTOMCLASS_5(name, base, parent_name, parent_class, \
106 m1, m1_msg_type, \
107 m2, m2_msg_type, \
108 m3, m3_msg_type, \
109 m4, m4_msg_type, \
110 m5, m5_msg_type) \
111 __ZUNE_CUSTOMCLASS_START(name) \
112 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
113 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
114 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
115 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
116 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
117 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
119 #define ZUNE_CUSTOMCLASS_6(name, base, parent_name, parent_class, \
120 m1, m1_msg_type, \
121 m2, m2_msg_type, \
122 m3, m3_msg_type, \
123 m4, m4_msg_type, \
124 m5, m5_msg_type, \
125 m6, m6_msg_type) \
126 __ZUNE_CUSTOMCLASS_START(name) \
127 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
128 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
129 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
130 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
131 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
132 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
133 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
135 #define ZUNE_CUSTOMCLASS_7(name, base, parent_name, parent_class, \
136 m1, m1_msg_type, \
137 m2, m2_msg_type, \
138 m3, m3_msg_type, \
139 m4, m4_msg_type, \
140 m5, m5_msg_type, \
141 m6, m6_msg_type, \
142 m7, m7_msg_type) \
143 __ZUNE_CUSTOMCLASS_START(name) \
144 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
145 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
146 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
147 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
148 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
149 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
150 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
151 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
153 #define ZUNE_CUSTOMCLASS_8(name, base, parent_name, parent_class, \
154 m1, m1_msg_type, \
155 m2, m2_msg_type, \
156 m3, m3_msg_type, \
157 m4, m4_msg_type, \
158 m5, m5_msg_type, \
159 m6, m6_msg_type, \
160 m7, m7_msg_type, \
161 m8, m8_msg_type) \
162 __ZUNE_CUSTOMCLASS_START(name) \
163 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
164 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
165 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
166 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
167 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
168 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
169 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
170 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
171 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
173 #define ZUNE_CUSTOMCLASS_9(name, base, parent_name, parent_class, \
174 m1, m1_msg_type, \
175 m2, m2_msg_type, \
176 m3, m3_msg_type, \
177 m4, m4_msg_type, \
178 m5, m5_msg_type, \
179 m6, m6_msg_type, \
180 m7, m7_msg_type, \
181 m8, m8_msg_type, \
182 m9, m9_msg_type) \
183 __ZUNE_CUSTOMCLASS_START(name) \
184 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
185 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
186 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
187 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
188 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
189 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
190 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
191 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
192 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
193 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
195 #define ZUNE_CUSTOMCLASS_10(name, base, parent_name, parent_class, \
196 m1, m1_msg_type, \
197 m2, m2_msg_type, \
198 m3, m3_msg_type, \
199 m4, m4_msg_type, \
200 m5, m5_msg_type, \
201 m6, m6_msg_type, \
202 m7, m7_msg_type, \
203 m8, m8_msg_type, \
204 m9, m9_msg_type, \
205 m10, m10_msg_type) \
206 __ZUNE_CUSTOMCLASS_START(name) \
207 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
208 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
209 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
210 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
211 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
212 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
213 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
214 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
215 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
216 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
217 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
219 /*************************************************************************/
221 #define __ZUNE_CUSTOMCLASS_REMPARENS(...) __VA_ARGS__
223 #define __ZUNE_CUSTOMCLASS_INLINEMETHOD(cname, mname, m_msg_type, m_code) \
224 IPTR mname(Class *CLASS, Object *self, m_msg_type message); \
225 IPTR mname(Class *CLASS, Object *self, m_msg_type message) \
227 struct cname ## _DATA *data __unused = INST_DATA(CLASS, self); \
229 { __ZUNE_CUSTOMCLASS_REMPARENS m_code } \
232 #define __ZUNE_CUSTOMCLASS_INSTDATA(cname, inst_data) \
233 struct cname ## _DATA { __ZUNE_CUSTOMCLASS_REMPARENS inst_data }
235 #define ZUNE_CUSTOMCLASS_INLINE_1(name, base, parent_name, parent_class, \
236 inst_data, \
237 m1, m1_msg_type, m1_code) \
238 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
239 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
240 __ZUNE_CUSTOMCLASS_START(name) \
241 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
242 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
244 #define ZUNE_CUSTOMCLASS_INLINE_2(name, base, parent_name, parent_class, \
245 inst_data, \
246 m1, m1_msg_type, m1_code, \
247 m2, m2_msg_type, m2_code) \
248 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
249 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
250 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
251 __ZUNE_CUSTOMCLASS_START(name) \
252 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
253 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
254 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
256 #define ZUNE_CUSTOMCLASS_INLINE_3(name, base, parent_name, parent_class, \
257 inst_data, \
258 m1, m1_msg_type, m1_code, \
259 m2, m2_msg_type, m2_code, \
260 m3, m3_msg_type, m3_code) \
261 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
262 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
263 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
264 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
265 __ZUNE_CUSTOMCLASS_START(name) \
266 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
267 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
268 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
269 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
271 #define ZUNE_CUSTOMCLASS_INLINE_4(name, base, parent_name, parent_class, \
272 inst_data, \
273 m1, m1_msg_type, m1_code, \
274 m2, m2_msg_type, m2_code, \
275 m3, m3_msg_type, m3_code, \
276 m4, m4_msg_type, m4_code) \
277 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
278 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
279 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
280 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
281 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
282 __ZUNE_CUSTOMCLASS_START(name) \
283 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
284 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
285 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
286 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
287 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
289 #define ZUNE_CUSTOMCLASS_INLINE_5(name, base, parent_name, parent_class, \
290 inst_data, \
291 m1, m1_msg_type, m1_code, \
292 m2, m2_msg_type, m2_code, \
293 m3, m3_msg_type, m3_code, \
294 m4, m4_msg_type, m4_code, \
295 m5, m5_msg_type, m5_code) \
296 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
297 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
298 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
299 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
300 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
301 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
302 __ZUNE_CUSTOMCLASS_START(name) \
303 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
304 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
305 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
306 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
307 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
308 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
310 #define ZUNE_CUSTOMCLASS_INLINE_6(name, base, parent_name, parent_class, \
311 inst_data, \
312 m1, m1_msg_type, m1_code, \
313 m2, m2_msg_type, m2_code, \
314 m3, m3_msg_type, m3_code, \
315 m4, m4_msg_type, m4_code, \
316 m5, m5_msg_type, m5_code, \
317 m6, m6_msg_type, m6_code) \
318 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
319 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
320 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
321 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
322 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
323 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
324 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
325 __ZUNE_CUSTOMCLASS_START(name) \
326 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
327 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
328 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
329 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
330 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
331 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
332 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
334 #define ZUNE_CUSTOMCLASS_INLINE_7(name, base, parent_name, parent_class, \
335 inst_data, \
336 m1, m1_msg_type, m1_code, \
337 m2, m2_msg_type, m2_code, \
338 m3, m3_msg_type, m3_code, \
339 m4, m4_msg_type, m4_code, \
340 m5, m5_msg_type, m5_code, \
341 m6, m6_msg_type, m6_code, \
342 m7, m7_msg_type, m7_code) \
343 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
344 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
345 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
346 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
347 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
348 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
349 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
350 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
351 __ZUNE_CUSTOMCLASS_START(name) \
352 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
353 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
354 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
355 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
356 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
357 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
358 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
359 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
361 #define ZUNE_CUSTOMCLASS_INLINE_8(name, base, parent_name, parent_class, \
362 inst_data, \
363 m1, m1_msg_type, m1_code, \
364 m2, m2_msg_type, m2_code, \
365 m3, m3_msg_type, m3_code, \
366 m4, m4_msg_type, m4_code, \
367 m5, m5_msg_type, m5_code, \
368 m6, m6_msg_type, m6_code, \
369 m7, m7_msg_type, m7_code, \
370 m8, m8_msg_type, m8_code) \
371 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
372 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
373 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
374 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
375 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
376 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
377 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
378 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
379 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
380 __ZUNE_CUSTOMCLASS_START(name) \
381 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
382 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
383 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
384 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
385 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
386 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
387 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
388 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
389 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
391 #define ZUNE_CUSTOMCLASS_INLINE_9(name, base, parent_name, parent_class, \
392 inst_data, \
393 m1, m1_msg_type, m1_code, \
394 m2, m2_msg_type, m2_code, \
395 m3, m3_msg_type, m3_code, \
396 m4, m4_msg_type, m4_code, \
397 m5, m5_msg_type, m5_code, \
398 m6, m6_msg_type, m6_code, \
399 m7, m7_msg_type, m7_code, \
400 m8, m8_msg_type, m8_code, \
401 m9, m9_msg_type, m9_code) \
402 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
403 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
404 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
405 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
406 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
407 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
408 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
409 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
410 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
411 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
412 __ZUNE_CUSTOMCLASS_START(name) \
413 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
414 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
415 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
416 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
417 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
418 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
419 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
420 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
421 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
422 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
424 #define ZUNE_CUSTOMCLASS_INLINE_10(name, base, parent_name, parent_class, \
425 inst_data, \
426 m1, m1_msg_type, m1_code, \
427 m2, m2_msg_type, m2_code, \
428 m3, m3_msg_type, m3_code, \
429 m4, m4_msg_type, m4_code, \
430 m5, m5_msg_type, m5_code, \
431 m6, m6_msg_type, m6_code, \
432 m7, m7_msg_type, m7_code, \
433 m8, m8_msg_type, m8_code, \
434 m9, m9_msg_type, m9_code, \
435 m10, m10_msg_type, m10_code) \
436 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
437 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
438 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
439 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
440 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
441 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
442 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
443 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
444 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
445 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
446 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
447 __ZUNE_CUSTOMCLASS_START(name) \
448 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
449 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
450 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
451 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
452 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
453 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
454 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
455 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
456 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
457 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
458 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
460 #define ZUNE_CUSTOMCLASS_INLINE_11(name, base, parent_name, parent_class, \
461 inst_data, \
462 m1, m1_msg_type, m1_code, \
463 m2, m2_msg_type, m2_code, \
464 m3, m3_msg_type, m3_code, \
465 m4, m4_msg_type, m4_code, \
466 m5, m5_msg_type, m5_code, \
467 m6, m6_msg_type, m6_code, \
468 m7, m7_msg_type, m7_code, \
469 m8, m8_msg_type, m8_code, \
470 m9, m9_msg_type, m9_code, \
471 m10, m10_msg_type, m10_code, \
472 m11, m11_msg_type, m11_code) \
473 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
474 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
475 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
476 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
477 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
478 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
479 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
480 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
481 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
482 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
483 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
484 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m11, m11_msg_type, m11_code); \
485 __ZUNE_CUSTOMCLASS_START(name) \
486 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
487 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
488 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
489 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
490 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
491 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
492 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
493 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
494 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
495 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
496 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
497 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
499 #endif /* !ZUNE_CUSTOMCLASSES_H */