diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c index a9a1fb58c..51355a32a 100644 --- a/src/st/st-theme-node.c +++ b/src/st/st-theme-node.c @@ -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); +} diff --git a/src/st/st-theme-node.h b/src/st/st-theme-node.h index fc6caa130..dabd5f544 100644 --- a/src/st/st-theme-node.h +++ b/src/st/st-theme-node.h @@ -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,