st-theme-node: Add a to_string function for debugging purposes

https://bugzilla.gnome.org/show_bug.cgi?id=697274
This commit is contained in:
Jasper St. Pierre 2013-04-04 21:43:42 -04:00
parent a2fcbb7e65
commit 53c609c278
2 changed files with 29 additions and 0 deletions

View File

@ -3894,3 +3894,30 @@ st_theme_node_paint_equal (StThemeNode *node,
return TRUE;
}
gchar *
st_theme_node_to_string (StThemeNode *node)
{
GString *desc;
gchar **it;
if (!node)
return g_strdup ("[null]");
desc = g_string_new (NULL);
g_string_append_printf (desc,
"[%p %s#%s",
node,
g_type_name (node->element_type),
node->element_id);
for (it = node->element_classes; it && *it; it++)
g_string_append_printf (desc, ".%s", *it);
for (it = node->pseudo_classes; it && *it; it++)
g_string_append_printf (desc, ":%s", *it);
g_string_append_c (desc, ']');
return g_string_free (desc, FALSE);
}

View File

@ -271,6 +271,8 @@ void st_theme_node_paint (StThemeNode *node,
void st_theme_node_invalidate_background_image (StThemeNode *node);
void st_theme_node_invalidate_border_image (StThemeNode *node);
gchar * st_theme_node_to_string (StThemeNode *node);
void st_theme_node_paint_state_init (StThemeNodePaintState *state);
void st_theme_node_paint_state_free (StThemeNodePaintState *state);
void st_theme_node_paint_state_copy (StThemeNodePaintState *state,