|  |  |  | GooCanvas Reference Manual |  | 
|---|---|---|---|---|
                    GooCanvasItem;
                    GooCanvasItemIface;
void                goo_canvas_item_translate           (GooCanvasItem *item,
                                                         gdouble tx,
                                                         gdouble ty);
void                goo_canvas_item_scale               (GooCanvasItem *item,
                                                         gdouble sx,
                                                         gdouble sy);
void                goo_canvas_item_rotate              (GooCanvasItem *item,
                                                         gdouble degrees,
                                                         gdouble cx,
                                                         gdouble cy);
void                goo_canvas_item_skew_x              (GooCanvasItem *item,
                                                         gdouble degrees,
                                                         gdouble cx,
                                                         gdouble cy);
void                goo_canvas_item_skew_y              (GooCanvasItem *item,
                                                         gdouble degrees,
                                                         gdouble cx,
                                                         gdouble cy);
gboolean            goo_canvas_item_get_transform       (GooCanvasItem *item,
                                                         cairo_matrix_t *transform);
void                goo_canvas_item_set_transform       (GooCanvasItem *item,
                                                         const cairo_matrix_t *transform);
gboolean            goo_canvas_item_get_simple_transform
                                                        (GooCanvasItem *item,
                                                         gdouble *x,
                                                         gdouble *y,
                                                         gdouble *scale,
                                                         gdouble *rotation);
void                goo_canvas_item_set_simple_transform
                                                        (GooCanvasItem *item,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble scale,
                                                         gdouble rotation);
void                goo_canvas_item_get_bounds          (GooCanvasItem *item,
                                                         GooCanvasBounds *bounds);
gboolean            goo_canvas_item_is_visible          (GooCanvasItem *item);
gboolean            goo_canvas_item_get_is_static       (GooCanvasItem *item);
void                goo_canvas_item_set_is_static       (GooCanvasItem *item,
                                                         gboolean is_static);
void                goo_canvas_item_animate             (GooCanvasItem *item,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble scale,
                                                         gdouble degrees,
                                                         gboolean absolute,
                                                         gint duration,
                                                         gint step_time,
                                                         GooCanvasAnimateType type);
void                goo_canvas_item_stop_animation      (GooCanvasItem *item);
void                goo_canvas_item_raise               (GooCanvasItem *item,
                                                         GooCanvasItem *above);
void                goo_canvas_item_lower               (GooCanvasItem *item,
                                                         GooCanvasItem *below);
void                goo_canvas_item_remove              (GooCanvasItem *item);
GooCanvas*          goo_canvas_item_get_canvas          (GooCanvasItem *item);
void                goo_canvas_item_set_canvas          (GooCanvasItem *item,
                                                         GooCanvas *canvas);
GooCanvasItem*      goo_canvas_item_get_parent          (GooCanvasItem *item);
void                goo_canvas_item_set_parent          (GooCanvasItem *item,
                                                         GooCanvasItem *parent);
GooCanvasItemModel* goo_canvas_item_get_model           (GooCanvasItem *item);
void                goo_canvas_item_set_model           (GooCanvasItem *item,
                                                         GooCanvasItemModel *model);
gboolean            goo_canvas_item_is_container        (GooCanvasItem *item);
gint                goo_canvas_item_get_n_children      (GooCanvasItem *item);
GooCanvasItem*      goo_canvas_item_get_child           (GooCanvasItem *item,
                                                         gint child_num);
gint                goo_canvas_item_find_child          (GooCanvasItem *item,
                                                         GooCanvasItem *child);
void                goo_canvas_item_add_child           (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         gint position);
void                goo_canvas_item_move_child          (GooCanvasItem *item,
                                                         gint old_position,
                                                         gint new_position);
void                goo_canvas_item_remove_child        (GooCanvasItem *item,
                                                         gint child_num);
gboolean            goo_canvas_item_get_transform_for_child
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         cairo_matrix_t *transform);
GooCanvasStyle*     goo_canvas_item_get_style           (GooCanvasItem *item);
void                goo_canvas_item_set_style           (GooCanvasItem *item,
                                                         GooCanvasStyle *style);
void                goo_canvas_item_request_update      (GooCanvasItem *item);
void                goo_canvas_item_ensure_updated      (GooCanvasItem *item);
void                goo_canvas_item_update              (GooCanvasItem *item,
                                                         gboolean entire_tree,
                                                         cairo_t *cr,
                                                         GooCanvasBounds *bounds);
gboolean            goo_canvas_item_get_requested_area  (GooCanvasItem *item,
                                                         cairo_t *cr,
                                                         GooCanvasBounds *requested_area);
gdouble             goo_canvas_item_get_requested_height
                                                        (GooCanvasItem *item,
                                                         cairo_t *cr,
                                                         gdouble width);
