## Families and types

Families and types

## Synopsis

                        GogPlotFamily;
                        GogPlotType;
                        GogTrendLineType;
    GHashTable const *  gog_plot_families                   (void);
    GogPlotFamily *     gog_plot_family_by_name             (char const *name);
    GogPlotFamily *     gog_plot_family_register            (char const *name,
                                                             char const *sample_image_file,
                                                             int priority,
                                                             GogAxisSet axis_set);
    void                gog_plot_family_unregister          (GogPlotFamily *family);
    GogPlotType *       gog_plot_type_register              (GogPlotFamily *family,
                                                             int col,
                                                             int row,
                                                             char const *name,
                                                             char const *sample_image_file,
                                                             char const *description,
                                                             char const *engine);
    GHashTable const *  gog_trend_line_types                (void);

## Description

## Details

### GogPlotFamily

    typedef struct {
    	char *name, *sample_image_file;
    	int priority;

    	GogAxisSet	 axis_set;

    	GHashTable *types;
    } GogPlotFamily;

Plot types family.

char *`name`; | family name.
char *`sample_image_file`; | sample image for the graph editor.
int `priority`; | priority.
GogAxisSet `axis_set`; | GogAxisSet used.
GHashTable *`types`; | known types in the family.

### GogPlotType

    typedef struct {
    	GogPlotFamily 	*family;
    	char 		*engine;

    	char 		*name, *sample_image_file;
    	char 		*description; /* untranslated */
    	int 		 col, row;

    	GHashTable 	*properties;
    } GogPlotType;

GogPlotFamily *`family`; | plot family.
char *`engine`; | plot engine.
char *`name`; | plot type name.
char *`sample_image_file`; | sample image for the graph editor.
char *`description`; | untranslated description.
int `col`; | column where the plot type appears in the table inside the graph editor.
int `row`; | row.
GHashTable *`properties`; | plot type properties.

### GogTrendLineType

    typedef struct {
    	char *engine;

    	char *name;
    	char *description; /* untranslated */

    	GHashTable *properties;
    } GogTrendLineType;

char *`engine`; | trend line engine.
char *`name`; | trend line type name.
char *`description`; | untranslated description.
GHashTable *`properties`; | trend line type properties.

### gog_plot_families ()

    GHashTable const *  gog_plot_families                   (void);

Returns : | the registered plot families. [transfer none]

### gog_plot_family_by_name ()

    GogPlotFamily *     gog_plot_family_by_name             (char const *name);

`name` : | family name
Returns : | the plot family if it exists.

### gog_plot_family_register ()

    GogPlotFamily *     gog_plot_family_register            (char const *name,
                                                             char const *sample_image_file,
                                                             int priority,
                                                             GogAxisSet axis_set);

`name` : | family name
`sample_image_file` : | the sample image file name.
`axis_set` : | the used axis set.
Returns : | the new GogPlotFamily.

### gog_plot_family_unregister ()

    void                gog_plot_family_unregister          (GogPlotFamily *family);

### gog_plot_type_register ()

    GogPlotType *       gog_plot_type_register              (GogPlotFamily *family,
                                                             int col,
                                                             int row,
                                                             char const *name,
                                                             char const *sample_image_file,
                                                             char const *description,
                                                             char const *engine);

`family` : | GogPlotFamily
`col` : | the column where the sample should appear.
`row` : | the row where the sample should appear.
`name` : | the plot type name.
`sample_image_file` : | the sample image file name.
`description` : | the plot type description.
`engine` : | the plot engine name.
Returns : | the new GogPlotType.

### gog_trend_line_types ()

    GHashTable const *  gog_trend_line_types                (void);

Returns : | the registered trend line types. [transfer none]