GogGraph

## 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);
    GSList*             gog_graph_get_supported_image_formats
                                                            (void);
    gboolean            gog_graph_export_image              (GogGraph *graph,
                                                             GOImageFormat format,
                                                             GsfOutput *output,
                                                             double x_dpi,
                                                             double y_dpi);
    void                gog_graph_render_to_cairo           (GogGraph *graph,
                                                             cairo_t *cairo,
                                                             double w,
                                                             double h);

                        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"                                       : Run Last
      "remove-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

### gog_graph_get_supported_image_formats ()

    GSList*             gog_graph_get_supported_image_formats
                                                            (void);

Builds a list of supported formats for image export.

Returns : | a GSList of GOImageFormat.

### gog_graph_export_image ()

    gboolean            gog_graph_export_image              (GogGraph *graph,
                                                             GOImageFormat format,
                                                             GsfOutput *output,
                                                             double x_dpi,
                                                             double y_dpi);

Exports an image of `graph` in given `format`, writing results in a GsfOutput stream. If export format type is a bitmap one, it computes image size with x_dpi, y_dpi and `graph` size (see @`gog_graph_get_size()`).

`graph` : | a GogGraph
`format` : | image format for export
`output` : | a GsfOutput stream
`x_dpi` : | x resolution of exported graph
`y_dpi` : | y resolution of exported graph
Returns : | `TRUE` if export succeed.

### gog_graph_render_to_cairo ()

    void                gog_graph_render_to_cairo           (GogGraph *graph,
                                                             cairo_t *cairo,
                                                             double w,
                                                             double h);

Renders a graph using `cairo`. `w` and `h` are the requested width an height of the rendered graph, in the current `cairo` coordinate space. This function is not suited for multiple rendering of the same graph. gog_renderer_render_to cairo or gog_renderer_update/gog_renderer_get_cairo_surface should be used instead.

`graph` : | a GogGraph
`cairo` : | a cairo context
`w` : | width
`h` : | height

### 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.