void                goo_canvas_item_allocate_area       (GooCanvasItem *item,
                                                         cairo_t *cr,
                                                         const GooCanvasBounds *requested_area,
                                                         const GooCanvasBounds *allocated_area,
                                                         gdouble x_offset,
                                                         gdouble y_offset);
GList*              goo_canvas_item_get_items_at        (GooCanvasItem *item,
                                                         gdouble x,
                                                         gdouble y,
                                                         cairo_t *cr,
                                                         gboolean is_pointer_event,
                                                         gboolean parent_is_visible,
                                                         GList *found_items);
void                goo_canvas_item_paint               (GooCanvasItem *item,
                                                         cairo_t *cr,
                                                         const GooCanvasBounds *bounds,
                                                         gdouble scale);
void                goo_canvas_item_class_install_child_property
                                                        (GObjectClass *iclass,
                                                         guint property_id,
                                                         GParamSpec *pspec);
GParamSpec**        goo_canvas_item_class_list_child_properties
                                                        (GObjectClass *iclass,
                                                         guint *n_properties);
GParamSpec*         goo_canvas_item_class_find_child_property
                                                        (GObjectClass *iclass,
                                                         const gchar *property_name);
void                goo_canvas_item_get_child_property  (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         const gchar *property_name,
                                                         GValue *value);
void                goo_canvas_item_set_child_property  (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         const gchar *property_name,
                                                         const GValue *value);
