## st-theme-context

st-theme-context — holds global information about a tree of styled objects

## Synopsis

    StThemeContext *    st_theme_context_new                (void);
    StThemeContext *    st_theme_context_get_for_stage      (ClutterStage *stage);
    void                st_theme_context_set_theme          (StThemeContext *context,
                                                             StTheme *theme);
    StTheme *           st_theme_context_get_theme          (StThemeContext *context);
    void                st_theme_context_set_font           (StThemeContext *context,
                                                             const PangoFontDescription *font);
    const PangoFontDescription * st_theme_context_get_font  (StThemeContext *context);
    StThemeNode *       st_theme_context_get_root_node      (StThemeContext *context);
    StThemeNode *       st_theme_context_intern_node        (StThemeContext *context,
                                                             StThemeNode *node);
                        StThemeContextClass;

## Description

StThemeContext is responsible for managing information global to a tree of styled objects, such as the set of stylesheets or the default font. In normal usage, a StThemeContext is bound to a ClutterStage; a singleton StThemeContext can be obtained for a ClutterStage by using `st_theme_context_get_for_stage()`.

## Details

### st_theme_context_new ()

    StThemeContext *    st_theme_context_new                (void);

Create a new theme context not associated with any ClutterStage. This can be useful in testing scenarios, or if using StThemeContext with something other than ClutterActor objects, but you generally should use `st_theme_context_get_for_stage()` instead.

### st_theme_context_get_for_stage ()

    StThemeContext *    st_theme_context_get_for_stage      (ClutterStage *stage);

Gets a singleton theme context associated with the stage.

`stage` : | a ClutterStage
Returns : | the singleton theme context for the stage. [transfer none]

### st_theme_context_set_theme ()

    void                st_theme_context_set_theme          (StThemeContext *context,
                                                             StTheme *theme);

Sets the default set of theme stylesheets for the context. This theme will be used for the root node and for nodes descending from it, unless some other style is explicitely specified.

`context` : | a StThemeContext

### st_theme_context_get_theme ()

    StTheme *           st_theme_context_get_theme          (StThemeContext *context);

Gets the default theme for the context. See `st_theme_context_set_theme()`

`context` : | a StThemeContext
Returns : | the default theme for the context. [transfer none]

### st_theme_context_set_font ()

    void                st_theme_context_set_font           (StThemeContext *context,
                                                             const PangoFontDescription *font);

Sets the default font for the theme context. This is the font that is inherited by the root node of the tree of theme nodes. If the font is not overriden, then this font will be used. If the font is partially modified (for example, with 'font-size: 110%', then that modification is based on this font.

`context` : | a StThemeContext
`font` : | the default font for theme context

### st_theme_context_get_font ()

    const PangoFontDescription * st_theme_context_get_font  (StThemeContext *context);

Gets the default font for the theme context. See `st_theme_context_set_font()`.

`context` : | a StThemeContext
Returns : | the default font for the theme context.

### st_theme_context_get_root_node ()

    StThemeNode *       st_theme_context_get_root_node      (StThemeContext *context);

Gets the root node of the tree of theme style nodes that associated with this context. For the node tree associated with a stage, this node represents styles applied to the stage itself.

`context` : | a StThemeContext
Returns : | the root node of the context's style tree. [transfer none]

### st_theme_context_intern_node ()

    StThemeNode *       st_theme_context_intern_node        (StThemeContext *context,
                                                             StThemeNode *node);

Return an existing node matching `node`, or if that isn't possible, `node` itself.

`context` : | a StThemeContext
`node` : | a StThemeNode
Returns : | a node with the same properties as `node`. [transfer none]

### StThemeContextClass

    typedef struct _StThemeContextClass StThemeContextClass;