## GooCanvasPolylineModel GooCanvasPolylineModel — a model for polyline items (a series of lines with optional arrows). |

## Synopsis

                        GooCanvasPolylineModel;
    GooCanvasItemModel* goo_canvas_polyline_model_new       (GooCanvasItemModel *parent,
                                                             gboolean close_path,
                                                             gint num_points,
                                                             ...);
    GooCanvasItemModel* goo_canvas_polyline_model_new_line  (GooCanvasItemModel *parent,
                                                             gdouble x1,
                                                             gdouble y1,
                                                             gdouble x2,
                                                             gdouble y2,
                                                             ...);

## Object Hierarchy

      GObject
       +----GooCanvasItemModelSimple
             +----GooCanvasPolylineModel

## Implemented Interfaces

GooCanvasPolylineModel implements GooCanvasItemModel.

## Properties

      "arrow-length"             gdouble               : Read / Write
      "arrow-tip-length"         gdouble               : Read / Write
      "arrow-width"              gdouble               : Read / Write
      "close-path"               gboolean              : Read / Write
      "end-arrow"                gboolean              : Read / Write
      "height"                   gdouble               : Read / Write
      "points"                   GooCanvasPoints       : Read / Write
      "start-arrow"              gboolean              : Read / Write
      "width"                    gdouble               : Read / Write
      "x"                        gdouble               : Read / Write
      "y"                        gdouble               : Read / Write

## Description

GooCanvasPolylineModel represents a model for polyline items, which are a series of one or more lines, with optional arrows at either end.

It is a subclass of GooCanvasItemModelSimple and so inherits all of the style properties such as "stroke-color", "fill-color" and "line-width".

It also implements the GooCanvasItemModel interface, so you can use the GooCanvasItemModel functions such as `goo_canvas_item_model_raise()` and `goo_canvas_item_model_rotate()`.

To create a GooCanvasPolylineModel use `goo_canvas_polyline_model_new()`, or `goo_canvas_polyline_model_new_line()` for a simple line between two points.

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

To respond to events such as mouse clicks on the polyline you must connect to the signal handlers of the corresponding GooCanvasPolyline objects. (See `goo_canvas_get_item()` and "item-created".)

## Details

### GooCanvasPolylineModel

    typedef struct _GooCanvasPolylineModel GooCanvasPolylineModel;

The GooCanvasPolylineModel struct contains private data only.

### goo_canvas_polyline_model_new ()

    GooCanvasItemModel* goo_canvas_polyline_model_new       (GooCanvasItemModel *parent,
                                                             gboolean close_path,
                                                             gint num_points,
                                                             ...);

Creates a new polyline model.

`parent` : | 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.
`close_path` : | if the last point should be connected to the first.
`num_points` : | the number of points in the polyline.
`...` : | the pairs of coordinates for each point in the line, followed by optional pairs of property names and values, and a terminating `NULL`.
Returns : | a new polyline model.

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

     GooCanvasItemModel *polyline = goo_canvas_polyline_model_new (mygroup, TRUE, 3,
                                                                   100.0, 100.0,
                                                                   300.0, 100.0,
                                                                   200.0, 300.0,
                                                                   "stroke-color", "red",
                                                                   "line-width", 5.0,
                                                                   "fill-color", "blue",
                                                                   NULL);

### goo_canvas_polyline_model_new_line ()

    GooCanvasItemModel* goo_canvas_polyline_model_new_line  (GooCanvasItemModel *parent,
                                                             gdouble x1,
                                                             gdouble y1,
                                                             gdouble x2,
                                                             gdouble y2,
                                                             ...);

Creates a new polyline model with a single line.

`parent` : | the parent model, or `NULL`.
`x1` : | the x coordinate of the start of the line.
`y1` : | the y coordinate of the start of the line.
`x2` : | the x coordinate of the end of the line.
`y2` : | the y coordinate of the end of the line.
`...` : | optional pairs of property names and values, and a terminating `NULL`.
Returns : | a new polyline model.

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

     GooCanvasItemModel *polyline = goo_canvas_polyline_model_new_line (mygroup,
                                                                        100.0, 100.0,
                                                                        300.0, 300.0,
                                                                        "stroke-color", "red",
                                                                        "line-width", 5.0,
                                                                        NULL);

## Property Details

### The `"arrow-length"` property

      "arrow-length"             gdouble               : Read / Write

The length of the arrows, as a multiple of the line width.

Allowed values: >= 0

Default value: 5

### The `"arrow-tip-length"` property

      "arrow-tip-length"         gdouble               : Read / Write

The length of the arrow tip, as a multiple of the line width.

Allowed values: >= 0

Default value: 4

### The `"arrow-width"` property

      "arrow-width"              gdouble               : Read / Write

The width of the arrows, as a multiple of the line width.

Allowed values: >= 0

Default value: 4

### The `"close-path"` property

      "close-path"               gboolean              : Read / Write

If the last point should be connected to the first.

Default value: FALSE

### The `"end-arrow"` property

      "end-arrow"                gboolean              : Read / Write

If an arrow should be displayed at the end of the polyline.

Default value: FALSE

### The `"height"` property

      "height"                   gdouble               : Read / Write

The height of the polyline.

Allowed values: >= 0

Default value: 0

### The `"points"` property

      "points"                   GooCanvasPoints       : Read / Write

The array of points.

### The `"start-arrow"` property

      "start-arrow"              gboolean              : Read / Write

If an arrow should be displayed at the start of the polyline.

Default value: FALSE

### The `"width"` property

      "width"                    gdouble               : Read / Write

The width of the polyline.

Allowed values: >= 0

Default value: 0

### The `"x"` property

      "x"                        gdouble               : Read / Write

The x coordinate of the left-most point of the polyline.

Default value: 0

### The `"y"` property

      "y"                        gdouble               : Read / Write

The y coordinate of the top-most point of the polyline.

Default value: 0