void                goo_canvas_item_get_child_properties
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         ...);
void                goo_canvas_item_get_child_properties_valist
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         va_list var_args);
void                goo_canvas_item_set_child_properties
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         ...);
void                goo_canvas_item_set_child_properties_valist
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         va_list var_args);
GooCanvasItem is implemented by GooCanvasGrid, GooCanvasRect, GooCanvasTable, GooCanvasPolyline, GooCanvasPath, GooCanvasEllipse, GooCanvasText, GooCanvasWidget, GooCanvasImage, GooCanvasGroup and GooCanvasItemSimple.
"can-focus" gboolean : Read / Write "description" gchararray : Read / Write "parent" GooCanvasItem : Read / Write "pointer-events" GooCanvasPointerEvents : Read / Write "title" gchararray : Read / Write "tooltip" gchararray : Read / Write "transform" GooCairoMatrix : Read / Write "visibility" GooCanvasItemVisibility : Read / Write "visibility-threshold" gdouble : Read / Write
"animation-finished" : Run Last "button-press-event" : Run Last "button-release-event" : Run Last "child-notify" : Run First / No Recursion / Has Details / No Hooks "enter-notify-event" : Run Last "focus-in-event" : Run Last "focus-out-event" : Run Last "grab-broken-event" : Run Last "key-press-event" : Run Last "key-release-event" : Run Last "leave-notify-event" : Run Last "motion-notify-event" : Run Last "query-tooltip" : Run Last "scroll-event" : Run Last
GooCanvasItem defines the interface that canvas items must implement, and contains methods for operating on canvas items.
typedef struct _GooCanvasItem GooCanvasItem;
GooCanvasItem is a typedef used for objects that implement the GooCanvasItem interface.
(There is no actual GooCanvasItem struct, since it is only an interface. But using 'GooCanvasItem' is more helpful than using 'GObject'.)
typedef struct {
  /* Virtual methods that group items must implement. */
  GooCanvas*		(* get_canvas)			(GooCanvasItem		*item);
  void			(* set_canvas)			(GooCanvasItem		*item,
							 GooCanvas		*canvas);
  gint			(* get_n_children)		(GooCanvasItem		*item);
  GooCanvasItem*	(* get_child)			(GooCanvasItem		*item,
							 gint			 child_num);
  void			(* request_update)		(GooCanvasItem		*item);
  /* Virtual methods that group items may implement. */
  void			(* add_child)			(GooCanvasItem		*item,
							 GooCanvasItem		*child,
							 gint			 position);
  void			(* move_child)			(GooCanvasItem		*item,
							 gint			 old_position,
							 gint			 new_position);
  void			(* remove_child)		(GooCanvasItem		*item,
							 gint			 child_num);
  void			(* get_child_property)		(GooCanvasItem		*item,
							 GooCanvasItem		*child,
							 guint			 property_id,
							 GValue			*value,
							 GParamSpec		*pspec);
  void			(* set_child_property)		(GooCanvasItem		*item,
							 GooCanvasItem		*child,
							 guint			 property_id,
							 const GValue		*value,
							 GParamSpec		*pspec);
  gboolean		(* get_transform_for_child)	(GooCanvasItem		*item,
							 GooCanvasItem		*child,
							 cairo_matrix_t		*transform);
  /* Virtual methods that all canvas items must implement. */
  GooCanvasItem*	(* get_parent)			(GooCanvasItem		*item);
  void			(* set_parent)			(GooCanvasItem		*item,
							 GooCanvasItem		*parent);
  void			(* get_bounds)			(GooCanvasItem		*item,
							 GooCanvasBounds	*bounds);
  GList*		(* get_items_at)		(GooCanvasItem		*item,
							 gdouble		 x,
							 gdouble		 y,
							 cairo_t		*cr,
							 gboolean		 is_pointer_event,
							 gboolean		 parent_is_visible,
							 GList                  *found_items);
  void			(* update)			(GooCanvasItem		*item,
							 gboolean		 entire_tree,
							 cairo_t		*cr,
							 GooCanvasBounds	*bounds);
  void			(* paint)			(GooCanvasItem		*item,
							 cairo_t		*cr,
							 const GooCanvasBounds	*bounds,
							 gdouble		 scale);
  gboolean		(* get_requested_area)		(GooCanvasItem		*item,
							 cairo_t		*cr,
							 GooCanvasBounds	*requested_area);
  void			(* allocate_area)		(GooCanvasItem		*item,
							 cairo_t		*cr,
							 const GooCanvasBounds	*requested_area,
							 const GooCanvasBounds	*allocated_area,
							 gdouble		 x_offset,
							 gdouble		 y_offset);
  /* Virtual methods that canvas items may implement. */
  gboolean		(* get_transform)		(GooCanvasItem		*item,
							 cairo_matrix_t		*transform);
  void			(* set_transform)		(GooCanvasItem		*item,
							 const cairo_matrix_t	*transform);
  GooCanvasStyle*	(* get_style)			(GooCanvasItem		*item);
  void			(* set_style)			(GooCanvasItem		*item,
							 GooCanvasStyle		*style);
  gboolean		(* is_visible)			(GooCanvasItem		*item);
  gdouble               (* get_requested_height)	(GooCanvasItem		*item,
							 cairo_t		*cr,
							 gdouble		 width);
  /* Virtual methods that model/view items must implement. */
  GooCanvasItemModel*	(* get_model)			(GooCanvasItem		*item);
  void			(* set_model)			(GooCanvasItem		*item,
							 GooCanvasItemModel	*model);
  /* Signals. */
  gboolean		(* enter_notify_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventCrossing	*event);
  gboolean		(* leave_notify_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventCrossing	*event);
  gboolean		(* motion_notify_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventMotion		*event);
  gboolean		(* button_press_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventButton		*event);
  gboolean		(* button_release_event)	(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventButton		*event);
  gboolean		(* focus_in_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventFocus		*event);
  gboolean		(* focus_out_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventFocus		*event);
  gboolean		(* key_press_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventKey		*event);
  gboolean		(* key_release_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventKey		*event);
  gboolean		(* grab_broken_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventGrabBroken	*event);
  void			(* child_notify)		(GooCanvasItem		*item,
							 GParamSpec		*pspec);
  gboolean		(* query_tooltip)		(GooCanvasItem		*item,
							 gdouble		 x,
							 gdouble		 y,
							 gboolean		 keyboard_tooltip,
							 GtkTooltip		*tooltip);
  gboolean		(* get_is_static)		(GooCanvasItem		*item);
  void			(* set_is_static)		(GooCanvasItem		*item,
							 gboolean		 is_static);
  void			(* animation_finished)		(GooCanvasItem           *item,
							 gboolean                 stopped);
  gboolean		(* scroll_event)		(GooCanvasItem		*item,
							 GooCanvasItem		*target,
							 GdkEventScroll		*event);
} GooCanvasItemIface;
GooCanvasItemIFace holds the virtual methods that make up the GooCanvasItem interface.
Simple canvas items only need to implement the get_parent(), set_parent(),
get_bounds(), get_items_at(), update() and paint() methods (and also
get_requested_area() and allocate_area() if they are going to be used
inside a layout container like GooCanvasTable).
Items that support transforms should also implement get_transform() and
set_transform(). Items that support styles should implement get_style()
and set_style().
Container items must implement get_canvas(), set_canvas(),
get_n_children(), get_child() and request_update(). Containers that support
dynamic changes to their children should implement add_child(),
move_child() and remove_child(). Layout containers like GooCanvasTable
may implement get_child_property(), set_child_property() and
get_transform_for_child().
| 
 | returns the canvas the item is in. | 
| 
 | sets the canvas the item is in. | 
| 
 | returns the number of children of the item. | 
| 
 | returns the child at the given index. | 
| 
 | requests that an update is scheduled. | 
| 
 | adds a child. | 
| 
 | moves a child up or down the stacking order. | 
| 
 | removes a child. | 
| 
 | gets a child property of a given child item, e.g. the "row" or "column" property of an item in a GooCanvasTable. | 
| 
 | sets a child property for a given child item. | 
