diff --git a/gtk/gtkcsscomputedvalues.c b/gtk/gtkcsscomputedvalues.c index 6f7d368b6b..52d6e5e7b3 100644 --- a/gtk/gtkcsscomputedvalues.c +++ b/gtk/gtkcsscomputedvalues.c @@ -28,6 +28,7 @@ #include "gtkcssinheritvalueprivate.h" #include "gtkcssinitialvalueprivate.h" #include "gtkcssnumbervalueprivate.h" +#include "gtkcsssectionprivate.h" #include "gtkcssshorthandpropertyprivate.h" #include "gtkcssstringvalueprivate.h" #include "gtkcssstylepropertyprivate.h" @@ -627,3 +628,43 @@ _gtk_css_computed_values_compute_dependencies (GtkCssComputedValues *values, return changes; } +void +gtk_css_computed_values_print (GtkCssComputedValues *values, + GString *string) +{ + guint i; + + g_return_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values)); + g_return_if_fail (string != NULL); + + for (i = 0; i < _gtk_css_style_property_get_n_properties (); i++) + { + GtkCssSection *section = _gtk_css_computed_values_get_section (values, i); + g_string_append (string, _gtk_style_property_get_name (GTK_STYLE_PROPERTY (_gtk_css_style_property_lookup_by_id (i)))); + g_string_append (string, ": "); + _gtk_css_value_print (_gtk_css_computed_values_get_value (values, i), string); + g_string_append (string, ";"); + if (section) + { + g_string_append (string, " /* "); + _gtk_css_section_print (section, string); + g_string_append (string, " */"); + } + g_string_append (string, "\n"); + } +} + +char * +gtk_css_computed_values_to_string (GtkCssComputedValues *values) +{ + GString *string; + + g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL); + + string = g_string_new (""); + + gtk_css_computed_values_print (values, string); + + return g_string_free (string, FALSE); +} + diff --git a/gtk/gtkcsscomputedvaluesprivate.h b/gtk/gtkcsscomputedvaluesprivate.h index f70d39736a..059caee845 100644 --- a/gtk/gtkcsscomputedvaluesprivate.h +++ b/gtk/gtkcsscomputedvaluesprivate.h @@ -102,6 +102,10 @@ GtkBitmask * _gtk_css_computed_values_advance (GtkCssCom void _gtk_css_computed_values_cancel_animations (GtkCssComputedValues *values); gboolean _gtk_css_computed_values_is_static (GtkCssComputedValues *values); +char * gtk_css_computed_values_to_string (GtkCssComputedValues *values); +void gtk_css_computed_values_print (GtkCssComputedValues *values, + GString *string); + G_END_DECLS #endif /* __GTK_CSS_COMPUTED_VALUES_PRIVATE_H__ */