## GwyGraph

GwyGraph — Widget for displaying graphs

## Synopsis

    #include <libgwydgets/gwydgets.h>

                        GwyGraph;
                        GwyGraphClass;
    GtkWidget*          gwy_graph_new                       (GwyGraphModel *gmodel);
    GwyAxis*            gwy_graph_get_axis                  (GwyGraph *graph,
                                                             GtkPositionType type);
    void                gwy_graph_set_axis_visible          (GwyGraph *graph,
                                                             GtkPositionType type,
                                                             gboolean is_visible);
    GtkWidget*          gwy_graph_get_area                  (GwyGraph *graph);
    void                gwy_graph_set_model                 (GwyGraph *graph,
                                                             GwyGraphModel *gmodel);
    GwyGraphModel*      gwy_graph_get_model                 (GwyGraph *graph);
    void                gwy_graph_set_status                (GwyGraph *graph,
                                                             GwyGraphStatusType status);
    GwyGraphStatusType  gwy_graph_get_status                (GwyGraph *graph);
    void                gwy_graph_enable_user_input         (GwyGraph *graph,
                                                             gboolean enable);
    GdkPixbuf*          gwy_graph_export_pixmap             (GwyGraph *graph,
                                                             gboolean export_title,
                                                             gboolean export_axis,
                                                             gboolean export_labels);
    GString*            gwy_graph_export_postscript         (GwyGraph *graph,
                                                             gboolean export_title,
                                                             gboolean export_axis,
                                                             gboolean export_labels,
                                                             GString *str);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkTable
                                     +----GwyGraph

## Implemented Interfaces

GwyGraph implements AtkImplementorIface and GtkBuildable.

## Properties

      "model"                    GwyGraphModel*        : Read / Write

## Description

GwyGraph is a basic widget for displaying graphs. It consists of several widgets that can also be used separately (at least in principle): GwyGraphArea forms the main part of the graph, GwyAxis is used for the axes, GwyGraphLabel represents the key and GwyGraphCorner is a dummy widget (at this moment) used for graph corners.

Persisent graph properties and data are represented with GwyGraphModel. Changes to the model are automatically reflected in the graph.

## Details

### GwyGraph

    typedef struct _GwyGraph GwyGraph;

### GwyGraphClass

    typedef struct {
        GtkTableClass parent_class;

        void (*reserved1)(void);
        void (*reserved2)(void);
        void (*reserved3)(void);
        void (*reserved4)(void);
    } GwyGraphClass;

### gwy_graph_new ()

    GtkWidget*          gwy_graph_new                       (GwyGraphModel *gmodel);

Creates graph widget based on information in model.

`gmodel` : | A graph model.
Returns : | new graph widget.

### gwy_graph_get_axis ()

    GwyAxis*            gwy_graph_get_axis                  (GwyGraph *graph,
                                                             GtkPositionType type);

Gets a graph axis.

`graph` : | A graph widget.
`type` : | Axis orientation
Returns : | The axis (of given orientation) within the graph widget.

### gwy_graph_set_axis_visible ()

    void                gwy_graph_set_axis_visible          (GwyGraph *graph,
                                                             GtkPositionType type,
                                                             gboolean is_visible);

Sets the visibility of graph axis of given orientation. Visibility can be set also directly using GwyAxis API.

`graph` : | A graph widget.
`type` : | Axis orientation
`is_visible` : | set/unset axis visibility within graph widget

### gwy_graph_get_area ()

    GtkWidget*          gwy_graph_get_area                  (GwyGraph *graph);

Gets the area widget of a graph.

`graph` : | A graph widget.
Returns : | The graph area widget within the graph.

### gwy_graph_set_model ()

    void                gwy_graph_set_model                 (GwyGraph *graph,
                                                             GwyGraphModel *gmodel);

Changes the model a graph displays.

Everything in graph widgets will be reset to reflect the new data.

`graph` : | A graph widget.
`gmodel` : | New graph model

### gwy_graph_get_model ()

    GwyGraphModel*      gwy_graph_get_model                 (GwyGraph *graph);

Gets the model of a graph.

`graph` : | A graph widget.
Returns : | The graph model this graph widget displays.

### gwy_graph_set_status ()

    void                gwy_graph_set_status                (GwyGraph *graph,
                                                             GwyGraphStatusType status);

Sets the status of a graph widget.

The status determines how the graph reacts on mouse events. This includes point or area selection and zooming.

`graph` : | A graph widget.
`status` : | graph status

### gwy_graph_get_status ()

    GwyGraphStatusType  gwy_graph_get_status                (GwyGraph *graph);

Get the status of a graph widget.

See `gwy_graph_set_status()` for more.

`graph` : | A graph widget.
Returns : | The current graph status.

### gwy_graph_enable_user_input ()

    void                gwy_graph_enable_user_input         (GwyGraph *graph,
                                                             gboolean enable);

Enables/disables all the graph/curve settings dialogs to be invoked by mouse clicks.

`graph` : | A graph widget.
`enable` : | whether to enable user input

### gwy_graph_export_pixmap ()

    GdkPixbuf*          gwy_graph_export_pixmap             (GwyGraph *graph,
                                                             gboolean export_title,
                                                             gboolean export_axis,
                                                             gboolean export_labels);

`graph` : |
`export_title` : |
`export_axis` : |
`export_labels` : |
Returns : |

### gwy_graph_export_postscript ()

    GString*            gwy_graph_export_postscript         (GwyGraph *graph,
                                                             gboolean export_title,
                                                             gboolean export_axis,
                                                             gboolean export_labels,
                                                             GString *str);

`graph` : |
`export_title` : |
`export_axis` : |
`export_labels` : |
`str` : |
Returns : |

## Property Details

### The `"model"` property

      "model"                    GwyGraphModel*        : Read / Write

The graph model of the graph. (Since: 2.7).