## GogTheme

GogTheme

## Synopsis

    #define             GOG_TYPE_THEME
    #define             GOG_THEME                           (o)
    #define             GOG_IS_THEME                        (o)
                        GogTheme;
    GType               gog_theme_get_type                  (void);
    GogTheme*           gog_theme_new                       (char const *name);
    GogTheme*           gog_theme_new_from_file             (char const *name,
                                                             char const *file);
    charconst *         gog_theme_get_name                  (GogTheme const *theme);
    void                gog_theme_fillin_style              (GogTheme const *theme,
                                                             GOStyle *style,
                                                             GogObject const *obj,
                                                             int ind,
                                                             GOStyleFlag relevant_fields);
    void                gog_theme_registry_add              (GogTheme *theme,
                                                             gboolean is_default);
    GogTheme*           gog_theme_registry_lookup           (char const *name);
    GSList*             gog_theme_registry_get_theme_names  (void);

## Object Hierarchy

      GObject
       +----GogTheme

## Description

## Details

### GOG_TYPE_THEME

    #define GOG_TYPE_THEME	(gog_theme_get_type ())

### GOG_THEME()

    #define GOG_THEME(o)	(G_TYPE_CHECK_INSTANCE_CAST ((o), GOG_TYPE_THEME, GogTheme))

`o` : |

### GOG_IS_THEME()

    #define GOG_IS_THEME(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GOG_TYPE_THEME))

`o` : |

### GogTheme

    typedef struct _GogTheme GogTheme;

### gog_theme_get_type ()

    GType               gog_theme_get_type                  (void);

Returns : |

### gog_theme_new ()

    GogTheme*           gog_theme_new                       (char const *name);

`name` : |
Returns : |

### gog_theme_new_from_file ()

    GogTheme*           gog_theme_new_from_file             (char const *name,
                                                             char const *file);

`name` : |
`file` : |
Returns : |

### gog_theme_get_name ()

    charconst *         gog_theme_get_name                  (GogTheme const *theme);

`theme` : |
Returns : |

### gog_theme_fillin_style ()

    void                gog_theme_fillin_style              (GogTheme const *theme,
                                                             GOStyle *style,
                                                             GogObject const *obj,
                                                             int ind,
                                                             GOStyleFlag relevant_fields);

Fill in the auto aspects of `style` based on `theme` 's element for objects of type/role similar to `obj` with index `ind`. If `relevant_fields` is GO_STYLE_ALL, fillin the entire style, not just the auto portions included in `relevant_fields`.

`theme` : | GogTheme
`style` : | GOStyle to initialize
`obj` : | GogObject The object associated with `style`
`ind` : | an optional index
`relevant_fields` : | GOStyleFlag

### gog_theme_registry_add ()

    void                gog_theme_registry_add              (GogTheme *theme,
                                                             gboolean is_default);

Keep a pointer to `theme` in graph theme registry. This function does not add a reference to `theme`.

`theme` : | a GogTheme
`is_default` : | bool

### gog_theme_registry_lookup ()

    GogTheme*           gog_theme_registry_lookup           (char const *name);

`name` : | a theme name
Returns : | a GogTheme from theme registry.

### gog_theme_registry_get_theme_names ()

    GSList*             gog_theme_registry_get_theme_names  (void);

Returns : | a newly allocated theme name list from theme registry.