## GnomeCanvasItem

GnomeCanvasItem

## Functions

GnomeCanvasItem * | gnome_canvas_item_new ()
void | gnome_canvas_item_construct ()
void | gnome_canvas_item_set ()
void | gnome_canvas_item_set_valist ()
void | gnome_canvas_item_move ()
void | gnome_canvas_item_affine_relative ()
void | gnome_canvas_item_affine_absolute ()
void | gnome_canvas_item_raise ()
void | gnome_canvas_item_lower ()
void | gnome_canvas_item_raise_to_top ()
void | gnome_canvas_item_lower_to_bottom ()
void | gnome_canvas_item_show ()
void | gnome_canvas_item_hide ()
int | gnome_canvas_item_grab ()
void | gnome_canvas_item_ungrab ()
void | gnome_canvas_item_w2i ()
void | gnome_canvas_item_i2w ()
void | gnome_canvas_item_i2w_affine ()
void | gnome_canvas_item_i2c_affine ()
void | gnome_canvas_item_reparent ()
void | gnome_canvas_item_grab_focus ()
void | gnome_canvas_item_get_bounds ()
void | gnome_canvas_item_request_update ()

## Properties

GnomeCanvasItem * | parent | Read / Write

## Signals

gboolean | event | Run Last

## Types and Values

struct | GnomeCanvasItem
struct | GnomeCanvasItemClass

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkObject
                ╰── GnomeCanvasItem
                    ├── GnomeCanvasShape
                    ├── GnomeCanvasGroup
                    ├── GnomeCanvasLine
                    ├── GnomeCanvasPixbuf
                    ├── GnomeCanvasRichText
                    ├── GnomeCanvasText
                    ╰── GnomeCanvasWidget

## Includes

    #include <libgnomecanvas/libgnomecanvas.h>

## Description

## Functions

### gnome_canvas_item_new ()

    GnomeCanvasItem *
    gnome_canvas_item_new (GnomeCanvasGroup *parent,
                           GType type,
                           const gchar *first_arg_name,
                           ...);

Creates a new canvas item with `parent` as its parent group. The item is created at the top of its parent's stack, and starts up as visible. The item is of the specified `type` , for example, it can be `gnome_canvas_rect_get_type()`. The list of object arguments/value pairs is used to configure the item. If you need to pass construct time parameters, you should use `g_object_new()` to pass the parameters and `gnome_canvas_item_construct()` to set up the canvas item.

#### Parameters

parent | The parent group for the new item. |
type | The object type of the item. |
first_arg_name | A list of object argument name/value pairs, NULL-terminated, used to configure the item. For example, "fill_color", "black", "width_units", 5.0, NULL. |

#### Returns

The newly-created item.

### gnome_canvas_item_construct ()

    void
    gnome_canvas_item_construct (GnomeCanvasItem *item,
                                 GnomeCanvasGroup *parent,
                                 const gchar *first_arg_name,
                                 va_list args);

Constructs a canvas item; meant for use only by item implementations.

#### Parameters

item | An unconstructed canvas item. |
parent | The parent group for the item. |
first_arg_name | The name of the first argument for configuring the item. |
args | The list of arguments used to configure the item. |

### gnome_canvas_item_set ()

    void
    gnome_canvas_item_set (GnomeCanvasItem *item,
                           const gchar *first_arg_name,
                           ...);

Configures a canvas item. The arguments in the item are set to the specified values, and the item is repainted as appropriate.

#### Parameters

item | A canvas item. |
first_arg_name | The list of object argument name/value pairs used to configure the item. |

### gnome_canvas_item_set_valist ()

    void
    gnome_canvas_item_set_valist (GnomeCanvasItem *item,
                                  const gchar *first_arg_name,
                                  va_list args);

Configures a canvas item. The arguments in the item are set to the specified values, and the item is repainted as appropriate.

#### Parameters

item | A canvas item. |
first_arg_name | The name of the first argument used to configure the item. |
args | The list of object argument name/value pairs used to configure the item. |

### gnome_canvas_item_move ()

    void
    gnome_canvas_item_move (GnomeCanvasItem *item,
                            double dx,
                            double dy);

Moves a canvas item by creating an affine transformation matrix for translation by using the specified values. This happens in item local coordinate system, so if you have nontrivial transform, it most probably does not do, what you want.

#### Parameters

item | A canvas item. |
dx | Horizontal offset. |
dy | Vertical offset. |

### gnome_canvas_item_affine_relative ()

    void
    gnome_canvas_item_affine_relative (GnomeCanvasItem *item,
                                       const double affine[6]);

Combines the specified affine transformation matrix with the item's current transformation. NULL affine is not allowed.

#### Parameters

item | A canvas item. |
affine | An affine transformation matrix. |