| 
 | gets the transform used to lay out a given child. | 
| 
 | gets the item's parent. | 
| 
 | sets the item's parent. | 
| 
 | gets the bounds of the item. | 
| 
 | gets all the items at the given point. | 
| 
 | updates the item, if needed. It recalculates the bounds of the item and requests redraws of parts of the canvas if necessary. | 
| 
 | renders the item to the given cairo context. | 
| 
 | returns the requested area of the item, in its parent's coordinate space. This is only used for items in layout containers such as GooCanvasTable. | 
| 
 | allocates the item's area, in its parent's coordinate space. The item must recalculate its bounds and request redraws of parts of the canvas if necessary. This is only used for items in layout containers such as GooCanvasTable. | 
| 
 | gets the item's transformation matrix. | 
| 
 | sets the item's transformation matrix. | 
| 
 | gets the item's style. | 
| 
 | sets the item's style. | 
| 
 | returns TRUEif the item is currently visible. | 
| 
 | returns the requested height of the item, given a particular allocated width, using the parent's coordinate space. | 
| 
 | gets the model that the canvas item is viewing. | 
| 
 | sets the model that the canvas item will view. | 
| 
 | signal emitted when the mouse enters the item. | 
| 
 | signal emitted when the mouse leaves the item. | 
| 
 | signal emitted when the mouse moves within the item. | 
| 
 | signal emitted when a mouse button is pressed within the item. | 
| 
 | signal emitted when a mouse button is released. | 
| 
 | signal emitted when the item receices the keyboard focus. | 
| 
 | signal emitted when the item loses the keyboard focus. | 
| 
 | signal emitted when a key is pressed. | 
| 
 | signal emitted when a key is released. | 
| 
 | signal emitted when a grab that the item has is lost. | 
| 
 | signal emitted when a child property is changed. | 
| 
 | signal emitted to query the tooltip of an item. | 
| 
 | returns TRUEif the item is static. | 
| 
 | notifies the item whether it is static or not. | 
| 
 | signal emitted when the item's animation has finished. | 
| 
 | signal emitted when the mouse wheel is activated within the item. | 
void goo_canvas_item_translate (GooCanvasItem *item, gdouble tx, gdouble ty);
Translates the origin of the item's coordinate system by the given amounts.
| 
 | an item. | 
| 
 | the amount to move the origin in the horizontal direction. | 
| 
 | the amount to move the origin in the vertical direction. | 
void goo_canvas_item_scale (GooCanvasItem *item, gdouble sx, gdouble sy);
Scales the item's coordinate system by the given amounts.
| 
 | an item. | 
| 
 | the amount to scale the horizontal axis. | 
| 
 | the amount to scale the vertical axis. | 
void goo_canvas_item_rotate (GooCanvasItem *item, gdouble degrees, gdouble cx, gdouble cy);
Rotates the item's coordinate system by the given amount, about the given origin.
| 
 | an item. | 
| 
 | the clockwise angle of rotation. | 
| 
 | the x coordinate of the origin of the rotation. | 
| 
 | the y coordinate of the origin of the rotation. | 
void goo_canvas_item_skew_x (GooCanvasItem *item, gdouble degrees, gdouble cx, gdouble cy);
Skews the item's coordinate system along the x axis by the given amount, about the given origin.
| 
 | an item. | 
| 
 | the skew angle. | 
| 
 | the x coordinate of the origin of the skew transform. | 
| 
 | the y coordinate of the origin of the skew transform. | 
void goo_canvas_item_skew_y (GooCanvasItem *item, gdouble degrees, gdouble cx, gdouble cy);
Skews the item's coordinate system along the y axis by the given amount, about the given origin.
| 
 | an item. | 
| 
 | the skew angle. | 
| 
 | the x coordinate of the origin of the skew transform. | 
| 
 | the y coordinate of the origin of the skew transform. | 
gboolean goo_canvas_item_get_transform (GooCanvasItem *item, cairo_matrix_t *transform);
Gets the transformation matrix of an item.
| 
 | an item. | 
| 
 | the place to store the transform. | 
| Returns : | TRUEif a transform is set. | 
void goo_canvas_item_set_transform (GooCanvasItem *item, const cairo_matrix_t *transform);
Sets the transformation matrix of an item.
| 
 | an item. | 
| 
 | the new transformation matrix, or NULLto reset the
 transformation to the identity matrix. | 
gboolean goo_canvas_item_get_simple_transform (GooCanvasItem *item, gdouble *x, gdouble *y, gdouble *scale, gdouble *rotation);
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.
| 
 | an item. | 
| 
 | returns the x coordinate of the origin of the item's coordinate space. | 
| 
 | returns the y coordinate of the origin of the item's coordinate space. | 
| 
 | returns the scale of the item. | 
| 
 | returns the clockwise rotation of the item, in degrees (0-360). | 
