goocanvas 0.90.6-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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__ */