### gnome_canvas_item_affine_absolute ()

    void
    gnome_canvas_item_affine_absolute (GnomeCanvasItem *item,
                                       const double affine[6]);

Makes the item's affine transformation matrix be equal to the specified matrix. NULL affine is treated as identity.

#### Parameters

item | A canvas item. |
affine | An affine transformation matrix. |

### gnome_canvas_item_raise ()

    void
    gnome_canvas_item_raise (GnomeCanvasItem *item,
                             int positions);

Raises the item in its parent's stack by the specified number of positions. If the number of positions is greater than the distance to the top of the stack, then the item is put at the top.

#### Parameters

item | A canvas item. |
positions | Number of steps to raise the item. |

### gnome_canvas_item_lower ()

    void
    gnome_canvas_item_lower (GnomeCanvasItem *item,
                             int positions);

Lowers the item in its parent's stack by the specified number of positions. If the number of positions is greater than the distance to the bottom of the stack, then the item is put at the bottom.

#### Parameters

item | A canvas item. |
positions | Number of steps to lower the item. |

### gnome_canvas_item_raise_to_top ()

    void
    gnome_canvas_item_raise_to_top (GnomeCanvasItem *item);

Raises an item to the top of its parent's stack.

#### Parameters

item | A canvas item. |

### gnome_canvas_item_lower_to_bottom ()

    void
    gnome_canvas_item_lower_to_bottom (GnomeCanvasItem *item);

Lowers an item to the bottom of its parent's stack.

#### Parameters

item | A canvas item. |

### gnome_canvas_item_show ()

    void
    gnome_canvas_item_show (GnomeCanvasItem *item);

Shows a canvas item. If the item was already shown, then no action is taken.

#### Parameters

item | A canvas item. |

### gnome_canvas_item_hide ()

    void
    gnome_canvas_item_hide (GnomeCanvasItem *item);

Hides a canvas item. If the item was already hidden, then no action is taken.

#### Parameters

item | A canvas item. |

### gnome_canvas_item_grab ()

    int
    gnome_canvas_item_grab (GnomeCanvasItem *item,
                            unsigned int event_mask,
                            GdkCursor *cursor,
                            guint32 etime);

Specifies that all events that match the specified event mask should be sent to the specified item, and also grabs the mouse by calling `gdk_pointer_grab()`. The event mask is also used when grabbing the pointer. If `cursor` is not NULL, then that cursor is used while the grab is active. The `etime` parameter is the timestamp required for grabbing the mouse.

#### Parameters

item | A canvas item. |
event_mask | Mask of events that will be sent to this item. |
cursor | If non-NULL, the cursor that will be used while the grab is active. |
etime | The timestamp required for grabbing the mouse, or GDK_CURRENT_TIME. |

#### Returns

If an item was already grabbed, it returns `GDK_GRAB_ALREADY_GRABBED`. If the specified item was hidden by calling `gnome_canvas_item_hide()`, then it returns `GDK_GRAB_NOT_VIEWABLE`. Else, it returns the result of calling `gdk_pointer_grab()`.

### gnome_canvas_item_ungrab ()

    void
    gnome_canvas_item_ungrab (GnomeCanvasItem *item,
                              guint32 etime);

Ungrabs the item, which must have been grabbed in the canvas, and ungrabs the mouse.

#### Parameters

item | A canvas item that holds a grab. |
etime | The timestamp for ungrabbing the mouse. |

### gnome_canvas_item_w2i ()

    void
    gnome_canvas_item_w2i (GnomeCanvasItem *item,
                           double *x,
                           double *y);

Converts a coordinate pair from world coordinates to item-relative coordinates.

#### Parameters

item | A canvas item. |
x | X coordinate to convert (input/output value). |
y | Y coordinate to convert (input/output value). |

### gnome_canvas_item_i2w ()

    void
    gnome_canvas_item_i2w (GnomeCanvasItem *item,
                           double *x,
                           double *y);

Converts a coordinate pair from item-relative coordinates to world coordinates.

#### Parameters

item | A canvas item. |
x | X coordinate to convert (input/output value). |
y | Y coordinate to convert (input/output value). |

### gnome_canvas_item_i2w_affine ()

    void
    gnome_canvas_item_i2w_affine (GnomeCanvasItem *item,
                                  double affine[6]);

Gets the affine transform that converts from the item's coordinate system to world coordinates.

#### Parameters

item | A canvas item |
affine | An affine transformation matrix (return value). |

### gnome_canvas_item_i2c_affine ()

    void
    gnome_canvas_item_i2c_affine (GnomeCanvasItem *item,
                                  double affine[6]);

Gets the affine transform that converts from item-relative coordinates to canvas pixel coordinates.

#### Parameters

