goocanvas 0.90.6-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. data/ChangeLog +87 -0
  2. data/README +37 -0
  3. data/Rakefile +14 -0
  4. data/ext/goocanvas/depend +5 -0
  5. data/ext/goocanvas/extconf.rb +66 -0
  6. data/ext/goocanvas/goocanvas.def +2 -0
  7. data/ext/goocanvas/rbgoocairo.c +74 -0
  8. data/ext/goocanvas/rbgoocanvas.c +236 -0
  9. data/ext/goocanvas/rbgoocanvas.h +66 -0
  10. data/ext/goocanvas/rbgoocanvasellipse.c +50 -0
  11. data/ext/goocanvas/rbgoocanvasgroup.c +41 -0
  12. data/ext/goocanvas/rbgoocanvasimage.c +45 -0
  13. data/ext/goocanvas/rbgoocanvasitem.c +358 -0
  14. data/ext/goocanvas/rbgoocanvaspolyline.c +102 -0
  15. data/ext/goocanvas/rbgoocanvasrect.c +47 -0
  16. data/ext/goocanvas/rbgoocanvasstyle.c +61 -0
  17. data/ext/goocanvas/rbgoocanvastable.c +41 -0
  18. data/ext/goocanvas/rbgoocanvastext.c +58 -0
  19. data/ext/goocanvas/rbgoocanvaswidget.c +48 -0
  20. data/ext/goocanvas/rbgooutils.c +44 -0
  21. data/extconf.rb +49 -0
  22. data/lib/1.8/goocanvas.so +0 -0
  23. data/lib/1.9/goocanvas.so +0 -0
  24. data/lib/goocanvas.rb +145 -0
  25. data/sample/demo-arrowhead.rb +315 -0
  26. data/sample/demo-fifteen.rb +218 -0
  27. data/sample/demo-primitives.rb +720 -0
  28. data/sample/demo.rb +84 -0
  29. data/sample/flower.png +0 -0
  30. data/sample/scalability-demo.rb +130 -0
  31. data/sample/simple-demo.rb +35 -0
  32. data/sample/table-demo.rb +137 -0
  33. data/sample/toroid.png +0 -0
  34. data/sample/units-demo.rb +80 -0
  35. data/sample/widgets-demo.rb +197 -0
  36. data/vendor/local/bin/libgoocanvas-3.dll +0 -0
  37. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvas.h +334 -0
  38. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasatk.h +22 -0
  39. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasellipse.h +120 -0
  40. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasenumtypes.h +33 -0
  41. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasgrid.h +153 -0
  42. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasgroup.h +109 -0
  43. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasimage.h +121 -0
  44. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasitem.h +479 -0
  45. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasitemmodel.h +275 -0
  46. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasitemsimple.h +247 -0
  47. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasmarshal.h +61 -0
  48. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvaspath.h +116 -0
  49. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvaspolyline.h +176 -0
  50. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasprivate.h +59 -0
  51. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasrect.h +121 -0
  52. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasstyle.h +110 -0
  53. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvastable.h +139 -0
  54. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvastext.h +133 -0
  55. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvasutils.h +333 -0
  56. data/vendor/local/include/goocanvas-1.0.0/goocanvas/goocanvaswidget.h +66 -0
  57. data/vendor/local/include/goocanvas-1.0.0/goocanvas/stamp-goocanvasmarshal.h +1 -0
  58. data/vendor/local/lib/libgoocanvas.a +0 -0
  59. data/vendor/local/lib/libgoocanvas.dll.a +0 -0
  60. data/vendor/local/lib/pkgconfig/goocanvas.pc +13 -0
  61. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvas.html +1982 -0
  62. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasEllipse.html +269 -0
  63. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasEllipseModel.html +274 -0
  64. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasGrid.html +469 -0
  65. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasGridModel.html +476 -0
  66. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasGroup.html +183 -0
  67. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasGroupModel.html +184 -0
  68. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasImage.html +247 -0
  69. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasImageModel.html +252 -0
  70. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasItem.html +3014 -0
  71. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasItemModel.html +1764 -0
  72. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasItemModelSimple.html +298 -0
  73. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasItemSimple.html +809 -0
  74. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasPath.html +279 -0
  75. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasPathModel.html +280 -0
  76. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasPolyline.html +369 -0
  77. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasPolylineModel.html +375 -0
  78. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasRect.html +247 -0
  79. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasRectModel.html +252 -0
  80. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasStyle.html +489 -0
  81. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasTable.html +452 -0
  82. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasTableModel.html +452 -0
  83. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasText.html +324 -0
  84. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasTextModel.html +287 -0
  85. data/vendor/local/share/gtk-doc/html/goocanvas/GooCanvasWidget.html +266 -0
  86. data/vendor/local/share/gtk-doc/html/goocanvas/ch01.html +53 -0
  87. data/vendor/local/share/gtk-doc/html/goocanvas/ch02.html +50 -0
  88. data/vendor/local/share/gtk-doc/html/goocanvas/ch03.html +62 -0
  89. data/vendor/local/share/gtk-doc/html/goocanvas/ch04.html +60 -0
  90. data/vendor/local/share/gtk-doc/html/goocanvas/ch05.html +33 -0
  91. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-GooCanvas-Types.html +815 -0
  92. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-architecture.html +157 -0
  93. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-coordinates.html +106 -0
  94. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-creating-items.html +420 -0
  95. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-model-view-canvas.html +246 -0
  96. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-overview.html +106 -0
  97. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-simple-canvas.html +238 -0
  98. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas-wysiwyg.html +84 -0
  99. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas.devhelp +608 -0
  100. data/vendor/local/share/gtk-doc/html/goocanvas/goocanvas.devhelp2 +639 -0
  101. data/vendor/local/share/gtk-doc/html/goocanvas/home.png +0 -0
  102. data/vendor/local/share/gtk-doc/html/goocanvas/index.html +138 -0
  103. data/vendor/local/share/gtk-doc/html/goocanvas/index.sgml +814 -0
  104. data/vendor/local/share/gtk-doc/html/goocanvas/left.png +0 -0
  105. data/vendor/local/share/gtk-doc/html/goocanvas/right.png +0 -0
  106. data/vendor/local/share/gtk-doc/html/goocanvas/style.css +257 -0
  107. data/vendor/local/share/gtk-doc/html/goocanvas/up.png +0 -0
  108. data/vendor/local/share/gtk-doc/tmpl/goocanvas/dummy.sgml +0 -0
  109. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvas-unused.sgml +0 -0
  110. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvas.sgml +536 -0
  111. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasellipse.sgml +82 -0
  112. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasellipsemodel.sgml +82 -0
  113. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasgrid.sgml +176 -0
  114. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasgridmodel.sgml +176 -0
  115. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasgroup.sgml +58 -0
  116. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasgroupmodel.sgml +58 -0
  117. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasimage.sgml +81 -0
  118. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasimagemodel.sgml +81 -0
  119. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasitem.sgml +773 -0
  120. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasitemmodel.sgml +490 -0
  121. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasitemmodelsimple.sgml +135 -0
  122. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasitemsimple.sgml +254 -0
  123. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvaspath.sgml +64 -0
  124. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvaspathmodel.sgml +64 -0
  125. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvaspolyline.sgml +109 -0
  126. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvaspolylinemodel.sgml +109 -0
  127. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasrect.sgml +72 -0
  128. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasrectmodel.sgml +72 -0
  129. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasstyle.sgml +186 -0
  130. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvastable.sgml +158 -0
  131. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvastablemodel.sgml +158 -0
  132. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvastext.sgml +103 -0
  133. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvastextmodel.sgml +93 -0
  134. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvasutils.sgml +241 -0
  135. data/vendor/local/share/gtk-doc/tmpl/goocanvas/goocanvaswidget.sgml +73 -0
  136. metadata +218 -0
