From 3967558bae2b0d8c7fda1d4eb24a791b468b493b Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Mon, 7 Mar 2011 12:37:58 +0900 Subject: [PATCH] Add setter function of pseudo class. --- eek/eek-theme-node.c | 19 +++++++++++++ eek/eek-theme-node.h | 67 +++++++++++++++++++++++--------------------- 2 files changed, 54 insertions(+), 32 deletions(-) diff --git a/eek/eek-theme-node.c b/eek/eek-theme-node.c index 953b0d6e..0b0742ae 100644 --- a/eek/eek-theme-node.c +++ b/eek/eek-theme-node.c @@ -273,6 +273,25 @@ eek_theme_node_get_element_class (EekThemeNode *node) 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 * eek_theme_node_get_pseudo_class (EekThemeNode *node) { diff --git a/eek/eek-theme-node.h b/eek/eek-theme-node.h index 970c32a9..777bad1b 100644 --- a/eek/eek-theme-node.h +++ b/eek/eek-theme-node.h @@ -63,51 +63,54 @@ struct _EekThemeNodeClass { GObjectClass parent_class; }; -GType eek_theme_node_get_type - (void) G_GNUC_CONST; +GType eek_theme_node_get_type + (void) G_GNUC_CONST; -EekThemeNode *eek_theme_node_new (EekThemeNode *parent_node, - /* can be null */ EekTheme *theme, - /* can be null */ GType element_type, - const char *element_id, - const char *element_class, - const char *pseudo_class, - const char *inline_style); +EekThemeNode *eek_theme_node_new (EekThemeNode *parent_node, + /* can be null */ EekTheme *theme, + /* can be null */ GType element_type, + const char *element_id, + const char *element_class, + const char *pseudo_class, + const char *inline_style); -EekThemeNode *eek_theme_node_get_parent - (EekThemeNode *node); +EekThemeNode *eek_theme_node_get_parent + (EekThemeNode *node); -EekTheme *eek_theme_node_get_theme - (EekThemeNode *node); +EekTheme *eek_theme_node_get_theme + (EekThemeNode *node); -GType eek_theme_node_get_element_type - (EekThemeNode *node); -const char *eek_theme_node_get_element_id - (EekThemeNode *node); -const char *eek_theme_node_get_element_class - (EekThemeNode *node); -const char *eek_theme_node_get_pseudo_class - (EekThemeNode *node); +GType eek_theme_node_get_element_type + (EekThemeNode *node); +const char *eek_theme_node_get_element_id + (EekThemeNode *node); +const char *eek_theme_node_get_element_class + (EekThemeNode *node); +void eek_theme_node_set_pseudo_class + (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 * reason for adding the more specific version is that we can handle the * details of the actual CSS rules, which can be complicated, especially * for fonts */ -gboolean eek_theme_node_get_color - (EekThemeNode *node, - const char *property_name, - gboolean inherit, - EekColor **color); +gboolean eek_theme_node_get_color + (EekThemeNode *node, + const char *property_name, + gboolean inherit, + EekColor **color); /* Specific getters for particular properties: cached */ -EekColor *eek_theme_node_get_background_color - (EekThemeNode *node); -EekColor *eek_theme_node_get_foreground_color - (EekThemeNode *node); -EekGradient *eek_theme_node_get_background_gradient - (EekThemeNode *node); +EekColor *eek_theme_node_get_background_color + (EekThemeNode *node); +EekColor *eek_theme_node_get_foreground_color + (EekThemeNode *node); +EekGradient *eek_theme_node_get_background_gradient + (EekThemeNode *node); G_END_DECLS