item | A canvas item. |
affine | An affine transformation matrix (return value). |

### gnome_canvas_item_reparent ()

    void
    gnome_canvas_item_reparent (GnomeCanvasItem *item,
                                GnomeCanvasGroup *new_group);

Changes the parent of the specified item to be the new group. The item keeps its group-relative coordinates as for its old parent, so the item may change its absolute position within the canvas.

#### Parameters

item | A canvas item. |
new_group | A canvas group. |

### gnome_canvas_item_grab_focus ()

    void
    gnome_canvas_item_grab_focus (GnomeCanvasItem *item);

Makes the specified item take the keyboard focus, so all keyboard events will be sent to it. If the canvas widget itself did not have the focus, it grabs it as well.

#### Parameters

item | A canvas item. |

### gnome_canvas_item_get_bounds ()

    void
    gnome_canvas_item_get_bounds (GnomeCanvasItem *item,
                                  double *x1,
                                  double *y1,
                                  double *x2,
                                  double *y2);

Queries the bounding box of a canvas item. The bounds are returned in the coordinate system of the item's parent.

#### Parameters

item | A canvas item. |
x1 | Leftmost edge of the bounding box (return value). |
y1 | Upper edge of the bounding box (return value). |
x2 | Rightmost edge of the bounding box (return value). |
y2 | Lower edge of the bounding box (return value). |

### gnome_canvas_item_request_update ()

    void
    gnome_canvas_item_request_update (GnomeCanvasItem *item);

To be used only by item implementations. Requests that the canvas queue an update for the specified item.

#### Parameters

item | A canvas item. |

## Types and Values

### struct GnomeCanvasItem

    struct GnomeCanvasItem;

### struct GnomeCanvasItemClass

    struct GnomeCanvasItemClass {
    	GtkObjectClass parent_class;

    	/* Tell the item to update itself.  The flags are from the update flags
    	 * defined above.  The item should update its internal state from its
    	 * queued state, and recompute and request its repaint area.  The
    	 * affine, if used, is a pointer to a 6-element array of doubles.  The
    	 * update method also recomputes the bounding box of the item.
    	 */
    	void (* update) (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags);

    	/* Realize an item -- create GCs, etc. */
    	void (* realize) (GnomeCanvasItem *item);

    	/* Unrealize an item */
    	void (* unrealize) (GnomeCanvasItem *item);

    	/* Map an item - normally only need by items with their own GdkWindows */
    	void (* map) (GnomeCanvasItem *item);

    	/* Unmap an item */
    	void (* unmap) (GnomeCanvasItem *item);

    	/* Return the microtile coverage of the item */
    	ArtUta *(* coverage) (GnomeCanvasItem *item);

    	/* Draw an item of this type.  (x, y) are the upper-left canvas pixel
    	 * coordinates of the drawable, a temporary pixmap, where things get
    	 * drawn.  (width, height) are the dimensions of the drawable.
    	 */
    	void (* draw) (GnomeCanvasItem *item, GdkDrawable *drawable,
    		       int x, int y, int width, int height);

    	/* Render the item over the buffer given.  The buf data structure
    	 * contains both a pointer to a packed 24-bit RGB array, and the
    	 * coordinates.  This method is only used for antialiased canvases.
    	 *
    	 * TODO: figure out where clip paths fit into the rendering framework.
    	 */
    	void (* render) (GnomeCanvasItem *item, GnomeCanvasBuf *buf);

    	/* Calculate the distance from an item to the specified point.  It also
             * returns a canvas item which is the item itself in the case of the
             * object being an actual leaf item, or a child in case of the object
             * being a canvas group.  (cx, cy) are the canvas pixel coordinates that
             * correspond to the item-relative coordinates (x, y).
    	 */
    	double (* point) (GnomeCanvasItem *item, double x, double y, int cx, int cy,
    			  GnomeCanvasItem **actual_item);

    	/* Fetch the item's bounding box (need not be exactly tight).  This
    	 * should be in item-relative coordinates.
    	 */
    	void (* bounds) (GnomeCanvasItem *item, double *x1, double *y1, double *x2, double *y2);

    	/* Signal: an event occurred for an item of this type.  The (x, y)
    	 * coordinates are in the canvas world coordinate system.
    	 */
    	gboolean (* event)                (GnomeCanvasItem *item, GdkEvent *event);

    	/* Reserved for future expansion */
    	gpointer spare_vmethods [4];
    };

## Property Details

### The `“parent”` property

      “parent”                   GnomeCanvasItem *

Owner: GnomeCanvasItem

Flags: Read / Write

## Signal Details

### The `“event”` signal

    gboolean
    user_function (GnomeCanvasItem *canvasitem,
                   GdkEvent        *arg1,
                   gpointer         user_data)

Flags: Run Last