@@ -0,0 +1,275 @@
1
+ /*
2
+ * GooCanvas. Copyright (C) 2005 Damon Chaplin.
3
+ * Released under the GNU LGPL license. See COPYING for details.
4
+ *
5
+ * goocanvasitemmodel.h - interface for canvas item models.
6
+ */
7
+ #ifndef __GOO_CANVAS_ITEM_MODEL_H__
8
+ #define __GOO_CANVAS_ITEM_MODEL_H__
9
+
10
+ #include <gtk/gtk.h>
11
+ #include "goocanvasitem.h"
12
+
13
+ G_BEGIN_DECLS
14
+
15
+
16
+ #define GOO_TYPE_CANVAS_ITEM_MODEL (goo_canvas_item_model_get_type ())
17
+ #define GOO_CANVAS_ITEM_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_CANVAS_ITEM_MODEL, GooCanvasItemModel))
18
+ #define GOO_IS_CANVAS_ITEM_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_CANVAS_ITEM_MODEL))
19
+ #define GOO_CANVAS_ITEM_MODEL_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GOO_TYPE_CANVAS_ITEM_MODEL, GooCanvasItemModelIface))
20
+
21
+
22
+ /**
23
+ * GooCanvasItemModel
24
+ *
25
+ * #GooCanvasItemModel is a typedef used for objects that implement the
26
+ * #GooCanvasItemModel interface.
27
+ *
28
+ * (There is no actual #GooCanvasItemModel struct, since it is only an interface.
29
+ * But using '#GooCanvasItemModel' is more helpful than using '#GObject'.)
30
+ */
31
+ /* The typedef is in goocanvasitem.h */
32
+ /*typedef struct _GooCanvasItemModel GooCanvasItemModel;*/
33
+
34
+
35
+ /**
36
+ * GooCanvasItemModelIface
37
+ * @get_n_children: returns the number of children of the model.
38
+ * @get_child: returns the child at the given index.
39
+ * @add_child: adds a child.
40
+ * @move_child: moves a child up or down the stacking order.
41
+ * @remove_child: removes a child.
42
+ * @get_child_property: gets a child property of a given child model,
43
+ * e.g. the "row" or "column" property of a model in a #GooCanvasTableModel.
44
+ * @set_child_property: sets a child property for a given child model.
45
+ * @get_parent: gets the model's parent.
46
+ * @set_parent: sets the model's parent.
47
+ * @create_item: creates a default canvas item to view the model.
48
+ * @get_transform: gets the model's transformation matrix.
49
+ * @set_transform: sets the model's transformation matrix.
50
+ * @get_style: gets the model's style.
51
+ * @set_style: sets the model's style.
52
+ * @child_added: signal emitted when a child is added.
53
+ * @child_moved: signal emitted when a child is moved in the stacking order.
54
+ * @child_removed: signal emitted when a child is removed.
55
+ * @changed: signal emitted when the model has changed.
56
+ * @child_notify: signal emitted when a child property has changed.
57
+ * @animation_finished: signal emitted when the model's animation has finished.
58
+ *
59
+ * #GooCanvasItemModelIFace holds the virtual methods that make up the
60
+ * #GooCanvasItemModel interface.
61
+ *
62
+ * Simple item models only need to implement the get_parent(), set_parent()
63
+ * and create_item() methods.
64
+ *
65
+ * Items that support transforms should also implement get_transform() and
66
+ * set_transform(). Items that support styles should implement get_style()
67
+ * and set_style().
68
+ *
69
+ * Container items must implement get_n_children() and get_child().
70
+ * Containers that support dynamic changes to their children should implement
71
+ * add_child(), move_child() and remove_child().
72
+ * Layout containers like #GooCanvasTable may implement
73
+ * get_child_property() and set_child_property().
74
+ */
75
+ typedef struct _GooCanvasItemModelIface GooCanvasItemModelIface;
76
+
77
+ struct _GooCanvasItemModelIface
78
+ {
79
+ /*< private >*/
80
+ GTypeInterface base_iface;
81
+
82
+ /*< public >*/
83
+ /* Virtual methods that group models must implement. */
84
+ gint (* get_n_children) (GooCanvasItemModel *model);
85
+ GooCanvasItemModel* (* get_child) (GooCanvasItemModel *model,
86
+ gint child_num);
87
+
88
+ /* Virtual methods that group models may implement. */
89
+ void (* add_child) (GooCanvasItemModel *model,
90
+ GooCanvasItemModel *child,
91
+ gint position);
92
+ void (* move_child) (GooCanvasItemModel *model,
93
+ gint old_position,
94
+ gint new_position);
95
+ void (* remove_child) (GooCanvasItemModel *model,
96
+ gint child_num);
97
+ void (* get_child_property) (GooCanvasItemModel *model,
98
+ GooCanvasItemModel *child,
99
+ guint property_id,
100
+ GValue *value,
101
+ GParamSpec *pspec);
102
+ void (* set_child_property) (GooCanvasItemModel *item,
103
+ GooCanvasItemModel *child,
104
+ guint property_id,
105
+ const GValue *value,
106
+ GParamSpec *pspec);
107
+
108
+ /* Virtual methods that all item models must implement. */
109
+ GooCanvasItemModel* (* get_parent) (GooCanvasItemModel *model);
110
+ void (* set_parent) (GooCanvasItemModel *model,
111
+ GooCanvasItemModel *parent);
112
+
113
+ GooCanvasItem* (* create_item) (GooCanvasItemModel *model,
114
+ GooCanvas *canvas);
115
+
116
+ /* Virtual methods that all item models may implement. */
117
+ gboolean (* get_transform) (GooCanvasItemModel *model,
118
+ cairo_matrix_t *transform);
119
+ void (* set_transform) (GooCanvasItemModel *model,
120
+ const cairo_matrix_t *transform);
121
+ GooCanvasStyle* (* get_style) (GooCanvasItemModel *model);
122
+ void (* set_style) (GooCanvasItemModel *model,
123
+ GooCanvasStyle *style);
124
+
125
+ /* Signals. */
126
+ void (* child_added) (GooCanvasItemModel *model,
127
+ gint child_num);
128
+ void (* child_moved) (GooCanvasItemModel *model,
129
+ gint old_child_num,
130
+ gint new_child_num);
131
+ void (* child_removed) (GooCanvasItemModel *model,
132
+ gint child_num);
133
+ void (* changed) (GooCanvasItemModel *model,
134
+ gboolean recompute_bounds);
135
+ void (* child_notify) (GooCanvasItemModel *model,
136
+ GParamSpec *pspec);
137
+
138
+ void (* animation_finished) (GooCanvasItemModel *model,
139
+ gboolean stopped);
140
+
141
+ /*< private >*/
142
+
143
+ /* Padding for future expansion */
144
+ void (*_goo_canvas_reserved1) (void);
145
+ void (*_goo_canvas_reserved2) (void);
146
+ void (*_goo_canvas_reserved3) (void);
147
+ void (*_goo_canvas_reserved4) (void);
148
+ void (*_goo_canvas_reserved5) (void);
149
+ void (*_goo_canvas_reserved6) (void);
150
+ void (*_goo_canvas_reserved7) (void);
151
+ };
152
+
153
+
154
+ GType goo_canvas_item_model_get_type (void) G_GNUC_CONST;
155
+
156
+
157
+ /*
158
+ * Group functions - these should only be called on container models.
159
+ */
160
+ gint goo_canvas_item_model_get_n_children (GooCanvasItemModel *model);
161
+ GooCanvasItemModel* goo_canvas_item_model_get_child (GooCanvasItemModel *model,
162
+ gint child_num);
163
+ void goo_canvas_item_model_add_child (GooCanvasItemModel *model,
164
+ GooCanvasItemModel *child,
165
+ gint position);
166
+ void goo_canvas_item_model_move_child (GooCanvasItemModel *model,
167
+ gint old_position,
168
+ gint new_position);
169
+ void goo_canvas_item_model_remove_child (GooCanvasItemModel *model,
170
+ gint child_num);
171
+ gint goo_canvas_item_model_find_child (GooCanvasItemModel *model,
172
+ GooCanvasItemModel *child);
173
+
174
+ void goo_canvas_item_model_get_child_property (GooCanvasItemModel *model,
175
+ GooCanvasItemModel *child,
176
+ const gchar *property_name,
177
+ GValue *value);
178
+ void goo_canvas_item_model_set_child_property (GooCanvasItemModel *model,
179
+ GooCanvasItemModel *child,
180
+ const gchar *property_name,
181
+ const GValue *value);
182
+ void goo_canvas_item_model_get_child_properties (GooCanvasItemModel *model,
183
+ GooCanvasItemModel *child,
184
+ ...) G_GNUC_NULL_TERMINATED;
185
+ void goo_canvas_item_model_set_child_properties (GooCanvasItemModel *model,
186
+ GooCanvasItemModel *child,
187
+ ...) G_GNUC_NULL_TERMINATED;
188
+ void goo_canvas_item_model_get_child_properties_valist (GooCanvasItemModel *model,
189
+ GooCanvasItemModel *child,
190
+ va_list var_args);
191
+ void goo_canvas_item_model_set_child_properties_valist (GooCanvasItemModel *model,
192
+ GooCanvasItemModel *child,
193
+ va_list var_args);
194
+
195
+
196
+ /*
197
+ * Model functions - these are safe to call on all models.
198
+ */
199
+ GooCanvasItemModel* goo_canvas_item_model_get_parent (GooCanvasItemModel *model);
200
+ void goo_canvas_item_model_set_parent (GooCanvasItemModel *model,
201
+ GooCanvasItemModel *parent);
202
+ void goo_canvas_item_model_remove (GooCanvasItemModel *model);
203
+ gboolean goo_canvas_item_model_is_container (GooCanvasItemModel *model);
204
+
205
+ void goo_canvas_item_model_raise (GooCanvasItemModel *model,
206
+ GooCanvasItemModel *above);
207
+ void goo_canvas_item_model_lower (GooCanvasItemModel *model,
208
+ GooCanvasItemModel *below);
209
+
210
+ gboolean goo_canvas_item_model_get_transform (GooCanvasItemModel *model,
211
+ cairo_matrix_t *transform);
212
+ void goo_canvas_item_model_set_transform (GooCanvasItemModel *model,
213
+ const cairo_matrix_t *transform);
214
+ gboolean goo_canvas_item_model_get_simple_transform (GooCanvasItemModel *model,
215
+ gdouble *x,
216
+ gdouble *y,
217
+ gdouble *scale,
218
+ gdouble *rotation);
219
+ void goo_canvas_item_model_set_simple_transform (GooCanvasItemModel *model,
220
+ gdouble x,
221
+ gdouble y,
222
+ gdouble scale,
223
+ gdouble rotation);
224
+
225
+ void goo_canvas_item_model_translate (GooCanvasItemModel *model,
226
+ gdouble tx,
227
+ gdouble ty);
228
+ void goo_canvas_item_model_scale (GooCanvasItemModel *model,
229
+ gdouble sx,
230
+ gdouble sy);
231
+ void goo_canvas_item_model_rotate (GooCanvasItemModel *model,
232
+ gdouble degrees,
233
+ gdouble cx,
234
+ gdouble cy);
235
+ void goo_canvas_item_model_skew_x (GooCanvasItemModel *model,
236
+ gdouble degrees,
237
+ gdouble cx,
238
+ gdouble cy);
239
+ void goo_canvas_item_model_skew_y (GooCanvasItemModel *model,
240
+ gdouble degrees,
241
+ gdouble cx,
242
+ gdouble cy);
243
+
244
+ GooCanvasStyle* goo_canvas_item_model_get_style (GooCanvasItemModel *model);
245
+ void goo_canvas_item_model_set_style (GooCanvasItemModel *model,
246
+ GooCanvasStyle *style);
247
+
248
+ void goo_canvas_item_model_animate (GooCanvasItemModel *model,
249
+ gdouble x,
250
+ gdouble y,
251
+ gdouble scale,
252
+ gdouble degrees,
253
+ gboolean absolute,
254
+ gint duration,
255
+ gint step_time,
256
+ GooCanvasAnimateType type);
257
+ void goo_canvas_item_model_stop_animation (GooCanvasItemModel *model);
258
+
259
+
260
+ /*
261
+ * Functions to support child properties when implementing new canvas items.
262
+ */
263
+ void goo_canvas_item_model_class_install_child_property (GObjectClass *mclass,
264
+ guint property_id,
265
+ GParamSpec *pspec);
266
+ GParamSpec* goo_canvas_item_model_class_find_child_property (GObjectClass *mclass,
267
+ const gchar *property_name);
268
+ GParamSpec** goo_canvas_item_model_class_list_child_properties (GObjectClass *mclass,
269
+ guint *n_properties);
270
+
271
+
272
+
273
+ G_END_DECLS
274
+
275
+ #endif /* __GOO_CANVAS_ITEM_MODEL_H__ */
@@ -0,0 +1,247 @@
1
+ /*
2
+ * GooCanvas. Copyright (C) 2005-6 Damon Chaplin.
3
+ * Released under the GNU LGPL license. See COPYING for details.
4
+ *
5
+ * goocanvasitemsimple.h - abstract base class for simple items.
6
+ */
7
+ #ifndef __GOO_CANVAS_ITEM_SIMPLE_H__
8
+ #define __GOO_CANVAS_ITEM_SIMPLE_H__
9
+
10
+ #include <gtk/gtk.h>
11
+ #include "goocanvasitem.h"
12
+ #include "goocanvasitemmodel.h"
13
+ #include "goocanvasstyle.h"
14
+ #include "goocanvasutils.h"
15
+
16
+ G_BEGIN_DECLS
17
+
18
+
19
+ /**
20
+ * GooCanvasItemSimpleData
21
+ * @style: the style to draw with.
22
+ * @transform: the transformation matrix of the item, or %NULL.
23
+ * @clip_path_commands: an array of #GooCanvasPathCommand specifying the clip
24
+ * path of the item, or %NULL.
25
+ * @tooltip: the item's tooltip.
26
+ * @visibility_threshold: the threshold scale setting at which to show the item
27
+ * (if the @visibility setting is set to %VISIBLE_ABOVE_THRESHOLD).
28
+ * @visibility: the #GooCanvasItemVisibility setting specifying whether the
29
+ * item is visible, invisible, or visible above a given canvas scale setting.
30
+ * @pointer_events: the #GooCanvasPointerEvents setting specifying the events
31
+ * the item should receive.
32
+ * @can_focus: if the item can take the keyboard focus.
33
+ * @own_style: if the item has its own style, rather than using its parent's.
34
+ * @clip_fill_rule: the #cairo_fill_rule_t setting specifying the fill rule
35
+ * used for the clip path.
36
+ * @is_static: if the item is static.
37
+ *
38
+ * This is the data common to both the model and view classes.
39
+ */
40
+ typedef struct _GooCanvasItemSimpleData GooCanvasItemSimpleData;
41
+ struct _GooCanvasItemSimpleData
42
+ {
43
+ GooCanvasStyle *style;
44
+ cairo_matrix_t *transform;
45
+ GArray *clip_path_commands;
46
+ gchar *tooltip;
47
+
48
+ /*< public >*/
49
+ gdouble visibility_threshold;
50
+ guint visibility : 2;
51
+ guint pointer_events : 4;
52
+ guint can_focus : 1;
53
+ guint own_style : 1;
54
+ guint clip_fill_rule : 4;
55
+ guint is_static : 1;
56
+
57
+ /*< private >*/
58
+ /* We might use this in future for a cache setting - never/always/visible. */
59
+ guint cache_setting : 2;
60
+ /* We might need this for tooltips in future. */
61
+ guint has_tooltip : 1;
62
+ };
63
+
64
+
65
+ #define GOO_TYPE_CANVAS_ITEM_SIMPLE (goo_canvas_item_simple_get_type ())
66
+ #define GOO_CANVAS_ITEM_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_CANVAS_ITEM_SIMPLE, GooCanvasItemSimple))
67
+ #define GOO_CANVAS_ITEM_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOO_TYPE_CANVAS_ITEM_SIMPLE, GooCanvasItemSimpleClass))
68
+ #define GOO_IS_CANVAS_ITEM_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_CANVAS_ITEM_SIMPLE))
69
+ #define GOO_IS_CANVAS_ITEM_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOO_TYPE_CANVAS_ITEM_SIMPLE))
70
+ #define GOO_CANVAS_ITEM_SIMPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOO_TYPE_CANVAS_ITEM_SIMPLE, GooCanvasItemSimpleClass))
71
+
72
+
73
+ typedef struct _GooCanvasItemSimple GooCanvasItemSimple;
74
+ typedef struct _GooCanvasItemSimpleClass GooCanvasItemSimpleClass;
75
+
76
+ typedef struct _GooCanvasItemModelSimple GooCanvasItemModelSimple;
77
+
78
+ /**
79
+ * GooCanvasItemSimple
80
+ * @canvas: the canvas.
81
+ * @parent: the parent item.
82
+ * @model: the item's model, if it has one.
83
+ * @simple_data: data that is common to both the model and view classes. If
84
+ * the canvas item has a model, this will point to the model's
85
+ * #GooCanvasItemSimpleData, otherwise the canvas item will have its own
86
+ * #GooCanvasItemSimpleData.
87
+ * @bounds: the bounds of the item, in device space.
88
+ * @need_update: if the item needs to recompute its bounds and redraw.
89
+ * @need_entire_subtree_update: if all descendants need to be updated.
90
+ *
91
+ * The #GooCanvasItemSimple-struct struct contains the basic data needed to
92
+ * implement canvas items.
93
+ */
94
+ struct _GooCanvasItemSimple
95
+ {
96
+ /* <private> */
97
+ GObject parent_object;
98
+
99
+ /* <public> */
100
+ GooCanvas *canvas;
101
+ GooCanvasItem *parent;
102
+ GooCanvasItemModelSimple *model;
103
+ GooCanvasItemSimpleData *simple_data;
104
+ GooCanvasBounds bounds;
105
+ guint need_update : 1;
106
+ guint need_entire_subtree_update : 1;
107
+
108
+ /* <private> */
109
+ /* We might use this in future for things like a cache. */
110
+ gpointer priv;
111
+ };
112
+
113
+ /**
114
+ * GooCanvasItemSimpleClass
115
+ * @simple_create_path: simple subclasses that draw basic shapes and paths only
116
+ * need to override this one method. It creates the path for the item.
117
+ * All updating, painting and hit-testing is provided automatically by the
118
+ * #GooCanvasItemSimple class. (This method is used by the builtin
119
+ * #GooCanvasEllipse, #GooCanvasRect and #GooCanvasPath items.)
120
+ * More complicated subclasses must override @simple_update, @simple_paint and
121
+ * @simple_is_item_at instead.
122
+ * @simple_update: subclasses should override this to calculate their new
123
+ * bounds, in user space.
124
+ * @simple_paint: subclasses should override this to paint their item.
125
+ * @simple_is_item_at: subclasses should override this to do hit-testing.
126
+ *
127
+ * The #GooCanvasItemSimpleClass-struct struct contains several methods that
128
+ * subclasses can override.
129
+ *
130
+ * Simple items need only implement the create_path() method. More complex
131
+ * items must override the update(), paint() and is_item_at() methods instead.
132
+ */
133
+ struct _GooCanvasItemSimpleClass
134
+ {
135
+ /*< private >*/
136
+ GObjectClass parent_class;
137
+
138
+ /*< public >*/
139
+ void (* simple_create_path) (GooCanvasItemSimple *simple,
140
+ cairo_t *cr);
141
+
142
+ void (* simple_update) (GooCanvasItemSimple *simple,
143
+ cairo_t *cr);
144
+ void (* simple_paint) (GooCanvasItemSimple *simple,
145
+ cairo_t *cr,
146
+ const GooCanvasBounds *bounds);
147
+ gboolean (* simple_is_item_at) (GooCanvasItemSimple *simple,
148
+ gdouble x,
149
+ gdouble y,
150
+ cairo_t *cr,
151
+ gboolean is_pointer_event);
152
+
153
+ /*< private >*/
154
+
155
+ /* Padding for future expansion */
156
+ void (*_goo_canvas_reserved1) (void);
157
+ void (*_goo_canvas_reserved2) (void);
158
+ void (*_goo_canvas_reserved3) (void);
159
+ void (*_goo_canvas_reserved4) (void);
160
+ };
161
+
162
+
163
+ GType goo_canvas_item_simple_get_type (void) G_GNUC_CONST;
164
+
165
+
166
+ void goo_canvas_item_simple_get_path_bounds (GooCanvasItemSimple *item,
167
+ cairo_t *cr,
168
+ GooCanvasBounds *bounds);
169
+ void goo_canvas_item_simple_user_bounds_to_device (GooCanvasItemSimple *item,
170
+ cairo_t *cr,
171
+ GooCanvasBounds *bounds);
172
+ void goo_canvas_item_simple_user_bounds_to_parent (GooCanvasItemSimple *item,
173
+ cairo_t *cr,
174
+ GooCanvasBounds *bounds);
175
+ gboolean goo_canvas_item_simple_check_in_path (GooCanvasItemSimple *item,
176
+ gdouble x,
177
+ gdouble y,
178
+ cairo_t *cr,
179
+ GooCanvasPointerEvents pointer_events);
180
+ void goo_canvas_item_simple_paint_path (GooCanvasItemSimple *item,
181
+ cairo_t *cr);
182
+
183
+ void goo_canvas_item_simple_changed (GooCanvasItemSimple *item,
184
+ gboolean recompute_bounds);
185
+ void goo_canvas_item_simple_check_style (GooCanvasItemSimple *item);
186
+ gdouble goo_canvas_item_simple_get_line_width (GooCanvasItemSimple *item);
187
+ void goo_canvas_item_simple_set_model (GooCanvasItemSimple *item,
188
+ GooCanvasItemModel *model);
189
+
190
+
191
+
192
+
193
+
194
+ #define GOO_TYPE_CANVAS_ITEM_MODEL_SIMPLE (goo_canvas_item_model_simple_get_type ())
195
+ #define GOO_CANVAS_ITEM_MODEL_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_CANVAS_ITEM_MODEL_SIMPLE, GooCanvasItemModelSimple))
196
+ #define GOO_CANVAS_ITEM_MODEL_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOO_TYPE_CANVAS_ITEM_MODEL_SIMPLE, GooCanvasItemModelSimpleClass))
197
+ #define GOO_IS_CANVAS_ITEM_MODEL_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_CANVAS_ITEM_MODEL_SIMPLE))
198
+ #define GOO_IS_CANVAS_ITEM_MODEL_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOO_TYPE_CANVAS_ITEM_MODEL_SIMPLE))
199
+ #define GOO_CANVAS_ITEM_MODEL_SIMPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOO_TYPE_CANVAS_ITEM_MODEL_SIMPLE, GooCanvasItemModelSimpleClass))
200
+
201
+
202
+ typedef struct _GooCanvasItemModelSimpleClass GooCanvasItemModelSimpleClass;
203
+
204
+ /**
205
+ * GooCanvasItemModelSimple
206
+ * @parent: the parent model.
207
+ * @simple_data: data used by the canvas item for viewing the model.
208
+ *
209
+ * The #GooCanvasItemModelSimple-struct struct contains the basic data needed
210
+ * to implement canvas item models.
211
+ */
212
+ struct _GooCanvasItemModelSimple
213
+ {
214
+ GObject parent_object;
215
+
216
+ /*< public >*/
217
+ GooCanvasItemModel *parent;
218
+ GooCanvasItemSimpleData simple_data;
219
+
220
+ /*< private >*/
221
+
222
+ /* The title and description of the item for accessibility. */
223
+ gchar *title;
224
+ gchar *description;
225
+ };
226
+
227
+
228
+ struct _GooCanvasItemModelSimpleClass
229
+ {
230
+ GObjectClass parent_class;
231
+
232
+ /*< private >*/
233
+
234
+ /* Padding for future expansion */
235
+ void (*_goo_canvas_reserved1) (void);
236
+ void (*_goo_canvas_reserved2) (void);
237
+ void (*_goo_canvas_reserved3) (void);
238
+ void (*_goo_canvas_reserved4) (void);
239
+ };
240
+
241
+
242
+ GType goo_canvas_item_model_simple_get_type (void) G_GNUC_CONST;
243
+
244
+
245
+ G_END_DECLS
246
+
247
+ #endif /* __GOO_CANVAS_ITEM_SIMPLE_H__ */
@@ -0,0 +1,61 @@
1
+
2
+ #ifndef __goo_canvas_marshal_MARSHAL_H__
3
+ #define __goo_canvas_marshal_MARSHAL_H__
4
+
5
+ #include <glib-object.h>
6
+
7
+ G_BEGIN_DECLS
8
+
9
+ /* VOID:VOID (./goocanvasmarshal.list:1) */
10
+ #define goo_canvas_marshal_VOID__VOID g_cclosure_marshal_VOID__VOID
11
+
12
+ /* VOID:INT (./goocanvasmarshal.list:2) */
13
+ #define goo_canvas_marshal_VOID__INT g_cclosure_marshal_VOID__INT
14
+
15
+ /* VOID:INT,INT (./goocanvasmarshal.list:3) */
16
+ extern void goo_canvas_marshal_VOID__INT_INT (GClosure *closure,
17
+ GValue *return_value,
18
+ guint n_param_values,
19
+ const GValue *param_values,
20
+ gpointer invocation_hint,
21
+ gpointer marshal_data);
22
+
23
+ /* VOID:BOOLEAN (./goocanvasmarshal.list:4) */
24
+ #define goo_canvas_marshal_VOID__BOOLEAN g_cclosure_marshal_VOID__BOOLEAN
25
+
26
+ /* VOID:OBJECT,OBJECT (./goocanvasmarshal.list:5) */
27
+ extern void goo_canvas_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
28
+ GValue *return_value,
29
+ guint n_param_values,
30
+ const GValue *param_values,
31
+ gpointer invocation_hint,
32
+ gpointer marshal_data);
33
+
34
+ /* BOOLEAN:BOXED (./goocanvasmarshal.list:6) */
35
+ extern void goo_canvas_marshal_BOOLEAN__BOXED (GClosure *closure,
36
+ GValue *return_value,
37
+ guint n_param_values,
38
+ const GValue *param_values,
39
+ gpointer invocation_hint,
40
+ gpointer marshal_data);
41
+
42
+ /* BOOLEAN:OBJECT,BOXED (./goocanvasmarshal.list:7) */
43
+ extern void goo_canvas_marshal_BOOLEAN__OBJECT_BOXED (GClosure *closure,
44
+ GValue *return_value,
45
+ guint n_param_values,
46
+ const GValue *param_values,
47
+ gpointer invocation_hint,
48
+ gpointer marshal_data);
49
+
50
+ /* BOOLEAN:DOUBLE,DOUBLE,BOOLEAN,OBJECT (./goocanvasmarshal.list:8) */
51
+ extern void goo_canvas_marshal_BOOLEAN__DOUBLE_DOUBLE_BOOLEAN_OBJECT (GClosure *closure,
52
+ GValue *return_value,
53
+ guint n_param_values,
54
+ const GValue *param_values,
55
+ gpointer invocation_hint,
56
+ gpointer marshal_data);
57
+
58
+ G_END_DECLS
59
+
60
+ #endif /* __goo_canvas_marshal_MARSHAL_H__ */
61
+
@@ -0,0 +1,116 @@
1
+ /*
2
+ * GooCanvas. Copyright (C) 2005-6 Damon Chaplin.
3
+ * Released under the GNU LGPL license. See COPYING for details.
4
+ *
5
+ * goocanvaspath.h - a path item, very similar to the SVG path element.
6
+ */
7
+ #ifndef __GOO_CANVAS_PATH_H__
8
+ #define __GOO_CANVAS_PATH_H__
9
+
10
+ #include <gtk/gtk.h>
11
+ #include "goocanvasitemsimple.h"
12
+
13
+ G_BEGIN_DECLS
14
+
15
+
16
+ /* This is the data used by both model and view classes. */
17
+ typedef struct _GooCanvasPathData GooCanvasPathData;
18
+ struct _GooCanvasPathData
19
+ {
20
+ /* An array of GooCanvasPathCommand. */
21
+ GArray *path_commands;
22
+ };
23
+
24
+
25
+ #define GOO_TYPE_CANVAS_PATH (goo_canvas_path_get_type ())
26
+ #define GOO_CANVAS_PATH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_CANVAS_PATH, GooCanvasPath))
27
+ #define GOO_CANVAS_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOO_TYPE_CANVAS_PATH, GooCanvasPathClass))
28
+ #define GOO_IS_CANVAS_PATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_CANVAS_PATH))
29
+ #define GOO_IS_CANVAS_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOO_TYPE_CANVAS_PATH))
30
+ #define GOO_CANVAS_PATH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOO_TYPE_CANVAS_PATH, GooCanvasPathClass))
31
+
32
+
33
+ typedef struct _GooCanvasPath GooCanvasPath;
34
+ typedef struct _GooCanvasPathClass GooCanvasPathClass;
35
+
36
+ /**
37
+ * GooCanvasPath
38
+ *
39
+ * The #GooCanvasPath-struct struct contains private data only.
40
+ */
41
+ struct _GooCanvasPath
42
+ {
43
+ GooCanvasItemSimple parent;
44
+
45
+ GooCanvasPathData *path_data;
46
+ };
47
+
48
+ struct _GooCanvasPathClass
49
+ {
50
+ GooCanvasItemSimpleClass parent_class;
51
+
52
+ /*< private >*/
53
+
54
+ /* Padding for future expansion */
55
+ void (*_goo_canvas_reserved1) (void);
56
+ void (*_goo_canvas_reserved2) (void);
57
+ void (*_goo_canvas_reserved3) (void);
58
+ void (*_goo_canvas_reserved4) (void);
59
+ };
60
+
61
+
62
+ GType goo_canvas_path_get_type (void) G_GNUC_CONST;
63
+
64
+ GooCanvasItem* goo_canvas_path_new (GooCanvasItem *parent,
65
+ const gchar *path_data,
66
+ ...);
67
+
68
+
69
+
70
+ #define GOO_TYPE_CANVAS_PATH_MODEL (goo_canvas_path_model_get_type ())
71
+ #define GOO_CANVAS_PATH_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_CANVAS_PATH_MODEL, GooCanvasPathModel))
72
+ #define GOO_CANVAS_PATH_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOO_TYPE_CANVAS_PATH_MODEL, GooCanvasPathModelClass))
73
+ #define GOO_IS_CANVAS_PATH_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_CANVAS_PATH_MODEL))
74
+ #define GOO_IS_CANVAS_PATH_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOO_TYPE_CANVAS_PATH_MODEL))
75
+ #define GOO_CANVAS_PATH_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOO_TYPE_CANVAS_PATH_MODEL, GooCanvasPathModelClass))
76
+
77
+
78
+ typedef struct _GooCanvasPathModel GooCanvasPathModel;
79
+ typedef struct _GooCanvasPathModelClass GooCanvasPathModelClass;
80
+
81
+ /**
82
+ * GooCanvasPathModel
83
+ *
84
+ * The #GooCanvasPathModel-struct struct contains private data only.
85
+ */
86
+ struct _GooCanvasPathModel
87
+ {
88
+ GooCanvasItemModelSimple parent_object;
89
+
90
+ GooCanvasPathData path_data;
91
+ };
92
+
93
+ struct _GooCanvasPathModelClass
94
+ {
95
+ GooCanvasItemModelSimpleClass parent_class;
96
+
97
+ /*< private >*/
98
+
99
+ /* Padding for future expansion */
100
+ void (*_goo_canvas_reserved1) (void);
101
+ void (*_goo_canvas_reserved2) (void);
102
+ void (*_goo_canvas_reserved3) (void);
103
+ void (*_goo_canvas_reserved4) (void);
104
+ };
105
+
106
+
107
+ GType goo_canvas_path_model_get_type (void) G_GNUC_CONST;
108
+
109
+ GooCanvasItemModel* goo_canvas_path_model_new (GooCanvasItemModel *parent,
110
+ const gchar *path_data,
111
+ ...);
112
+
113
+
114
+ G_END_DECLS
115
+
116
+ #endif /* __GOO_CANVAS_PATH_H__ */