gcompris r3606 - branches/gcomprixogoo/src/boards
- From: bcoudoin svn gnome org
- To: svn-commits-list gnome org
- Subject: gcompris r3606 - branches/gcomprixogoo/src/boards
- Date: Sun, 9 Nov 2008 22:22:35 +0000 (UTC)
Author: bcoudoin
Date: Sun Nov 9 22:22:35 2008
New Revision: 3606
URL: http://svn.gnome.org/viewvc/gcompris?rev=3606&view=rev
Log:
Added support for goocanvas svg in python
Added:
branches/gcomprixogoo/src/boards/goocanvas.defs
branches/gcomprixogoo/src/boards/goocanvas.override
Modified:
branches/gcomprixogoo/src/boards/goocanvas.c
branches/gcomprixogoo/src/boards/py-mod-utils.c
Modified: branches/gcomprixogoo/src/boards/goocanvas.c
==============================================================================
--- branches/gcomprixogoo/src/boards/goocanvas.c (original)
+++ branches/gcomprixogoo/src/boards/goocanvas.c Sun Nov 9 22:22:35 2008
@@ -207,8 +207,6 @@
#define PyGtkContainer_Type (*_PyGtkContainer_Type)
static PyTypeObject *_PyGtkAdjustment_Type;
#define PyGtkAdjustment_Type (*_PyGtkAdjustment_Type)
-static PyTypeObject *_PyGdkCairoContext_Type;
-#define PyGdkCairoContext_Type (*_PyGdkCairoContext_Type)
/* ---------- forward type declarations ---------- */
@@ -221,6 +219,7 @@
PyTypeObject G_GNUC_INTERNAL PyGooCanvasEllipseModel_Type;
PyTypeObject G_GNUC_INTERNAL PyGooCanvasItemSimple_Type;
PyTypeObject G_GNUC_INTERNAL PyGooCanvasImage_Type;
+PyTypeObject G_GNUC_INTERNAL PyGooCanvasSvg_Type;
PyTypeObject G_GNUC_INTERNAL PyGooCanvasGroup_Type;
PyTypeObject G_GNUC_INTERNAL PyGooCanvasEllipse_Type;
PyTypeObject G_GNUC_INTERNAL PyGooCanvasPath_Type;
@@ -290,7 +289,7 @@
}
-#line 294 "goocanvas.c"
+#line 293 "goocanvas.c"
@@ -304,11 +303,11 @@
PyObject *py_data;
gint i, n_data;
GooCanvasPoints *points;
-
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GooCanvasPoints.__init__",
- kwlist, &PyList_Type, &py_data))
- return -1;
+ kwlist, &PyList_Type, &py_data))
+ return -1;
n_data = PyList_Size(py_data);
points = goo_canvas_points_new(n_data);
for (i = 0; i < n_data; i ++) {
@@ -323,52 +322,9 @@
self->gtype = GOO_TYPE_CANVAS_POINTS;
return 0;
}
-#line 327 "goocanvas.c"
-
-
-#line 1880 "goocanvas.override"
-
-static PyObject *
-_wrap_goo_canvas_points__get_coords(PyObject *self, void *closure)
-{
- gdouble *coords;
- int num_points, i;
- PyObject *ret = Py_None;
-
- num_points = pyg_boxed_get(self, GooCanvasPoints)->num_points;
- coords = pyg_boxed_get(self, GooCanvasPoints)->coords;
-
- if (num_points > 0) {
- ret = PyList_New(num_points);
-
- for (i = 0; i < num_points; i ++) {
- PyObject *py_temp = Py_BuildValue("dd", coords[2*i], coords[2*i + 1]);
- PyList_SetItem(ret, i, py_temp);
- }
- return ret;
- }
- Py_INCREF(ret);
- return ret;
-}
-
-#line 355 "goocanvas.c"
+#line 326 "goocanvas.c"
-static PyObject *
-_wrap_goo_canvas_points__get_num_points(PyObject *self, void *closure)
-{
- int ret;
-
- ret = pyg_boxed_get(self, GooCanvasPoints)->num_points;
- return PyInt_FromLong(ret);
-}
-
-static const PyGetSetDef goo_canvas_points_getsets[] = {
- { "coords", (getter)_wrap_goo_canvas_points__get_coords, (setter)0 },
- { "num_points", (getter)_wrap_goo_canvas_points__get_num_points, (setter)0 },
- { NULL, (getter)0, (setter)0 },
-};
-
PyTypeObject G_GNUC_INTERNAL PyGooCanvasPoints_Type = {
PyObject_HEAD_INIT(NULL)
0, /* ob_size */
@@ -401,7 +357,7 @@
(iternextfunc)0, /* tp_iternext */
(struct PyMethodDef*)NULL, /* tp_methods */
(struct PyMemberDef*)0, /* tp_members */
- (struct PyGetSetDef*)goo_canvas_points_getsets, /* tp_getset */
+ (struct PyGetSetDef*)0, /* tp_getset */
NULL, /* tp_base */
NULL, /* tp_dict */
(descrgetfunc)0, /* tp_descr_get */
@@ -455,7 +411,7 @@
self->free_on_dealloc = TRUE;
return 0;
}
-#line 459 "goocanvas.c"
+#line 415 "goocanvas.c"
PyTypeObject G_GNUC_INTERNAL PyGooCanvasLineDash_Type = {
@@ -623,29 +579,29 @@
gdouble x, y;
GList *item_list;
gboolean is_pointer_event;
-
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"ddO:get_items_at",
kwlist,
&x, &y, &point_event))
return NULL;
-
+
is_pointer_event = (PyObject_IsTrue(point_event)) ? TRUE : FALSE;
-
+
item_list = goo_canvas_get_items_at(GOO_CANVAS(self->obj),
x, y, is_pointer_event);
-
+
if (!item_list) {
Py_INCREF (Py_None);
return Py_None;
}
-
+
ret = _glist_to_pylist_objs(item_list);
g_list_free(item_list);
return ret;
}
-#line 649 "goocanvas.c"
+#line 605 "goocanvas.c"
#line 1469 "goocanvas.override"
@@ -658,7 +614,7 @@
PyObject *area;
GList *item_list;
gboolean inside, include_cont, include_over;
-
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!OOO:get_items_at",
kwlist,
@@ -669,7 +625,7 @@
inside = (PyObject_IsTrue(inside_area)) ? TRUE : FALSE;
include_cont = (PyObject_IsTrue(include_containers)) ? TRUE : FALSE;
include_over = (PyObject_IsTrue(include_overlaps)) ? TRUE : FALSE;
-
+
item_list = goo_canvas_get_items_in_area (GOO_CANVAS(self->obj),
&((PyGooCanvasBounds *) area)->bounds,
inside,
@@ -679,14 +635,14 @@
Py_INCREF (Py_None);
return Py_None;
}
-
-
+
+
ret = _glist_to_pylist_objs(item_list);
g_list_free(item_list);
return ret;
}
-#line 690 "goocanvas.c"
+#line 646 "goocanvas.c"
static PyObject *
@@ -720,13 +676,13 @@
_wrap_goo_canvas_get_bounds(PyGObject *self)
{
gdouble left, right, top, bottom;
-
+
goo_canvas_get_bounds(GOO_CANVAS(self->obj), &left, &right, &top, &bottom);
-
+
return Py_BuildValue("dddd", left, right, top, bottom);
}
-#line 730 "goocanvas.c"
+#line 686 "goocanvas.c"
static PyObject *
@@ -805,13 +761,13 @@
if (!PyArg_ParseTupleAndKeywords(args, kwargs,"dd:GooCanvas.convert_to_pixels", kwlist, &x, &y))
return NULL;
-
+
goo_canvas_convert_to_pixels(GOO_CANVAS(self->obj), &x, &y);
-
+
return Py_BuildValue("dd", x, y);
}
-#line 815 "goocanvas.c"
+#line 771 "goocanvas.c"
#line 556 "goocanvas.override"
@@ -823,13 +779,13 @@
if (!PyArg_ParseTupleAndKeywords(args, kwargs,"dd:GooCanvas.convert_from_pixels", kwlist, &x, &y))
return NULL;
-
+
goo_canvas_convert_from_pixels(GOO_CANVAS(self->obj), &x, &y);
-
+
return Py_BuildValue("dd", x, y);
}
-#line 833 "goocanvas.c"
+#line 789 "goocanvas.c"
#line 572 "goocanvas.override"
@@ -840,15 +796,15 @@
gdouble x, y;
PyGObject *item;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!dd:GooCanvas.convert_to_item_space",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!dd:GooCanvas.convert_to_item_space",
kwlist, &PyGooCanvasItem_Type, &item, &x, &y))
return NULL;
-
+
goo_canvas_convert_to_item_space(GOO_CANVAS(self->obj), GOO_CANVAS_ITEM(item->obj), &x, &y);
-
+
return Py_BuildValue("dd", x, y);
}
-#line 852 "goocanvas.c"
+#line 808 "goocanvas.c"
#line 589 "goocanvas.override"
@@ -859,15 +815,15 @@
gdouble x, y;
PyGObject *item;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!dd:GooCanvas.convert_from_item_space",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!dd:GooCanvas.convert_from_item_space",
kwlist, &PyGooCanvasItem_Type, &item, &x, &y))
return NULL;
-
+
goo_canvas_convert_from_item_space(GOO_CANVAS(self->obj), GOO_CANVAS_ITEM(item->obj), &x, &y);
return Py_BuildValue("dd", x, y);
}
-#line 871 "goocanvas.c"
+#line 827 "goocanvas.c"
static PyObject *
@@ -946,19 +902,17 @@
return Py_None;
}
-#line 2029 "goocanvas.override"
static PyObject *
_wrap_goo_canvas_create_cairo_context(PyGObject *self)
{
cairo_t *ret;
+
ret = goo_canvas_create_cairo_context(GOO_CANVAS(self->obj));
cairo_reference(ret);
- return PycairoContext_FromContext(ret, &PyGdkCairoContext_Type, NULL);
+ return PycairoContext_FromContext(ret, NULL, NULL);
}
-#line 961 "goocanvas.c"
-
static PyObject *
_wrap_goo_canvas_create_item(PyGObject *self, PyObject *args, PyObject *kwargs)
@@ -1730,20 +1684,20 @@
PycairoContext *cr;
GooCanvasBounds bounds = {0,};
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:get_path_bounds",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:get_path_bounds",
kwlist, &PycairoContext_Type, &cr))
return NULL;
-
+
GooCanvasItemSimple *simple = (GooCanvasItemSimple*) self->obj;
-
+
goo_canvas_item_simple_get_path_bounds (simple, cr->ctx, &bounds);
-
+
py_bounds = pygoo_canvas_bounds_new(&bounds);
-
- return py_bounds;
+
+ return py_bounds;
}
-#line 1747 "goocanvas.c"
+#line 1701 "goocanvas.c"
static PyObject *
@@ -2003,7 +1957,7 @@
return 0;
}
-#line 2007 "goocanvas.c"
+#line 1961 "goocanvas.c"
static PyObject *
@@ -2028,7 +1982,7 @@
return 0;
}
-#line 2032 "goocanvas.c"
+#line 1986 "goocanvas.c"
static PyObject *
@@ -2053,7 +2007,7 @@
return 0;
}
-#line 2057 "goocanvas.c"
+#line 2011 "goocanvas.c"
static PyObject *
@@ -2078,7 +2032,7 @@
return 0;
}
-#line 2082 "goocanvas.c"
+#line 2036 "goocanvas.c"
static PyObject *
@@ -2108,8 +2062,7 @@
{
return pygoo_canvas_bounds_new(&GOO_CANVAS_ITEM_SIMPLE(pygobject_get(self))->bounds);
}
-
-#line 2113 "goocanvas.c"
+#line 2066 "goocanvas.c"
static const PyGetSetDef goo_canvas_item_simple_getsets[] = {
@@ -2184,7 +2137,7 @@
pyg_gil_state_release(__py_state);
return;
}
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_args = PyTuple_New(1);
PyTuple_SET_ITEM(py_args, 0, py_cr);
@@ -2245,7 +2198,7 @@
pyg_gil_state_release(__py_state);
return;
}
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_args = PyTuple_New(1);
PyTuple_SET_ITEM(py_args, 0, py_cr);
@@ -2307,7 +2260,7 @@
pyg_gil_state_release(__py_state);
return;
}
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_bounds = pygoo_canvas_bounds_new(bounds);
py_args = PyTuple_New(2);
@@ -2377,7 +2330,7 @@
}
py_x = PyFloat_FromDouble(x);
py_y = PyFloat_FromDouble(y);
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_is_pointer_event = is_pointer_event? Py_True : Py_False;
py_args = PyTuple_New(4);
@@ -2529,6 +2482,55 @@
+/* ----------- GooCanvasSvg ----------- */
+
+PyTypeObject G_GNUC_INTERNAL PyGooCanvasSvg_Type = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* ob_size */
+ "goocanvas.Svg", /* tp_name */
+ sizeof(PyGObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor)0, /* tp_dealloc */
+ (printfunc)0, /* tp_print */
+ (getattrfunc)0, /* tp_getattr */
+ (setattrfunc)0, /* tp_setattr */
+ (cmpfunc)0, /* tp_compare */
+ (reprfunc)0, /* tp_repr */
+ (PyNumberMethods*)0, /* tp_as_number */
+ (PySequenceMethods*)0, /* tp_as_sequence */
+ (PyMappingMethods*)0, /* tp_as_mapping */
+ (hashfunc)0, /* tp_hash */
+ (ternaryfunc)0, /* tp_call */
+ (reprfunc)0, /* tp_str */
+ (getattrofunc)0, /* tp_getattro */
+ (setattrofunc)0, /* tp_setattro */
+ (PyBufferProcs*)0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ NULL, /* Documentation string */
+ (traverseproc)0, /* tp_traverse */
+ (inquiry)0, /* tp_clear */
+ (richcmpfunc)0, /* tp_richcompare */
+ offsetof(PyGObject, weakreflist), /* tp_weaklistoffset */
+ (getiterfunc)0, /* tp_iter */
+ (iternextfunc)0, /* tp_iternext */
+ (struct PyMethodDef*)NULL, /* tp_methods */
+ (struct PyMemberDef*)0, /* tp_members */
+ (struct PyGetSetDef*)0, /* tp_getset */
+ NULL, /* tp_base */
+ NULL, /* tp_dict */
+ (descrgetfunc)0, /* tp_descr_get */
+ (descrsetfunc)0, /* tp_descr_set */
+ offsetof(PyGObject, inst_dict), /* tp_dictoffset */
+ (initproc)0, /* tp_init */
+ (allocfunc)0, /* tp_alloc */
+ (newfunc)0, /* tp_new */
+ (freefunc)0, /* tp_free */
+ (inquiry)0 /* tp_is_gc */
+};
+
+
+
/* ----------- GooCanvasGroup ----------- */
PyTypeObject G_GNUC_INTERNAL PyGooCanvasGroup_Type = {
@@ -2969,13 +2971,13 @@
static char *kwlist[] = { "name", NULL };
char *name;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,"s:goocanvas.Style.get_property",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"s:goocanvas.Style.get_property",
kwlist, &name))
return NULL;
return _py_canvas_style_get_property(GOO_CANVAS_STYLE(self->obj), name);
}
-#line 2979 "goocanvas.c"
+#line 2981 "goocanvas.c"
#line 730 "goocanvas.override"
@@ -2986,7 +2988,7 @@
char *name;
PyObject *py_value;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,"sO:goocanvas.Style.set_property",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"sO:goocanvas.Style.set_property",
kwlist, &name, &py_value))
return NULL;
if (_py_goo_canvas_style_set_property(GOO_CANVAS_STYLE(self->obj), name, py_value))
@@ -2995,7 +2997,7 @@
return Py_None;
}
-#line 2999 "goocanvas.c"
+#line 3001 "goocanvas.c"
static PyObject *
@@ -3082,7 +3084,7 @@
(objobjargproc) _wrap_goo_canvas_style_ass_subscript, /* objobjargproc mp_ass_subscript; */
};
-#line 3086 "goocanvas.c"
+#line 3088 "goocanvas.c"
PyTypeObject G_GNUC_INTERNAL PyGooCanvasStyle_Type = {
@@ -3232,31 +3234,6 @@
/* ----------- GooCanvasText ----------- */
-#line 1607 "goocanvas.override"
-static PyObject *
-_wrap_goo_canvas_text_get_natural_extents(PyGObject *self)
-{
- PangoRectangle ink_rect, logical_rect;
-
- goo_canvas_text_get_natural_extents(GOO_CANVAS_TEXT(self->obj), &ink_rect,
- &logical_rect);
-
- return Py_BuildValue("((iiii)(iiii))",
- ink_rect.x, ink_rect.y,
- ink_rect.width, ink_rect.height,
- logical_rect.x, logical_rect.y,
- logical_rect.width, logical_rect.height);
-}
-
-#line 3252 "goocanvas.c"
-
-
-static const PyMethodDef _PyGooCanvasText_methods[] = {
- { "get_natural_extents", (PyCFunction)_wrap_goo_canvas_text_get_natural_extents, METH_NOARGS,
- NULL },
- { NULL, NULL, 0, NULL }
-};
-
PyTypeObject G_GNUC_INTERNAL PyGooCanvasText_Type = {
PyObject_HEAD_INIT(NULL)
0, /* ob_size */
@@ -3287,7 +3264,7 @@
offsetof(PyGObject, weakreflist), /* tp_weaklistoffset */
(getiterfunc)0, /* tp_iter */
(iternextfunc)0, /* tp_iternext */
- (struct PyMethodDef*)_PyGooCanvasText_methods, /* tp_methods */
+ (struct PyMethodDef*)NULL, /* tp_methods */
(struct PyMemberDef*)0, /* tp_members */
(struct PyGetSetDef*)0, /* tp_getset */
NULL, /* tp_base */
@@ -3502,130 +3479,11 @@
}
}
goo_canvas_item_remove_child(GOO_CANVAS_ITEM(self->obj), child_num);
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-#line 3510 "goocanvas.c"
-
-
-#line 1708 "goocanvas.override"
-static PyObject *
-_wrap_goo_canvas_item_get_child_property(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "child", "property", NULL };
- PyGObject *pychild;
- gchar *property_name;
- GooCanvasItem *item, *child;
- GObjectClass *class;
- GParamSpec *pspec;
- GValue value = { 0, } ;
- PyObject *ret;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!s:GooCanvasItem.get_child_property",
- kwlist, &PyGooCanvasItem_Type, &pychild,
- &property_name)) {
- return NULL;
- }
-
- item = GOO_CANVAS_ITEM(self->obj);
- child = GOO_CANVAS_ITEM(pychild->obj);
-
- if (goo_canvas_item_find_child(item, child) == -1) {
- PyErr_SetString(PyExc_TypeError,
- "first argument must be a child");
- return NULL;
- }
-
- class = G_OBJECT_GET_CLASS(item);
- pspec = goo_canvas_item_class_find_child_property(class, property_name);
- if (!pspec) {
- gchar buf[512];
- g_snprintf(buf, sizeof(buf),
- "item does not support property `%s'",
- property_name);
-
- PyErr_SetString(PyExc_TypeError, buf);
- return NULL;
- }
-
- g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
-
- goo_canvas_item_get_child_property(item,
- child,
- property_name,
- &value);
- ret = pyg_value_as_pyobject(&value, TRUE);
- g_value_unset(&value);
-
- return ret;
-}
-
-#line 3569 "goocanvas.c"
-
-
-#line 1650 "goocanvas.override"
-static PyObject *
-_wrap_goo_canvas_item_set_child_property(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "child", "property", "value", NULL };
- gchar *property_name;
- PyGObject *pychild;
- GooCanvasItem *item, *child;
- PyGObject *pyvalue;
- GObjectClass *class;
- GParamSpec *pspec;
- GValue value = { 0, } ;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!sO:GooCanvasItem.set_child_property",
- kwlist,
- &PyGooCanvasItem_Type, &pychild,
- &property_name, &pyvalue)) {
- return NULL;
- }
-
- item = GOO_CANVAS_ITEM(self->obj);
- child = GOO_CANVAS_ITEM(pychild->obj);
-
- if (goo_canvas_item_find_child(item, child) == -1) {
- PyErr_SetString(PyExc_TypeError,
- "first argument must be a child");
- return NULL;
- }
-
- class = G_OBJECT_GET_CLASS(self->obj);
- pspec = goo_canvas_item_class_find_child_property(class, property_name);
- if (!pspec) {
- gchar buf[512];
- g_snprintf(buf, sizeof(buf),
- "item does not support property `%s'",
- property_name);
- PyErr_SetString(PyExc_TypeError, buf);
-
- return NULL;
- }
-
- g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
-
- pyg_value_from_pyobject(&value, (PyObject*)pyvalue);
-
- goo_canvas_item_set_child_property(item,
- child,
- property_name,
- &value);
- g_value_unset(&value);
Py_INCREF(Py_None);
return Py_None;
}
-
-#line 3629 "goocanvas.c"
+#line 3487 "goocanvas.c"
#line 921 "goocanvas.override"
@@ -3638,23 +3496,23 @@
int i, len;
gint c_pos;
PyObject *tuple;
-
+
if ((len = PyTuple_Size(args)) < 1) {
PyErr_SetString(PyExc_TypeError, "requires at least one argument");
return NULL;
}
-
+
pychild = (PyGObject*)PyTuple_GetItem(args, 0);
-
+
if (!pygobject_check(pychild, &PyGooCanvasItem_Type)) {
PyErr_SetString(PyExc_TypeError,
"first argument should be a GooCanvasItem");
return NULL;
}
-
+
parent = GOO_CANVAS_ITEM(self->obj);
child = GOO_CANVAS_ITEM(pychild->obj);
-
+
c_pos = goo_canvas_item_find_child(parent, child);
if (c_pos == -1) {
PyErr_SetString(PyExc_TypeError,
@@ -3663,9 +3521,9 @@
}
tuple = PyTuple_New(len-1);
-
+
class = G_OBJECT_GET_CLASS(self->obj);
-
+
for (i = 1; i < len; i++) {
PyObject *py_property = PyTuple_GetItem(args, i);
gchar *property_name;
@@ -3709,7 +3567,7 @@
return tuple;
}
-#line 3713 "goocanvas.c"
+#line 3571 "goocanvas.c"
#line 839 "goocanvas.override"
@@ -3724,31 +3582,31 @@
gint c_pos;
PyObject *value;
PyObject *key;
-
+
if ((len = PyTuple_Size(args)) < 1) {
PyErr_SetString(PyExc_TypeError, "requires at least one argument");
return NULL;
}
pychild = (PyGObject*)PyTuple_GetItem(args, 0);
-
+
if (!pygobject_check(pychild, &PyGooCanvasItem_Type)) {
PyErr_SetString(PyExc_TypeError,
"first argument should be a GooCanvasItem");
return NULL;
}
-
+
parent = GOO_CANVAS_ITEM(self->obj);
child = GOO_CANVAS_ITEM(pychild->obj);
-
+
c_pos = goo_canvas_item_find_child(parent, child);
if (c_pos == -1) {
PyErr_SetString(PyExc_TypeError,
"first argument must be a child");
return NULL;
}
-
+
class = G_OBJECT_GET_CLASS(self->obj);
-
+
g_object_freeze_notify (G_OBJECT(self->obj));
pos = 0;
@@ -3783,7 +3641,7 @@
iface->set_child_property ((GooCanvasItem*) parent,
(GooCanvasItem*) child,
pspec->param_id, &gvalue, pspec);
-
+
g_value_unset(&gvalue);
}
@@ -3793,38 +3651,27 @@
return Py_None;
}
-#line 3797 "goocanvas.c"
+#line 3655 "goocanvas.c"
-#line 1950 "goocanvas.override"
static PyObject *
-_wrap_goo_canvas_item_get_transform_for_child(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
+_wrap_goo_canvas_item_get_transform_for_child(PyGObject *self, PyObject *args, PyObject *kwargs)
{
- static char *kwlist[] = { "child", NULL };
+ static char *kwlist[] = { "child", "transform", NULL };
PyGObject *child;
+ PyObject *py_transform;
int ret;
- cairo_matrix_t *transform = NULL;
+ cairo_matrix_t *transform;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!:GooCanvasItem.get_transform_for_child",
- kwlist, &PyGooCanvasItem_Type, &child))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!O:GooCanvasItem.get_transform_for_child", kwlist, &PyGooCanvasItem_Type, &child, &py_transform))
return NULL;
+ transform = &((PycairoMatrix*)(py_transform))->matrix;
- ret = goo_canvas_item_get_transform_for_child(GOO_CANVAS_ITEM(self->obj),
- GOO_CANVAS_ITEM(child->obj),
- transform);
+ ret = goo_canvas_item_get_transform_for_child(GOO_CANVAS_ITEM(self->obj), GOO_CANVAS_ITEM(child->obj), transform);
- if (ret)
- return PycairoMatrix_FromMatrix(transform);
- else
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-#line 3827 "goocanvas.c"
+ return PyBool_FromLong(ret);
+}
static PyObject *
_wrap_goo_canvas_item_get_canvas(PyGObject *self)
@@ -3953,38 +3800,31 @@
PyObject *matrix;
cairo_matrix_t transform = {0,};
gboolean res;
-
+
res = goo_canvas_item_get_transform(GOO_CANVAS_ITEM(self->obj), &transform);
-
+
if (!res) {
Py_INCREF(Py_None);
return Py_None;
}
-
+
matrix = PycairoMatrix_FromMatrix(&transform);
return matrix;
}
-#line 3969 "goocanvas.c"
+#line 3816 "goocanvas.c"
-#line 1978 "goocanvas.override"
static PyObject *
-_wrap_goo_canvas_item_set_transform(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
+_wrap_goo_canvas_item_set_transform(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "matrix", NULL };
PyObject *py_matrix;
- cairo_matrix_t *matrix = NULL;
+ cairo_matrix_t *matrix;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O:GooCanvasItem.set_transform",
- kwlist, &py_matrix))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O:GooCanvasItem.set_transform", kwlist, &py_matrix))
return NULL;
-
- if (py_matrix && (py_matrix != Py_None))
- matrix = &((PycairoMatrix*)(py_matrix))->matrix;
+ matrix = &((PycairoMatrix*)(py_matrix))->matrix;
goo_canvas_item_set_transform(GOO_CANVAS_ITEM(self->obj), matrix);
@@ -3992,24 +3832,6 @@
return Py_None;
}
-#line 3996 "goocanvas.c"
-
-
-#line 1624 "goocanvas.override"
-static PyObject *
-_wrap_goo_canvas_item_get_simple_transform(PyGObject *self)
-{
- gdouble x, y, scale, rotation;
-
- goo_canvas_item_get_simple_transform(GOO_CANVAS_ITEM(self->obj), &x, &y,
- &scale, &rotation);
-
- return Py_BuildValue("dddd", x, y, scale, rotation);
-}
-
-#line 4011 "goocanvas.c"
-
-
static PyObject *
_wrap_goo_canvas_item_set_simple_transform(PyGObject *self, PyObject *args, PyObject *kwargs)
{
@@ -4163,7 +3985,7 @@
{
PyObject *py_bounds;
GooCanvasBounds bounds = {0,};
-
+
goo_canvas_item_get_bounds(GOO_CANVAS_ITEM(self->obj), &bounds);
py_bounds = pygoo_canvas_bounds_new(&bounds);
@@ -4171,7 +3993,7 @@
return py_bounds;
}
-#line 4175 "goocanvas.c"
+#line 3997 "goocanvas.c"
#line 1508 "goocanvas.override"
@@ -4186,32 +4008,32 @@
gboolean is_pointer_event;
gboolean parent_is_visible;
PycairoContext *cr;
-
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"ddOOO:get_items_at",
kwlist,
&x, &y, &cr, &point_event,
&parent_visible))
return NULL;
-
+
is_pointer_event = (PyObject_IsTrue(point_event)) ? TRUE : FALSE;
parent_is_visible = (PyObject_IsTrue(parent_visible)) ? TRUE : FALSE;
-
+
item_list = goo_canvas_item_get_items_at(GOO_CANVAS_ITEM(self->obj),
x, y, cr->ctx, is_pointer_event,
parent_is_visible, NULL);
-
+
if (!item_list) {
Py_INCREF (Py_None);
return Py_None;
}
-
+
ret = _glist_to_pylist_objs(item_list);
g_list_free(item_list);
return ret;
}
-#line 4215 "goocanvas.c"
+#line 4037 "goocanvas.c"
static PyObject *
@@ -4273,29 +4095,23 @@
return Py_None;
}
-#line 1929 "goocanvas.override"
static PyObject *
_wrap_goo_canvas_item_update(PyGObject *self, PyObject *args, PyObject *kwargs)
{
- static char *kwlist[] = { "entire_tree", "cr", NULL };
- int entire_tree;
- PycairoContext *cr;
- GooCanvasBounds bounds;
+ static char *kwlist[] = { "entire_tree", "cr", "bounds", NULL };
+ int entire_tree;
+ PyObject *py_bounds;
+ PycairoContext *cr;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,"iO!:GooCanvasItem.update",
- kwlist, &entire_tree,
- &PycairoContext_Type, &cr))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"iO!O!:GooCanvasItem.update", kwlist, &entire_tree, &PycairoContext_Type, &cr, &PyGooCanvasBounds_Type, &py_bounds))
return NULL;
- goo_canvas_item_update(GOO_CANVAS_ITEM(self->obj), entire_tree,
- cr->ctx, &bounds);
+ goo_canvas_item_update(GOO_CANVAS_ITEM(self->obj), entire_tree, cr->ctx, (py_bounds == NULL)? NULL : &((PyGooCanvasBounds *) py_bounds)->bounds);
- return pygoo_canvas_bounds_new(&bounds);
+ Py_INCREF(Py_None);
+ return Py_None;
}
-#line 4297 "goocanvas.c"
-
-
static PyObject *
_wrap_goo_canvas_item_paint(PyGObject *self, PyObject *args, PyObject *kwargs)
{
@@ -4318,30 +4134,22 @@
return Py_None;
}
-#line 1906 "goocanvas.override"
static PyObject *
-_wrap_goo_canvas_item_get_requested_area(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "cr", NULL };
- int ret;
- GooCanvasBounds bounds;
- PycairoContext *cr;
+_wrap_goo_canvas_item_get_requested_area(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "cr", "requested_area", NULL };
+ PyObject *py_requested_area;
+ int ret;
+ PycairoContext *cr;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!:GooCanvasItem.get_requested_area",
- kwlist, &PycairoContext_Type, &cr))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!O!:GooCanvasItem.get_requested_area", kwlist, &PycairoContext_Type, &cr, &PyGooCanvasBounds_Type, &py_requested_area))
return NULL;
- ret = goo_canvas_item_get_requested_area(GOO_CANVAS_ITEM(self->obj),
- cr->ctx, &bounds);
+ ret = goo_canvas_item_get_requested_area(GOO_CANVAS_ITEM(self->obj), cr->ctx, (py_requested_area == NULL)? NULL : &((PyGooCanvasBounds *) py_requested_area)->bounds);
- return pygoo_canvas_bounds_new(&bounds);
-}
-
-#line 4344 "goocanvas.c"
+ return PyBool_FromLong(ret);
+}
static PyObject *
_wrap_goo_canvas_item_get_requested_height(PyGObject *self, PyObject *args, PyObject *kwargs)
@@ -4386,26 +4194,26 @@
GType itype;
const gchar *prop_name;
GParamSpec *pspec;
-
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"s:item_class_find_child_property",
kwlist,
&prop_name))
return NULL;
-
+
if ((itype = pyg_type_from_object(cls)) == 0)
return NULL;
-
+
klass = g_type_class_ref(itype);
-
+
if (!klass) {
PyErr_SetString(PyExc_RuntimeError,
"could not get a reference to type class");
return NULL;
}
-
+
pspec = goo_canvas_item_class_find_child_property (klass, prop_name);
-
+
if(!pspec){
PyErr_Format(PyExc_KeyError,
"object %s does not support property %s",
@@ -4415,7 +4223,7 @@
return pyg_param_spec_new(pspec);
}
-#line 4419 "goocanvas.c"
+#line 4227 "goocanvas.c"
#line 1291 "goocanvas.override"
@@ -4430,7 +4238,7 @@
GObjectClass *klass;
guint nprops;
guint i;
-
+
if ((itype = pyg_type_from_object(cls)) == 0)
return NULL;
@@ -4448,18 +4256,18 @@
g_type_class_unref(klass);
return NULL;
}
-
+
for (i = 0; i < nprops; i++) {
PyList_SetItem(list, i, pyg_param_spec_new(specs[i]));
}
-
+
g_free(specs);
g_type_class_unref(klass);
return list;
}
-#line 4463 "goocanvas.c"
+#line 4271 "goocanvas.c"
#line 1385 "goocanvas.override"
@@ -4504,16 +4312,16 @@
g_type_class_unref(klass);
return NULL;
}
-
+
goo_canvas_item_class_install_child_property(klass, property_id, pspec);
-
+
g_type_class_unref(klass);
Py_INCREF(Py_None);
return Py_None;
}
-#line 4517 "goocanvas.c"
+#line 4325 "goocanvas.c"
static PyObject *
@@ -5334,10 +5142,6 @@
NULL },
{ "remove_child", (PyCFunction)_wrap_goo_canvas_item_remove_child, METH_VARARGS|METH_KEYWORDS,
NULL },
- { "get_child_property", (PyCFunction)_wrap_goo_canvas_item_get_child_property, METH_VARARGS,
- NULL },
- { "set_child_property", (PyCFunction)_wrap_goo_canvas_item_set_child_property, METH_VARARGS|METH_KEYWORDS,
- NULL },
{ "get_child_properties", (PyCFunction)_wrap_goo_canvas_item_get_child_properties, METH_VARARGS,
NULL },
{ "set_child_properties", (PyCFunction)_wrap_goo_canvas_item_set_child_properties, METH_VARARGS|METH_KEYWORDS,
@@ -5364,8 +5168,6 @@
NULL },
{ "set_transform", (PyCFunction)_wrap_goo_canvas_item_set_transform, METH_VARARGS|METH_KEYWORDS,
NULL },
- { "get_simple_transform", (PyCFunction)_wrap_goo_canvas_item_get_simple_transform, METH_NOARGS,
- NULL },
{ "set_simple_transform", (PyCFunction)_wrap_goo_canvas_item_set_simple_transform, METH_VARARGS|METH_KEYWORDS,
NULL },
{ "translate", (PyCFunction)_wrap_goo_canvas_item_translate, METH_VARARGS|METH_KEYWORDS,
@@ -6181,7 +5983,7 @@
PyGILState_STATE __py_state;
PyObject *py_self;
PyObject *py_bounds;
-
+
__py_state = pyg_gil_state_ensure();
py_self = pygobject_new((GObject *) self);
if (!py_self) {
@@ -6200,7 +6002,7 @@
Py_XDECREF(py_bounds);
pyg_gil_state_release(__py_state);
}
-#line 6204 "goocanvas.c"
+#line 6006 "goocanvas.c"
#line 633 "goocanvas.override"
@@ -6211,7 +6013,7 @@
PyGILState_STATE __py_state;
PyObject *py_self;
PyObject *py_bounds;
-
+
__py_state = pyg_gil_state_ensure();
py_self = pygobject_new((GObject *) self);
if (!py_self) {
@@ -6223,7 +6025,7 @@
py_bounds = PyObject_CallMethod(py_self, "do_update", "iN",
entire_tree,
- PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL));
+ PycairoContext_FromContext(cairo_reference(cr), NULL, NULL));
if (py_bounds)
*bounds = ((PyGooCanvasBounds *) py_bounds)->bounds;
else
@@ -6233,7 +6035,7 @@
pyg_gil_state_release(__py_state);
}
-#line 6237 "goocanvas.c"
+#line 6039 "goocanvas.c"
static void
@@ -6256,7 +6058,7 @@
pyg_gil_state_release(__py_state);
return;
}
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_bounds = pygoo_canvas_bounds_new(bounds);
py_scale = PyFloat_FromDouble(scale);
@@ -6324,7 +6126,7 @@
pyg_gil_state_release(__py_state);
return FALSE;
}
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_requested_area = pygoo_canvas_bounds_new(requested_area);
py_args = PyTuple_New(2);
@@ -6395,7 +6197,7 @@
pyg_gil_state_release(__py_state);
return;
}
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_requested_area = pygoo_canvas_bounds_new(requested_area);
py_allocated_area = pygoo_canvas_bounds_new(allocated_area);
py_x_offset = PyFloat_FromDouble(x_offset);
@@ -6656,7 +6458,7 @@
pyg_gil_state_release(__py_state);
return -G_MAXFLOAT;
}
- py_cr = PycairoContext_FromContext(cairo_reference(cr), &PyGdkCairoContext_Type, NULL);
+ py_cr = PycairoContext_FromContext(cairo_reference(cr), NULL, NULL);
py_width = PyFloat_FromDouble(width);
py_args = PyTuple_New(2);
@@ -8003,125 +7805,6 @@
return PyInt_FromLong(ret);
}
-#line 1823 "goocanvas.override"
-static PyObject *
-_wrap_goo_canvas_item_model_get_child_property(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "child", "property", NULL };
- PyGObject *pychild;
- gchar *property_name;
- GooCanvasItemModel *item, *child;
- GObjectClass *class;
- GParamSpec *pspec;
- GValue value = { 0, } ;
- PyObject *ret;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!s:GooCanvasItemModel.get_child_property",
- kwlist, &PyGooCanvasItemModel_Type, &pychild,
- &property_name)) {
- return NULL;
- }
-
- item = GOO_CANVAS_ITEM_MODEL(self->obj);
- child = GOO_CANVAS_ITEM_MODEL(pychild->obj);
-
- if (goo_canvas_item_model_find_child(item, child) == -1) {
- PyErr_SetString(PyExc_TypeError,
- "first argument must be a child");
- return NULL;
- }
-
- class = G_OBJECT_GET_CLASS(item);
- pspec = goo_canvas_item_model_class_find_child_property(class, property_name);
- if (!pspec) {
- gchar buf[512];
- g_snprintf(buf, sizeof(buf),
- "item model does not support property `%s'",
- property_name);
-
- PyErr_SetString(PyExc_TypeError, buf);
- return NULL;
- }
-
- g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
-
- goo_canvas_item_model_get_child_property(item,
- child,
- property_name,
- &value);
-
- ret = pyg_value_as_pyobject(&value, TRUE);
- g_value_unset(&value);
-
- return ret;
-}
-
-#line 8063 "goocanvas.c"
-
-
-#line 1765 "goocanvas.override"
-static PyObject *
-_wrap_goo_canvas_item_model_set_child_property(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "child", "property", "value", NULL };
- gchar *property_name;
- PyGObject *pychild;
- GooCanvasItemModel *item, *child;
- PyGObject *pyvalue;
- GObjectClass *class;
- GParamSpec *pspec;
- GValue value = { 0, } ;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!sO:GooCanvasItemModel.set_child_property",
- kwlist,
- &PyGooCanvasItemModel_Type, &pychild,
- &property_name, &pyvalue)) {
- return NULL;
- }
-
- item = GOO_CANVAS_ITEM_MODEL(self->obj);
- child = GOO_CANVAS_ITEM_MODEL(pychild->obj);
-
- if (goo_canvas_item_model_find_child(item, child) == -1) {
- PyErr_SetString(PyExc_TypeError,
- "first argument must be a child");
- return NULL;
- }
-
- class = G_OBJECT_GET_CLASS(self->obj);
- pspec = goo_canvas_item_model_class_find_child_property(class, property_name);
- if (!pspec) {
- gchar buf[512];
- g_snprintf(buf, sizeof(buf),
- "item model does not support property `%s'",
- property_name);
- PyErr_SetString(PyExc_TypeError, buf);
-
- return NULL;
- }
-
- g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
-
- pyg_value_from_pyobject(&value, (PyObject*)pyvalue);
-
- goo_canvas_item_model_set_child_property(item,
- child,
- property_name,
- &value);
- g_value_unset(&value);
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-#line 8123 "goocanvas.c"
-
-
#line 1084 "goocanvas.override"
static PyObject *
_wrap_goo_canvas_item_model_get_child_properties(PyGObject *self, PyObject *args)
@@ -8132,23 +7815,23 @@
int i, len;
gint c_pos;
PyObject *tuple;
-
+
if ((len = PyTuple_Size(args)) < 1) {
PyErr_SetString(PyExc_TypeError, "requires at least one argument");
return NULL;
}
-
+
pychild = (PyGObject*)PyTuple_GetItem(args, 0);
-
+
if (!pygobject_check(pychild, &PyGooCanvasItemModel_Type)) {
PyErr_SetString(PyExc_TypeError,
"first argument should be a GooCanvasItemModel");
return NULL;
}
-
+
parent = GOO_CANVAS_ITEM_MODEL(self->obj);
child = GOO_CANVAS_ITEM_MODEL(pychild->obj);
-
+
c_pos = goo_canvas_item_model_find_child(parent, child);
if (c_pos == -1) {
PyErr_SetString(PyExc_TypeError,
@@ -8157,9 +7840,9 @@
}
tuple = PyTuple_New(len-1);
-
+
class = G_OBJECT_GET_CLASS(self->obj);
-
+
for (i = 1; i < len; i++) {
PyObject *py_property = PyTuple_GetItem(args, i);
gchar *property_name;
@@ -8204,7 +7887,7 @@
return tuple;
}
-#line 8208 "goocanvas.c"
+#line 7891 "goocanvas.c"
#line 1003 "goocanvas.override"
@@ -8219,31 +7902,31 @@
gint c_pos;
PyObject *value;
PyObject *key;
-
+
if ((len = PyTuple_Size(args)) < 1) {
PyErr_SetString(PyExc_TypeError, "requires at least one argument");
return NULL;
}
pychild = (PyGObject*)PyTuple_GetItem(args, 0);
-
+
if (!pygobject_check(pychild, &PyGooCanvasItemModel_Type)) {
PyErr_SetString(PyExc_TypeError,
"first argument should be a GooCanvasItemModel");
return NULL;
}
-
+
parent = GOO_CANVAS_ITEM_MODEL(self->obj);
child = GOO_CANVAS_ITEM_MODEL(pychild->obj);
-
+
c_pos = goo_canvas_item_model_find_child(parent, child);
if (c_pos == -1) {
PyErr_SetString(PyExc_TypeError,
"first argument must be a child");
return NULL;
}
-
+
class = G_OBJECT_GET_CLASS(self->obj);
-
+
g_object_freeze_notify (G_OBJECT(self->obj));
pos = 0;
@@ -8287,7 +7970,7 @@
return Py_None;
}
-#line 8291 "goocanvas.c"
+#line 7974 "goocanvas.c"
static PyObject *
@@ -8376,65 +8059,39 @@
PyObject *matrix;
cairo_matrix_t transform = {0,};
gboolean res;
-
+
res = goo_canvas_item_model_get_transform(GOO_CANVAS_ITEM_MODEL(self->obj),
&transform);
-
+
if (!res) {
Py_INCREF(Py_None);
return Py_None;
}
-
+
matrix = PycairoMatrix_FromMatrix(&transform);
return matrix;
}
-#line 8393 "goocanvas.c"
+#line 8076 "goocanvas.c"
-#line 2003 "goocanvas.override"
static PyObject *
-_wrap_goo_canvas_item_model_set_transform(PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
+_wrap_goo_canvas_item_model_set_transform(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "matrix", NULL };
PyObject *py_matrix;
- cairo_matrix_t *matrix = NULL;
+ cairo_matrix_t *matrix;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O:GooCanvasItemModel.set_transform",
- kwlist, &py_matrix))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O:GooCanvasItemModel.set_transform", kwlist, &py_matrix))
return NULL;
+ matrix = &((PycairoMatrix*)(py_matrix))->matrix;
- if (py_matrix && (py_matrix != Py_None))
- matrix = &((PycairoMatrix*)(py_matrix))->matrix;
-
- goo_canvas_item_model_set_transform(GOO_CANVAS_ITEM_MODEL(self->obj),
- matrix);
+ goo_canvas_item_model_set_transform(GOO_CANVAS_ITEM_MODEL(self->obj), matrix);
Py_INCREF(Py_None);
return Py_None;
}
-#line 8421 "goocanvas.c"
-
-
-#line 1637 "goocanvas.override"
-static PyObject *
-_wrap_goo_canvas_item_model_get_simple_transform(PyGObject *self)
-{
- gdouble x, y, scale, rotation;
-
- goo_canvas_item_model_get_simple_transform(GOO_CANVAS_ITEM_MODEL(self->obj),
- &x, &y, &scale, &rotation);
-
- return Py_BuildValue("dddd", x, y, scale, rotation);
-}
-
-#line 8436 "goocanvas.c"
-
-
static PyObject *
_wrap_goo_canvas_item_model_set_simple_transform(PyGObject *self, PyObject *args, PyObject *kwargs)
{
@@ -8593,26 +8250,26 @@
GType itype;
const gchar *prop_name;
GParamSpec *pspec;
-
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"s:item_model_class_find_child_property",
kwlist,
&prop_name))
return NULL;
-
+
if ((itype = pyg_type_from_object(cls)) == 0)
return NULL;
-
+
klass = g_type_class_ref(itype);
-
+
if (!klass) {
PyErr_SetString(PyExc_RuntimeError,
"could not get a reference to type class");
return NULL;
}
-
+
pspec = goo_canvas_item_model_class_find_child_property (klass, prop_name);
-
+
if(!pspec){
PyErr_Format(PyExc_KeyError,
"object %s does not support property %s",
@@ -8622,7 +8279,7 @@
return pyg_param_spec_new(pspec);
}
-#line 8626 "goocanvas.c"
+#line 8283 "goocanvas.c"
#line 1291 "goocanvas.override"
@@ -8637,7 +8294,7 @@
GObjectClass *klass;
guint nprops;
guint i;
-
+
if ((itype = pyg_type_from_object(cls)) == 0)
return NULL;
@@ -8655,18 +8312,18 @@
g_type_class_unref(klass);
return NULL;
}
-
+
for (i = 0; i < nprops; i++) {
PyList_SetItem(list, i, pyg_param_spec_new(specs[i]));
}
-
+
g_free(specs);
g_type_class_unref(klass);
return list;
}
-#line 8670 "goocanvas.c"
+#line 8327 "goocanvas.c"
#line 1385 "goocanvas.override"
@@ -8711,16 +8368,16 @@
g_type_class_unref(klass);
return NULL;
}
-
+
goo_canvas_item_model_class_install_child_property(klass, property_id, pspec);
-
+
g_type_class_unref(klass);
Py_INCREF(Py_None);
return Py_None;
}
-#line 8724 "goocanvas.c"
+#line 8381 "goocanvas.c"
static PyObject *
@@ -9075,10 +8732,6 @@
NULL },
{ "find_child", (PyCFunction)_wrap_goo_canvas_item_model_find_child, METH_VARARGS|METH_KEYWORDS,
NULL },
- { "get_child_property", (PyCFunction)_wrap_goo_canvas_item_model_get_child_property, METH_VARARGS,
- NULL },
- { "set_child_property", (PyCFunction)_wrap_goo_canvas_item_model_set_child_property, METH_VARARGS|METH_KEYWORDS,
- NULL },
{ "get_child_properties", (PyCFunction)_wrap_goo_canvas_item_model_get_child_properties, METH_VARARGS,
NULL },
{ "set_child_properties", (PyCFunction)_wrap_goo_canvas_item_model_set_child_properties, METH_VARARGS|METH_KEYWORDS,
@@ -9099,8 +8752,6 @@
NULL },
{ "set_transform", (PyCFunction)_wrap_goo_canvas_item_model_set_transform, METH_VARARGS|METH_KEYWORDS,
NULL },
- { "get_simple_transform", (PyCFunction)_wrap_goo_canvas_item_model_get_simple_transform, METH_NOARGS,
- NULL },
{ "set_simple_transform", (PyCFunction)_wrap_goo_canvas_item_model_set_simple_transform, METH_VARARGS|METH_KEYWORDS,
NULL },
{ "translate", (PyCFunction)_wrap_goo_canvas_item_model_translate, METH_VARARGS|METH_KEYWORDS,
@@ -10289,7 +9940,7 @@
static PyObject *
_wrap_goo_canvas_polyline_new_line(PyGObject *self, PyObject *args, PyObject *kwargs)
{
- PyGObject *parent;
+ PyGObject *parent;
double x1, y1, x2, y2;
GooCanvasItem *ret;
GObjectClass *class;
@@ -10297,17 +9948,17 @@
PyObject *value;
PyObject *key;
GType type;
-
- if (!PyArg_ParseTuple(args, "O!dddd:polyline_new_line",
- &PyGooCanvasItem_Type, &parent, &x1,
+
+ if (!PyArg_ParseTuple(args, "O!dddd:polyline_new_line",
+ &PyGooCanvasItem_Type, &parent, &x1,
&y1, &x2, &y2))
return NULL;
-
- ret = goo_canvas_polyline_new_line(GOO_CANVAS_ITEM(parent->obj), x1,
+
+ ret = goo_canvas_polyline_new_line(GOO_CANVAS_ITEM(parent->obj), x1,
y1, x2, y2, NULL);
-
+
type = goo_canvas_polyline_get_type();
-
+
if (!ret) {
PyErr_SetString (PyExc_RuntimeError, "could not create canvas item object");
return NULL;
@@ -10349,17 +10000,17 @@
}
g_object_thaw_notify (G_OBJECT(ret));
-
+
return pygobject_new((GObject *)ret);
}
-#line 10356 "goocanvas.c"
+#line 10007 "goocanvas.c"
#line 376 "goocanvas.override"
static PyObject *
_wrap_goo_canvas_polyline_model_new_line(PyGObject *self, PyObject *args, PyObject *kwargs)
{
- PyGObject *parent;
+ PyGObject *parent;
double x1, y1, x2, y2;
GooCanvasItemModel *ret;
GObjectClass *class;
@@ -10367,17 +10018,17 @@
PyObject *value;
PyObject *key;
GType type;
-
- if (!PyArg_ParseTuple(args, "O!dddd:polyline_model_new_line",
- &PyGooCanvasItemModel_Type, &parent, &x1,
+
+ if (!PyArg_ParseTuple(args, "O!dddd:polyline_model_new_line",
+ &PyGooCanvasItemModel_Type, &parent, &x1,
&y1, &x2, &y2))
return NULL;
-
- ret = goo_canvas_polyline_model_new_line(GOO_CANVAS_ITEM_MODEL(parent->obj), x1,
+
+ ret = goo_canvas_polyline_model_new_line(GOO_CANVAS_ITEM_MODEL(parent->obj), x1,
y1, x2, y2, NULL);
-
+
type = goo_canvas_polyline_model_get_type();
-
+
if (!ret) {
PyErr_SetString (PyExc_RuntimeError, "could not create canvas item model object");
return NULL;
@@ -10419,11 +10070,11 @@
}
g_object_thaw_notify (G_OBJECT(ret));
-
+
return pygobject_new((GObject *)ret);
}
-#line 10427 "goocanvas.c"
+#line 10078 "goocanvas.c"
static PyObject *
@@ -10539,18 +10190,6 @@
"could not import gtk");
return ;
}
- if ((module = PyImport_ImportModule("gtk.gdk")) != NULL) {
- _PyGdkCairoContext_Type = (PyTypeObject *)PyObject_GetAttrString(module, "CairoContext");
- if (_PyGdkCairoContext_Type == NULL) {
- PyErr_SetString(PyExc_ImportError,
- "cannot import name CairoContext from gtk.gdk");
- return ;
- }
- } else {
- PyErr_SetString(PyExc_ImportError,
- "could not import gtk.gdk");
- return ;
- }
#line 198 "goocanvas.override"
@@ -10563,7 +10202,7 @@
-#line 10567 "goocanvas.c"
+#line 10206 "goocanvas.c"
pyg_register_boxed(d, "Points", GOO_TYPE_CANVAS_POINTS, &PyGooCanvasPoints_Type);
pyg_register_boxed(d, "LineDash", GOO_TYPE_CANVAS_LINE_DASH, &PyGooCanvasLineDash_Type);
pyg_register_interface(d, "Item", GOO_TYPE_CANVAS_ITEM, &PyGooCanvasItem_Type);
@@ -10586,6 +10225,8 @@
pyg_register_class_init(GOO_TYPE_CANVAS_ITEM_SIMPLE, __GooCanvasItemSimple_class_init);
pygobject_register_class(d, "GooCanvasImage", GOO_TYPE_CANVAS_IMAGE, &PyGooCanvasImage_Type, Py_BuildValue("(O)", &PyGooCanvasItemSimple_Type));
pyg_set_object_has_new_constructor(GOO_TYPE_CANVAS_IMAGE);
+ pygobject_register_class(d, "GooCanvasSvg", GOO_TYPE_CANVAS_SVG, &PyGooCanvasSvg_Type, Py_BuildValue("(O)", &PyGooCanvasItemSimple_Type));
+ pyg_set_object_has_new_constructor(GOO_TYPE_CANVAS_SVG);
pygobject_register_class(d, "GooCanvasGroup", GOO_TYPE_CANVAS_GROUP, &PyGooCanvasGroup_Type, Py_BuildValue("(O)", &PyGooCanvasItemSimple_Type));
pyg_set_object_has_new_constructor(GOO_TYPE_CANVAS_GROUP);
pygobject_register_class(d, "GooCanvasEllipse", GOO_TYPE_CANVAS_ELLIPSE, &PyGooCanvasEllipse_Type, Py_BuildValue("(O)", &PyGooCanvasItemSimple_Type));
Added: branches/gcomprixogoo/src/boards/goocanvas.defs
==============================================================================
--- (empty file)
+++ branches/gcomprixogoo/src/boards/goocanvas.defs Sun Nov 9 22:22:35 2008
@@ -0,0 +1,2465 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object Canvas
+ (in-module "Goo")
+ (parent "GtkContainer")
+ (c-name "GooCanvas")
+ (gtype-id "GOO_TYPE_CANVAS")
+)
+
+(define-interface Item
+ (in-module "Goo")
+ (c-name "GooCanvasItem")
+ (gtype-id "GOO_TYPE_CANVAS_ITEM")
+)
+
+(define-interface ItemModel
+ (in-module "Goo")
+ (c-name "GooCanvasItemModel")
+ (gtype-id "GOO_TYPE_CANVAS_ITEM_MODEL")
+)
+
+(define-object ItemModelSimple
+ (in-module "Goo")
+ (parent "GObject")
+ (c-name "GooCanvasItemModelSimple")
+ (gtype-id "GOO_TYPE_CANVAS_ITEM_MODEL_SIMPLE")
+)
+
+(define-object ImageModel
+ (in-module "Goo")
+ (parent "GooCanvasItemModelSimple")
+ (c-name "GooCanvasImageModel")
+ (gtype-id "GOO_TYPE_CANVAS_IMAGE_MODEL")
+)
+
+(define-object GroupModel
+ (in-module "Goo")
+ (parent "GooCanvasItemModelSimple")
+ (c-name "GooCanvasGroupModel")
+ (gtype-id "GOO_TYPE_CANVAS_GROUP_MODEL")
+)
+
+(define-object EllipseModel
+ (in-module "Goo")
+ (parent "GooCanvasItemModelSimple")
+ (c-name "GooCanvasEllipseModel")
+ (gtype-id "GOO_TYPE_CANVAS_ELLIPSE_MODEL")
+)
+
+(define-object ItemSimple
+ (in-module "Goo")
+ (parent "GObject")
+ (c-name "GooCanvasItemSimple")
+ (gtype-id "GOO_TYPE_CANVAS_ITEM_SIMPLE")
+ (fields
+ ("double" "bounds.x1")
+ ("double" "bounds.x2")
+ ("double" "bounds.y1")
+ ("double" "bounds.y2")
+ ("GooCanvasBounds" "bounds"))
+)
+
+(define-object Image
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasImage")
+ (gtype-id "GOO_TYPE_CANVAS_IMAGE")
+)
+
+(define-object Svg
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasSvg")
+ (gtype-id "GOO_TYPE_CANVAS_SVG")
+)
+
+(define-object Group
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasGroup")
+ (gtype-id "GOO_TYPE_CANVAS_GROUP")
+)
+
+(define-object Ellipse
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasEllipse")
+ (gtype-id "GOO_TYPE_CANVAS_ELLIPSE")
+)
+
+(define-object Path
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasPath")
+ (gtype-id "GOO_TYPE_CANVAS_PATH")
+)
+
+(define-object PathModel
+ (in-module "Goo")
+ (parent "GooCanvasItemModelSimple")
+ (c-name "GooCanvasPathModel")
+ (gtype-id "GOO_TYPE_CANVAS_PATH_MODEL")
+)
+
+(define-boxed Points
+ (in-module "Goo")
+ (c-name "GooCanvasPoints")
+ (gtype-id "GOO_TYPE_CANVAS_POINTS")
+ (copy-func "goo_canvas_points_ref")
+ (release-func "goo_canvas_points_unref")
+)
+
+(define-object Polyline
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasPolyline")
+ (gtype-id "GOO_TYPE_CANVAS_POLYLINE")
+)
+
+(define-object PolylineModel
+ (in-module "Goo")
+ (parent "GooCanvasItemModelSimple")
+ (c-name "GooCanvasPolylineModel")
+ (gtype-id "GOO_TYPE_CANVAS_POLYLINE_MODEL")
+)
+
+(define-object Rect
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasRect")
+ (gtype-id "GOO_TYPE_CANVAS_RECT")
+)
+
+(define-object RectModel
+ (in-module "Goo")
+ (parent "GooCanvasItemModelSimple")
+ (c-name "GooCanvasRectModel")
+ (gtype-id "GOO_TYPE_CANVAS_RECT_MODEL")
+)
+
+(define-object Style
+ (in-module "Goo")
+ (parent "GObject")
+ (c-name "GooCanvasStyle")
+ (gtype-id "GOO_TYPE_CANVAS_STYLE")
+)
+
+(define-object Table
+ (in-module "Goo")
+ (parent "GooCanvasGroup")
+ (c-name "GooCanvasTable")
+ (gtype-id "GOO_TYPE_CANVAS_TABLE")
+)
+
+(define-object TableModel
+ (in-module "Goo")
+ (parent "GooCanvasGroupModel")
+ (c-name "GooCanvasTableModel")
+ (gtype-id "GOO_TYPE_CANVAS_TABLE_MODEL")
+)
+
+(define-object Text
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasText")
+ (gtype-id "GOO_TYPE_CANVAS_TEXT")
+)
+
+(define-object TextModel
+ (in-module "Goo")
+ (parent "GooCanvasItemModelSimple")
+ (c-name "GooCanvasTextModel")
+ (gtype-id "GOO_TYPE_CANVAS_TEXT_MODEL")
+)
+
+(define-object Widget
+ (in-module "Goo")
+ (parent "GooCanvasItemSimple")
+ (c-name "GooCanvasWidget")
+ (gtype-id "GOO_TYPE_CANVAS_WIDGET")
+)
+
+;; Enumerations and flags ...
+
+(define-enum AnimateType
+ (in-module "Goo")
+ (c-name "GooCanvasAnimateType")
+ (gtype-id "GOO_TYPE_CANVAS_ANIMATE_TYPE")
+ (values
+ '("freeze" "GOO_CANVAS_ANIMATE_FREEZE")
+ '("reset" "GOO_CANVAS_ANIMATE_RESET")
+ '("restart" "GOO_CANVAS_ANIMATE_RESTART")
+ '("bounce" "GOO_CANVAS_ANIMATE_BOUNCE")
+ )
+)
+(define-enum PathCommandType
+ (in-module "Goo")
+ (c-name "GooCanvasPathCommandType")
+ ;(gtype-id "GOO_TYPE_CANVAS_PATH_COMMAND_TYPE")
+ (values
+ '("move-to" "GOO_CANVAS_PATH_MOVE_TO")
+ '("close-path" "GOO_CANVAS_PATH_CLOSE_PATH")
+ '("line-to" "GOO_CANVAS_PATH_LINE_TO")
+ '("horizontal-line-to" "GOO_CANVAS_PATH_HORIZONTAL_LINE_TO")
+ '("vertical-line-to" "GOO_CANVAS_PATH_VERTICAL_LINE_TO")
+ '("curve-to" "GOO_CANVAS_PATH_CURVE_TO")
+ '("smooth-curve-to" "GOO_CANVAS_PATH_SMOOTH_CURVE_TO")
+ '("quadratic-curve-to" "GOO_CANVAS_PATH_QUADRATIC_CURVE_TO")
+ '("smooth-quadratic-curve-to" "GOO_CANVAS_PATH_SMOOTH_QUADRATIC_CURVE_TO")
+ '("elliptical-arc" "GOO_CANVAS_PATH_ELLIPTICAL_ARC")
+ )
+)
+
+(define-flags PointerEvents
+ (in-module "Goo")
+ (c-name "GooCanvasPointerEvents")
+ (gtype-id "GOO_TYPE_CANVAS_POINTER_EVENTS")
+ (values
+ '("visible-mask" "GOO_CANVAS_EVENTS_VISIBLE_MASK")
+ '("painted-mask" "GOO_CANVAS_EVENTS_PAINTED_MASK")
+ '("fill-mask" "GOO_CANVAS_EVENTS_FILL_MASK")
+ '("stroke-mask" "GOO_CANVAS_EVENTS_STROKE_MASK")
+ '("none" "GOO_CANVAS_EVENTS_NONE")
+ '("visible-painted" "GOO_CANVAS_EVENTS_VISIBLE_PAINTED")
+ '("visible-fill" "GOO_CANVAS_EVENTS_VISIBLE_FILL")
+ '("visible-stroke" "GOO_CANVAS_EVENTS_VISIBLE_STROKE")
+ '("visible" "GOO_CANVAS_EVENTS_VISIBLE")
+ '("painted" "GOO_CANVAS_EVENTS_PAINTED")
+ '("fill" "GOO_CANVAS_EVENTS_FILL")
+ '("stroke" "GOO_CANVAS_EVENTS_STROKE")
+ '("all" "GOO_CANVAS_EVENTS_ALL")
+ )
+)
+
+(define-enum ItemVisibility
+ (in-module "Goo")
+ (c-name "GooCanvasItemVisibility")
+ (gtype-id "GOO_TYPE_CANVAS_ITEM_VISIBILITY")
+ (values
+ '("hidden" "GOO_CANVAS_ITEM_HIDDEN")
+ '("visible" "GOO_CANVAS_ITEM_VISIBLE")
+ '("visible-above-threshold" "GOO_CANVAS_ITEM_VISIBLE_ABOVE_THRESHOLD")
+ '("invisible" "GOO_CANVAS_ITEM_INVISIBLE")
+ )
+)
+
+
+;; From goocanvas.h
+
+(define-function goo_canvas_get_type
+ (c-name "goo_canvas_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_new
+ (c-name "goo_canvas_new")
+ (is-constructor-of "GooCanvas")
+ (return-type "GtkWidget*")
+)
+
+(define-method get_root_item
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_root_item")
+ (return-type "GooCanvasItem*")
+)
+
+(define-method set_root_item
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_set_root_item")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "item")
+ )
+)
+
+(define-method get_root_item_model
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_root_item_model")
+ (return-type "GooCanvasItemModel*")
+)
+
+(define-method set_root_item_model
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_set_root_item_model")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+
+(define-method get_item
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_item")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+
+(define-method get_item_at
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_item_at")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gboolean" "is_pointer_event")
+ )
+)
+
+(define-method get_items_at
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_items_at")
+ (return-type "GList*")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gboolean" "is_pointer_event")
+ )
+)
+
+(define-method get_items_in_area
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_items_in_area")
+ (return-type "GList*")
+ (parameters
+ '("GooCanvasBounds*" "area")
+ '("gboolean" "inside_area")
+ '("gboolean" "allow_overlaps")
+ '("gboolean" "include_containers")
+ )
+)
+
+(define-method get_scale
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_scale")
+ (return-type "gdouble")
+)
+
+(define-method set_scale
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_set_scale")
+ (return-type "none")
+ (parameters
+ '("gdouble" "pixels_per_unit")
+ )
+)
+
+(define-method get_bounds
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_bounds")
+ (return-type "none")
+ (parameters
+ '("gdouble*" "left")
+ '("gdouble*" "top")
+ '("gdouble*" "right")
+ '("gdouble*" "bottom")
+ )
+)
+
+(define-method set_bounds
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_set_bounds")
+ (return-type "none")
+ (parameters
+ '("gdouble" "left")
+ '("gdouble" "top")
+ '("gdouble" "right")
+ '("gdouble" "bottom")
+ )
+)
+
+(define-method scroll_to
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_scroll_to")
+ (return-type "none")
+ (parameters
+ '("gdouble" "left")
+ '("gdouble" "top")
+ )
+)
+
+(define-method grab_focus
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_grab_focus")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "item")
+ )
+)
+
+(define-method render
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_render")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "bounds" (null-ok) (default "NULL"))
+ '("gdouble" "scale" (default "1.0"))
+ )
+)
+
+(define-method convert_to_pixels
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_convert_to_pixels")
+ (return-type "none")
+ (parameters
+ '("gdouble*" "x")
+ '("gdouble*" "y")
+ )
+)
+
+(define-method convert_from_pixels
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_convert_from_pixels")
+ (return-type "none")
+ (parameters
+ '("gdouble*" "x")
+ '("gdouble*" "y")
+ )
+)
+
+(define-method convert_to_item_space
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_convert_to_item_space")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "item")
+ '("gdouble*" "x")
+ '("gdouble*" "y")
+ )
+)
+
+(define-method convert_from_item_space
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_convert_from_item_space")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "item")
+ '("gdouble*" "x")
+ '("gdouble*" "y")
+ )
+)
+
+(define-method pointer_grab
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_pointer_grab")
+ (return-type "GdkGrabStatus")
+ (parameters
+ '("GooCanvasItem*" "item")
+ '("GdkEventMask" "event_mask")
+ '("GdkCursor*" "cursor" (null-ok))
+ '("guint32" "time")
+ )
+)
+
+(define-method pointer_ungrab
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_pointer_ungrab")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "item")
+ '("guint32" "time")
+ )
+)
+
+(define-method keyboard_grab
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_keyboard_grab")
+ (return-type "GdkGrabStatus")
+ (parameters
+ '("GooCanvasItem*" "item")
+ '("gboolean" "owner_events")
+ '("guint32" "time")
+ )
+)
+
+(define-method keyboard_ungrab
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_keyboard_ungrab")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "item")
+ '("guint32" "time")
+ )
+)
+
+(define-method create_cairo_context
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_create_cairo_context")
+ (return-type "cairo_t*")
+)
+
+(define-method create_item
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_create_item")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+
+(define-method unregister_item
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_unregister_item")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+
+(define-method update
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_update")
+ (return-type "none")
+)
+
+(define-method request_update
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_request_update")
+ (return-type "none")
+)
+
+(define-method request_redraw
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_request_redraw")
+ (return-type "none")
+ (parameters
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+
+(define-method get_default_line_width
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_get_default_line_width")
+ (return-type "gdouble")
+)
+
+(define-method register_widget_item
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_register_widget_item")
+ (return-type "none")
+ (parameters
+ '("GooCanvasWidget*" "witem")
+ )
+)
+
+(define-method unregister_widget_item
+ (of-object "GooCanvas")
+ (c-name "goo_canvas_unregister_widget_item")
+ (return-type "none")
+ (parameters
+ '("GooCanvasWidget*" "witem")
+ )
+)
+
+(define-virtual set_scroll_adjustments
+ (of-object "GooCanvas")
+ (return-type "none")
+ (parameters
+ '("GtkAdjustment*" "hadjustment")
+ '("GtkAdjustment*" "vadjustment")
+ )
+)
+(define-virtual create_item
+ (of-object "GooCanvas")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+(define-virtual item_created
+ (of-object "GooCanvas")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "item")
+ '("GooCanvasItemModel*" "model")
+ )
+)
+
+
+;; From goocanvasellipse.h
+
+(define-function goo_canvas_ellipse_get_type
+ (c-name "goo_canvas_ellipse_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_ellipse_new
+ (c-name "goo_canvas_ellipse_new")
+ (is-constructor-of "GooCanvasEllipse")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("gdouble" "center_x")
+ '("gdouble" "center_y")
+ '("gdouble" "radius_x")
+ '("gdouble" "radius_y")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_ellipse_model_get_type
+ (c-name "goo_canvas_ellipse_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_ellipse_model_new
+ (c-name "goo_canvas_ellipse_model_new")
+ (is-constructor-of "GooCanvasEllipseModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ '("gdouble" "center_x")
+ '("gdouble" "center_y")
+ '("gdouble" "radius_x")
+ '("gdouble" "radius_y")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvasenumtypes.h
+
+(define-function goo_canvas_animate_type_get_type
+ (c-name "goo_canvas_animate_type_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_path_command_type_get_type
+ (c-name "goo_canvas_path_command_type_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_pointer_events_get_type
+ (c-name "goo_canvas_pointer_events_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_item_visibility_get_type
+ (c-name "goo_canvas_item_visibility_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From goocanvasgroup.h
+
+(define-function goo_canvas_group_get_type
+ (c-name "goo_canvas_group_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_group_new
+ (c-name "goo_canvas_group_new")
+ (is-constructor-of "GooCanvasGroup")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_group_model_get_type
+ (c-name "goo_canvas_group_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_group_model_new
+ (c-name "goo_canvas_group_model_new")
+ (is-constructor-of "GooCanvasGroupModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvasimage.h
+
+(define-function goo_canvas_image_get_type
+ (c-name "goo_canvas_image_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_image_new
+ (c-name "goo_canvas_image_new")
+ (is-constructor-of "GooCanvasImage")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("GdkPixbuf*" "pixbuf")
+ '("gdouble" "x")
+ '("gdouble" "y")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_image_model_get_type
+ (c-name "goo_canvas_image_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_image_model_new
+ (c-name "goo_canvas_image_model_new")
+ (is-constructor-of "GooCanvasImageModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ '("GdkPixbuf*" "pixbuf")
+ '("gdouble" "x")
+ '("gdouble" "y")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvassvg.h
+
+(define-function goo_canvas_svg_get_type
+ (c-name "goo_canvas_svg_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_svg_new
+ (c-name "goo_canvas_svg_new")
+ (is-constructor-of "GooCanvasSvg")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("RsvgHandle*" "svg_handle")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvasitem.h
+
+(define-function goo_canvas_item_get_type
+ (c-name "goo_canvas_item_get_type")
+ (return-type "GType")
+)
+
+(define-method get_n_children
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_n_children")
+ (return-type "gint")
+)
+
+(define-method get_child
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_child")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+
+(define-method find_child
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_find_child")
+ (return-type "gint")
+ (parameters
+ '("GooCanvasItem*" "child")
+ )
+)
+
+(define-method add_child
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_add_child")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("gint" "position" (default "-1"))
+ )
+)
+
+(define-method move_child
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_move_child")
+ (return-type "none")
+ (parameters
+ '("gint" "old_position")
+ '("gint" "new_position")
+ )
+)
+
+(define-method remove_child
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_remove_child")
+ (return-type "none")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+
+(define-method get_child_properties
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_child_properties")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ )
+ (varargs #t)
+)
+
+(define-method set_child_properties
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_child_properties")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ )
+ (varargs #t)
+)
+
+(define-method get_child_properties_valist
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_child_properties_valist")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("va_list" "var_args")
+ )
+)
+
+(define-method set_child_properties_valist
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_child_properties_valist")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("va_list" "var_args")
+ )
+)
+
+(define-method get_transform_for_child
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_transform_for_child")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("cairo_matrix_t*" "transform")
+ )
+)
+
+(define-method get_canvas
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_canvas")
+ (return-type "GooCanvas*")
+)
+
+(define-method set_canvas
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_canvas")
+ (return-type "none")
+ (parameters
+ '("GooCanvas*" "canvas")
+ )
+)
+
+(define-method get_parent
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_parent")
+ (return-type "GooCanvasItem*")
+)
+
+(define-method set_parent
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_parent")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ )
+)
+
+(define-method remove
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_remove")
+ (return-type "none")
+)
+
+(define-method is_container
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_is_container")
+ (return-type "gboolean")
+)
+
+(define-method raise
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_raise")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "above" (null-ok))
+ )
+)
+
+(define-method lower
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_lower")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "below" (null-ok))
+ )
+)
+
+(define-method get_transform
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_transform")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_matrix_t*" "transform")
+ )
+)
+
+(define-method set_transform
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_transform")
+ (return-type "none")
+ (parameters
+ '("cairo_matrix_t*" "matrix")
+ )
+)
+
+(define-method set_simple_transform
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_simple_transform")
+ (return-type "none")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gdouble" "scale")
+ '("gdouble" "rotation")
+ )
+)
+
+(define-method translate
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_translate")
+ (return-type "none")
+ (parameters
+ '("double" "tx")
+ '("double" "ty")
+ )
+)
+
+(define-method scale
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_scale")
+ (return-type "none")
+ (parameters
+ '("double" "sx")
+ '("double" "sy")
+ )
+)
+
+(define-method rotate
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_rotate")
+ (return-type "none")
+ (parameters
+ '("double" "degrees")
+ '("double" "cx")
+ '("double" "cy")
+ )
+)
+
+(define-method skew_x
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_skew_x")
+ (return-type "none")
+ (parameters
+ '("double" "degrees")
+ '("double" "cx")
+ '("double" "cy")
+ )
+)
+
+(define-method skew_y
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_skew_y")
+ (return-type "none")
+ (parameters
+ '("double" "degrees")
+ '("double" "cx")
+ '("double" "cy")
+ )
+)
+
+(define-method get_style
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_style")
+ (return-type "GooCanvasStyle*")
+)
+
+(define-method set_style
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_style")
+ (return-type "none")
+ (parameters
+ '("GooCanvasStyle*" "style")
+ )
+)
+
+(define-method animate
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_animate")
+ (return-type "none")
+ (parameters
+ '("double" "x")
+ '("double" "y")
+ '("double" "scale")
+ '("double" "degrees")
+ '("gboolean" "absolute")
+ '("gint" "duration")
+ '("gint" "step_time")
+ '("GooCanvasAnimateType" "type")
+ )
+)
+
+(define-method stop_animation
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_stop_animation")
+ (return-type "none")
+)
+
+(define-method get_bounds
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_bounds")
+ (return-type "none")
+ (parameters
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+
+(define-method get_items_at
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_items_at")
+ (return-type "GList*")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("cairo_t*" "cr")
+ '("gboolean" "is_pointer_event")
+ '("gboolean" "parent_is_visible")
+ '("GList*" "found_items")
+ )
+)
+
+(define-method is_visible
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_is_visible")
+ (return-type "gboolean")
+)
+
+(define-method get_model
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_model")
+ (return-type "GooCanvasItemModel*")
+)
+
+(define-method set_model
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_set_model")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+
+(define-method request_update
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_request_update")
+ (return-type "none")
+)
+
+(define-method ensure_updated
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_ensure_updated")
+ (return-type "none")
+)
+
+(define-method update
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_update")
+ (return-type "none")
+ (parameters
+ '("gboolean" "entire_tree")
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+
+(define-method paint
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_paint")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "bounds" (null-ok) (default "NULL"))
+ '("gdouble" "scale" (default "1.0"))
+ )
+)
+
+(define-method get_requested_area
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_requested_area")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "requested_area")
+ )
+)
+
+(define-method get_requested_height
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_get_requested_height")
+ (return-type "gdouble")
+ (parameters
+ '("cairo_t*" "cr")
+ '("gdouble" "width")
+ )
+)
+
+(define-method allocate_area
+ (of-object "GooCanvasItem")
+ (c-name "goo_canvas_item_allocate_area")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "requested_area")
+ '("GooCanvasBounds*" "allocated_area")
+ '("gdouble" "x_offset")
+ '("gdouble" "y_offset")
+ )
+)
+
+(define-function goo_canvas_item_class_install_child_property
+ (c-name "goo_canvas_item_class_install_child_property")
+ (return-type "none")
+ (parameters
+ '("GObjectClass*" "iclass")
+ '("guint" "property_id")
+ '("GParamSpec*" "pspec")
+ )
+)
+
+(define-function goo_canvas_item_class_find_child_property
+ (c-name "goo_canvas_item_class_find_child_property")
+ (return-type "GParamSpec*")
+ (parameters
+ '("GObjectClass*" "iclass")
+ '("const-gchar*" "property_name")
+ )
+)
+
+(define-function goo_canvas_item_class_list_child_properties
+ (c-name "goo_canvas_item_class_list_child_properties")
+ (return-type "GParamSpec**")
+ (parameters
+ '("GObjectClass*" "iclass")
+ '("guint*" "n_properties")
+ )
+)
+
+
+(define-virtual get_canvas
+ (of-object "GooCanvasItem")
+ (return-type "GooCanvas*")
+)
+(define-virtual set_canvas
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvas*" "canvas")
+ )
+)
+(define-virtual get_n_children
+ (of-object "GooCanvasItem")
+ (return-type "gint")
+)
+(define-virtual get_child
+ (of-object "GooCanvasItem")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+(define-virtual request_update
+ (of-object "GooCanvasItem")
+ (return-type "none")
+)
+(define-virtual add_child
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("gint" "position")
+ )
+)
+(define-virtual move_child
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("gint" "old_position")
+ '("gint" "new_position")
+ )
+)
+(define-virtual remove_child
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+(define-virtual get_child_property
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("guint" "property_id")
+ '("GValue*" "value")
+ '("GParamSpec*" "pspec")
+ )
+)
+(define-virtual set_child_property
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("guint" "property_id")
+ '("const-GValue*" "value")
+ '("GParamSpec*" "pspec")
+ )
+)
+(define-virtual get_transform_for_child
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "child")
+ '("cairo_matrix_t*" "transform")
+ )
+)
+(define-virtual get_parent
+ (of-object "GooCanvasItem")
+ (return-type "GooCanvasItem*")
+)
+(define-virtual set_parent
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ )
+)
+(define-virtual get_bounds
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+(define-virtual get_items_at
+ (of-object "GooCanvasItem")
+ (return-type "GList*")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("cairo_t*" "cr")
+ '("gboolean" "is_pointer_event")
+ '("gboolean" "parent_is_visible")
+ '("GList*" "found_items")
+ )
+)
+(define-virtual update
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("gboolean" "entire_tree")
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+(define-virtual paint
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("const-GooCanvasBounds*" "bounds")
+ '("gdouble" "scale")
+ )
+)
+(define-virtual get_requested_area
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "requested_area")
+ )
+)
+(define-virtual allocate_area
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("const-GooCanvasBounds*" "requested_area")
+ '("const-GooCanvasBounds*" "allocated_area")
+ '("gdouble" "x_offset")
+ '("gdouble" "y_offset")
+ )
+)
+(define-virtual get_transform
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_matrix_t*" "transform")
+ )
+)
+(define-virtual set_transform
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("cairo_matrix_t*" "matrix")
+ )
+)
+(define-virtual get_style
+ (of-object "GooCanvasItem")
+ (return-type "GooCanvasStyle*")
+)
+(define-virtual set_style
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvasStyle*" "style")
+ )
+)
+(define-virtual is_visible
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+)
+(define-virtual get_requested_height
+ (of-object "GooCanvasItem")
+ (return-type "gdouble")
+ (parameters
+ '("cairo_t*" "cr")
+ '("gdouble" "width")
+ )
+)
+(define-virtual get_model
+ (of-object "GooCanvasItem")
+ (return-type "GooCanvasItemModel*")
+)
+(define-virtual set_model
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+(define-virtual enter_notify_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventCrossing*" "event")
+ )
+)
+(define-virtual leave_notify_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventCrossing*" "event")
+ )
+)
+(define-virtual motion_notify_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventMotion*" "event")
+ )
+)
+(define-virtual button_press_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventButton*" "event")
+ )
+)
+(define-virtual button_release_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventButton*" "event")
+ )
+)
+(define-virtual focus_in_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventFocus*" "event")
+ )
+)
+(define-virtual focus_out_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventFocus*" "event")
+ )
+)
+(define-virtual key_press_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventKey*" "event")
+ )
+)
+(define-virtual key_release_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventKey*" "event")
+ )
+)
+(define-virtual grab_broken_event
+ (of-object "GooCanvasItem")
+ (return-type "gboolean")
+ (parameters
+ '("GooCanvasItem*" "target")
+ '("GdkEventGrabBroken*" "event")
+ )
+)
+(define-virtual child_notify
+ (of-object "GooCanvasItem")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "pspec")
+ )
+)
+
+;; From goocanvasitemmodel.h
+
+(define-function goo_canvas_item_model_get_type
+ (c-name "goo_canvas_item_model_get_type")
+ (return-type "GType")
+)
+
+(define-method get_n_children
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_get_n_children")
+ (return-type "gint")
+)
+
+(define-method get_child
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_get_child")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+
+(define-method add_child
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_add_child")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ '("gint" "position")
+ )
+)
+
+(define-method move_child
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_move_child")
+ (return-type "none")
+ (parameters
+ '("gint" "old_position")
+ '("gint" "new_position")
+ )
+)
+
+(define-method remove_child
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_remove_child")
+ (return-type "none")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+
+(define-method find_child
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_find_child")
+ (return-type "gint")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ )
+)
+
+(define-method get_child_properties
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_get_child_properties")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ )
+ (varargs #t)
+)
+
+(define-method set_child_properties
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_set_child_properties")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ )
+ (varargs #t)
+)
+
+(define-method get_child_properties_valist
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_get_child_properties_valist")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ '("va_list" "var_args")
+ )
+)
+
+(define-method set_child_properties_valist
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_set_child_properties_valist")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ '("va_list" "var_args")
+ )
+)
+
+(define-method get_parent
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_get_parent")
+ (return-type "GooCanvasItemModel*")
+)
+
+(define-method set_parent
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_set_parent")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ )
+)
+
+(define-method remove
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_remove")
+ (return-type "none")
+)
+
+(define-method is_container
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_is_container")
+ (return-type "gboolean")
+)
+
+(define-method raise
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_raise")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "above")
+ )
+)
+
+(define-method lower
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_lower")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "below")
+ )
+)
+
+(define-method get_transform
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_get_transform")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_matrix_t*" "transform")
+ )
+)
+
+(define-method set_transform
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_set_transform")
+ (return-type "none")
+ (parameters
+ '("cairo_matrix_t*" "matrix")
+ )
+)
+
+(define-method set_simple_transform
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_set_simple_transform")
+ (return-type "none")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gdouble" "scale")
+ '("gdouble" "rotation")
+ )
+)
+
+(define-method translate
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_translate")
+ (return-type "none")
+ (parameters
+ '("double" "tx")
+ '("double" "ty")
+ )
+)
+
+(define-method scale
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_scale")
+ (return-type "none")
+ (parameters
+ '("double" "sx")
+ '("double" "sy")
+ )
+)
+
+(define-method rotate
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_rotate")
+ (return-type "none")
+ (parameters
+ '("double" "degrees")
+ '("double" "cx")
+ '("double" "cy")
+ )
+)
+
+(define-method skew_x
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_skew_x")
+ (return-type "none")
+ (parameters
+ '("double" "degrees")
+ '("double" "cx")
+ '("double" "cy")
+ )
+)
+
+(define-method skew_y
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_skew_y")
+ (return-type "none")
+ (parameters
+ '("double" "degrees")
+ '("double" "cx")
+ '("double" "cy")
+ )
+)
+
+(define-method get_style
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_get_style")
+ (return-type "GooCanvasStyle*")
+)
+
+(define-method set_style
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_set_style")
+ (return-type "none")
+ (parameters
+ '("GooCanvasStyle*" "style")
+ )
+)
+
+(define-method animate
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_animate")
+ (return-type "none")
+ (parameters
+ '("double" "x")
+ '("double" "y")
+ '("double" "scale")
+ '("double" "degrees")
+ '("gboolean" "absolute")
+ '("gint" "duration")
+ '("gint" "step_time")
+ '("GooCanvasAnimateType" "type")
+ )
+)
+
+(define-method stop_animation
+ (of-object "GooCanvasItemModel")
+ (c-name "goo_canvas_item_model_stop_animation")
+ (return-type "none")
+)
+
+(define-function goo_canvas_item_model_class_install_child_property
+ (c-name "goo_canvas_item_model_class_install_child_property")
+ (return-type "none")
+ (parameters
+ '("GObjectClass*" "mclass")
+ '("guint" "property_id")
+ '("GParamSpec*" "pspec")
+ )
+)
+
+(define-function goo_canvas_item_model_class_find_child_property
+ (c-name "goo_canvas_item_model_class_find_child_property")
+ (return-type "GParamSpec*")
+ (parameters
+ '("GObjectClass*" "mclass")
+ '("const-gchar*" "property_name")
+ )
+)
+
+(define-function goo_canvas_item_model_class_list_child_properties
+ (c-name "goo_canvas_item_model_class_list_child_properties")
+ (return-type "GParamSpec**")
+ (parameters
+ '("GObjectClass*" "mclass")
+ '("guint*" "n_properties")
+ )
+)
+
+(define-virtual get_n_children
+ (of-object "GooCanvasItemModel")
+ (return-type "gint")
+)
+(define-virtual get_child
+ (of-object "GooCanvasItemModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+(define-virtual add_child
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ '("gint" "position")
+ )
+)
+(define-virtual move_child
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("gint" "old_position")
+ '("gint" "new_position")
+ )
+)
+(define-virtual remove_child
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+(define-virtual get_child_property
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ '("guint" "property_id")
+ '("GValue*" "value")
+ '("GParamSpec*" "pspec")
+ )
+)
+(define-virtual set_child_property
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "child")
+ '("guint" "property_id")
+ '("const-GValue*" "value")
+ '("GParamSpec*" "pspec")
+ )
+)
+(define-virtual get_parent
+ (of-object "GooCanvasItemModel")
+ (return-type "GooCanvasItemModel*")
+)
+(define-virtual set_parent
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ )
+)
+(define-virtual get_transform
+ (of-object "GooCanvasItemModel")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_matrix_t*" "transform")
+ )
+)
+(define-virtual set_transform
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("cairo_matrix_t*" "matrix")
+ )
+)
+(define-virtual get_style
+ (of-object "GooCanvasItemModel")
+ (return-type "GooCanvasStyle*")
+)
+(define-virtual set_style
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("GooCanvasStyle*" "style")
+ )
+)
+(define-virtual create_item
+ (of-object "GooCanvasItemModel")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvas*" "canvas")
+ )
+)
+(define-virtual child_added
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+(define-virtual child_moved
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("gint" "old_child_num")
+ '("gint" "new_child_num")
+ )
+)
+(define-virtual child_removed
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("gint" "child_num")
+ )
+)
+(define-virtual changed
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("gboolean" "recompute_bounds")
+ )
+)
+(define-virtual child_notify
+ (of-object "GooCanvasItemModel")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "pspec")
+ )
+)
+
+
+;; From goocanvasitemsimple.h
+
+(define-function goo_canvas_item_simple_get_type
+ (c-name "goo_canvas_item_simple_get_type")
+ (return-type "GType")
+)
+
+(define-method get_path_bounds
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_get_path_bounds")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+
+(define-method user_bounds_to_device
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_user_bounds_to_device")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+
+(define-method user_bounds_to_parent
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_user_bounds_to_parent")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("GooCanvasBounds*" "bounds")
+ )
+)
+
+(define-method check_in_path
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_check_in_path")
+ (return-type "gboolean")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("cairo_t*" "cr")
+ '("GooCanvasPointerEvents" "pointer_events")
+ )
+)
+
+(define-method paint_path
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_paint_path")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ )
+)
+
+(define-method changed
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_changed")
+ (return-type "none")
+ (parameters
+ '("gboolean" "recompute_bounds")
+ )
+)
+
+(define-method check_style
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_check_style")
+ (return-type "none")
+)
+
+(define-method get_line_width
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_get_line_width")
+ (return-type "gdouble")
+)
+
+(define-method set_model
+ (of-object "GooCanvasItemSimple")
+ (c-name "goo_canvas_item_simple_set_model")
+ (return-type "none")
+ (parameters
+ '("GooCanvasItemModel*" "model")
+ )
+)
+
+(define-function goo_canvas_item_model_simple_get_type
+ (c-name "goo_canvas_item_model_simple_get_type")
+ (return-type "GType")
+)
+
+
+(define-virtual simple_create_path
+ (of-object "GooCanvasItemSimple")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ )
+)
+(define-virtual simple_update
+ (of-object "GooCanvasItemSimple")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ )
+)
+(define-virtual simple_paint
+ (of-object "GooCanvasItemSimple")
+ (return-type "none")
+ (parameters
+ '("cairo_t*" "cr")
+ '("const-GooCanvasBounds*" "bounds")
+ )
+)
+(define-virtual simple_is_item_at
+ (of-object "GooCanvasItemSimple")
+ (return-type "gboolean")
+ (parameters
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("cairo_t*" "cr")
+ '("gboolean" "is_pointer_event")
+ )
+)
+
+;; From goocanvasmarshal.h
+
+
+
+;; From goocanvaspath.h
+
+(define-function goo_canvas_path_get_type
+ (c-name "goo_canvas_path_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_path_new
+ (c-name "goo_canvas_path_new")
+ (is-constructor-of "GooCanvasPath")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("const-gchar*" "path_data")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_path_model_get_type
+ (c-name "goo_canvas_path_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_path_model_new
+ (c-name "goo_canvas_path_model_new")
+ (is-constructor-of "GooCanvasPathModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ '("const-gchar*" "path_data")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvaspolyline.h
+
+(define-function goo_canvas_points_get_type
+ (c-name "goo_canvas_points_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_points_new
+ (c-name "goo_canvas_points_new")
+ (is-constructor-of "GooCanvasPoints")
+ (return-type "GooCanvasPoints*")
+ (parameters
+ '("int" "num_points")
+ )
+)
+
+(define-method ref
+ (of-object "GooCanvasPoints")
+ (c-name "goo_canvas_points_ref")
+ (return-type "GooCanvasPoints*")
+)
+
+(define-method unref
+ (of-object "GooCanvasPoints")
+ (c-name "goo_canvas_points_unref")
+ (return-type "none")
+)
+
+(define-function goo_canvas_polyline_get_type
+ (c-name "goo_canvas_polyline_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_polyline_new
+ (c-name "goo_canvas_polyline_new")
+ (is-constructor-of "GooCanvasPolyline")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("gboolean" "close_path")
+ '("gint" "num_points")
+ )
+ (varargs #t)
+)
+
+(define-function polyline_new_line
+ (c-name "goo_canvas_polyline_new_line")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("gdouble" "x1")
+ '("gdouble" "y1")
+ '("gdouble" "x2")
+ '("gdouble" "y2")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_polyline_model_get_type
+ (c-name "goo_canvas_polyline_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_polyline_model_new
+ (c-name "goo_canvas_polyline_model_new")
+ (is-constructor-of "GooCanvasPolylineModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ '("gboolean" "close_path")
+ '("gint" "num_points")
+ )
+ (varargs #t)
+)
+
+(define-function polyline_model_new_line
+ (c-name "goo_canvas_polyline_model_new_line")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ '("gdouble" "x1")
+ '("gdouble" "y1")
+ '("gdouble" "x2")
+ '("gdouble" "y2")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvasrect.h
+
+(define-function goo_canvas_rect_get_type
+ (c-name "goo_canvas_rect_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_rect_new
+ (c-name "goo_canvas_rect_new")
+ (is-constructor-of "GooCanvasRect")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gdouble" "width")
+ '("gdouble" "height")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_rect_model_get_type
+ (c-name "goo_canvas_rect_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_rect_model_new
+ (c-name "goo_canvas_rect_model_new")
+ (is-constructor-of "GooCanvasRectModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gdouble" "width")
+ '("gdouble" "height")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvasstyle.h
+
+(define-function goo_canvas_style_get_type
+ (c-name "goo_canvas_style_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_style_new
+ (c-name "goo_canvas_style_new")
+ (is-constructor-of "GooCanvasStyle")
+ (return-type "GooCanvasStyle*")
+)
+
+(define-method copy
+ (of-object "GooCanvasStyle")
+ (c-name "goo_canvas_style_copy")
+ (return-type "GooCanvasStyle*")
+)
+
+(define-method get_parent
+ (of-object "GooCanvasStyle")
+ (c-name "goo_canvas_style_get_parent")
+ (return-type "GooCanvasStyle*")
+)
+
+(define-method set_parent
+ (of-object "GooCanvasStyle")
+ (c-name "goo_canvas_style_set_parent")
+ (return-type "none")
+ (parameters
+ '("GooCanvasStyle*" "parent")
+ )
+)
+
+(define-method get_style_property
+ (of-object "GooCanvasStyle")
+ (c-name "goo_canvas_style_get_property")
+ (return-type "GValue*")
+ (parameters
+ '("GQuark" "property_id")
+ )
+)
+
+(define-method set_style_property
+ (of-object "GooCanvasStyle")
+ (c-name "goo_canvas_style_set_property")
+ (return-type "none")
+ (parameters
+ '("GQuark" "property_id")
+ '("const-GValue*" "value")
+ )
+)
+
+(define-method set_stroke_options
+ (of-object "GooCanvasStyle")
+ (c-name "goo_canvas_style_set_stroke_options")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_t*" "cr")
+ )
+)
+
+(define-method set_fill_options
+ (of-object "GooCanvasStyle")
+ (c-name "goo_canvas_style_set_fill_options")
+ (return-type "gboolean")
+ (parameters
+ '("cairo_t*" "cr")
+ )
+)
+
+
+
+;; From goocanvastable.h
+
+(define-function goo_canvas_table_get_type
+ (c-name "goo_canvas_table_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_table_new
+ (c-name "goo_canvas_table_new")
+ (is-constructor-of "GooCanvasTable")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_table_model_get_type
+ (c-name "goo_canvas_table_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_table_model_new
+ (c-name "goo_canvas_table_model_new")
+ (is-constructor-of "GooCanvasTableModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvastext.h
+
+(define-function goo_canvas_text_get_type
+ (c-name "goo_canvas_text_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_text_new
+ (c-name "goo_canvas_text_new")
+ (is-constructor-of "GooCanvasText")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("const-char*" "string")
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gdouble" "width")
+ '("GtkAnchorType" "anchor")
+ )
+ (varargs #t)
+)
+
+(define-function goo_canvas_text_model_get_type
+ (c-name "goo_canvas_text_model_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_text_model_new
+ (c-name "goo_canvas_text_model_new")
+ (is-constructor-of "GooCanvasTextModel")
+ (return-type "GooCanvasItemModel*")
+ (parameters
+ '("GooCanvasItemModel*" "parent")
+ '("const-char*" "string")
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gdouble" "width")
+ '("GtkAnchorType" "anchor")
+ )
+ (varargs #t)
+)
+
+
+
+;; From goocanvasutils.h
+
+(define-function goo_canvas_parse_path_data
+ (c-name "goo_canvas_parse_path_data")
+ (return-type "GArray*")
+ (parameters
+ '("const-gchar*" "path_data")
+ )
+)
+
+(define-function goo_canvas_create_path
+ (c-name "goo_canvas_create_path")
+ (return-type "none")
+ (parameters
+ '("GArray*" "commands")
+ '("cairo_t*" "cr")
+ )
+)
+
+(define-function goo_canvas_line_dash_get_type
+ (c-name "goo_canvas_line_dash_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_line_dash_new
+ (c-name "goo_canvas_line_dash_new")
+ (is-constructor-of "GooCanvasLineDash")
+ (return-type "GooCanvasLineDash*")
+ (parameters
+ '("gint" "num_dashes")
+ )
+ (varargs #t)
+)
+
+(define-boxed LineDash
+ (in-module "Goo")
+ (c-name "GooCanvasLineDash")
+ (gtype-id "GOO_TYPE_CANVAS_LINE_DASH")
+)
+
+(define-function goo_canvas_line_dash_newv
+ (c-name "goo_canvas_line_dash_newv")
+ (is-constructor-of "GooCanvasLineDash")
+ (return-type "GooCanvasLineDash*")
+ (parameters
+ '("gint" "num_dashes")
+ '("double*" "dashes")
+ )
+)
+
+(define-method ref
+ (of-object "GooCanvasLineDash")
+ (c-name "goo_canvas_line_dash_ref")
+ (return-type "GooCanvasLineDash*")
+)
+
+(define-method unref
+ (of-object "GooCanvasLineDash")
+ (c-name "goo_canvas_line_dash_unref")
+ (return-type "none")
+)
+
+(define-function goo_cairo_matrix_get_type
+ (c-name "goo_cairo_matrix_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_cairo_matrix_copy
+ (c-name "goo_cairo_matrix_copy")
+ (return-type "cairo_matrix_t*")
+ (parameters
+ '("cairo_matrix_t*" "matrix")
+ )
+)
+
+(define-function goo_cairo_matrix_free
+ (c-name "goo_cairo_matrix_free")
+ (return-type "none")
+ (parameters
+ '("cairo_matrix_t*" "matrix")
+ )
+)
+
+(define-function goo_cairo_pattern_get_type
+ (c-name "goo_cairo_pattern_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_cairo_fill_rule_get_type
+ (c-name "goo_cairo_fill_rule_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_cairo_operator_get_type
+ (c-name "goo_cairo_operator_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_cairo_antialias_get_type
+ (c-name "goo_cairo_antialias_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_cairo_line_cap_get_type
+ (c-name "goo_cairo_line_cap_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_cairo_line_join_get_type
+ (c-name "goo_cairo_line_join_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From goocanvaswidget.h
+
+(define-function goo_canvas_widget_get_type
+ (c-name "goo_canvas_widget_get_type")
+ (return-type "GType")
+)
+
+(define-function goo_canvas_widget_new
+ (c-name "goo_canvas_widget_new")
+ (is-constructor-of "GooCanvasWidget")
+ (return-type "GooCanvasItem*")
+ (parameters
+ '("GooCanvasItem*" "parent")
+ '("GtkWidget*" "widget")
+ '("gdouble" "x")
+ '("gdouble" "y")
+ '("gdouble" "width")
+ '("gdouble" "height")
+ )
+ (varargs #t)
+)
Added: branches/gcomprixogoo/src/boards/goocanvas.override
==============================================================================
--- (empty file)
+++ branches/gcomprixogoo/src/boards/goocanvas.override Sun Nov 9 22:22:35 2008
@@ -0,0 +1,1603 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+%%
+headers
+#define NO_IMPORT_PYGOBJECT
+#include "pygobject.h"
+#include <goocanvas.h>
+#include <pygtk/pygtk.h>
+
+#include <pycairo.h>
+
+#include "config.h"
+
+#if PY_VERSION_HEX < 0x02050000
+typedef int Py_ssize_t;
+#endif
+
+extern Pycairo_CAPI_t *Pycairo_CAPI;
+extern PyTypeObject PyGooCanvasBounds_Type;
+
+static PyObject *
+_glist_to_pylist_objs (GList *source)
+{
+ GList *iter;
+ PyObject *dest = PyList_New (0);
+ for (iter = source; iter != NULL; iter = iter->next)
+ {
+ PyObject *item = pygobject_new ((GObject *)iter->data);
+ PyList_Append (dest, item);
+ Py_DECREF (item);
+ }
+ return dest;
+}
+
+#if 0
+
+static PyObject *
+_gslist_to_pylist_objs (GSList *source)
+{
+ GSList *iter;
+ PyObject *dest = PyList_New (0);
+ for (iter = source; iter != NULL; iter = iter->next)
+ {
+ PyObject *item = pygobject_new ((GObject *)iter->data);
+ PyList_Append (dest, item);
+ Py_DECREF (item);
+ }
+ return dest;
+}
+
+static PyObject *
+_gslist_to_pylist_strs (GSList *source)
+{
+ GSList *iter;
+ PyObject *dest = PyList_New (0);
+ for (iter = source; iter != NULL; iter = iter->next)
+ {
+ PyObject *item = PyString_FromString ((char *)iter->data);
+ PyList_Append (dest, item);
+ Py_DECREF (item);
+ }
+ return dest;
+}
+
+#endif
+
+typedef struct {
+ PyObject_HEAD
+ GooCanvasBounds bounds;
+} PyGooCanvasBounds;
+
+#define bounds_getter(field) \
+static PyObject * \
+_pygoo_canvas_bounds_get_##field(PyGooCanvasBounds *self, void *closure) \
+{ \
+ return PyFloat_FromDouble(self->bounds.field); \
+}
+
+#define bounds_setter(field) \
+static int \
+_pygoo_canvas_bounds_set_##field(PyGooCanvasBounds *self, PyObject *value, void *closure) \
+{ \
+ if (!PyFloat_Check(value)) { \
+ PyErr_SetString(PyExc_TypeError, #field" must be a float"); \
+ return -1; \
+ } \
+ self->bounds.field = PyFloat_AsDouble(value); \
+ return 0; \
+}
+
+bounds_getter(x1);
+bounds_setter(x1);
+bounds_getter(y1);
+bounds_setter(y1);
+bounds_getter(x2);
+bounds_setter(x2);
+bounds_getter(y2);
+bounds_setter(y2);
+
+
+static PyGetSetDef _PyGooCanvasBounds_getsets[] = {
+ { "x1", (getter)_pygoo_canvas_bounds_get_x1, (setter)_pygoo_canvas_bounds_set_x1 },
+ { "y1", (getter)_pygoo_canvas_bounds_get_y1, (setter)_pygoo_canvas_bounds_set_y1 },
+ { "x2", (getter)_pygoo_canvas_bounds_get_x2, (setter)_pygoo_canvas_bounds_set_x2 },
+ { "y2", (getter)_pygoo_canvas_bounds_get_y2, (setter)_pygoo_canvas_bounds_set_y2 },
+ { NULL, (getter)0, (setter)0 }
+};
+
+static PyObject *
+pygoo_canvas_bounds_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "x1", "y1", "x2", "y2", NULL };
+ PyGooCanvasBounds *self;
+ GooCanvasBounds bounds = {0,};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "|dddd:goocanvas.Bounds.__init__", kwlist,
+ &bounds.x1, &bounds.y1, &bounds.x2, &bounds.y2))
+ return NULL;
+
+ self = (PyGooCanvasBounds *) PyObject_NEW(PyGooCanvasBounds,
+ &PyGooCanvasBounds_Type);
+ self->bounds = bounds;
+ return (PyObject *) self;
+}
+
+static void
+pygoo_canvas_bounds_dealloc(PyGooCanvasBounds *self)
+{
+ PyObject_DEL(self);
+}
+
+static PyMethodDef _PyGooCanvasBounds_methods[] = {
+ { NULL, 0, 0 }
+};
+
+PyTypeObject PyGooCanvasBounds_Type = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* ob_size */
+ "goocanvas.Bounds", /* tp_name */
+ sizeof(PyGooCanvasBounds), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor)pygoo_canvas_bounds_dealloc, /* tp_dealloc */
+ (printfunc)0, /* tp_print */
+ (getattrfunc)0, /* tp_getattr */
+ (setattrfunc)0, /* tp_setattr */
+ (cmpfunc)0, /* tp_compare */
+ (reprfunc)0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ (hashfunc)0, /* tp_hash */
+ (ternaryfunc)0, /* tp_call */
+ (reprfunc)0, /* tp_str */
+ (getattrofunc)0, /* tp_getattro */
+ (setattrofunc)0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ "Holds bounding box coordinates", /* Documentation string */
+ (traverseproc)0, /* tp_traverse */
+ (inquiry)0, /* tp_clear */
+ (richcmpfunc)0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ (getiterfunc)0, /* tp_iter */
+ (iternextfunc)0, /* tp_iternext */
+ _PyGooCanvasBounds_methods, /* tp_methods */
+ 0, /* tp_members */
+ _PyGooCanvasBounds_getsets, /* tp_getset */
+ (PyTypeObject *)0, /* tp_base */
+ (PyObject *)0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ (initproc)0, /* tp_init */
+ 0, /* tp_alloc */
+ pygoo_canvas_bounds_tp_new, /* tp_new */
+ 0, /* tp_free */
+ (inquiry)0, /* tp_is_gc */
+ (PyObject *)0, /* tp_bases */
+};
+
+PyObject*
+pygoo_canvas_bounds_new(const GooCanvasBounds *bounds)
+{
+ PyGooCanvasBounds *self;
+
+ self = (PyGooCanvasBounds *)PyObject_NEW(PyGooCanvasBounds,
+ &PyGooCanvasBounds_Type);
+ if (G_UNLIKELY(self == NULL))
+ return NULL;
+ if (bounds)
+ self->bounds = *bounds;
+ return (PyObject *)self;
+}
+
+%%
+init
+ if (PyType_Ready(&PyGooCanvasBounds_Type) < 0) {
+ g_return_if_reached();
+ }
+ if (PyDict_SetItemString(d, "Bounds", (PyObject *)&PyGooCanvasBounds_Type) < 0) {
+ g_return_if_reached();
+ }
+
+
+%%
+modulename goocanvas
+
+%%
+import gobject.GObject as PyGObject_Type
+import gtk.Container as PyGtkContainer_Type
+import gtk.Adjustment as PyGtkAdjustment_Type
+
+%%
+ignore
+goo_canvas_ellipse_new
+goo_canvas_ellipse_model_new
+goo_canvas_group_new
+goo_canvas_group_model_new
+goo_canvas_svg_new
+goo_canvas_image_new
+goo_canvas_image_model_new
+goo_canvas_path_new
+goo_canvas_path_model_new
+goo_canvas_polyline_new
+goo_canvas_polyline_model_new
+goo_canvas_rect_new
+goo_canvas_rect_model_new
+goo_canvas_text_new
+goo_canvas_text_model_new
+goo_canvas_item_new
+goo_canvas_item_model_new
+goo_canvas_line_dash_new
+goo_canvas_style_new
+goo_canvas_table_new
+goo_canvas_table_model_new
+goo_canvas_widget_new
+goo_canvas_item_get_child_properties_valist
+goo_canvas_item_set_child_properties_valist
+goo_canvas_item_model_get_child_properties_valist
+goo_canvas_item_model_set_child_properties_valist
+goo_canvas_item_class_find_child_property
+goo_canvas_item_model_class_find_child_property
+goo_canvas_item_class_list_child_properties
+goo_canvas_item_model_class_list_child_properties
+goo_canvas_item_class_install_child_property
+goo_canvas_item_model_class_install_child_property
+%%
+ignore-glob
+ *_get_type
+ _*
+ *_ref
+ *_unref
+
+%%
+override goo_canvas_item_simple_get_path_bounds kwargs
+static PyObject *
+_wrap_goo_canvas_item_simple_get_path_bounds(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "cr", NULL };
+ PyObject *py_bounds;
+ PycairoContext *cr;
+ GooCanvasBounds bounds = {0,};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:get_path_bounds",
+ kwlist, &PycairoContext_Type, &cr))
+ return NULL;
+
+ GooCanvasItemSimple *simple = (GooCanvasItemSimple*) self->obj;
+
+ goo_canvas_item_simple_get_path_bounds (simple, cr->ctx, &bounds);
+
+ py_bounds = pygoo_canvas_bounds_new(&bounds);
+
+ return py_bounds;
+}
+
+%%
+override goo_canvas_points_new kwargs
+static int
+_wrap_goo_canvas_points_new(PyGBoxed *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "data", NULL };
+ PyObject *py_data;
+ gint i, n_data;
+ GooCanvasPoints *points;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O!:GooCanvasPoints.__init__",
+ kwlist, &PyList_Type, &py_data))
+ return -1;
+ n_data = PyList_Size(py_data);
+ points = goo_canvas_points_new(n_data);
+ for (i = 0; i < n_data; i ++) {
+ PyObject *item = PyList_GetItem(py_data, i);
+ if (!PyArg_ParseTuple(item, "dd", &points->coords[2*i], &points->coords[2*i + 1])) {
+ goo_canvas_points_unref(points);
+ return -1;
+ }
+ }
+ self->boxed = points;
+ self->free_on_dealloc = TRUE;
+ self->gtype = GOO_TYPE_CANVAS_POINTS;
+ return 0;
+}
+%%
+override goo_canvas_polyline_new_line kwargs
+static PyObject *
+_wrap_goo_canvas_polyline_new_line(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyGObject *parent;
+ double x1, y1, x2, y2;
+ GooCanvasItem *ret;
+ GObjectClass *class;
+ Py_ssize_t pos;
+ PyObject *value;
+ PyObject *key;
+ GType type;
+
+ if (!PyArg_ParseTuple(args, "O!dddd:polyline_new_line",
+ &PyGooCanvasItem_Type, &parent, &x1,
+ &y1, &x2, &y2))
+ return NULL;
+
+ ret = goo_canvas_polyline_new_line(GOO_CANVAS_ITEM(parent->obj), x1,
+ y1, x2, y2, NULL);
+
+ type = goo_canvas_polyline_get_type();
+
+ if (!ret) {
+ PyErr_SetString (PyExc_RuntimeError, "could not create canvas item object");
+ return NULL;
+ }
+
+ class = G_OBJECT_GET_CLASS(ret);
+ g_object_freeze_notify (G_OBJECT(ret));
+ pos = 0;
+
+ while (kwargs && PyDict_Next (kwargs, &pos, &key, &value)) {
+ gchar *key_str = PyString_AsString (key);
+ GParamSpec *pspec;
+ GValue gvalue ={ 0, };
+
+ pspec = g_object_class_find_property (class, key_str);
+ if (!pspec) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "canvas item `%s' doesn't support property `%s'",
+ g_type_name(type), key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ gtk_object_destroy(GTK_OBJECT(ret));
+ return NULL;
+ }
+
+ g_value_init(&gvalue, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ if (pyg_value_from_pyobject(&gvalue, value)) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "could not convert value for property `%s'", key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ gtk_object_destroy(GTK_OBJECT(ret));
+ return NULL;
+ }
+ g_object_set_property(G_OBJECT(ret), key_str, &gvalue);
+ g_value_unset(&gvalue);
+ }
+
+ g_object_thaw_notify (G_OBJECT(ret));
+
+ return pygobject_new((GObject *)ret);
+}
+%%
+override goo_canvas_polyline_model_new_line kwargs
+static PyObject *
+_wrap_goo_canvas_polyline_model_new_line(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyGObject *parent;
+ double x1, y1, x2, y2;
+ GooCanvasItemModel *ret;
+ GObjectClass *class;
+ Py_ssize_t pos;
+ PyObject *value;
+ PyObject *key;
+ GType type;
+
+ if (!PyArg_ParseTuple(args, "O!dddd:polyline_model_new_line",
+ &PyGooCanvasItemModel_Type, &parent, &x1,
+ &y1, &x2, &y2))
+ return NULL;
+
+ ret = goo_canvas_polyline_model_new_line(GOO_CANVAS_ITEM_MODEL(parent->obj), x1,
+ y1, x2, y2, NULL);
+
+ type = goo_canvas_polyline_model_get_type();
+
+ if (!ret) {
+ PyErr_SetString (PyExc_RuntimeError, "could not create canvas item model object");
+ return NULL;
+ }
+
+ class = G_OBJECT_GET_CLASS(ret);
+ g_object_freeze_notify (G_OBJECT(ret));
+ pos = 0;
+
+ while (kwargs && PyDict_Next (kwargs, &pos, &key, &value)) {
+ gchar *key_str = PyString_AsString (key);
+ GParamSpec *pspec;
+ GValue gvalue ={ 0, };
+
+ pspec = g_object_class_find_property (class, key_str);
+ if (!pspec) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "canvas item model `%s' doesn't support property `%s'",
+ g_type_name(type), key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ gtk_object_destroy(GTK_OBJECT(ret));
+ return NULL;
+ }
+
+ g_value_init(&gvalue, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ if (pyg_value_from_pyobject(&gvalue, value)) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "could not convert value for property `%s'", key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ gtk_object_destroy(GTK_OBJECT(ret));
+ return NULL;
+ }
+ g_object_set_property(G_OBJECT(ret), key_str, &gvalue);
+ g_value_unset(&gvalue);
+ }
+
+ g_object_thaw_notify (G_OBJECT(ret));
+
+ return pygobject_new((GObject *)ret);
+}
+
+%%
+override goo_canvas_line_dash_newv kwargs
+static int
+_wrap_goo_canvas_line_dash_newv(PyGBoxed *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "dashes", NULL };
+ int num_dashes, i;
+ double *dashes;
+ PyObject *py_dashes;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!:GooCanvasLineDash.__init__", kwlist,
+ &PyList_Type, &py_dashes))
+ return -1;
+
+ num_dashes = PyList_Size(py_dashes);
+ dashes = g_new(double, num_dashes);
+ for (i = 0; i < num_dashes; ++i) {
+ PyObject *item = PyList_GET_ITEM(py_dashes, i);
+ if (!PyFloat_Check(item)) {
+ g_free(dashes);
+ PyErr_SetString(PyExc_TypeError, "parameter must be a list of floats");
+ return -1;
+ }
+ dashes[i] = PyFloat_AsDouble(item);
+ }
+
+ self->gtype = GOO_TYPE_CANVAS_LINE_DASH;
+ self->free_on_dealloc = FALSE;
+ self->boxed = goo_canvas_line_dash_newv(num_dashes, dashes);
+
+ if (!self->boxed) {
+ g_free(dashes);
+ PyErr_SetString(PyExc_RuntimeError, "could not create GooCanvasLineDash object");
+ return -1;
+ }
+ self->free_on_dealloc = TRUE;
+ return 0;
+}
+%%
+override goo_canvas_item_remove_child kwargs
+static PyObject *
+_wrap_goo_canvas_item_remove_child(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "child", NULL };
+ int child_num;
+ PyObject *py_child;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O:GooCanvasItem.remove_child", kwlist, &py_child))
+ return NULL;
+
+ if (PyInt_Check(py_child))
+ child_num = PyInt_AsLong(py_child);
+ else {
+ if (!PyObject_IsInstance(py_child, (PyObject *) &PyGooCanvasItem_Type)) {
+ PyErr_SetString(PyExc_TypeError, "argument must be integer or goocanvas.Item");
+ return NULL;
+ }
+ child_num = goo_canvas_item_find_child(GOO_CANVAS_ITEM(self->obj), GOO_CANVAS_ITEM(pygobject_get(py_child)));
+ if (child_num == -1) {
+ PyErr_SetString(PyExc_ValueError, "child not found");
+ return NULL;
+ }
+ }
+ goo_canvas_item_remove_child(GOO_CANVAS_ITEM(self->obj), child_num);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+%%
+override goo_canvas_get_bounds noargs
+static PyObject *
+_wrap_goo_canvas_get_bounds(PyGObject *self)
+{
+ gdouble left, right, top, bottom;
+
+ goo_canvas_get_bounds(GOO_CANVAS(self->obj), &left, &right, &top, &bottom);
+
+ return Py_BuildValue("dddd", left, right, top, bottom);
+}
+
+%%
+override goo_canvas_item_get_bounds noargs
+static PyObject *
+_wrap_goo_canvas_item_get_bounds(PyGObject *self)
+{
+ PyObject *py_bounds;
+ GooCanvasBounds bounds = {0,};
+
+ goo_canvas_item_get_bounds(GOO_CANVAS_ITEM(self->obj), &bounds);
+
+ py_bounds = pygoo_canvas_bounds_new(&bounds);
+
+ return py_bounds;
+}
+
+%%
+override goo_canvas_convert_to_pixels kwargs
+static PyObject *
+_wrap_goo_canvas_convert_to_pixels(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "x", "y", NULL };
+ gdouble x, y;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"dd:GooCanvas.convert_to_pixels", kwlist, &x, &y))
+ return NULL;
+
+ goo_canvas_convert_to_pixels(GOO_CANVAS(self->obj), &x, &y);
+
+ return Py_BuildValue("dd", x, y);
+}
+
+%%
+override goo_canvas_convert_from_pixels kwargs
+static PyObject *
+_wrap_goo_canvas_convert_from_pixels(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "x", "y", NULL };
+ gdouble x, y;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"dd:GooCanvas.convert_from_pixels", kwlist, &x, &y))
+ return NULL;
+
+ goo_canvas_convert_from_pixels(GOO_CANVAS(self->obj), &x, &y);
+
+ return Py_BuildValue("dd", x, y);
+}
+
+%%
+override goo_canvas_convert_to_item_space kwargs
+static PyObject *
+_wrap_goo_canvas_convert_to_item_space(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "item", "x", "y", NULL };
+ gdouble x, y;
+ PyGObject *item;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!dd:GooCanvas.convert_to_item_space",
+ kwlist, &PyGooCanvasItem_Type, &item, &x, &y))
+ return NULL;
+
+ goo_canvas_convert_to_item_space(GOO_CANVAS(self->obj), GOO_CANVAS_ITEM(item->obj), &x, &y);
+
+ return Py_BuildValue("dd", x, y);
+}
+%%
+override goo_canvas_convert_from_item_space kwargs
+static PyObject *
+_wrap_goo_canvas_convert_from_item_space(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "item", "x", "y", NULL };
+ gdouble x, y;
+ PyGObject *item;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!dd:GooCanvas.convert_from_item_space",
+ kwlist, &PyGooCanvasItem_Type, &item, &x, &y))
+ return NULL;
+
+ goo_canvas_convert_from_item_space(GOO_CANVAS(self->obj), GOO_CANVAS_ITEM(item->obj), &x, &y);
+
+ return Py_BuildValue("dd", x, y);
+}
+%%
+override GooCanvasItem__proxy_do_get_bounds
+static void
+_wrap_GooCanvasItem__proxy_do_get_bounds(GooCanvasItem *self, GooCanvasBounds *bounds)
+{
+ PyGILState_STATE __py_state;
+ PyObject *py_self;
+ PyObject *py_bounds;
+
+ __py_state = pyg_gil_state_ensure();
+ py_self = pygobject_new((GObject *) self);
+ if (!py_self) {
+ if (PyErr_Occurred())
+ PyErr_Print();
+ pyg_gil_state_release(__py_state);
+ return;
+ }
+
+ py_bounds = PyObject_CallMethod(py_self, "do_get_bounds", "");
+ if (py_bounds)
+ *bounds = ((PyGooCanvasBounds *) py_bounds)->bounds;
+ else
+ PyErr_Print();
+ Py_DECREF(py_self);
+ Py_XDECREF(py_bounds);
+ pyg_gil_state_release(__py_state);
+}
+%%
+override GooCanvasItem__proxy_do_update
+static void
+_wrap_GooCanvasItem__proxy_do_update(GooCanvasItem *self, gboolean entire_tree,
+ cairo_t *cr, GooCanvasBounds *bounds)
+{
+ PyGILState_STATE __py_state;
+ PyObject *py_self;
+ PyObject *py_bounds;
+
+ __py_state = pyg_gil_state_ensure();
+ py_self = pygobject_new((GObject *) self);
+ if (!py_self) {
+ if (PyErr_Occurred())
+ PyErr_Print();
+ pyg_gil_state_release(__py_state);
+ return;
+ }
+
+ py_bounds = PyObject_CallMethod(py_self, "do_update", "iN",
+ entire_tree,
+ PycairoContext_FromContext(cairo_reference(cr), NULL, NULL));
+ if (py_bounds)
+ *bounds = ((PyGooCanvasBounds *) py_bounds)->bounds;
+ else
+ PyErr_Print();
+ Py_DECREF(py_self);
+ Py_XDECREF(py_bounds);
+ pyg_gil_state_release(__py_state);
+}
+
+%%
+body
+
+static PyObject *
+_py_canvas_style_get_property(GooCanvasStyle *style,
+ const char *name)
+{
+ const GValue *value;
+
+ value = goo_canvas_style_get_property(style, g_quark_from_string(name));
+ if (!value) {
+ PyErr_Format(PyExc_KeyError, "goocanvas.Style object has no property named '%s'",
+ name);
+ return NULL;
+ }
+ return pyg_value_as_pyobject(value, TRUE);
+}
+
+static int
+_py_goo_canvas_style_set_property(GooCanvasStyle *style,
+ const char *name,
+ PyObject *py_value)
+{
+ GValue value = {0,};
+
+ if (py_value == Py_None) {
+ goo_canvas_style_set_property(style, g_quark_from_string(name), NULL);
+ } else {
+ GType gtype = pyg_type_from_object((PyObject *) py_value->ob_type);
+ if (gtype == 0) {
+ /* check to see if it is one of our specially supported types */
+ if (PyObject_IsInstance(py_value, (PyObject *) &PycairoMatrix_Type)) {
+ PyErr_Clear();
+ gtype = GOO_TYPE_CAIRO_MATRIX;
+ } else if (PyObject_IsInstance(py_value, (PyObject *) &PycairoPattern_Type)) {
+ PyErr_Clear();
+ gtype = GOO_TYPE_CAIRO_PATTERN;
+ } else /* give up; we really don't support this type */
+ return -1;
+ }
+ g_value_init(&value, gtype);
+ if (pyg_value_from_pyobject(&value, py_value)) {
+ PyErr_SetString(PyExc_TypeError, "unable to convert value");
+ return -1;
+ }
+ goo_canvas_style_set_property(style, g_quark_from_string(name), &value);
+ g_value_unset(&value);
+ }
+ return 0;
+}
+
+
+%%
+override goo_canvas_style_get_property kwargs
+static PyObject *
+_wrap_goo_canvas_style_get_property(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "name", NULL };
+ char *name;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"s:goocanvas.Style.get_property",
+ kwlist, &name))
+ return NULL;
+ return _py_canvas_style_get_property(GOO_CANVAS_STYLE(self->obj), name);
+}
+
+%%
+override goo_canvas_style_set_property kwargs
+static PyObject *
+_wrap_goo_canvas_style_set_property(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "name", "value", NULL };
+ char *name;
+ PyObject *py_value;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,"sO:goocanvas.Style.set_property",
+ kwlist, &name, &py_value))
+ return NULL;
+ if (_py_goo_canvas_style_set_property(GOO_CANVAS_STYLE(self->obj), name, py_value))
+ return NULL;
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+%%
+override-slot GooCanvasStyle.tp_as_mapping
+
+static PyObject *
+goo_canvas_style_subscript(PyGObject *self, PyObject *arg)
+{
+ const char *name;
+ if (!PyString_Check(arg)) {
+ PyErr_SetString(PyExc_TypeError, "key must be a string");
+ return NULL;
+ }
+ name = PyString_AsString(arg);
+ return _py_canvas_style_get_property(GOO_CANVAS_STYLE(self->obj), name);
+}
+
+static int
+_wrap_goo_canvas_style_ass_subscript(PyGObject *self, PyObject *key, PyObject *py_value)
+{
+ char *name;
+
+ if (!PyString_Check(key)) {
+ PyErr_SetString(PyExc_TypeError, "key must be a string");
+ return -1;
+ }
+ name = PyString_AsString(key);
+ return _py_goo_canvas_style_set_property(GOO_CANVAS_STYLE(self->obj), name, py_value);
+}
+
+
+static PyMappingMethods _wrap_goo_canvas_style_tp_as_mapping = {
+ NULL, /* inquiry mp_length; */
+ (binaryfunc) goo_canvas_style_subscript, /* mp_subscript; */
+ (objobjargproc) _wrap_goo_canvas_style_ass_subscript, /* objobjargproc mp_ass_subscript; */
+};
+
+%%
+override-attr GooCanvasItemSimple.bounds_x1
+
+static int
+_wrap_goo_canvas_item_simple__set_bounds_x1(PyGObject *self, PyObject *py_value, void *closure)
+{
+ if (!PyFloat_Check(py_value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be a float");
+ return -1;
+ }
+ GOO_CANVAS_ITEM_SIMPLE(pygobject_get(self))->bounds.x1 = PyFloat_AsDouble(py_value);
+ return 0;
+}
+
+%%
+override-attr GooCanvasItemSimple.bounds_x2
+
+static int
+_wrap_goo_canvas_item_simple__set_bounds_x2(PyGObject *self, PyObject *py_value, void *closure)
+{
+ if (!PyFloat_Check(py_value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be a float");
+ return -1;
+ }
+ GOO_CANVAS_ITEM_SIMPLE(pygobject_get(self))->bounds.x2 = PyFloat_AsDouble(py_value);
+ return 0;
+}
+
+%%
+override-attr GooCanvasItemSimple.bounds_y1
+
+static int
+_wrap_goo_canvas_item_simple__set_bounds_y1(PyGObject *self, PyObject *py_value, void *closure)
+{
+ if (!PyFloat_Check(py_value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be a float");
+ return -1;
+ }
+ GOO_CANVAS_ITEM_SIMPLE(pygobject_get(self))->bounds.y1 = PyFloat_AsDouble(py_value);
+ return 0;
+}
+
+%%
+override-attr GooCanvasItemSimple.bounds_y2
+
+static int
+_wrap_goo_canvas_item_simple__set_bounds_y2(PyGObject *self, PyObject *py_value, void *closure)
+{
+ if (!PyFloat_Check(py_value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be a float");
+ return -1;
+ }
+ GOO_CANVAS_ITEM_SIMPLE(pygobject_get(self))->bounds.y2 = PyFloat_AsDouble(py_value);
+ return 0;
+}
+
+%%
+override goo_canvas_item_set_child_properties kwargs
+static PyObject *
+_wrap_goo_canvas_item_set_child_properties(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyGObject *pychild;
+ GObjectClass *class;
+ GooCanvasItem *parent, *child;
+ Py_ssize_t pos;
+ int len;
+ gint c_pos;
+ PyObject *value;
+ PyObject *key;
+
+ if ((len = PyTuple_Size(args)) < 1) {
+ PyErr_SetString(PyExc_TypeError, "requires at least one argument");
+ return NULL;
+ }
+ pychild = (PyGObject*)PyTuple_GetItem(args, 0);
+
+ if (!pygobject_check(pychild, &PyGooCanvasItem_Type)) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument should be a GooCanvasItem");
+ return NULL;
+ }
+
+ parent = GOO_CANVAS_ITEM(self->obj);
+ child = GOO_CANVAS_ITEM(pychild->obj);
+
+ c_pos = goo_canvas_item_find_child(parent, child);
+ if (c_pos == -1) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument must be a child");
+ return NULL;
+ }
+
+ class = G_OBJECT_GET_CLASS(self->obj);
+
+ g_object_freeze_notify (G_OBJECT(self->obj));
+ pos = 0;
+
+ while (kwargs && PyDict_Next (kwargs, &pos, &key, &value)) {
+ gchar *key_str = PyString_AsString (key);
+ GParamSpec *pspec;
+ GValue gvalue ={ 0, };
+
+ pspec = goo_canvas_item_class_find_child_property (class, key_str);
+ if (!pspec) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "object `%s' doesn't support child property `%s'",
+ g_type_name(G_OBJECT_TYPE(pychild->obj)), key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ return NULL;
+ }
+
+ g_value_init(&gvalue, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ if (pyg_value_from_pyobject(&gvalue, value)) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "could not convert value for property `%s'", key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ return NULL;
+ }
+ GooCanvasItemIface *iface;
+
+ iface = g_type_interface_peek (class, GOO_TYPE_CANVAS_ITEM);
+ iface->set_child_property ((GooCanvasItem*) parent,
+ (GooCanvasItem*) child,
+ pspec->param_id, &gvalue, pspec);
+
+ g_value_unset(&gvalue);
+ }
+
+ g_object_thaw_notify (G_OBJECT(self->obj));
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+%%
+override goo_canvas_item_get_child_properties args
+static PyObject *
+_wrap_goo_canvas_item_get_child_properties(PyGObject *self, PyObject *args)
+{
+ GObjectClass *class;
+ GooCanvasItem *parent, *child;
+ PyGObject *pychild;
+ int i, len;
+ gint c_pos;
+ PyObject *tuple;
+
+ if ((len = PyTuple_Size(args)) < 1) {
+ PyErr_SetString(PyExc_TypeError, "requires at least one argument");
+ return NULL;
+ }
+
+ pychild = (PyGObject*)PyTuple_GetItem(args, 0);
+
+ if (!pygobject_check(pychild, &PyGooCanvasItem_Type)) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument should be a GooCanvasItem");
+ return NULL;
+ }
+
+ parent = GOO_CANVAS_ITEM(self->obj);
+ child = GOO_CANVAS_ITEM(pychild->obj);
+
+ c_pos = goo_canvas_item_find_child(parent, child);
+ if (c_pos == -1) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument must be a child");
+ return NULL;
+ }
+
+ tuple = PyTuple_New(len-1);
+
+ class = G_OBJECT_GET_CLASS(self->obj);
+
+ for (i = 1; i < len; i++) {
+ PyObject *py_property = PyTuple_GetItem(args, i);
+ gchar *property_name;
+ GParamSpec *pspec;
+ GValue value = { 0 };
+ PyObject *item;
+
+ if (!PyString_Check(py_property)) {
+ PyErr_SetString(PyExc_TypeError,
+ "Expected string argument for property.");
+ return NULL;
+ }
+
+ property_name = PyString_AsString(py_property);
+
+ pspec = goo_canvas_item_class_find_child_property (class, property_name);
+ if (!pspec) {
+ PyErr_Format(PyExc_TypeError,
+ "object of type `%s' does not have child property `%s'",
+ g_type_name(G_OBJECT_TYPE(self->obj)), property_name);
+ return NULL;
+ }
+ if (!(pspec->flags & G_PARAM_READABLE)) {
+ PyErr_Format(PyExc_TypeError, "property %s is not readable", property_name);
+ return NULL;
+ }
+ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ GooCanvasItemIface *iface;
+
+ iface = g_type_interface_peek (class, GOO_TYPE_CANVAS_ITEM);
+ iface->get_child_property ((GooCanvasItem*) parent,
+ (GooCanvasItem*) child,
+ pspec->param_id, &value, pspec);
+
+ item = pyg_value_as_pyobject(&value, TRUE);
+ PyTuple_SetItem(tuple, i-1, item);
+
+ g_value_unset(&value);
+ }
+
+ return tuple;
+}
+
+%%
+override goo_canvas_item_model_set_child_properties kwargs
+static PyObject *
+_wrap_goo_canvas_item_model_set_child_properties(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ PyGObject *pychild;
+ GObjectClass *class;
+ GooCanvasItemModel *parent, *child;
+ Py_ssize_t pos;
+ int len;
+ gint c_pos;
+ PyObject *value;
+ PyObject *key;
+
+ if ((len = PyTuple_Size(args)) < 1) {
+ PyErr_SetString(PyExc_TypeError, "requires at least one argument");
+ return NULL;
+ }
+ pychild = (PyGObject*)PyTuple_GetItem(args, 0);
+
+ if (!pygobject_check(pychild, &PyGooCanvasItemModel_Type)) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument should be a GooCanvasItemModel");
+ return NULL;
+ }
+
+ parent = GOO_CANVAS_ITEM_MODEL(self->obj);
+ child = GOO_CANVAS_ITEM_MODEL(pychild->obj);
+
+ c_pos = goo_canvas_item_model_find_child(parent, child);
+ if (c_pos == -1) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument must be a child");
+ return NULL;
+ }
+
+ class = G_OBJECT_GET_CLASS(self->obj);
+
+ g_object_freeze_notify (G_OBJECT(self->obj));
+ pos = 0;
+
+ while (kwargs && PyDict_Next (kwargs, &pos, &key, &value)) {
+ gchar *key_str = PyString_AsString (key);
+ GParamSpec *pspec;
+ GValue gvalue ={ 0, };
+
+ pspec = goo_canvas_item_model_class_find_child_property (class, key_str);
+ if (!pspec) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "object `%s' doesn't support child property `%s'",
+ g_type_name(G_OBJECT_TYPE(pychild->obj)), key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ return NULL;
+ }
+
+ g_value_init(&gvalue, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ if (pyg_value_from_pyobject(&gvalue, value)) {
+ gchar buf[512];
+
+ g_snprintf(buf, sizeof(buf),
+ "could not convert value for property `%s'", key_str);
+ PyErr_SetString(PyExc_TypeError, buf);
+ return NULL;
+ }
+ GooCanvasItemModelIface *iface;
+
+ iface = g_type_interface_peek (class, GOO_TYPE_CANVAS_ITEM_MODEL);
+ iface->set_child_property ((GooCanvasItemModel*) parent,
+ (GooCanvasItemModel*) child,
+ pspec->param_id, &gvalue, pspec);
+ g_value_unset(&gvalue);
+ }
+
+ g_object_thaw_notify (G_OBJECT(self->obj));
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+%%
+override goo_canvas_item_model_get_child_properties args
+static PyObject *
+_wrap_goo_canvas_item_model_get_child_properties(PyGObject *self, PyObject *args)
+{
+ GObjectClass *class;
+ GooCanvasItemModel *parent, *child;
+ PyGObject *pychild;
+ int i, len;
+ gint c_pos;
+ PyObject *tuple;
+
+ if ((len = PyTuple_Size(args)) < 1) {
+ PyErr_SetString(PyExc_TypeError, "requires at least one argument");
+ return NULL;
+ }
+
+ pychild = (PyGObject*)PyTuple_GetItem(args, 0);
+
+ if (!pygobject_check(pychild, &PyGooCanvasItemModel_Type)) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument should be a GooCanvasItemModel");
+ return NULL;
+ }
+
+ parent = GOO_CANVAS_ITEM_MODEL(self->obj);
+ child = GOO_CANVAS_ITEM_MODEL(pychild->obj);
+
+ c_pos = goo_canvas_item_model_find_child(parent, child);
+ if (c_pos == -1) {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument must be a child");
+ return NULL;
+ }
+
+ tuple = PyTuple_New(len-1);
+
+ class = G_OBJECT_GET_CLASS(self->obj);
+
+ for (i = 1; i < len; i++) {
+ PyObject *py_property = PyTuple_GetItem(args, i);
+ gchar *property_name;
+ GParamSpec *pspec;
+ GValue value = { 0 };
+ PyObject *item;
+
+ if (!PyString_Check(py_property)) {
+ PyErr_SetString(PyExc_TypeError,
+ "Expected string argument for property.");
+ return NULL;
+ }
+
+ property_name = PyString_AsString(py_property);
+ pspec = goo_canvas_item_model_class_find_child_property (class, property_name);
+
+ if (!pspec) {
+ PyErr_Format(PyExc_TypeError,
+ "object of type `%s' does not have child property `%s'",
+ g_type_name(G_OBJECT_TYPE(self->obj)), property_name);
+ return NULL;
+ }
+ if (!(pspec->flags & G_PARAM_READABLE)) {
+ PyErr_Format(PyExc_TypeError, "property %s is not readable",
+ property_name);
+ return NULL;
+ }
+ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ GooCanvasItemModelIface *iface;
+
+ iface = g_type_interface_peek (class, GOO_TYPE_CANVAS_ITEM_MODEL);
+ iface->get_child_property ((GooCanvasItemModel*) parent,
+ (GooCanvasItemModel*) child,
+ pspec->param_id, &value, pspec);
+
+ item = pyg_value_as_pyobject(&value, TRUE);
+ PyTuple_SetItem(tuple, i-1, item);
+
+ g_value_unset(&value);
+ }
+
+ return tuple;
+}
+
+%%
+define GooCanvasItem.find_child_property kwargs classmethod
+static PyObject *
+_wrap_goo_canvas_item_find_child_property (PyObject *cls,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "property", NULL };
+ GObjectClass *klass;
+ GType itype;
+ const gchar *prop_name;
+ GParamSpec *pspec;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "s:item_class_find_child_property",
+ kwlist,
+ &prop_name))
+ return NULL;
+
+ if ((itype = pyg_type_from_object(cls)) == 0)
+ return NULL;
+
+ klass = g_type_class_ref(itype);
+
+ if (!klass) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "could not get a reference to type class");
+ return NULL;
+ }
+
+ pspec = goo_canvas_item_class_find_child_property (klass, prop_name);
+
+ if(!pspec){
+ PyErr_Format(PyExc_KeyError,
+ "object %s does not support property %s",
+ g_type_name(itype), prop_name);
+ return NULL;
+ }
+ return pyg_param_spec_new(pspec);
+}
+
+%%
+define GooCanvasItemModel.find_child_property kwargs classmethod
+static PyObject *
+_wrap_goo_canvas_item_model_find_child_property (PyObject *cls,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "property", NULL };
+ GObjectClass *klass;
+ GType itype;
+ const gchar *prop_name;
+ GParamSpec *pspec;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "s:item_model_class_find_child_property",
+ kwlist,
+ &prop_name))
+ return NULL;
+
+ if ((itype = pyg_type_from_object(cls)) == 0)
+ return NULL;
+
+ klass = g_type_class_ref(itype);
+
+ if (!klass) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "could not get a reference to type class");
+ return NULL;
+ }
+
+ pspec = goo_canvas_item_model_class_find_child_property (klass, prop_name);
+
+ if(!pspec){
+ PyErr_Format(PyExc_KeyError,
+ "object %s does not support property %s",
+ g_type_name(itype), prop_name);
+ return NULL;
+ }
+ return pyg_param_spec_new(pspec);
+}
+
+%%
+define GooCanvasItem.list_child_properties noargs classmethod
+static PyObject *
+_wrap_goo_canvas_item_list_child_properties (PyObject *cls,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ GParamSpec **specs;
+ PyObject *list;
+ GType itype;
+ GObjectClass *klass;
+ guint nprops;
+ guint i;
+
+ if ((itype = pyg_type_from_object(cls)) == 0)
+ return NULL;
+
+ klass = g_type_class_ref(itype);
+ if (!klass) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "could not get a reference to type class");
+ return NULL;
+ }
+
+ specs = goo_canvas_item_class_list_child_properties(klass, &nprops);
+ list = PyList_New(nprops);
+ if (list == NULL) {
+ g_free(specs);
+ g_type_class_unref(klass);
+ return NULL;
+ }
+
+ for (i = 0; i < nprops; i++) {
+ PyList_SetItem(list, i, pyg_param_spec_new(specs[i]));
+ }
+
+ g_free(specs);
+ g_type_class_unref(klass);
+
+ return list;
+}
+
+%%
+define GooCanvasItemModel.list_child_properties noargs classmethod
+static PyObject *
+_wrap_goo_canvas_item_model_list_child_properties (PyObject *cls,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ GParamSpec **specs;
+ PyObject *list;
+ GType itype;
+ GObjectClass *klass;
+ guint nprops;
+ guint i;
+
+ if ((itype = pyg_type_from_object(cls)) == 0)
+ return NULL;
+
+ klass = g_type_class_ref(itype);
+ if (!klass) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "could not get a reference to type class");
+ return NULL;
+ }
+
+ specs = goo_canvas_item_model_class_list_child_properties(klass, &nprops);
+ list = PyList_New(nprops);
+ if (list == NULL) {
+ g_free(specs);
+ g_type_class_unref(klass);
+ return NULL;
+ }
+
+ for (i = 0; i < nprops; i++) {
+ PyList_SetItem(list, i, pyg_param_spec_new(specs[i]));
+ }
+
+ g_free(specs);
+ g_type_class_unref(klass);
+
+ return list;
+}
+
+%%
+define GooCanvasItem.install_child_property kwargs classmethod
+static PyObject *
+_wrap_goo_canvas_item_install_child_property (PyObject *cls,
+ PyObject *args,
+ PyObject* kwargs)
+{
+ static char *kwlist[] = { "property_id", "pspec", NULL };
+ PyObject *property;
+ GType itype;
+ GObjectClass *klass;
+ guint property_id;
+ GParamSpec *pspec;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "iO:item_class_install_child_property",
+ kwlist,
+ &property_id, &property))
+ return NULL;
+
+
+ if ((itype = pyg_type_from_object(cls)) == 0)
+ return NULL;
+
+ klass = g_type_class_ref(itype);
+ if (!klass) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "could not get a reference to type class");
+ return NULL;
+ }
+
+ pspec = pyg_param_spec_from_object(property);
+ if(!pspec) {
+ g_type_class_unref(klass);
+ return NULL;
+ }
+
+ if (goo_canvas_item_class_find_child_property(G_OBJECT_CLASS(klass), pspec->name)) {
+ PyErr_Format(PyExc_TypeError,
+ "there is already a '%s' property installed", pspec->name);
+ g_type_class_unref(klass);
+ return NULL;
+ }
+
+ goo_canvas_item_class_install_child_property(klass, property_id, pspec);
+
+ g_type_class_unref(klass);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+%%
+define GooCanvasItemModel.install_child_property kwargs classmethod
+static PyObject *
+_wrap_goo_canvas_item_model_install_child_property (PyObject *cls,
+ PyObject *args,
+ PyObject* kwargs)
+{
+ static char *kwlist[] = { "property_id", "pspec", NULL };
+ PyObject *property;
+ GType itype;
+ GObjectClass *klass;
+ guint property_id;
+ GParamSpec *pspec;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "iO:item_model_class_install_child_property",
+ kwlist,
+ &property_id, &property))
+ return NULL;
+
+
+ if ((itype = pyg_type_from_object(cls)) == 0)
+ return NULL;
+
+ klass = g_type_class_ref(itype);
+ if (!klass) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "could not get a reference to type class");
+ return NULL;
+ }
+
+ pspec = pyg_param_spec_from_object(property);
+ if(!pspec) {
+ g_type_class_unref(klass);
+ return NULL;
+ }
+
+ if (goo_canvas_item_model_class_find_child_property(G_OBJECT_CLASS(klass), pspec->name)) {
+ PyErr_Format(PyExc_TypeError,
+ "there is already a '%s' property installed", pspec->name);
+ g_type_class_unref(klass);
+ return NULL;
+ }
+
+ goo_canvas_item_model_class_install_child_property(klass, property_id, pspec);
+
+ g_type_class_unref(klass);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+%%
+override goo_canvas_get_items_at kwargs
+static PyObject *
+_wrap_goo_canvas_get_items_at(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "x", "y", "is_pointer_event", NULL };
+ PyObject *point_event, *ret;
+ gdouble x, y;
+ GList *item_list;
+ gboolean is_pointer_event;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "ddO:get_items_at",
+ kwlist,
+ &x, &y, &point_event))
+ return NULL;
+
+ is_pointer_event = (PyObject_IsTrue(point_event)) ? TRUE : FALSE;
+
+ item_list = goo_canvas_get_items_at(GOO_CANVAS(self->obj),
+ x, y, is_pointer_event);
+
+ if (!item_list) {
+ Py_INCREF (Py_None);
+ return Py_None;
+ }
+
+ ret = _glist_to_pylist_objs(item_list);
+ g_list_free(item_list);
+ return ret;
+}
+
+%%
+override goo_canvas_get_items_in_area kwargs
+static PyObject *
+_wrap_goo_canvas_get_items_in_area(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "area", "inside_area", "include_overlaps",
+ "include_containers", NULL };
+ PyObject *inside_area, *include_containers, *include_overlaps, *ret;
+ PyObject *area;
+ GList *item_list;
+ gboolean inside, include_cont, include_over;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O!OOO:get_items_at",
+ kwlist,
+ &PyGooCanvasBounds_Type, &area, &inside_area,
+ &include_overlaps, &include_containers))
+ return NULL;
+
+ inside = (PyObject_IsTrue(inside_area)) ? TRUE : FALSE;
+ include_cont = (PyObject_IsTrue(include_containers)) ? TRUE : FALSE;
+ include_over = (PyObject_IsTrue(include_overlaps)) ? TRUE : FALSE;
+
+ item_list = goo_canvas_get_items_in_area (GOO_CANVAS(self->obj),
+ &((PyGooCanvasBounds *) area)->bounds,
+ inside,
+ include_over,
+ include_cont);
+ if (!item_list) {
+ Py_INCREF (Py_None);
+ return Py_None;
+ }
+
+
+ ret = _glist_to_pylist_objs(item_list);
+ g_list_free(item_list);
+ return ret;
+}
+
+%%
+override goo_canvas_item_get_items_at kwargs
+static PyObject *
+_wrap_goo_canvas_item_get_items_at(PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "x", "y", "cr", "is_pointer_event",
+ "parent_is_visible", NULL };
+ PyObject *point_event, *ret, *parent_visible;
+ gdouble x, y;
+ GList *item_list;
+ gboolean is_pointer_event;
+ gboolean parent_is_visible;
+ PycairoContext *cr;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "ddOOO:get_items_at",
+ kwlist,
+ &x, &y, &cr, &point_event,
+ &parent_visible))
+ return NULL;
+
+ is_pointer_event = (PyObject_IsTrue(point_event)) ? TRUE : FALSE;
+ parent_is_visible = (PyObject_IsTrue(parent_visible)) ? TRUE : FALSE;
+
+ item_list = goo_canvas_item_get_items_at(GOO_CANVAS_ITEM(self->obj),
+ x, y, cr->ctx, is_pointer_event,
+ parent_is_visible, NULL);
+
+ if (!item_list) {
+ Py_INCREF (Py_None);
+ return Py_None;
+ }
+
+ ret = _glist_to_pylist_objs(item_list);
+ g_list_free(item_list);
+ return ret;
+}
+
+%%
+override goo_canvas_item_get_transform noargs
+static PyObject *
+_wrap_goo_canvas_item_get_transform(PyGObject *self)
+{
+ PyObject *matrix;
+ cairo_matrix_t transform = {0,};
+ gboolean res;
+
+ res = goo_canvas_item_get_transform(GOO_CANVAS_ITEM(self->obj), &transform);
+
+ if (!res) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
+ matrix = PycairoMatrix_FromMatrix(&transform);
+ return matrix;
+}
+
+%%
+override goo_canvas_item_model_get_transform noargs
+static PyObject *
+_wrap_goo_canvas_item_model_get_transform(PyGObject *self)
+{
+ PyObject *matrix;
+ cairo_matrix_t transform = {0,};
+ gboolean res;
+
+ res = goo_canvas_item_model_get_transform(GOO_CANVAS_ITEM_MODEL(self->obj),
+ &transform);
+
+ if (!res) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
+ matrix = PycairoMatrix_FromMatrix(&transform);
+ return matrix;
+}
+
+%%
+override-attr GooCanvasItemSimple.bounds
+
+static int
+_wrap_goo_canvas_item_simple__set_bounds(PyGObject *self, PyObject *py_value, void *closure)
+{
+ if (!PyObject_IsInstance(py_value, (PyObject*) &PyGooCanvasBounds_Type)) {
+ PyErr_SetString(PyExc_TypeError, "value must be goocanvas.Bounds");
+ return -1;
+ }
+ GOO_CANVAS_ITEM_SIMPLE(pygobject_get(self))->bounds = ((PyGooCanvasBounds*) py_value)->bounds;
+ return 0;
+}
+
+static PyObject*
+_wrap_goo_canvas_item_simple__get_bounds(PyGObject *self, void *closure)
+{
+ return pygoo_canvas_bounds_new(&GOO_CANVAS_ITEM_SIMPLE(pygobject_get(self))->bounds);
+}
Modified: branches/gcomprixogoo/src/boards/py-mod-utils.c
==============================================================================
--- branches/gcomprixogoo/src/boards/py-mod-utils.c (original)
+++ branches/gcomprixogoo/src/boards/py-mod-utils.c Sun Nov 9 22:22:35 2008
@@ -53,6 +53,31 @@
}
+/* RsvgHandle *gc_svg_load(char *pixmapfile); */
+static PyObject*
+py_gc_svg_load(PyObject* self, PyObject* args)
+{
+ char* pixmapfile;
+ RsvgHandle* result;
+ PyObject* pyresult;
+
+ /* Parse arguments */
+
+ if(!PyArg_ParseTuple(args, "s:gc_svg_load", &pixmapfile))
+ return NULL;
+
+ /* Call the corresponding C function */
+ result = gc_rsvg_load(pixmapfile);
+
+ /* Create and return the result */
+ pyresult = (PyObject*) pygobject_new((GObject*) result);
+
+ rsvg_handle_free(result);
+
+ return(pyresult);
+
+}
+
/* gchar *gc_file_find_absolute(gchar *file); */
static PyObject*
py_gc_file_find_absolute(PyObject* self, PyObject* args)
@@ -364,6 +389,7 @@
static PyMethodDef PythonGcomprisUtilsModule[] = {
{ "load_pixmap", py_gc_pixmap_load, METH_VARARGS, "gc_pixmap_load" },
+ { "load_svg", py_gc_svg_load, METH_VARARGS, "gc_svg_load" },
{ "find_file_absolute", py_gc_file_find_absolute, METH_VARARGS, "gc_file_find_absolute" },
{ "item_focus_init", py_gc_item_focus_init, METH_VARARGS, "gc_item_focus_init" },
{ "item_absolute_move", py_gc_item_absolute_move, METH_VARARGS, "gc_item_absolute_move" },
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]