| Returns : | TRUEif a transform is set. | 
void                goo_canvas_item_set_simple_transform
                                                        (GooCanvasItem *item,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble scale,
                                                         gdouble rotation);
A convenience function to set the item's transformation matrix.
| 
 | an item. | 
| 
 | the x coordinate of the origin of the item's coordinate space. | 
| 
 | the y coordinate of the origin of the item's coordinate space. | 
| 
 | the scale of the item. | 
| 
 | the clockwise rotation of the item, in degrees. | 
void goo_canvas_item_get_bounds (GooCanvasItem *item, GooCanvasBounds *bounds);
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.
| 
 | a GooCanvasItem. | 
| 
 | a GooCanvasBounds to return the bounds in. | 
gboolean goo_canvas_item_is_visible (GooCanvasItem *item);
Checks if the item is visible.
This entails checking the item'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.
| 
 | a GooCanvasItem. | 
| Returns : | TRUEif the item is visible. | 
gboolean goo_canvas_item_get_is_static (GooCanvasItem *item);
Returns TRUE if the item is static. Static items do not move or change
size when the canvas is scrolled or the scale changes.
| 
 | an item. | 
| Returns : | TRUEif the item is static. | 
void goo_canvas_item_set_is_static (GooCanvasItem *item, gboolean is_static);
Notifies the item that it is static. Static items do not move or change size when the canvas is scrolled or the scale changes.
Container items such as GooCanvasGroup should call this function when children are added, to notify children whether they are static or not. Containers should also pass on any changes in their own status to children.
| 
 | an item. | 
| 
 | if the item is static. | 
void goo_canvas_item_animate (GooCanvasItem *item, gdouble x, gdouble y, gdouble scale, gdouble degrees, gboolean absolute, gint duration, gint step_time, GooCanvasAnimateType type);
Animates an item from its current position to the given offsets, scale and rotation.
| 
 | an item. | 
| 
 | the final x coordinate. | 
| 
 | the final y coordinate. | 
| 
 | the final scale. | 
| 
 | the final rotation. This can be negative to rotate anticlockwise, and can also be greater than 360 to rotate a number of times. | 
| 
 | if the x,y,scaleanddegreesvalues 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. | 
| 
 | the duration of the animation, in milliseconds (1/1000ths of a second). | 
| 
 | the time between each animation step, in milliseconds. | 
| 
 | specifies what happens when the animation finishes. | 
void goo_canvas_item_stop_animation (GooCanvasItem *item);
Stops any current animation for the given item, leaving it at its current position.
| 
 | an item. | 
void goo_canvas_item_raise (GooCanvasItem *item, GooCanvasItem *above);
Raises an item in the stacking order.
| 
 | an item. | 
| 
 | the item to raise itemabove, orNULLto raiseitemto the top
 of the stack. | 
void goo_canvas_item_lower (GooCanvasItem *item, GooCanvasItem *below);
Lowers an item in the stacking order.
| 
 | an item. | 
| 
 | the item to lower itembelow, orNULLto loweritemto the
 bottom of the stack. | 
void goo_canvas_item_remove (GooCanvasItem *item);
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.
| 
 | an item. | 
GooCanvas* goo_canvas_item_get_canvas (GooCanvasItem *item);
Returns the GooCanvas containing the given GooCanvasItem.
| 
 | a GooCanvasItem. | 
| Returns : | the GooCanvas. | 
void goo_canvas_item_set_canvas (GooCanvasItem *item, GooCanvas *canvas);
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.
| 
 | a GooCanvasItem. | 
| 
 | a GooCanvas | 
GooCanvasItem* goo_canvas_item_get_parent (GooCanvasItem *item);
Gets the parent of the given item.
| 
 | an item. | 
| Returns : | the parent item, or NULLif the item has no parent. | 
void goo_canvas_item_set_parent (GooCanvasItem *item, GooCanvasItem *parent);
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.
| 
 | an item. | 
| 
 | the new parent item. | 
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 "parent" property.
GooCanvasItemModel* goo_canvas_item_get_model (GooCanvasItem *item);
Gets the model of the given canvas item.
| 
 | a GooCanvasItem. | 
| Returns : | the item's model, or NULLif it has no model. | 
void goo_canvas_item_set_model (GooCanvasItem *item, GooCanvasItemModel *model);
Sets the model of the given canvas item.
| 
 | a GooCanvasItem. | 
| 
 | a GooCanvasItemModel. | 
gboolean goo_canvas_item_is_container (GooCanvasItem *item);
Tests to see if the given item is a container.
| 
 | an item. | 
| Returns : | TRUEif the item is a container. | 
gint goo_canvas_item_get_n_children (GooCanvasItem *item);
Gets the number of children of the container.
| 
 | a container item. | 
