annotate tools/mb_c_header.m4 @ 192:54fdc2a65242

Remove factory from observer APIs. - Save factory that used to new a subject as subject's attribute. - Get factory from subject himself instead of passing as an argument. - It make API of observer more simple and clean.
author Thinker K.F. Li <thinker@branda.to>
date Tue, 18 Nov 2008 21:42:30 +0800
parents 6ce68c1f7405
children 3fadd2f2742e
rev   line source
62
7d976d925431 Generate C header files for SVG files.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
1 changequote(`[', `]')dnl
63
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
2 divert([-1])
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
3
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
4 define([ADD_LINEAR_PAINT],[[
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
5 paint_t *$1;
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
6 ]])
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
7
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
8 define([ADD_RADIAL_PAINT],[[
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
9 paint_t *$1;
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
10 ]])
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
11 define([ADD_PATH],[
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
12 [ shape_t *$1;
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
13 ]])
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
14 define([ADD_RECT],[
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
15 [ shape_t *$1;
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
16 ]])
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
17 define([ADD_COORD],[
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
18 [ coord_t *$1;
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
19 ]])
83
ea758bb3bbe2 example
Thinker K.F. Li <thinker@branda.to>
parents: 81
diff changeset
20 define([ADD_TEXT],[
ea758bb3bbe2 example
Thinker K.F. Li <thinker@branda.to>
parents: 81
diff changeset
21 [ shape_t *$1;
ea758bb3bbe2 example
Thinker K.F. Li <thinker@branda.to>
parents: 81
diff changeset
22 ]])
63
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
23 define([COLOR_STOP],[ ])
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
24
78
3645e29e4986 Add runtime for Xlib.
Thinker K.F. Li <thinker@branda.to>
parents: 69
diff changeset
25 define([REF_STOPS_RADIAL],)
3645e29e4986 Add runtime for Xlib.
Thinker K.F. Li <thinker@branda.to>
parents: 69
diff changeset
26 define([REF_STOPS_LINEAR],)
64
c668c5c3ceae M4 macro for C binding.
Thinker K.F. Li <thinker@branda.to>
parents: 63
diff changeset
27 define([FILL_SHAPE],[[
c668c5c3ceae M4 macro for C binding.
Thinker K.F. Li <thinker@branda.to>
parents: 63
diff changeset
28 paint_t *$1_fill;
c668c5c3ceae M4 macro for C binding.
Thinker K.F. Li <thinker@branda.to>
parents: 63
diff changeset
29 ]])
c668c5c3ceae M4 macro for C binding.
Thinker K.F. Li <thinker@branda.to>
parents: 63
diff changeset
30 define([STROKE_SHAPE],[[
c668c5c3ceae M4 macro for C binding.
Thinker K.F. Li <thinker@branda.to>
parents: 63
diff changeset
31 paint_t *$1_stroke;
c668c5c3ceae M4 macro for C binding.
Thinker K.F. Li <thinker@branda.to>
parents: 63
diff changeset
32 ]])
63
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
33 define([FILL_SHAPE_WITH_PAINT],)
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
34 define([STROKE_SHAPE_WITH_PAINT],)
80
e548221c04eb svg2code.py support stroke
Thinker K.F. Li <thinker@branda.to>
parents: 78
diff changeset
35 define([STROKE_WIDTH],)
81
13fdf205047b Hide shapes and groups
Thinker K.F. Li <thinker@branda.to>
parents: 80
diff changeset
36 define([GROUP_HIDE],)
13fdf205047b Hide shapes and groups
Thinker K.F. Li <thinker@branda.to>
parents: 80
diff changeset
37 define([PATH_HIDE],)
13fdf205047b Hide shapes and groups
Thinker K.F. Li <thinker@branda.to>
parents: 80
diff changeset
38 define([RECT_HIDE],)
84
42698de1f653 Support translate() function for transform attribute of 'g' tag.
Thinker K.F. Li <thinker@branda.to>
parents: 83
diff changeset
39 define([COORD_TRANSLATE],)
85
9b4a02bcaeb1 matrix() function in transform attribute of group and shapes
Thinker K.F. Li <thinker@branda.to>
parents: 84
diff changeset
40 define([COORD_MATRIX],)
100
1a1dda98730c Fix the bug of order of cross & inner product of vectors
Thinker K.F. Li <thinker@branda.to>
parents: 85
diff changeset
41 define([SHAPE_TRANSLATE],)
85
9b4a02bcaeb1 matrix() function in transform attribute of group and shapes
Thinker K.F. Li <thinker@branda.to>
parents: 84
diff changeset
42 define([SHAPE_MATRIX],)
63
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
43
62
7d976d925431 Generate C header files for SVG files.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
44 define([MADBUTTERFLY],[dnl
7d976d925431 Generate C header files for SVG files.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
45 [#ifndef __$1_H_
67
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
46 #define __$1_H_
62
7d976d925431 Generate C header files for SVG files.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
47
67
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
48 typedef struct $1 $1_t;
62
7d976d925431 Generate C header files for SVG files.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
49
67
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
50 struct $1 {
154
6ce68c1f7405 Tank can fire bullet.
Thinker K.F. Li <thinker@branda.to>
parents: 130
diff changeset
51 redraw_man_t *rdman;
67
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
52 coord_t *root_coord;]
63
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
53 $2[]dnl
67
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
54 [};
62
7d976d925431 Generate C header files for SVG files.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
55
130
3a4d6179e6a9 change mb_c_source.m4 and mb_c_header.m4 to specify parent for SVG object
Thinker K.F. Li <thinker@branda.to>
parents: 100
diff changeset
56 extern $1_t *$1_new(redraw_man_t *rdman, coord_t *parent_coord);
67
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
57 extern void $1_free($1_t *obj);
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
58
3f2872a1a2fe clear objects in *_free() for generated code
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
59 #endif /* __$1_H_ */]
63
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
60 ])
f4b792afa74e m4 translator
Thinker K.F. Li <thinker@branda.to>
parents: 62
diff changeset
61 divert[]dnl