cssstylechange: Add helper function to print change

So I don't have to print both styles to the console, paste them both
into a file and then run diff on the 2 files anymore.
This commit is contained in:
Timm Bäder 2016-02-05 10:28:13 +01:00
parent 2902063f24
commit d3a0dfe81a
2 changed files with 46 additions and 0 deletions

View File

@ -110,3 +110,47 @@ gtk_css_style_change_changes_property (GtkCssStyleChange *change,
return _gtk_bitmask_get (change->changes, id);
}
void
gtk_css_style_change_print (GtkCssStyleChange *change,
GString *string)
{
int i;
GtkCssStyle *old = gtk_css_style_change_get_old_style (change);
GtkCssStyle *new = gtk_css_style_change_get_new_style (change);
for (i = 0; i < GTK_CSS_PROPERTY_N_PROPERTIES; i ++)
{
if (gtk_css_style_change_changes_property (change, i))
{
GtkCssStyleProperty *prop;
GtkCssValue *value;
const char *name;
prop = _gtk_css_style_property_lookup_by_id (i);
name = _gtk_style_property_get_name (GTK_STYLE_PROPERTY (prop));
value = gtk_css_style_get_value (old, i);
_gtk_css_value_print (value, string);
g_string_append_printf (string, "%s: ", name);
_gtk_css_value_print (value, string);
g_string_append (string, "\n");
g_string_append_printf (string, "%s: ", name);
value = gtk_css_style_get_value (new, i);
_gtk_css_value_print (value, string);
g_string_append (string, "\n");
}
}
}
char *
gtk_css_style_change_to_string (GtkCssStyleChange *change)
{
GString *string = g_string_new ("");
gtk_css_style_change_print (change, string);
return g_string_free (string, FALSE);
}

View File

@ -47,7 +47,9 @@ gboolean gtk_css_style_change_affects (GtkCssStyleChange
GtkCssAffects affects);
gboolean gtk_css_style_change_changes_property (GtkCssStyleChange *change,
guint id);
void gtk_css_style_change_print (GtkCssStyleChange *change, GString *string);
char * gtk_css_style_change_to_string (GtkCssStyleChange *change);
G_END_DECLS
#endif /* __GTK_CSS_STYLE_CHANGE_PRIVATE_H__ */