GooCanvas Reference Manual: GooCanvasText

## GooCanvasText GooCanvasText — a text item. |

## Synopsis

    struct              GooCanvasText;
    GooCanvasItem *     goo_canvas_text_new                 (GooCanvasItem *parent,
                                                             const char *string,
                                                             gdouble x,
                                                             gdouble y,
                                                             gdouble width,
                                                             GooCanvasAnchorType anchor,
                                                             ...);
    void                goo_canvas_text_get_natural_extents (GooCanvasText *text,
                                                             PangoRectangle *ink_rect,
                                                             PangoRectangle *logical_rect);

## Object Hierarchy

      GObject
       +----GooCanvasItemSimple
             +----GooCanvasText

## Implemented Interfaces

GooCanvasText implements GooCanvasItem.

## Properties

      "alignment"                PangoAlignment        : Read / Write
      "anchor"                   GooCanvasAnchorType   : Read / Write
      "ellipsize"                PangoEllipsizeMode    : Read / Write
      "height"                   gdouble               : Read / Write
      "text"                     gchar*                : Read / Write
      "use-markup"               gboolean              : Read / Write
      "width"                    gdouble               : Read / Write
      "wrap"                     PangoWrapMode         : Read / Write
      "x"                        gdouble               : Read / Write
      "y"                        gdouble               : Read / Write

## Description

GooCanvasText represents a text item.

It is a subclass of GooCanvasItemSimple and so inherits all of the style properties such as "fill-color".

It also implements the GooCanvasItem interface, so you can use the GooCanvasItem functions such as `goo_canvas_item_raise()` and `goo_canvas_item_rotate()`.

The "width" and "height" properties specify the area of the item. If it exceeds that area because there is too much text, it is clipped. The properties can be set to -1 to disable clipping.

To create a GooCanvasText use `goo_canvas_text_new()`.

To get or set the properties of an existing GooCanvasText, use `g_object_get()` and `g_object_set()`.

## Details

### struct GooCanvasText

    struct GooCanvasText;

The GooCanvasText struct contains private data only.

### goo_canvas_text_new ()

    GooCanvasItem *     goo_canvas_text_new                 (GooCanvasItem *parent,
                                                             const char *string,
                                                             gdouble x,
                                                             gdouble y,
                                                             gdouble width,
                                                             GooCanvasAnchorType anchor,
                                                             ...);

Creates a new text item.

`parent` : | 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. [skip]
`string` : | the text to display.
`x` : | the x coordinate of the text.
`y` : | the y coordinate of the text.
`width` : | the width of the text item, or -1 for unlimited width.
`anchor` : | 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.
`...` : | optional pairs of property names and values, and a terminating `NULL`.
Returns : | a new text item. [transfer full]

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

    1
    2
    3
    GooCanvasItem *text = goo_canvas_text_new (mygroup, "Hello World", 500.0, 500.0, 200.0, GOO_CANVAS_ANCHOR_SE,
                                               "fill-color", "blue",
                                               NULL);

### goo_canvas_text_get_natural_extents ()

    void                goo_canvas_text_get_natural_extents (GooCanvasText *text,
                                                             PangoRectangle *ink_rect,
                                                             PangoRectangle *logical_rect);

Gets the natural extents of the text, in the text item'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.

`text` : | a GooCanvasText.
`ink_rect` : | the location to return the ink rect, or `NULL`.
`logical_rect` : | the location to return the logical rect, or `NULL`.

## Property Details

### The `"alignment"` property

      "alignment"                PangoAlignment        : Read / Write

How to align the text.

Default value: PANGO_ALIGN_LEFT

### The `"anchor"` property

      "anchor"                   GooCanvasAnchorType   : Read / Write

How to position the text relative to the given x and y coordinates.

Default value: GOO_CANVAS_ANCHOR_NORTH_WEST

### The `"ellipsize"` property

      "ellipsize"                PangoEllipsizeMode    : Read / Write

The preferred place to ellipsize the string, if the label does not have enough room to display the entire string.

Default value: PANGO_ELLIPSIZE_NONE

### The `"height"` property

      "height"                   gdouble               : Read / Write

The height to use to layout the text, or -1 to let the text use as much vertical space as needed.

Default value: -1

### The `"text"` property

      "text"                     gchar*                : Read / Write

The text to display.

Default value: NULL

### The `"use-markup"` property

      "use-markup"               gboolean              : Read / Write

Whether to parse PangoMarkup in the text, to support different styles.

Default value: FALSE

### The `"width"` property

      "width"                    gdouble               : Read / Write

The width to use to layout the text, or -1 to let the text use as much horizontal space as needed.

Default value: -1

### The `"wrap"` property

      "wrap"                     PangoWrapMode         : Read / Write

The preferred method of wrapping the string if a width has been set.

Default value: PANGO_WRAP_WORD

### The `"x"` property

      "x"                        gdouble               : Read / Write

The x coordinate of the text.

Default value: 0

### The `"y"` property

      "y"                        gdouble               : Read / Write

The y coordinate of the text.

Default value: 0