<root>
<function name="goo_canvas_item_skew_x">
<description>
Skews the item&apos;s coordinate system along the x axis by the given amount,
about the given origin.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the skew angle.
</parameter_description>
</parameter>
<parameter name="cx">
<parameter_description> the x coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
<parameter name="cy">
<parameter_description> the y coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_skew_y">
<description>
Skews the item&apos;s coordinate system along the y axis by the given amount,
about the given origin.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the skew angle.
</parameter_description>
</parameter>
<parameter name="cx">
<parameter_description> the x coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
<parameter name="cy">
<parameter_description> the y coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_render">
<description>
Renders all or part of a canvas to the given cairo context.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the area to render, or %NULL to render the entire canvas.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the scale to compare with each item&apos;s visibility
threshold to see if they should be rendered. This only affects items that
have their visibility set to %GOO_CANVAS_ITEM_VISIBLE_ABOVE_THRESHOLD.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_get_parent">
<description>
Gets the parent of the style.


</description>
<parameters>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
</parameters>
<return> the parent of the given style, or %NULL.
</return>
</function>

<function name="goo_canvas_item_model_set_child_properties_valist">
<description>
Sets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_antialias_id">
<description>
Unique #GQuark identifier used for the standard antialias property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_points_new">
<description>
Creates a new #GooCanvasPoints struct with space for the given number of
points. It should be freed with goo_canvas_points_unref().


</description>
<parameters>
<parameter name="num_points">
<parameter_description> the number of points to create space for.
</parameter_description>
</parameter>
</parameters>
<return> a new #GooCanvasPoints struct.
</return>
</function>

<function name="goo_canvas_item_get_transform">
<description>
Gets the transformation matrix of an item.


</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> the place to store the transform.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a transform is set.
</return>
</function>

<function name="goo_canvas_item_allocate_area">
<description>
This function is only intended to be used when implementing new canvas
items, specifically layout items such as #GooCanvasTable.

It allocates an area to a child #GooCanvasItem.

Note that the parent layout item will use a transform to move each of its
children for the layout, so there is no need for the child item to
reposition itself. It only needs to recalculate its device bounds.

To help recalculate the item&apos;s device bounds, the @x_offset and @y_offset
of the child item&apos;s allocated position from its requested position are
provided. Simple items can just add these to their bounds.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="requested_area">
<parameter_description> the area that the item originally requested, in the
parent&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="allocated_area">
<parameter_description> the area that the item has been allocated, in the parent&apos;s
coordinate space.
</parameter_description>
</parameter>
<parameter name="x_offset">
<parameter_description> the x offset of the allocated area from the requested area in
the device coordinate space.
</parameter_description>
</parameter>
<parameter name="y_offset">
<parameter_description> the y offset of the allocated area from the requested area in
the device coordinate space.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_get_child_properties">
<description>
Gets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of property names and value pointers, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_line_cap_id">
<description>
Unique #GQuark identifier used for the standard line cap property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_rotate">
<description>
Rotates the item&apos;s coordinate system by the given amount, about the given
origin.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the clockwise angle of rotation.
</parameter_description>
</parameter>
<parameter name="cx">
<parameter_description> the x coordinate of the origin of the rotation.
</parameter_description>
</parameter>
<parameter name="cy">
<parameter_description> the y coordinate of the origin of the rotation.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_get_item">
<description>
Gets the canvas item associated with the given #GooCanvasItemModel.
This is only useful when goo_canvas_set_root_item_model() has been used to
set a model for the canvas.