| Returns : | the number of children. | 
GooCanvasItem* goo_canvas_item_get_child (GooCanvasItem *item, gint child_num);
Gets the child item at the given stack position.
| 
 | a container item. | 
| 
 | the position of a child in the container's stack. | 
| Returns : | the child item at the given stack position, or NULLifchild_numis out of range. | 
gint goo_canvas_item_find_child (GooCanvasItem *item, GooCanvasItem *child);
Attempts to find the given child item with the container's stack.
| 
 | a container item. | 
| 
 | the child item to find. | 
| Returns : | the position of the given childitem, or -1 if it isn't found. | 
void goo_canvas_item_add_child (GooCanvasItem *item, GooCanvasItem *child, gint position);
Adds a child item to a container item at the given stack position.
| 
 | the container to add the item to. | 
| 
 | the item to add. | 
| 
 | the position of the item, or -1 to place it last (at the top of the stacking order). | 
void goo_canvas_item_move_child (GooCanvasItem *item, gint old_position, gint new_position);
Moves a child item to a new stack position within the container.
| 
 | a container item. | 
| 
 | the current position of the child item. | 
| 
 | the new position of the child item. | 
void goo_canvas_item_remove_child (GooCanvasItem *item, gint child_num);
Removes the child item at the given position.
| 
 | a container item. | 
| 
 | the position of the child item to remove. | 
gboolean goo_canvas_item_get_transform_for_child (GooCanvasItem *item, GooCanvasItem *child, cairo_matrix_t *transform);
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.
| 
 | an item. | 
| 
 | a child of item. | 
| 
 | the place to store the transform. | 
| Returns : | TRUEif a transform is set. | 
GooCanvasStyle* goo_canvas_item_get_style (GooCanvasItem *item);
Gets the item's style. If the item doesn't have its own style it will return its parent's style.
| 
 | an item. | 
| Returns : | the item's style. | 
void goo_canvas_item_set_style (GooCanvasItem *item, GooCanvasStyle *style);
Sets the item's style, by copying the properties from the given style.
| 
 | an item. | 
| 
 | a style. | 
void goo_canvas_item_request_update (GooCanvasItem *item);
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.
| 
 | a GooCanvasItem. | 
void goo_canvas_item_ensure_updated (GooCanvasItem *item);
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.
| 
 | a GooCanvasItem. | 
void goo_canvas_item_update (GooCanvasItem *item, gboolean entire_tree, cairo_t *cr, GooCanvasBounds *bounds);
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.
| 
 | a GooCanvasItem. | 
| 
 | if the entire subtree should be updated. | 
| 
 | a cairo context. | 
| 
 | a GooCanvasBounds to return the new bounds in. | 
gboolean goo_canvas_item_get_requested_area (GooCanvasItem *item, cairo_t *cr, GooCanvasBounds *requested_area);
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.
| 
 | a GooCanvasItem. | 
| 
 | a cairo context. | 
| 
 | a GooCanvasBounds to return the requested area in, in the parent's coordinate space. | 
| Returns : | TRUEif the item should be allocated space. | 
gdouble goo_canvas_item_get_requested_height (GooCanvasItem *item, cairo_t *cr, gdouble width);
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.
| 
 | a GooCanvasItem. | 
| 
 | a cairo context. | 
| 
 | the width that the item may be allocated. | 
| Returns : | the requested height of the item, given the allocated width,
 or -1if the item doesn't support this method or its height doesn't
 change when allocated different widths. | 
void goo_canvas_item_allocate_area (GooCanvasItem *item, cairo_t *cr, const GooCanvasBounds *requested_area, const GooCanvasBounds *allocated_area, gdouble x_offset, gdouble y_offset);
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's device bounds, the x_offset and y_offset
of the child item's allocated position from its requested position are
provided. Simple items can just add these to their bounds.
| 
 | a GooCanvasItem. | 
| 
 | a cairo context. | 
| 
 | the area that the item originally requested, in the parent's coordinate space. | 
| 
 | the area that the item has been allocated, in the parent's coordinate space. | 
| 
 | the x offset of the allocated area from the requested area in the device coordinate space. | 
| 
 | the y offset of the allocated area from the requested area in the device coordinate space. | 
GList* goo_canvas_item_get_items_at (GooCanvasItem *item, gdouble x, gdouble y, cairo_t *cr, gboolean is_pointer_event, gboolean parent_is_visible, GList *found_items);
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.
| 
 | a GooCanvasItem. | 
| 
 | the x coordinate of the point. | 
| 
 | the y coordinate of the point. | 
| 
 | a cairo contect. | 
| 
 | TRUEif the "pointer-events" properties of items should
 be used to determine which parts of the item are tested. | 
| 
 | TRUEif the parent item is visible (which
 implies that all ancestors are also visible). | 
| 
 | the list of items found so far. | 
