## GooCanvasGridModel GooCanvasGridModel — a model for grid items. |

## Synopsis

                        GooCanvasGridModel;
    GooCanvasItemModel* goo_canvas_grid_model_new           (GooCanvasItemModel *parent,
                                                             gdouble x,
                                                             gdouble y,
                                                             gdouble width,
                                                             gdouble height,
                                                             gdouble x_step,
                                                             gdouble y_step,
                                                             gdouble x_offset,
                                                             gdouble y_offset,
                                                             ...);

## Object Hierarchy

      GObject
       +----GooCanvasItemModelSimple
             +----GooCanvasGridModel

## Implemented Interfaces

GooCanvasGridModel implements GooCanvasItemModel.

## Properties

      "border-color"             gchararray            : Write
      "border-color-rgba"        guint                 : Read / Write
      "border-pattern"           GooCairoPattern       : Read / Write
      "border-pixbuf"            GdkPixbuf             : Write
      "border-width"             gdouble               : Read / Write
      "height"                   gdouble               : Read / Write
      "horz-grid-line-color"     gchararray            : Write
      "horz-grid-line-color-rgba" guint                 : Read / Write
      "horz-grid-line-pattern"   GooCairoPattern       : Read / Write
      "horz-grid-line-pixbuf"    GdkPixbuf             : Write
      "horz-grid-line-width"     gdouble               : Read / Write
      "show-horz-grid-lines"     gboolean              : Read / Write
      "show-vert-grid-lines"     gboolean              : Read / Write
      "vert-grid-line-color"     gchararray            : Write
      "vert-grid-line-color-rgba" guint                 : Read / Write
      "vert-grid-line-pattern"   GooCairoPattern       : Read / Write
      "vert-grid-line-pixbuf"    GdkPixbuf             : Write
      "vert-grid-line-width"     gdouble               : Read / Write
      "vert-grid-lines-on-top"   gboolean              : Read / Write
      "width"                    gdouble               : Read / Write
      "x"                        gdouble               : Read / Write
      "x-offset"                 gdouble               : Read / Write
      "x-step"                   gdouble               : Read / Write
      "y"                        gdouble               : Read / Write
      "y-offset"                 gdouble               : Read / Write
      "y-step"                   gdouble               : Read / Write

## Description

GooCanvasGridModel represents a model for grid items. A grid consists of a number of equally-spaced horizontal and vertical grid lines, plus an optional border.

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 GooCanvasGridModel use `goo_canvas_grid_model_new()`.

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

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

The grid's position and size is specified with the "x", "y", "width" and "height" properties.

The "x-step" and "y-step" properties specify the distance between grid lines. The "x-offset" and "y-offset" properties specify the distance before the first grid lines.

The horizontal or vertical grid lines can be hidden using the "show-horz-grid-lines" and "show-vert-grid-lines" properties.

The width of the border can be set using the "border-width" property. The border is drawn outside the area specified with the "x", "y", "width" and "height" properties.

Other properties allow the colors and widths of the grid lines to be set. The grid line color and width properties override the standard "stroke-color" and "line-width" properties, enabling different styles for horizontal and vertical grid lines.

## Details

### GooCanvasGridModel

    typedef struct _GooCanvasGridModel GooCanvasGridModel;

The GooCanvasGridModel struct contains private data only.

### goo_canvas_grid_model_new ()

    GooCanvasItemModel* goo_canvas_grid_model_new           (GooCanvasItemModel *parent,
                                                             gdouble x,
                                                             gdouble y,
                                                             gdouble width,
                                                             gdouble height,
                                                             gdouble x_step,
                                                             gdouble y_step,
                                                             gdouble x_offset,
                                                             gdouble y_offset,
                                                             ...);

Creates a new grid 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.
`x` : | the x coordinate of the left of the grid.
`y` : | the y coordinate of the top of the grid.
`width` : | the width of the grid.
`height` : | the height of the grid.
`x_step` : | the distance between the vertical grid lines.
`y_step` : | the distance between the horizontal grid lines.
`x_offset` : | the distance before the first vertical grid line.
`y_offset` : | the distance before the first horizontal grid line.
`...` : | optional pairs of property names and values, and a terminating `NULL`.
Returns : | a new grid model.