For simple applications you can use goo_canvas_get_item() to set up
signal handlers for your items, e.g.

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
item = goo_canvas_get_item (GOO_CANVAS (canvas), my_item);
g_signal_connect (item, &quot;button_press_event&quot;,
(GtkSignalFunc) on_my_item_button_press, NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;

More complex applications may want to use the #GooCanvas::item-created
signal to hook up their signal handlers.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
</parameters>
<return> the canvas item corresponding to the given #GooCanvasItemModel,
or %NULL if no canvas item has been created for it yet.
</return>
</function>

<function name="goo_canvas_unregister_item">
<description>
This function is only intended to be used when implementing new canvas
items.

It should be called in the finalize method of #GooCanvasItem
objects, to remove the canvas item from the #GooCanvas&apos;s hash table.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the item model whose canvas item is being finalized.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_update">
<description>
This function is only intended to be used when implementing new canvas
items, specifically container items such as #GooCanvasGroup.

Updates the item, if needed, and any children.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="entire_tree">
<parameter_description> if the entire subtree should be updated.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> a #GooCanvasBounds to return the new bounds in.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_raise">
<description>
Raises a model in the stacking order.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="above">
<parameter_description> the item model to raise @model above, or %NULL to raise @model to the top
of the stack.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_paint">
<description>
This function is only intended to be used when implementing new canvas
items, specifically container items such as #GooCanvasGroup.

It paints the item and all children if they intersect the given bounds.

Note that the @scale argument may be different to the current scale in the
#GooCanvasItem, e.g. when the canvas is being printed.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds that need to be repainted.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the scale to use to determine whether an item should be painted.
See #GooCanvasItem:visibility-threshold.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_rotate">
<description>
Rotates the model&apos;s coordinate system by the given amount, about the given
origin.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the clockwise angle of rotation.
</parameter_description>
</parameter>
<parameter name="cx">
<parameter_description> the x coordinate of the origin of the rotation.
</parameter_description>
</parameter>
<parameter name="cy">
<parameter_description> the y coordinate of the origin of the rotation.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_path_model_new">
<description>
Creates a new path model.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a red line from (20,20) to (40,40):

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *path = goo_canvas_path_model_new (mygroup,
&quot;M 20 20 L 40 40&quot;,
&quot;stroke-color&quot;, &quot;red&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;

This example creates a cubic bezier curve from (20,100) to (100,100) with
the control points at (20,50) and (100,50):

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *path = goo_canvas_path_model_new (mygroup,
&quot;M20,100 C20,50 100,50 100,100&quot;,
&quot;stroke-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;

This example uses an elliptical arc to create a filled circle with one
quarter missing:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *path = goo_canvas_path_model_new (mygroup,
&quot;M200,500 h-150 a150,150 0 1,0 150,-150 z&quot;,
&quot;fill-color&quot;, &quot;red&quot;,
&quot;stroke-color&quot;, &quot;blue&quot;,
&quot;line-width&quot;, 5.0,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="path_data">
<parameter_description> the sequence of path commands, specified as a string using the
same syntax as in the &amp;lt;ulink url=&quot;http://www.w3.org/Graphics/SVG/&quot;&amp;gt;Scalable
Vector Graphics (SVG)&amp;lt;/ulink&amp;gt; path element.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new path model.
</return>
</function>

<function name="goo_canvas_create_path">
<description>
Creates the path specified by the given #GooCanvasPathCommand array.

</description>
<parameters>
<parameter name="commands">
<parameter_description> an array of #GooCanvasPathCommand.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_simple_paint_path">
<description>
This function is intended to be used by subclasses of #GooCanvasItemSimple.

It paints the current path, using the item&apos;s style settings.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_unregister_widget_item">
<description>
This function should only be used by #GooCanvasWidget and subclass
implementations.

It unregisters a widget item from the canvas, when the item is no longer in
the canvas.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="witem">
<parameter_description> a #GooCanvasWidget item.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="GooCanvas">
<description>
This is emitted when a new canvas item is created, in model/view mode.

Applications can set up signal handlers for the new items here.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> the canvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> the new item.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the item&apos;s model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_set_fill_options">
<description>
Sets the standard cairo fill options using the given style.


</description>
<parameters>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a paint source is set, or %FALSE if the fill should
be skipped.
</return>
</function>

<function name="goo_canvas_keyboard_ungrab">
<description>
Ungrabs the keyboard, if the given item has the keyboard grab.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> the item that has the keyboard grab.
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the time of the event that lead to the keyboard ungrab. This should
come from the relevant #GdkEvent.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_get_transform">
<description>
Gets the transformation matrix of an item model.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> the place to store the transform.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a transform is set.
</return>
</function>

<function name="goo_canvas_item_model_get_child_property">
<description>
Gets a child property of @child.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the child property to get.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a location to return the value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_points_ref">
<description>
Increments the reference count of the given #GooCanvasPoints struct.


</description>
<parameters>
<parameter name="points">
<parameter_description> a #GooCanvasPoints struct.
</parameter_description>
</parameter>
</parameters>
<return> the #GooCanvasPoints struct.
</return>
</function>

<function name="goo_canvas_widget_new">
<description>
Creates a new widget item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create an entry widget centered at (100.0,
100.0):

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GtkWidget *entry = gtk_entry_new ();
GooCanvasItem *witem = goo_canvas_widget_new (mygroup, entry,
100, 100, -1, -1,
&quot;anchor&quot;, GTK_ANCHOR_CENTER,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the widget.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the item.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the item.
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the item, or -1 to use the widget&apos;s requested width.
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the item, or -1 to use the widget&apos;s requested height.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new widget item.
</return>
</function>

<function name="goo_canvas_style_line_join_id">
<description>
Unique #GQuark identifier used for the standard line join property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_raise">
<description>
Raises an item in the stacking order.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="above">
<parameter_description> the item to raise @item above, or %NULL to raise @item to the top
of the stack.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_stop_animation">
<description>
Stops any current animation for the given item, leaving it at its current
position.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_text_model_new">
<description>
Creates a new text model.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a text item with the bottom right
of the text box placed at (500,500):

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *text = goo_canvas_text_model_new (mygroup, &quot;Hello World&quot;, 500.0, 500.0, 200.0, GTK_ANCHOR_SE,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the text to display.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the text.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the text.
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the text item, or -1 for unlimited width.
</parameter_description>
</parameter>
<parameter name="anchor">
<parameter_description> the position of the text relative to the given @x and @y
coordinates. For example an anchor of %GDK_ANCHOR_NW will result in the
top-left of the text being placed at the given @x and @y coordinates.
An anchor of %GDK_ANCHOR_CENTER will result in the center of the text being
placed at the @x and @y coordinates.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new text model.
</return>
</function>

<function name="goo_canvas_style_line_width_id">
<description>
Unique #GQuark identifier used for the standard line width property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_set_stroke_options">
<description>
Sets the standard cairo stroke options using the given style.


</description>
<parameters>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a paint source is set, or %FALSE if the stroke should
be skipped.
</return>
</function>

<function name="goo_canvas_style_fill_pattern_id">
<description>
Unique #GQuark identifier used for the standard fill pattern property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_parent">
<description>
Gets the parent of the given item.


</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
</parameters>
<return> the parent item, or %NULL if the item has no parent.
</return>
</function>

<function name="goo_canvas_pointer_ungrab">
<description>
Ungrabs the pointer, if the given item has the pointer grab.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> the item that has the grab.
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the time of the event that lead to the pointer ungrab. This should
come from the relevant #GdkEvent.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_ensure_updated">
<description>
This function is only intended to be used when implementing new canvas
items.

It updates the canvas immediately, if an update is scheduled.
This ensures that all item bounds are up-to-date.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_simple_changed">
<description>
This function is intended to be used by subclasses of #GooCanvasItemSimple.

It is used as a callback for the &quot;changed&quot; signal of the item models.
It requests an update or redraw of the item as appropriate.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
<parameter name="recompute_bounds">
<parameter_description> if the item&apos;s bounds need to be recomputed.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_animate">
<description>
Animates a model from its current position to the given offsets, scale
and rotation.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the final x coordinate.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the final y coordinate.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the final scale.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the final rotation. This can be negative to rotate anticlockwise,
and can also be greater than 360 to rotate a number of times.
</parameter_description>
</parameter>
<parameter name="absolute">
<parameter_description> if the @x, @y, @scale and @degrees values are absolute, or
relative to the current transform. Note that absolute animations only work
if the model currently has a simple transform. If the model has a shear or
some other complicated transform it may result in strange animations.
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the animation, in milliseconds (1/1000ths of a
second).
</parameter_description>
</parameter>
<parameter name="step_time">
<parameter_description> the time between each animation step, in milliseconds.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> specifies what happens when the animation finishes.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_animate">
<description>
Animates an item from its current position to the given offsets, scale
and rotation.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the final x coordinate.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the final y coordinate.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the final scale.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the final rotation. This can be negative to rotate anticlockwise,
and can also be greater than 360 to rotate a number of times.
</parameter_description>
</parameter>
<parameter name="absolute">
<parameter_description> if the @x, @y, @scale and @degrees values are absolute, or
relative to the current transform. Note that absolute animations only work
if the item currently has a simple transform. If the item has a shear or
some other complicated transform it may result in strange animations.
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the duration of the animation, in milliseconds (1/1000ths of a
second).
</parameter_description>
</parameter>
<parameter name="step_time">
<parameter_description> the time between each animation step, in milliseconds.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> specifies what happens when the animation finishes.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_convert_to_item_space">
<description>
Converts a coordinate from the canvas coordinate space to the given
item&apos;s coordinate space, applying all transformation matrices including the
item&apos;s own transformation matrix, if it has one.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> a pointer to the x coordinate to convert.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> a pointer to the y coordinate to convert.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_create_item">
<description>
This function is only intended to be used when implementing new canvas
items, typically container items such as #GooCanvasGroup.

It creates a new canvas item for the given item model, and recursively
creates items for any children.

It uses the create_item() virtual method if it has been set.
Subclasses of #GooCanvas can define this method if they want to use
custom views for items.

It emits the #GooCanvas::item-created signal after creating the view, so
application code can connect signal handlers to the new view if desired.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the item model to create a canvas item for.
</parameter_description>
</parameter>
</parameters>
<return> a new canvas item.
</return>
</function>

<function name="goo_canvas_scroll_to">
<description>
Scrolls the canvas, placing the given point as close to the top-left of
the view as possible.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="left">
<parameter_description> the x coordinate to scroll to.
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description> the y coordinate to scroll to.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_remove">
<description>
Removes a model from its parent. If the model is in a canvas it will be
removed.

This would normally also result in the model being freed.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_request_update">
<description>
This function is only intended to be used by subclasses of #GooCanvas or
#GooCanvasItem implementations.

It schedules an update of the #GooCanvas. This will be performed in
the idle loop, after all pending events have been handled, but before
the canvas has been repainted.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_set_child_properties">
<description>
Sets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_get_scale">
<description>
Gets the current scale of the canvas.

The scale specifies the magnification factor of the canvas, e.g. if an item
has a width of 2 pixels and the scale is set to 3, it will be displayed with
a width of 2 x 3 = 6 pixels.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
</parameters>
<return> the current scale setting.
</return>
</function>

<function name="goo_canvas_item_model_get_parent">
<description>
Gets the parent of the given model.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
</parameters>
<return> the parent model, or %NULL if the model has no parent.
</return>
</function>

<function name="goo_canvas_set_root_item_model">
<description>
Sets the root item model of the canvas.

A hierarchy of canvas items will be created, corresponding to the hierarchy
of items in the model. Any current canvas items will be removed.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_skew_y">
<description>
Skews the model&apos;s coordinate system along the y axis by the given amount,
about the given origin.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the skew angle.
</parameter_description>
</parameter>
<parameter name="cx">
<parameter_description> the x coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
<parameter name="cy">
<parameter_description> the y coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_is_container">
<description>
Tests to see if the given item model is a container.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item model is a container.
</return>
</function>

<function name="goo_canvas_get_bounds">
<description>
Gets the bounds of the canvas, in canvas units.

By default, canvas units are pixels, though the #GooCanvas:units property
can be used to change the units to points, inches or millimeters.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="left">
<parameter_description> a pointer to a #gdouble to return the left edge, or %NULL.
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description> a pointer to a #gdouble to return the top edge, or %NULL.
</parameter_description>
</parameter>
<parameter name="right">
<parameter_description> a pointer to a #gdouble to return the right edge, or %NULL.
</parameter_description>
</parameter>
<parameter name="bottom">
<parameter_description> a pointer to a #gdouble to return the bottom edge, or %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_request_update">
<description>
This function is only intended to be used when implementing new canvas
items.

It requests that an update of the item is scheduled. It will be performed
as soon as the application is idle, and before the canvas is redrawn.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_child_properties">
<description>
Gets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of property names and value pointers, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_get_root_item">
<description>
Gets the root item of the canvas, usually a #GooCanvasGroup.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
</parameters>
<return> the root item, or %NULL if there is no root item.
</return>
</function>

<function name="goo_canvas_style_get_property">
<description>
Gets the value of a property.

This searches though all the #GooCanvasStyle&apos;s own list of property settings
and also all ancestor #GooCanvasStyle objects.

Note that it returns a pointer to the internal #GValue setting, which should
not be changed.


</description>
<parameters>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
<parameter name="property_id">
<parameter_description> the property identifier.
</parameter_description>
</parameter>
</parameters>
<return> the property value, or %NULL if it isn&apos;t set.
</return>
</function>

<function name="goo_canvas_style_set_parent">
<description>
Sets the parent of the style.

</description>
<parameters>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the new parent.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_table_model_new">
<description>
Creates a new table model.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a table with a square, a circle and
a triangle in it:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *table, *square, *circle, *triangle;

table = goo_canvas_table_model_new (root,
&quot;row-spacing&quot;, 4.0,
&quot;column-spacing&quot;, 4.0,
NULL);
goo_canvas_item_model_translate (table, 400, 200);

square = goo_canvas_rect_model_new (table, 0.0, 0.0, 50.0, 50.0,
&quot;fill-color&quot;, &quot;red&quot;,
NULL);
goo_canvas_item_model_set_child_properties (table, square,
&quot;row&quot;, 0,
&quot;column&quot;, 0,
NULL);

circle = goo_canvas_ellipse_model_new (table, 0.0, 0.0, 25.0, 25.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
goo_canvas_item_model_set_child_properties (table, circle,
&quot;row&quot;, 0,
&quot;column&quot;, 1,
NULL);

triangle = goo_canvas_polyline_model_new (table, TRUE, 3,
25.0, 0.0, 0.0, 50.0, 50.0, 50.0,
&quot;fill-color&quot;, &quot;yellow&quot;,
NULL);
goo_canvas_item_model_set_child_properties (table, triangle,
&quot;row&quot;, 0,
&quot;column&quot;, 2,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new table model.
</return>
</function>

<function name="goo_canvas_parse_path_data">
<description>
Parses the given SVG path specification string.


</description>
<parameters>
<parameter name="path_data">
<parameter_description> the sequence of path commands, specified as a string using the
same syntax as in the &amp;lt;ulink url=&quot;http://www.w3.org/Graphics/SVG/&quot;&amp;gt;Scalable
Vector Graphics (SVG)&amp;lt;/ulink&amp;gt; path element.
</parameter_description>
</parameter>
</parameters>
<return> a #GArray of #GooCanvasPathCommand elements.
</return>
</function>

<function name="goo_canvas_item_add_child">
<description>
Adds a child item to a container item at the given stack position.

</description>
<parameters>
<parameter name="item">
<parameter_description> the container to add the item to.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the item to add.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the item, or -1 to place it last (at the top of
the stacking order).
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_canvas">
<description>
Returns: the #GooCanvas.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
</parameters>
<return> the #GooCanvas.
</return>
</function>

<function name="goo_canvas_item_set_parent">
<description>
This function is only intended to be used when implementing new canvas
items (specifically container items such as #GooCanvasGroup).
It sets the parent of the child item.
&amp;lt;!--PARAMETERS--&amp;gt;
&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
This function cannot be used to add an item to a group
or to change the parent of an item.
To do that use the #GooCanvasItem:parent property.
&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the new parent item.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_translate">
<description>
Translates the origin of the model&apos;s coordinate system by the given amounts.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="tx">
<parameter_description> the amount to move the origin in the horizontal direction.
</parameter_description>
</parameter>
<parameter name="ty">
<parameter_description> the amount to move the origin in the vertical direction.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_set_child_property">
<description>
Sets a child property of @child.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the child property to set.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to set the property to.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_is_visible">
<description>
Checks if the item is visible.

This entails checking the item&apos;s own visibility setting, as well as those
of its ancestors.

Note that the item may be scrolled off the screen and so may not
be actually visible to the user.


</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is visible.
</return>
</function>

<function name="GooCanvasItem">
<description>
Emitted for each child property that has changed.
The signal&apos;s detail holds the property name. 

</description>
<parameters>
<parameter name="item">
<parameter_description> the item that received the signal.
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the #GParamSpec of the changed child property.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_set_property">
<description>
Sets a property in the style, replacing any current setting.

Note that this will override the property setting in ancestor
#GooCanvasStyle objects.

</description>
<parameters>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
<parameter name="property_id">
<parameter_description> the property identifier.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value of the property.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_convert_to_pixels">
<description>
Converts a coordinate from the canvas coordinate space to pixels.

The canvas coordinate space is specified in the call to
goo_canvas_set_bounds().

The pixel coordinate space specifies pixels from the top-left of the entire
canvas window, according to the current scale setting.
See goo_canvas_set_scale().

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> a pointer to the x coordinate to convert.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> a pointer to the y coordinate to convert.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_new">
<description>
Creates a new #GooCanvas widget.

A #GooCanvasGroup is created automatically as the root item of the canvas,
though this can be overriden with goo_canvas_set_root_item() or
goo_canvas_set_root_item_model().


</description>
<parameters>
</parameters>
<return> a new #GooCanvas widget.
</return>
</function>

<function name="goo_canvas_rect_model_new">
<description>
Creates a new rectangle item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a rectangle at (100,100) with a
width of 200 and a height of 100.

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *rect = goo_canvas_rect_model_new (mygroup, 100.0, 100.0, 200.0, 100.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the left of the rectangle.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the top of the rectangle.
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the rectangle.
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the rectangle.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new rectangle model.
</return>
</function>

<function name="goo_canvas_item_model_set_child_property">
<description>
Sets a child property of @child.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the child property to set.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to set the property to.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_lower">
<description>
Lowers an item in the stacking order.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="below">
<parameter_description> the item to lower @item below, or %NULL to lower @item to the
bottom of the stack.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_bounds">
<description>
Gets the bounds of the item.

Note that the bounds includes the entire fill and stroke extents of the
item, whether they are painted or not.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> a #GooCanvasBounds to return the bounds in.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_translate">
<description>
Translates the origin of the item&apos;s coordinate system by the given amounts.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="tx">
<parameter_description> the amount to move the origin in the horizontal direction.
</parameter_description>
</parameter>
<parameter name="ty">
<parameter_description> the amount to move the origin in the vertical direction.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_is_container">
<description>
Tests to see if the given item is a container.


</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is a container.
</return>
</function>

<function name="goo_canvas_item_model_get_n_children">
<description>
Gets the number of children of the container.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
</parameters>
<return> the number of children.
</return>
</function>

<function name="goo_canvas_item_set_simple_transform">
<description>
A convenience function to set the item&apos;s transformation matrix.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the origin of the item&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the origin of the item&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the scale of the item.
</parameter_description>
</parameter>
<parameter name="rotation">
<parameter_description> the clockwise rotation of the item, in degrees.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_get_root_item_model">
<description>
Gets the root item model of the canvas.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
</parameters>
<return> the root item model, or %NULL if there is no root item model.
</return>
</function>

<function name="goo_canvas_item_get_transform_for_child">
<description>
Gets the transformation matrix of an item combined with any special
transform needed for the given child. These special transforms are used
by layout items such as #GooCanvasTable.


</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @item.
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> the place to store the transform.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a transform is set.
</return>
</function>

<function name="goo_canvas_get_item_at">
<description>
Gets the item at the given point.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the point.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the point
</parameter_description>
</parameter>
<parameter name="is_pointer_event">
<parameter_description> %TRUE if the &quot;pointer-events&quot; property of
items should be used to determine which parts of the item are tested.
</parameter_description>
</parameter>
</parameters>
<return> the item found at the given point, or %NULL if no item was found.
</return>
</function>

<function name="SECTION">
<description>
#GooCanvas is the main widget containing a number of canvas items.

Here is a simple example:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
&amp;num;include &amp;lt;goocanvas.h&amp;gt;

static gboolean on_rect_button_press (GooCanvasItem  *view,
GooCanvasItem  *target,
GdkEventButton *event,
gpointer        data);

int
main (int argc, char *argv[])
{
GtkWidget *window, *scrolled_win, *canvas;
GooCanvasItem *root, *rect_item, *text_item;

/&amp;ast; Initialize GTK+. &amp;ast;/
gtk_set_locale&amp;nbsp;();
gtk_init (&amp;amp;argc, &amp;amp;argv);

/&amp;ast; Create the window and widgets. &amp;ast;/
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 640, 600);
gtk_widget_show (window);
g_signal_connect (window, &quot;delete_event&quot;, (GtkSignalFunc) on_delete_event,
NULL);

scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_SHADOW_IN);
gtk_widget_show (scrolled_win);
gtk_container_add (GTK_CONTAINER (window), scrolled_win);

canvas = goo_canvas_new&amp;nbsp;();
gtk_widget_set_size_request (canvas, 600, 450);
goo_canvas_set_bounds (GOO_CANVAS (canvas), 0, 0, 1000, 1000);
gtk_widget_show (canvas);
gtk_container_add (GTK_CONTAINER (scrolled_win), canvas);

root = goo_canvas_get_root_item (GOO_CANVAS (canvas));

/&amp;ast; Add a few simple items. &amp;ast;/
rect_item = goo_canvas_rect_new (root, 100, 100, 400, 400,
&quot;line-width&quot;, 10.0,
&quot;radius-x&quot;, 20.0,
&quot;radius-y&quot;, 10.0,
&quot;stroke-color&quot;, &quot;yellow&quot;,
&quot;fill-color&quot;, &quot;red&quot;,
NULL);

text_item = goo_canvas_text_new (root, &quot;Hello World&quot;, 300, 300, -1,
GTK_ANCHOR_CENTER,
&quot;font&quot;, &quot;Sans 24&quot;,
NULL);
goo_canvas_item_rotate (text_item, 45, 300, 300);

/&amp;ast; Connect a signal handler for the rectangle item. &amp;ast;/
g_signal_connect (rect_item, &quot;button_press_event&quot;,
(GtkSignalFunc) on_rect_button_press, NULL);

/&amp;ast; Pass control to the GTK+ main event loop. &amp;ast;/
gtk_main&amp;nbsp;();

return 0;
}


/&amp;ast; This handles button presses in item views. We simply output a message to
the console. &amp;ast;/
static gboolean
on_rect_button_press (GooCanvasItem  *item,
GooCanvasItem  *target,
GdkEventButton *event,
gpointer        data)
{
g_print (&quot;rect item received button press event\n&quot;);
return TRUE;
}

&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;

</description>
<parameters>
<parameter name="Title">
<parameter_description> GooCanvas
</parameter_description>
</parameter>
<parameter name="Short_Description">
<parameter_description> the main canvas widget.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_set_child_properties_valist">
<description>
Sets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_line_dash_new">
<description>
Creates a new dash pattern.


</description>
<parameters>
<parameter name="num_dashes">
<parameter_description> the number of dashes and gaps in the pattern.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the length of each dash and gap.
</parameter_description>
</parameter>
</parameters>
<return> a new dash pattern.
</return>
</function>

<function name="goo_canvas_item_get_model">
<description>
Gets the model of the given canvas item.


</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
</parameters>
<return> the item&apos;s model, or %NULL if it has no model.
</return>
</function>

<function name="goo_canvas_item_model_remove_child">
<description>
Removes the child at the given position.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="child_num">
<parameter_description> the position of the child to remove.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_rect_new">
<description>
Creates a new rectangle item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a rectangle at (100,100) with a
width of 200 and a height of 100.

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *rect = goo_canvas_rect_new (mygroup, 100.0, 100.0, 200.0, 100.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the left of the rectangle.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the top of the rectangle.
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the rectangle.
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the rectangle.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new rectangle item.
</return>
</function>

<function name="goo_canvas_item_get_child_properties_valist">
<description>
Gets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> pairs of property names and value pointers, and a terminating
%NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_grab_focus">
<description>
Grabs the keyboard focus for the given item.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> the item to grab the focus.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_set_canvas">
<description>
This function is only intended to be used when implementing new canvas
items, specifically container items such as #GooCanvasGroup.

It sets the canvas of the item.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="canvas">
<parameter_description> a #GooCanvas
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_keyboard_grab">
<description>
Attempts to grab the keyboard for the given item.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> the item to grab the keyboard for.
</parameter_description>
</parameter>
<parameter name="owner_events">
<parameter_description> %TRUE if keyboard events for this application will be
reported normally, or %FALSE if all keyboard events will be reported with
respect to the grab item.
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the time of the event that lead to the keyboard grab. This should
come from the relevant #GdkEvent.
</parameter_description>
</parameter>
</parameters>
<return> %GDK_GRAB_SUCCESS if the grab succeeded.
</return>
</function>

<function name="goo_canvas_text_get_natural_extents">
<description>
Gets the natural extents of the text, in the text item&apos;s coordinate space.

The final extents of the text may be different, if the text item is placed
in a layout container such as #GooCanvasTable.

</description>
<parameters>
<parameter name="text">
<parameter_description> a #GooCanvasText.
</parameter_description>
</parameter>
<parameter name="ink_rect">
<parameter_description> the location to return the ink rect, or %NULL.
</parameter_description>
</parameter>
<parameter name="logical_rect">
<parameter_description> the location to return the logical rect, or %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_set_child_properties">
<description>
Sets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_simple_check_in_path">
<description>
This function is intended to be used by subclasses of #GooCanvasItemSimple.

It checks if the given point is in the current path, using the item&apos;s
style settings.


</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the point.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the point.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="pointer_events">
<parameter_description> specifies which parts of the path to check.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the given point is in the current path.
</return>
</function>

<function name="goo_canvas_path_new">
<description>
Creates a new path item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a red line from (20,20) to (40,40):

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *path = goo_canvas_path_new (mygroup,
&quot;M 20 20 L 40 40&quot;,
&quot;stroke-color&quot;, &quot;red&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;

This example creates a cubic bezier curve from (20,100) to (100,100) with
the control points at (20,50) and (100,50):

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *path = goo_canvas_path_new (mygroup,
&quot;M20,100 C20,50 100,50 100,100&quot;,
&quot;stroke-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;

This example uses an elliptical arc to create a filled circle with one
quarter missing:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *path = goo_canvas_path_new (mygroup,
&quot;M200,500 h-150 a150,150 0 1,0 150,-150 z&quot;,
&quot;fill-color&quot;, &quot;red&quot;,
&quot;stroke-color&quot;, &quot;blue&quot;,
&quot;line-width&quot;, 5.0,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="path_data">
<parameter_description> the sequence of path commands, specified as a string using the
same syntax as in the &amp;lt;ulink url=&quot;http://www.w3.org/Graphics/SVG/&quot;&amp;gt;Scalable
Vector Graphics (SVG)&amp;lt;/ulink&amp;gt; path element.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new path item.
</return>
</function>

<function name="goo_canvas_convert_from_pixels">
<description>
Converts a coordinate from pixels to the canvas coordinate space.

The pixel coordinate space specifies pixels from the top-left of the entire
canvas window, according to the current scale setting.
See goo_canvas_set_scale().

The canvas coordinate space is specified in the call to
goo_canvas_set_bounds().


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> a pointer to the x coordinate to convert.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> a pointer to the y coordinate to convert.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_class_find_child_property">
<description>
This function is only intended to be used when implementing new canvas
items, specifically layout container items such as #GooCanvasTable.

It finds a child property of a canvas item class by name.

</description>
<parameters>
<parameter name="iclass">
<parameter_description> a #GObjectClass
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the child property to find
</parameter_description>
</parameter>
</parameters>
<return> the #GParamSpec of the child property or %NULL if @class has no
child property with that name.
</return>
</function>

<function name="goo_canvas_ellipse_new">
<description>
Creates a new ellipse item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create an ellipse centered at (100.0,
100.0), with a horizontal radius of 50.0 and a vertical radius of 30.0.
It is drawn with a red outline with a width of 5.0 and filled with blue:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *ellipse = goo_canvas_ellipse_new (mygroup, 100.0, 100.0, 50.0, 30.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="center_x">
<parameter_description> the x coordinate of the center of the ellipse.
</parameter_description>
</parameter>
<parameter name="center_y">
<parameter_description> the y coordinate of the center of the ellipse.
</parameter_description>
</parameter>
<parameter name="radius_x">
<parameter_description> the horizontal radius of the ellipse.
</parameter_description>
</parameter>
<parameter name="radius_y">
<parameter_description> the vertical radius of the ellipse.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new ellipse item.
</return>
</function>

<function name="goo_canvas_points_unref">
<description>
Decrements the reference count of the given #GooCanvasPoints struct,
freeing it if the reference count falls to zero.

</description>
<parameters>
<parameter name="points">
<parameter_description> a #GooCanvasPoints struct.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_update">
<description>
This function is only intended to be used by subclasses of #GooCanvas or
#GooCanvasItem implementations.

It updates any items that need updating.

If the bounds of items change, they will request a redraw of the old and
new bounds so the display is updated correctly.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_simple_get_line_width">
<description>
Gets the item&apos;s line width.


</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
</parameters>
<return> the item&apos;s line width.
</return>
</function>

<function name="goo_canvas_item_model_class_install_child_property">
<description>
This function is only intended to be used when implementing new canvas
item models, specifically layout container item models such as
#GooCanvasTableModel.

It installs a child property on a canvas item class. 

</description>
<parameters>
<parameter name="mclass">
<parameter_description> a #GObjectClass
</parameter_description>
</parameter>
<parameter name="property_id">
<parameter_description> the id for the property
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the #GParamSpec for the property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_requested_area">
<description>
This function is only intended to be used when implementing new canvas
items, specifically layout items such as #GooCanvasTable.

It gets the requested area of a child item.


</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="requested_area">
<parameter_description> a #GooCanvasBounds to return the requested area in, in the
parent&apos;s coordinate space.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item should be allocated space.
</return>
</function>

<function name="goo_canvas_item_simple_user_bounds_to_parent">
<description>
This function is intended to be used by subclasses of #GooCanvasItemSimple,
typically in their get_requested_area() method.

It converts the item&apos;s bounds to a bounding box in its parent&apos;s coordinate
space. If the item has no transformation matrix set then no conversion is
needed.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds of the item, in the item&apos;s coordinate space.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_group_new">
<description>
Creates a new group item.


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new group item.
</return>
</function>

<function name="goo_canvas_item_model_get_child">
<description>
Gets the child at the given stack position.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="child_num">
<parameter_description> the position of a child in the container&apos;s stack.
</parameter_description>
</parameter>
</parameters>
<return> the child at the given stack position, or %NULL if @child_num
is out of range.
</return>
</function>

<function name="goo_canvas_item_move_child">
<description>
Moves a child item to a new stack position within the container.

</description>
<parameters>
<parameter name="item">
<parameter_description> a container item.
</parameter_description>
</parameter>
<parameter name="old_position">
<parameter_description> the current position of the child item.
</parameter_description>
</parameter>
<parameter name="new_position">
<parameter_description> the new position of the child item.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_set_model">
<description>
Sets the model of the given canvas item.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_get_style">
<description>
Gets the model&apos;s style. If the model doesn&apos;t have its own style it will
return its parent&apos;s style.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
</parameters>
<return> the model&apos;s style.
</return>
</function>

<function name="goo_canvas_style_line_join_miter_limit_id">
<description>
Unique #GQuark identifier used for the standard miter limit property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_text_new">
<description>
Creates a new text item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a text item with the bottom right
of the text box placed at (500,500):

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *text = goo_canvas_text_new (mygroup, &quot;Hello World&quot;, 500.0, 500.0, 200.0, GTK_ANCHOR_SE,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the text to display.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the text.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the text.
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the text item, or -1 for unlimited width.
</parameter_description>
</parameter>
<parameter name="anchor">
<parameter_description> the position of the text relative to the given @x and @y
coordinates. For example an anchor of %GDK_ANCHOR_NW will result in the
top-left of the text being placed at the given @x and @y coordinates.
An anchor of %GDK_ANCHOR_CENTER will result in the center of the text being
placed at the @x and @y coordinates.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new text item.
</return>
</function>

<function name="goo_canvas_item_model_set_parent">
<description>
This function is only intended to be used when implementing new canvas
item models (specifically container models such as #GooCanvasGroupModel).
It sets the parent of the child model.
&amp;lt;!--PARAMETERS--&amp;gt;
&amp;lt;note&amp;gt;&amp;lt;para&amp;gt;
This function cannot be used to add a model to a group
or to change the parent of a model.
To do that use the #GooCanvasItemModel:parent property.
&amp;lt;/para&amp;gt;&amp;lt;/note&amp;gt;

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the new parent item model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_find_child">
<description>
Attempts to find the given child with the container&apos;s stack.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to find.
</parameter_description>
</parameter>
</parameters>
<return> the position of the given @child, or -1 if it isn&apos;t found.
</return>
</function>

<function name="goo_canvas_item_simple_get_path_bounds">
<description>
This function is intended to be used by subclasses of #GooCanvasItemSimple,
typically in their update() or get_requested_area() methods.

It calculates the bounds of the current path, using the item&apos;s style
settings, and stores the results in the given #GooCanvasBounds struct.

The returned bounds contains the bounding box of the path in device space,
converted to user space coordinates. To calculate the bounds completely in
user space, use cairo_identity_matrix() to temporarily reset the current
transformation matrix to the identity matrix.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the #GooCanvasBounds struct to store the resulting bounding box.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_child">
<description>
Gets the child item at the given stack position.


</description>
<parameters>
<parameter name="item">
<parameter_description> a container item.
</parameter_description>
</parameter>
<parameter name="child_num">
<parameter_description> the position of a child in the container&apos;s stack.
</parameter_description>
</parameter>
</parameters>
<return> the child item at the given stack position, or %NULL if @child_num
is out of range.
</return>
</function>

<function name="goo_canvas_table_new">
<description>
Creates a new table item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a table with a square, a circle and
a triangle in it:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *table, *square, *circle, *triangle;

table = goo_canvas_table_new (root,
&quot;row-spacing&quot;, 4.0,
&quot;column-spacing&quot;, 4.0,
NULL);
goo_canvas_item_translate (table, 400, 200);

square = goo_canvas_rect_new (table, 0.0, 0.0, 50.0, 50.0,
&quot;fill-color&quot;, &quot;red&quot;,
NULL);
goo_canvas_item_set_child_properties (table, square,
&quot;row&quot;, 0,
&quot;column&quot;, 0,
NULL);

circle = goo_canvas_ellipse_new (table, 0.0, 0.0, 25.0, 25.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
goo_canvas_item_set_child_properties (table, circle,
&quot;row&quot;, 0,
&quot;column&quot;, 1,
NULL);

triangle = goo_canvas_polyline_new (table, TRUE, 3,
25.0, 0.0, 0.0, 50.0, 50.0, 50.0,
&quot;fill-color&quot;, &quot;yellow&quot;,
NULL);
goo_canvas_item_set_child_properties (table, triangle,
&quot;row&quot;, 0,
&quot;column&quot;, 2,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new table item.
</return>
</function>

<function name="goo_canvas_set_scale">
<description>
Sets the scale of the canvas.

The scale specifies the magnification factor of the canvas, e.g. if an item
has a width of 2 pixels and the scale is set to 3, it will be displayed with
a width of 2 x 3 = 6 pixels.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the new scale setting.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_skew_x">
<description>
Skews the model&apos;s coordinate system along the x axis by the given amount,
about the given origin.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="degrees">
<parameter_description> the skew angle.
</parameter_description>
</parameter>
<parameter name="cx">
<parameter_description> the x coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
<parameter name="cy">
<parameter_description> the y coordinate of the origin of the skew transform.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_set_root_item">
<description>
Sets the root item of the canvas. Any existing canvas items are removed.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> the root canvas item.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_line_dash_unref">
<description>
Decrements the reference count of the dash pattern. If it falls to 0
it is freed.

</description>
<parameters>
<parameter name="dash">
<parameter_description> a #GooCanvasLineDash.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_get_default_line_width">
<description>
Gets the default line width, which depends on the current units setting.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
</parameters>
<return> the default line width of the canvas.
</return>
</function>

<function name="goo_canvas_style_line_dash_id">
<description>
Unique #GQuark identifier used for the standard line dash property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_polyline_model_new_line">
<description>
Creates a new polyline model with a single line.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a line from (100,100) to (300,300).

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *polyline = goo_canvas_polyline_model_new_line (mygroup,
100.0, 100.0,
300.0, 300.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL.
</parameter_description>
</parameter>
<parameter name="x1">
<parameter_description> the x coordinate of the start of the line.
</parameter_description>
</parameter>
<parameter name="y1">
<parameter_description> the y coordinate of the start of the line.
</parameter_description>
</parameter>
<parameter name="x2">
<parameter_description> the x coordinate of the end of the line.
</parameter_description>
</parameter>
<parameter name="y2">
<parameter_description> the y coordinate of the end of the line.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new polyline model.
</return>
</function>

<function name="goo_canvas_ellipse_model_new">
<description>
Creates a new ellipse model.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create an ellipse centered at (100.0,
100.0), with a horizontal radius of 50.0 and a vertical radius of 30.0.
It is drawn with a red outline with a width of 5.0 and filled with blue:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *ellipse = goo_canvas_ellipse_model_new (mygroup, 100.0, 100.0, 50.0, 30.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="center_x">
<parameter_description> the x coordinate of the center of the ellipse.
</parameter_description>
</parameter>
<parameter name="center_y">
<parameter_description> the y coordinate of the center of the ellipse.
</parameter_description>
</parameter>
<parameter name="radius_x">
<parameter_description> the horizontal radius of the ellipse.
</parameter_description>
</parameter>
<parameter name="radius_y">
<parameter_description> the vertical radius of the ellipse.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new ellipse model.
</return>
</function>

<function name="goo_canvas_polyline_new_line">
<description>
Creates a new polyline item with a single line.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a line from (100,100) to (300,300).

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *polyline = goo_canvas_polyline_new_line (mygroup,
100.0, 100.0,
300.0, 300.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL.
</parameter_description>
</parameter>
<parameter name="x1">
<parameter_description> the x coordinate of the start of the line.
</parameter_description>
</parameter>
<parameter name="y1">
<parameter_description> the y coordinate of the start of the line.
</parameter_description>
</parameter>
<parameter name="x2">
<parameter_description> the x coordinate of the end of the line.
</parameter_description>
</parameter>
<parameter name="y2">
<parameter_description> the y coordinate of the end of the line.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new polyline item.
</return>
</function>

<function name="goo_canvas_line_dash_newv">
<description>
Creates a new dash pattern.  Takes ownership of the @dashes vector.


</description>
<parameters>
<parameter name="num_dashes">
<parameter_description> the number of dashes and gaps in the pattern.
</parameter_description>
</parameter>
<parameter name="dashes">
<parameter_description> a g_new-allocated vector of doubles, the length of each
dash and gap.
</parameter_description>
</parameter>
</parameters>
<return> a new dash pattern.
</return>
</function>

<function name="goo_canvas_style_font_desc_id">
<description>
Unique #GQuark identifier used for the standard font description property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_scale">
<description>
Scales the item&apos;s coordinate system by the given amounts.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="sx">
<parameter_description> the amount to scale the horizontal axis.
</parameter_description>
</parameter>
<parameter name="sy">
<parameter_description> the amount to scale the vertical axis.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_simple_transform">
<description>
This function can be used to get the position, scale and rotation of an
item, providing that the item has a simple transformation matrix
(e.g. set with goo_canvas_item_set_simple_transform(), or using a
combination of simple translate, scale and rotate operations). If the item
has a complex transformation matrix the results will be incorrect.


</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> returns the x coordinate of the origin of the item&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> returns the y coordinate of the origin of the item&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> returns the scale of the item.
</parameter_description>
</parameter>
<parameter name="rotation">
<parameter_description> returns the clockwise rotation of the item, in degrees (0-360).
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a transform is set.
</return>
</function>

<function name="goo_canvas_item_simple_check_style">
<description>
This function is intended to be used by subclasses of #GooCanvasItemSimple,
typically in their update() or get_requested_area() methods.

It ensures that the item&apos;s style is setup correctly. If the item has its
own #GooCanvasStyle it makes sure the parent is set correctly. If it
doesn&apos;t have its own style it uses the parent item&apos;s style.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_get_items_at">
<description>
Gets all items at the given point.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the point.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the point
</parameter_description>
</parameter>
<parameter name="is_pointer_event">
<parameter_description> %TRUE if the &quot;pointer-events&quot; property of
items should be used to determine which parts of the item are tested.
</parameter_description>
</parameter>
</parameters>
<return> a list of items found at the given point, with the top item at
the start of the list, or %NULL if no items were found. The list must be
freed with g_list_free().
</return>
</function>

<function name="GooCanvasItemSimple">
<description>
The sequence of commands describing the clip path of the item, specified
as a string using the same syntax
as in the &amp;lt;ulink url=&quot;http://www.w3.org/Graphics/SVG/&quot;&amp;gt;Scalable Vector
Graphics (SVG)&amp;lt;/ulink&amp;gt; path element.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_stroke_pattern_id">
<description>
Unique #GQuark identifier used for the standard stroke pattern property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_set_transform">
<description>
Sets the transformation matrix of an item.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> the new transformation matrix, or %NULL to reset the
transformation to the identity matrix.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_get_simple_transform">
<description>
This function can be used to get the position, scale and rotation of an
item model, providing that the model has a simple transformation matrix
(e.g. set with goo_canvas_item_model_set_simple_transform(), or using a
combination of simple translate, scale and rotate operations). If the model
has a complex transformation matrix the results will be incorrect.


</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> returns the x coordinate of the origin of the model&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> returns the y coordinate of the origin of the model&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> returns the scale of the model.
</parameter_description>
</parameter>
<parameter name="rotation">
<parameter_description> returns the clockwise rotation of the model, in degrees (0-360).
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a transform is set.
</return>
</function>

<function name="goo_canvas_item_model_get_child_properties_valist">
<description>
Gets the values of one or more child properties of @child.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItemModel.
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> pairs of property names and value pointers, and a terminating
%NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_scale">
<description>
Scales the model&apos;s coordinate system by the given amounts.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="sx">
<parameter_description> the amount to scale the horizontal axis.
</parameter_description>
</parameter>
<parameter name="sy">
<parameter_description> the amount to scale the vertical axis.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_set_transform">
<description>
Sets the transformation matrix of an item model.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> the new transformation matrix, or %NULL to reset the
transformation to the identity matrix.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_add_child">
<description>
Adds a child at the given stack position.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to add.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the child, or -1 to place it last (at the top of
the stacking order).
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_operator_id">
<description>
Unique #GQuark identifier used for the standard operator property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_simple_set_model">
<description>
This function should be called by subclasses of #GooCanvasItemSimple
in their set_model() method.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the model that @item will view.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_set_bounds">
<description>
Sets the bounds of the #GooCanvas, in canvas units.

By default, canvas units are pixels, though the #GooCanvas:units property
can be used to change the units to points, inches or millimeters.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="left">
<parameter_description> the left edge.
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description> the top edge.
</parameter_description>
</parameter>
<parameter name="right">
<parameter_description> the right edge.
</parameter_description>
</parameter>
<parameter name="bottom">
<parameter_description> the bottom edge.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_polyline_model_new">
<description>
Creates a new polyline model.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a filled triangle with vertices
at (100,100), (300,100), and (200,300).

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *polyline = goo_canvas_polyline_model_new (mygroup, TRUE, 3,
100.0, 100.0,
300.0, 100.0,
200.0, 300.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="close_path">
<parameter_description> if the last point should be connected to the first.
</parameter_description>
</parameter>
<parameter name="num_points">
<parameter_description> the number of points in the polyline.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the pairs of coordinates for each point in the line, followed by
optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new polyline model.
</return>
</function>

<function name="goo_canvas_request_redraw">
<description>
This function is only intended to be used by subclasses of #GooCanvas or
#GooCanvasItem implementations.

Requests that the given bounds be redrawn.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds to redraw.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_remove_child">
<description>
Removes the child item at the given position.

</description>
<parameters>
<parameter name="item">
<parameter_description> a container item.
</parameter_description>
</parameter>
<parameter name="child_num">
<parameter_description> the position of the child item to remove.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_register_widget_item">
<description>
This function should only be used by #GooCanvasWidget and subclass
implementations.

It registers a widget item with the canvas, so that the canvas can do the
necessary actions to move and resize the widget as needed.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="witem">
<parameter_description> a #GooCanvasWidget item.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_group_model_new">
<description>
Creates a new group item.


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new group model.
</return>
</function>

<function name="GooCanvasPath">
<description>
The sequence of path commands, specified as a string using the same syntax
as in the &amp;lt;ulink url=&quot;http://www.w3.org/Graphics/SVG/&quot;&amp;gt;Scalable Vector
Graphics (SVG)&amp;lt;/ulink&amp;gt; path element.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_stop_animation">
<description>
Stops any current animation for the given model, leaving it at its current
position.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_get_items_in_area">
<description>
Gets a list of items inside or outside a given area.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="area">
<parameter_description> the area to compare with each item&apos;s bounds.
</parameter_description>
</parameter>
<parameter name="inside_area">
<parameter_description> %TRUE if items inside @area should be returned, or %FALSE if
items outside @area should be returned.
</parameter_description>
</parameter>
<parameter name="allow_overlaps">
<parameter_description> %TRUE if items which are partly inside and partly outside
should be returned.
</parameter_description>
</parameter>
<parameter name="include_containers">
<parameter_description> %TRUE if containers should be checked as well as
normal items.
</parameter_description>
</parameter>
</parameters>
<return> a list of items in the given area, or %NULL if no items are found.
The list should be freed with g_list_free().
</return>
</function>

<function name="goo_canvas_line_dash_ref">
<description>
Increments the reference count of the dash pattern.


</description>
<parameters>
<parameter name="dash">
<parameter_description> a #GooCanvasLineDash.
</parameter_description>
</parameter>
</parameters>
<return> the dash pattern.
</return>
</function>

<function name="goo_canvas_image_model_new">
<description>
Creates a new image model.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create an image at (100.0, 100.0), using
the given pixbuf at its natural width and height:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItemModel *image = goo_canvas_image_model_new (mygroup, pixbuf, 100.0, 100.0,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent model, or %NULL. If a parent is specified, it will
assume ownership of the item, and the item will automatically be freed when
it is removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="pixbuf">
<parameter_description> the #GdkPixbuf containing the image data, or %NULL.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the image.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the image.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new image model.
</return>
</function>

<function name="goo_canvas_item_simple_user_bounds_to_device">
<description>
This function is intended to be used by subclasses of #GooCanvasItemSimple,
typically in their update() or get_requested_area() methods.

It converts the item&apos;s bounds to a bounding box in device space.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItemSimple.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds of the item, in the item&apos;s coordinate space.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_items_at">
<description>
This function is only intended to be used when implementing new canvas
items, specifically container items such as #GooCanvasGroup.

It gets the items at the given point.


</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the point.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the point.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo contect.
</parameter_description>
</parameter>
<parameter name="is_pointer_event">
<parameter_description> %TRUE if the &quot;pointer-events&quot; properties of items should
be used to determine which parts of the item are tested.
</parameter_description>
</parameter>
<parameter name="parent_is_visible">
<parameter_description> %TRUE if the parent item is visible (which
implies that all ancestors are also visible).
</parameter_description>
</parameter>
<parameter name="found_items">
<parameter_description> the list of items found so far.
</parameter_description>
</parameter>
</parameters>
<return> the @found_items list, with any more found items added onto
the start of the list, leaving the top item first.
</return>
</function>

<function name="goo_canvas_item_class_list_child_properties">
<description>
This function is only intended to be used when implementing new canvas
items, specifically layout container items such as #GooCanvasTable.

It returns all child properties of a canvas item class.

</description>
<parameters>
<parameter name="iclass">
<parameter_description> a #GObjectClass
</parameter_description>
</parameter>
<parameter name="n_properties">
<parameter_description> location to return the number of child properties found
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated array of #GParamSpec*. The array must be 
freed with g_free().
</return>
</function>

<function name="goo_canvas_pointer_grab">
<description>
Attempts to grab the pointer for the given item.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> the item to grab the pointer for.
</parameter_description>
</parameter>
<parameter name="event_mask">
<parameter_description> the events to receive during the grab.
</parameter_description>
</parameter>
<parameter name="cursor">
<parameter_description> the cursor to display during the grab, or NULL.
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the time of the event that lead to the pointer grab. This should
come from the relevant #GdkEvent.
</parameter_description>
</parameter>
</parameters>
<return> %GDK_GRAB_SUCCESS if the grab succeeded.
</return>
</function>

<function name="goo_canvas_item_model_move_child">
<description>
Moves a child to a new stack position.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="old_position">
<parameter_description> the current position of the child.
</parameter_description>
</parameter>
<parameter name="new_position">
<parameter_description> the new position of the child.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_set_style">
<description>
Sets the model&apos;s style, by copying the properties from the given style.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_create_cairo_context">
<description>
Creates a cairo context, initialized with the default canvas settings.


</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
</parameters>
<return> a new cairo context. It should be freed with cairo_destroy().
</return>
</function>

<function name="goo_canvas_polyline_new">
<description>
Creates a new polyline item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create a filled triangle with vertices
at (100,100), (300,100), and (200,300).

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *polyline = goo_canvas_polyline_new (mygroup, TRUE, 3,
100.0, 100.0,
300.0, 100.0,
200.0, 300.0,
&quot;stroke-color&quot;, &quot;red&quot;,
&quot;line-width&quot;, 5.0,
&quot;fill-color&quot;, &quot;blue&quot;,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="close_path">
<parameter_description> if the last point should be connected to the first.
</parameter_description>
</parameter>
<parameter name="num_points">
<parameter_description> the number of points in the polyline.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the pairs of coordinates for each point in the line, followed by
optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new polyline item.
</return>
</function>

<function name="goo_canvas_image_new">
<description>
Creates a new image item.

&amp;lt;!--PARAMETERS--&amp;gt;

Here&apos;s an example showing how to create an image at (100.0, 100.0), using
the given pixbuf at its natural width and height:

&amp;lt;informalexample&amp;gt;&amp;lt;programlisting&amp;gt;
GooCanvasItem *image = goo_canvas_image_new (mygroup, pixbuf, 100.0, 100.0,
NULL);
&amp;lt;/programlisting&amp;gt;&amp;lt;/informalexample&amp;gt;


</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent item, or %NULL. If a parent is specified, it will assume
ownership of the item, and the item will automatically be freed when it is
removed from the parent. Otherwise call g_object_unref() to free it.
</parameter_description>
</parameter>
<parameter name="pixbuf">
<parameter_description> the #GdkPixbuf containing the image data, or %NULL.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the image.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the image.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> optional pairs of property names and values, and a terminating %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a new image item.
</return>
</function>

<function name="goo_canvas_item_find_child">
<description>
Attempts to find the given child item with the container&apos;s stack.


</description>
<parameters>
<parameter name="item">
<parameter_description> a container item.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child item to find.
</parameter_description>
</parameter>
</parameters>
<return> the position of the given @child item, or -1 if it isn&apos;t found.
</return>
</function>

<function name="goo_canvas_item_model_class_find_child_property">
<description>
This function is only intended to be used when implementing new canvas
item models, specifically layout container item models such as
#GooCanvasTableModel.

It finds a child property of a canvas item class by name.

</description>
<parameters>
<parameter name="mclass">
<parameter_description> a #GObjectClass
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the child property to find
</parameter_description>
</parameter>
</parameters>
<return> the #GParamSpec of the child property or %NULL if @class has no
child property with that name.
</return>
</function>

<function name="goo_canvas_item_get_style">
<description>
Gets the item&apos;s style. If the item doesn&apos;t have its own style it will return
its parent&apos;s style.


</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
</parameters>
<return> the item&apos;s style.
</return>
</function>

<function name="goo_canvas_item_remove">
<description>
Removes an item from its parent. If the item is in a canvas it will be
removed.

This would normally also result in the item being freed.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_child_property">
<description>
Gets a child property of @child.

</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the child property to get.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a location to return the value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_fill_rule_id">
<description>
Unique #GQuark identifier used for the standard fill rule property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_convert_from_item_space">
<description>
Converts a coordinate from the given item&apos;s coordinate space to the canvas
coordinate space, applying all transformation matrices including the
item&apos;s own transformation matrix, if it has one.

</description>
<parameters>
<parameter name="canvas">
<parameter_description> a #GooCanvas.
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> a pointer to the x coordinate to convert.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> a pointer to the y coordinate to convert.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_style_copy">
<description>
Copies the given #GooCanvasStyle, by copying all of its properties.
Though the parent of the new style is left unset.


</description>
<parameters>
<parameter name="style">
<parameter_description> a #GooCanvasStyle.
</parameter_description>
</parameter>
</parameters>
<return> a copy of the given #GooCanvasStyle.
</return>
</function>

<function name="goo_canvas_item_set_style">
<description>
Sets the item&apos;s style, by copying the properties from the given style.

</description>
<parameters>
<parameter name="item">
<parameter_description> an item.
</parameter_description>
</parameter>
<parameter name="style">
<parameter_description> a style.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_set_simple_transform">
<description>
A convenience function to set the item model&apos;s transformation matrix.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the origin of the model&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the origin of the model&apos;s coordinate space.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the scale of the model.
</parameter_description>
</parameter>
<parameter name="rotation">
<parameter_description> the clockwise rotation of the model, in degrees.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_class_install_child_property">
<description>
This function is only intended to be used when implementing new canvas
items, specifically layout container items such as #GooCanvasTable.

It installs a child property on a canvas item class. 

</description>
<parameters>
<parameter name="iclass">
<parameter_description> a #GObjectClass
</parameter_description>
</parameter>
<parameter name="property_id">
<parameter_description> the id for the property
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the #GParamSpec for the property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_requested_height">
<description>
This function is only intended to be used when implementing new canvas
items, specifically layout items such as #GooCanvasTable.

It gets the requested height of a child item, assuming it is allocated the
given width. This is useful for text items whose requested height may change
depending on the allocated width.


</description>
<parameters>
<parameter name="item">
<parameter_description> a #GooCanvasItem.
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a cairo context.
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width that the item may be allocated.
</parameter_description>
</parameter>
</parameters>
<return> the requested height of the item, given the allocated width,
or %-1 if the item doesn&apos;t support this method or its height doesn&apos;t
change when allocated different widths.
</return>
</function>

<function name="goo_canvas_style_new">
<description>
Creates a new #GooCanvasStyle.


</description>
<parameters>
</parameters>
<return> a new #GooCanvasStyle.
</return>
</function>

<function name="goo_canvas_style_hint_metrics_id">
<description>
Unique #GQuark identifier used for the standard hint metrics property.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_get_n_children">
<description>
Gets the number of children of the container.


</description>
<parameters>
<parameter name="item">
<parameter_description> a container item.
</parameter_description>
</parameter>
</parameters>
<return> the number of children.
</return>
</function>

<function name="goo_canvas_item_model_lower">
<description>
Lowers a model in the stacking order.

</description>
<parameters>
<parameter name="model">
<parameter_description> an item model.
</parameter_description>
</parameter>
<parameter name="below">
<parameter_description> the item model to lower @model below, or %NULL to lower @model to the
bottom of the stack.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="goo_canvas_item_model_class_list_child_properties">
<description>
This function is only intended to be used when implementing new canvas
item models, specifically layout container item models such as
#GooCanvasTableModel.

It returns all child properties of a canvas item class.

</description>
<parameters>
<parameter name="mclass">
<parameter_description> a #GObjectClass
</parameter_description>
</parameter>
<parameter name="n_properties">
<parameter_description> location to return the number of child properties found
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated array of #GParamSpec*. The array must be 
freed with g_free().
</return>
</function>

<function name="GooCanvasItemModelSimple">
<description>
The sequence of commands describing the clip path of the item, specified
as a string using the same syntax
as in the &amp;lt;ulink url=&quot;http://www.w3.org/Graphics/SVG/&quot;&amp;gt;Scalable Vector
Graphics (SVG)&amp;lt;/ulink&amp;gt; path element.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="GooCanvasItemModel">
<description>
Emitted for each child property that has changed.
The signal&apos;s detail holds the property name. 

</description>
<parameters>
<parameter name="item">
<parameter_description> the item model that received the signal.
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the #GParamSpec of the changed child property.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

</root>
