Add setter function of pseudo class.

This commit is contained in:
Daiki Ueno
2011-03-07 12:37:58 +09:00
parent 668ce51f3c
commit 3967558bae
2 changed files with 54 additions and 32 deletions

View File

@ -273,6 +273,25 @@ eek_theme_node_get_element_class (EekThemeNode *node)
return priv->element_class; return priv->element_class;
} }
void
eek_theme_node_set_pseudo_class (EekThemeNode *node,
const gchar *pseudo_class)
{
EekThemeNodePrivate *priv;
g_return_if_fail (EEK_IS_THEME_NODE (node));
priv = EEK_THEME_NODE_GET_PRIVATE(node);
if (g_strcmp0 (pseudo_class, priv->pseudo_class)) {
g_free (priv->pseudo_class);
priv->pseudo_class = g_strdup (pseudo_class);
priv->properties_computed = 0;
priv->background_computed = 0;
priv->foreground_computed = 0;
}
}
const char * const char *
eek_theme_node_get_pseudo_class (EekThemeNode *node) eek_theme_node_get_pseudo_class (EekThemeNode *node)
{ {

View File

@ -63,51 +63,54 @@ struct _EekThemeNodeClass {
GObjectClass parent_class; GObjectClass parent_class;
}; };
GType eek_theme_node_get_type GType eek_theme_node_get_type
(void) G_GNUC_CONST; (void) G_GNUC_CONST;
EekThemeNode *eek_theme_node_new (EekThemeNode *parent_node, EekThemeNode *eek_theme_node_new (EekThemeNode *parent_node,
/* can be null */ EekTheme *theme, /* can be null */ EekTheme *theme,
/* can be null */ GType element_type, /* can be null */ GType element_type,
const char *element_id, const char *element_id,
const char *element_class, const char *element_class,
const char *pseudo_class, const char *pseudo_class,
const char *inline_style); const char *inline_style);
EekThemeNode *eek_theme_node_get_parent EekThemeNode *eek_theme_node_get_parent
(EekThemeNode *node); (EekThemeNode *node);
EekTheme *eek_theme_node_get_theme EekTheme *eek_theme_node_get_theme
(EekThemeNode *node); (EekThemeNode *node);
GType eek_theme_node_get_element_type GType eek_theme_node_get_element_type
(EekThemeNode *node); (EekThemeNode *node);
const char *eek_theme_node_get_element_id const char *eek_theme_node_get_element_id
(EekThemeNode *node); (EekThemeNode *node);
const char *eek_theme_node_get_element_class const char *eek_theme_node_get_element_class
(EekThemeNode *node); (EekThemeNode *node);
const char *eek_theme_node_get_pseudo_class void eek_theme_node_set_pseudo_class
(EekThemeNode *node); (EekThemeNode *node,
const gchar *pseudo_class);
const char *eek_theme_node_get_pseudo_class
(EekThemeNode *node);
/* Generic getters ... these are not cached so are less efficient. The other /* Generic getters ... these are not cached so are less efficient. The other
* reason for adding the more specific version is that we can handle the * reason for adding the more specific version is that we can handle the
* details of the actual CSS rules, which can be complicated, especially * details of the actual CSS rules, which can be complicated, especially
* for fonts * for fonts
*/ */
gboolean eek_theme_node_get_color gboolean eek_theme_node_get_color
(EekThemeNode *node, (EekThemeNode *node,
const char *property_name, const char *property_name,
gboolean inherit, gboolean inherit,
EekColor **color); EekColor **color);
/* Specific getters for particular properties: cached /* Specific getters for particular properties: cached
*/ */
EekColor *eek_theme_node_get_background_color EekColor *eek_theme_node_get_background_color
(EekThemeNode *node); (EekThemeNode *node);
EekColor *eek_theme_node_get_foreground_color EekColor *eek_theme_node_get_foreground_color
(EekThemeNode *node); (EekThemeNode *node);
EekGradient *eek_theme_node_get_background_gradient EekGradient *eek_theme_node_get_background_gradient
(EekThemeNode *node); (EekThemeNode *node);
G_END_DECLS G_END_DECLS