## GogGraph

GogGraph — A collection of charts

## Synopsis

                GogGraph;
    gboolean    gog_graph_validate_chart_layout (GogGraph *graph);
    unsigned    gog_graph_num_cols              (GogGraph const *graph);
    unsigned    gog_graph_num_rows              (GogGraph const *graph);
    GogGraph*   gog_graph_dup                   (GogGraph const *graph);
    GogTheme*   gog_graph_get_theme             (GogGraph const *graph);
    void        gog_graph_set_theme             (GogGraph *graph,
                                                 GogTheme *theme);
    GSList*     gog_graph_get_data              (GogGraph const *graph);
    GOData*     gog_graph_ref_data              (GogGraph *graph,
                                                 GOData *dat);
    void        gog_graph_unref_data            (GogGraph *graph,
                                                 GOData *dat);
    void        gog_graph_get_size              (GogGraph *graph,
                                                 double *width,
                                                 double *height);
    void        gog_graph_set_size              (GogGraph *graph,
                                                 double width,
                                                 double height);

                GogGraphView;
    void        gog_graph_view_handle_event     (GogGraphView *gview,
                                                 GdkEvent *event,
                                                 double x_offset,
                                                 double y_offset);
    GogView*    gog_graph_view_get_selection    (GogGraphView *gview);
    void        gog_graph_view_set_selection    (GogGraphView *gview,
                                                 GogObject *gobj);

## Object Hierarchy

      GObject
       +----GogObject
             +----GogStyledObject
                   +----GogOutlinedObject
                         +----GogGraph

      GObject
       +----GogView
             +----GogOutlinedView
                   +----GogGraphView

## Properties

      "height-pts"           gdouble               : Read / Write
      "theme"                GogTheme              : Read / Write
      "theme-name"           gchararray            : Read / Write
      "width-pts"            gdouble               : Read / Write

## Signals

    "add-data"  void        user_function      (GogGraph *goggraph,
                                                GObject  *arg1,
                                                gpointer  user_data)      : Run last
    "remove-data"
                void        user_function      (GogGraph *goggraph,
                                                GObject  *arg1,
                                                gpointer  user_data)      : Run last

## Description

## Details

### GogGraph

    typedef struct _GogGraph GogGraph;

### gog_graph_validate_chart_layout ()

    gboolean    gog_graph_validate_chart_layout (GogGraph *graph);

Check the layout of the chart grid and ensure that there are no empty cols or rows, and resize as necessary

`graph` : | GogGraph
Returns : |

### gog_graph_num_cols ()

    unsigned    gog_graph_num_cols              (GogGraph const *graph);

`graph` : |
Returns : |

### gog_graph_num_rows ()

    unsigned    gog_graph_num_rows              (GogGraph const *graph);

`graph` : |
Returns : |

### gog_graph_dup ()

    GogGraph*   gog_graph_dup                   (GogGraph const *graph);

A convenience wrapper to make a deep copy of `graph`.

`graph` : | GogGraph
Returns : |

### gog_graph_get_theme ()

    GogTheme*   gog_graph_get_theme             (GogGraph const *graph);

`graph` : |
Returns : |

### gog_graph_set_theme ()

    void        gog_graph_set_theme             (GogGraph *graph,
                                                 GogTheme *theme);

`graph` : |
`theme` : |

### gog_graph_get_data ()

    GSList*     gog_graph_get_data              (GogGraph const *graph);

`graph` : | GogGraph
Returns : | a list of the GOData objects that are data to the graph. The caller should _not_ modify or free the list.

### gog_graph_ref_data ()

    GOData*     gog_graph_ref_data              (GogGraph *graph,
                                                 GOData *dat);

If `dat` or something equivalent to it already exists in the graph use that. Otherwaise use `dat`. Adds a gobject ref to the target and increments a count of the number of refs made from this GogGraph.

`graph` : | GogGraph
`dat` : | GOData
Returns : |

### gog_graph_unref_data ()

    void        gog_graph_unref_data            (GogGraph *graph,
                                                 GOData *dat);

`graph` : | GogGraph
`dat` : | GOData

### gog_graph_get_size ()

    void        gog_graph_get_size              (GogGraph *graph,
                                                 double *width,
                                                 double *height);

FIXME Returns the logical size of graph, in points.

`graph` : | GogGraph
`width` : | logical width in pts
`height` : | logical height in pts

### gog_graph_set_size ()

    void        gog_graph_set_size              (GogGraph *graph,
                                                 double width,
                                                 double height);

Sets the logical size of graph, given in points.

`graph` : | GogGraph
`width` : | logical width in pts
`height` : | logical height in pts

### GogGraphView

    typedef struct _GogGraphView GogGraphView;

### gog_graph_view_handle_event ()

    void        gog_graph_view_handle_event     (GogGraphView *gview,
                                                 GdkEvent *event,
                                                 double x_offset,
                                                 double y_offset);

Handle events.

`gview` : | GogGraphView
`event` : | GdkEvent
`x_offset` : |
`y_offset` : |

### gog_graph_view_get_selection ()

    GogView*    gog_graph_view_get_selection    (GogGraphView *gview);

`gview` : | GogGraphView
Returns : | current selected view.

### gog_graph_view_set_selection ()

    void        gog_graph_view_set_selection    (GogGraphView *gview,
                                                 GogObject *gobj);

Sets `gobj` as current selection. If `gobj` is different from previously selected object, a selection-changed signal is emitted.

`gview` : | GogGraphView
`gobj` : | new selected object

## Property Details

### The "`height-pts`" property

      "height-pts"           gdouble               : Read / Write

Logical graph heigth, in points.

Allowed values: >= 0

Default value: 226.772

### The "`theme`" property

      "theme"                GogTheme              : Read / Write

The theme for elements of the graph.

### The "`theme-name`" property

      "theme-name"           gchararray            : Read / Write

The name of the theme for elements of the graph.

Default value: "default"

### The "`width-pts`" property

      "width-pts"            gdouble               : Read / Write

Logical graph width, in points.

Allowed values: >= 0

Default value: 340.157

## Signal Details

### The "add-data" signal

    void        user_function                  (GogGraph *goggraph,
                                                GObject  *arg1,
                                                gpointer  user_data)      : Run last

`goggraph` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The "remove-data" signal

    void        user_function                  (GogGraph *goggraph,
                                                GObject  *arg1,
                                                gpointer  user_data)      : Run last

`goggraph` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.