| Returns : | the found_itemslist, with any more found items added onto
 the start of the list, leaving the top item first. | 
void goo_canvas_item_paint (GooCanvasItem *item, cairo_t *cr, const GooCanvasBounds *bounds, gdouble scale);
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.
| 
 | a GooCanvasItem. | 
| 
 | a cairo context. | 
| 
 | the bounds that need to be repainted, in device space. | 
| 
 | the scale to use to determine whether an item should be painted. See "visibility-threshold". | 
void                goo_canvas_item_class_install_child_property
                                                        (GObjectClass *iclass,
                                                         guint property_id,
                                                         GParamSpec *pspec);
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.
| 
 | a GObjectClass | 
| 
 | the id for the property | 
| 
 | the GParamSpec for the property | 
GParamSpec** goo_canvas_item_class_list_child_properties (GObjectClass *iclass, guint *n_properties);
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.
| 
 | a GObjectClass | 
| 
 | location to return the number of child properties found | 
| Returns : | a newly allocated array of GParamSpec*. The array must be 
          freed with g_free(). | 
GParamSpec* goo_canvas_item_class_find_child_property (GObjectClass *iclass, const gchar *property_name);
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.
| 
 | a GObjectClass | 
| 
 | the name of the child property to find | 
| Returns : | the GParamSpec of the child property or NULLifclasshas no
  child property with that name. | 
void goo_canvas_item_get_child_property (GooCanvasItem *item, GooCanvasItem *child, const gchar *property_name, GValue *value);
Gets a child property of child.
| 
 | a GooCanvasItem. | 
| 
 | a child GooCanvasItem. | 
| 
 | the name of the child property to get. | 
| 
 | a location to return the value. | 
void goo_canvas_item_set_child_property (GooCanvasItem *item, GooCanvasItem *child, const gchar *property_name, const GValue *value);
Sets a child property of child.
| 
 | a GooCanvasItem. | 
| 
 | a child GooCanvasItem. | 
| 
 | the name of the child property to set. | 
| 
 | the value to set the property to. | 
void                goo_canvas_item_get_child_properties
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         ...);
Gets the values of one or more child properties of child.
| 
 | a GooCanvasItem. | 
| 
 | a child GooCanvasItem. | 
| 
 | pairs of property names and value pointers, and a terminating NULL. | 
void                goo_canvas_item_get_child_properties_valist
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         va_list var_args);
Gets the values of one or more child properties of child.
| 
 | a GooCanvasItem. | 
| 
 | a child GooCanvasItem. | 
| 
 | pairs of property names and value pointers, and a terminating NULL. | 
void                goo_canvas_item_set_child_properties
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         ...);
Sets the values of one or more child properties of child.
| 
 | a GooCanvasItem. | 
| 
 | a child GooCanvasItem. | 
| 
 | pairs of property names and values, and a terminating NULL. | 
void                goo_canvas_item_set_child_properties_valist
                                                        (GooCanvasItem *item,
                                                         GooCanvasItem *child,
                                                         va_list var_args);
Sets the values of one or more child properties of child.
| 
 | a GooCanvasItem. | 
| 
 | a child GooCanvasItem. | 
| 
 | pairs of property names and values, and a terminating NULL. | 
"can-focus" property"can-focus" gboolean : Read / Write
If the item can take the keyboard focus.
Default value: FALSE
"description" property"description" gchararray : Read / Write
A description of the item for use by assistive technologies.
Default value: NULL
"pointer-events" property"pointer-events" GooCanvasPointerEvents : Read / Write
Specifies when the item receives pointer events.
Default value: GOO_CANVAS_EVENTS_VISIBLE_MASK|GOO_CANVAS_EVENTS_PAINTED_MASK|GOO_CANVAS_EVENTS_FILL_MASK|GOO_CANVAS_EVENTS_STROKE_MASK
"title" property"title" gchararray : Read / Write
A short context-rich description of the item for use by assistive technologies.
Default value: NULL
"tooltip" property"tooltip" gchararray : Read / Write
The tooltip to display for the item.
Default value: NULL
"transform" property"transform" GooCairoMatrix : Read / Write
The transformation matrix of the item.
"visibility" property"visibility" GooCanvasItemVisibility : Read / Write
When the canvas item is visible.
Default value: GOO_CANVAS_ITEM_VISIBLE
"visibility-threshold" property"visibility-threshold" gdouble : Read / Write
The scale threshold at which the item becomes visible.
Allowed values: >= 0
Default value: 0
"animation-finished" signalvoid user_function (GooCanvasItem *item, gboolean stopped, gpointer user_data) : Run Last
Emitted when the item animation has finished.
| 
 | the item that received the signal. | 
| 
 | if the animation was explicitly stopped. | 
| 
 | user data set when the signal handler was connected. | 