Here's an example showing how to create a grid:

     GooCanvasItemModel *grid = goo_canvas_grid_model_new (mygroup, 100.0, 100.0, 400.0, 200.0,
                                                           20.0, 20.0, 10.0, 10.0,
                                                           "horz-grid-line-width", 4.0,
                                                           "horz-grid-line-color", "yellow",
                                                           "vert-grid-line-width", 2.0,
                                                           "vert-grid-line-color", "red",
                                                           "border-width", 3.0,
                                                           "border-color", "white",
                                                           "fill-color", "blue",
                                                           NULL);

## Property Details

### The `"border-color"` property

      "border-color"             gchararray            : Write

The color to use for the border.

Default value: NULL

### The `"border-color-rgba"` property

      "border-color-rgba"        guint                 : Read / Write

The color to use for the border, specified as a 32-bit integer value.

Default value: 0

### The `"border-pattern"` property

      "border-pattern"           GooCairoPattern       : Read / Write

The cairo pattern to paint the border with.

### The `"border-pixbuf"` property

      "border-pixbuf"            GdkPixbuf             : Write

The pixbuf to use to draw the border.

### The `"border-width"` property

      "border-width"             gdouble               : Read / Write

The width of the border around the grid.

Default value: -1

### The `"height"` property

      "height"                   gdouble               : Read / Write

The height of the grid.

Allowed values: >= 0

Default value: 0

### The `"horz-grid-line-color"` property

      "horz-grid-line-color"     gchararray            : Write

The color to use for the horizontal grid lines.

Default value: NULL

### The `"horz-grid-line-color-rgba"` property

      "horz-grid-line-color-rgba" guint                 : Read / Write

The color to use for the horizontal grid lines, specified as a 32-bit integer value.

Default value: 0

### The `"horz-grid-line-pattern"` property

      "horz-grid-line-pattern"   GooCairoPattern       : Read / Write

The cairo pattern to paint the horizontal grid lines with.

### The `"horz-grid-line-pixbuf"` property

      "horz-grid-line-pixbuf"    GdkPixbuf             : Write

The pixbuf to use to draw the horizontal grid lines.

### The `"horz-grid-line-width"` property

      "horz-grid-line-width"     gdouble               : Read / Write

The width of the horizontal grid lines.

Default value: -1

### The `"show-horz-grid-lines"` property

      "show-horz-grid-lines"     gboolean              : Read / Write

If the horizontal grid lines are shown.

Default value: TRUE

### The `"show-vert-grid-lines"` property

      "show-vert-grid-lines"     gboolean              : Read / Write

If the vertical grid lines are shown.

Default value: TRUE

### The `"vert-grid-line-color"` property

      "vert-grid-line-color"     gchararray            : Write

The color to use for the vertical grid lines.

Default value: NULL

### The `"vert-grid-line-color-rgba"` property

      "vert-grid-line-color-rgba" guint                 : Read / Write

The color to use for the vertical grid lines, specified as a 32-bit integer value.

Default value: 0

### The `"vert-grid-line-pattern"` property

      "vert-grid-line-pattern"   GooCairoPattern       : Read / Write

The cairo pattern to paint the vertical grid lines with.

### The `"vert-grid-line-pixbuf"` property

      "vert-grid-line-pixbuf"    GdkPixbuf             : Write

The pixbuf to use to draw the vertical grid lines.

### The `"vert-grid-line-width"` property

      "vert-grid-line-width"     gdouble               : Read / Write

The width of the vertical grid lines.

Default value: -1

### The `"vert-grid-lines-on-top"` property

      "vert-grid-lines-on-top"   gboolean              : Read / Write

If the vertical grid lines are painted above the horizontal grid lines.

Default value: FALSE

### The `"width"` property

      "width"                    gdouble               : Read / Write

The width of the grid.

Allowed values: >= 0

Default value: 0

### The `"x"` property

      "x"                        gdouble               : Read / Write

The x coordinate of the grid.

Default value: 0

### The `"x-offset"` property

      "x-offset"                 gdouble               : Read / Write

The distance before the first vertical grid line.

Allowed values: >= 0

Default value: 0

### The `"x-step"` property

      "x-step"                   gdouble               : Read / Write

The distance between the vertical grid lines.

Allowed values: >= 0

Default value: 10

### The `"y"` property

      "y"                        gdouble               : Read / Write

The y coordinate of the grid.

Default value: 0

### The `"y-offset"` property

      "y-offset"                 gdouble               : Read / Write

The distance before the first horizontal grid line.

Allowed values: >= 0

Default value: 0

### The `"y-step"` property

      "y-step"                   gdouble               : Read / Write

The distance between the horizontal grid lines.

Allowed values: >= 0

Default value: 10