"button-press-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventButton *event, gpointer user_data) : Run Last
Emitted when a mouse button is pressed in an item.
| 
 | the item that received the signal. | 
| 
 | the target of the event. | 
| 
 | the event data. The x & y fields contain the mouse position in the item's coordinate space. The root_x & root_y fields contain the same coordinates converted to the canvas coordinate space. | 
| 
 | user data set when the signal handler was connected. | 
| Returns : | TRUEto stop the signal emission, orFALSEto let it
 continue. | 
"button-release-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventButton *event, gpointer user_data) : Run Last
Emitted when a mouse button is released in an item.
| 
 | the item that received the signal. | 
| 
 | the target of the event. | 
| 
 | the event data. The x & y fields contain the mouse position in the item's coordinate space. The root_x & root_y fields contain the same coordinates converted to the canvas coordinate space. | 
| 
 | user data set when the signal handler was connected. | 
| Returns : | TRUEto stop the signal emission, orFALSEto let it
 continue. | 
"child-notify" signalvoid user_function (GooCanvasItem *item, GParamSpec *pspec, gpointer user_data) : Run First / No Recursion / Has Details / No Hooks
Emitted for each child property that has changed. The signal's detail holds the property name.
| 
 | the item that received the signal. | 
| 
 | the GParamSpec of the changed child property. | 
| 
 | user data set when the signal handler was connected. | 
"enter-notify-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventCrossing *event, gpointer user_data) : Run Last
Emitted when the mouse enters an item.
| 
 | the item that received the signal. | 
| 
 | the target of the event. | 
| 
 | the event data. The x & y fields contain the mouse position in the item's coordinate space. The root_x & root_y fields contain the same coordinates converted to the canvas coordinate space. | 
| 
 | user data set when the signal handler was connected. | 
| Returns : | TRUEto stop the signal emission, orFALSEto let it
 continue. | 
"focus-in-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventFocus *event, gpointer user_data) : Run Last
Emitted when the item receives the keyboard focus.
"focus-out-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventFocus *event, gpointer user_data) : Run Last
Emitted when the item loses the keyboard focus.
"grab-broken-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEvent *event, gpointer user_data) : Run Last
Emitted when the item's keyboard or pointer grab was lost unexpectedly.
"key-press-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventKey *event, gpointer user_data) : Run Last
Emitted when a key is pressed and the item has the keyboard focus.
"key-release-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventKey *event, gpointer user_data) : Run Last
Emitted when a key is released and the item has the keyboard focus.
"leave-notify-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventCrossing *event, gpointer user_data) : Run Last
Emitted when the mouse leaves an item.
| 
 | the item that received the signal. | 
| 
 | the target of the event. | 
| 
 | the event data. The x & y fields contain the mouse position in the item's coordinate space. The root_x & root_y fields contain the same coordinates converted to the canvas coordinate space. | 
| 
 | user data set when the signal handler was connected. | 
| Returns : | TRUEto stop the signal emission, orFALSEto let it
 continue. | 
"motion-notify-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventMotion *event, gpointer user_data) : Run Last
Emitted when the mouse moves within an item.
| 
 | the item that received the signal. | 
| 
 | the target of the event. | 
| 
 | the event data. The x & y fields contain the mouse position in the item's coordinate space. The root_x & root_y fields contain the same coordinates converted to the canvas coordinate space. | 
| 
 | user data set when the signal handler was connected. | 
| Returns : | TRUEto stop the signal emission, orFALSEto let it
 continue. | 
"query-tooltip" signalgboolean user_function (GooCanvasItem *item, gdouble x, gdouble y, gboolean keyboard_mode, GtkTooltip *tooltip, gpointer user_data) : Run Last
Emitted when the mouse has paused over the item for a certain amount of time, or the tooltip was requested via the keyboard.
Note that if keyboard_mode is TRUE, the values of x and y are
undefined and should not be used.
If the item wants to display a tooltip it should update tooltip
and return TRUE.
| 
 | the item which received the signal. | 
| 
 | the x coordinate of the mouse. | 
| 
 | the y coordinate of the mouse. | 
| 
 | TRUEif the tooltip was triggered using the keyboard. | 
| 
 | a GtkTooltip. | 
| 
 | user data set when the signal handler was connected. | 
| Returns : | TRUEif the item has set a tooltip to show. | 
"scroll-event" signalgboolean user_function (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventScroll *event, gpointer user_data) : Run Last
Emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned in an item.
| 
 | the item that received the signal. | 
| 
 | the target of the event. | 
| 
 | the event data. The x & y fields contain the mouse position in the item's coordinate space. The root_x & root_y fields contain the same coordinates converted to the canvas coordinate space. | 
| 
 | user data set when the signal handler was connected. | 
| Returns : | TRUEto stop the signal emission, orFALSEto let it
 continue. |