X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkcssimagevalue.c;h=dac0c2fac8cb974bf2db0c608ab02dc2afc19058;hb=d484721b5ca9e82d6422cca8a3a40f001208f87b;hp=e67e9ea51a02870bcc4739c4439695de875140dc;hpb=e597f4d6a997d0f8f4f27f50ed35a8472b406be7;p=~andy%2Fgtk diff --git a/gtk/gtkcssimagevalue.c b/gtk/gtkcssimagevalue.c index e67e9ea51..dac0c2fac 100644 --- a/gtk/gtkcssimagevalue.c +++ b/gtk/gtkcssimagevalue.c @@ -33,25 +33,53 @@ gtk_css_value_image_free (GtkCssValue *value) g_slice_free (GtkCssValue, value); } +static GtkCssValue * +gtk_css_value_image_compute (GtkCssValue *value, + guint property_id, + GtkStyleProviderPrivate *provider, + GtkCssComputedValues *values, + GtkCssComputedValues *parent_values, + GtkCssDependencies *dependencies) +{ + GtkCssImage *image, *computed; + + image = _gtk_css_image_value_get_image (value); + + if (image == NULL) + return _gtk_css_value_ref (value); + + computed = _gtk_css_image_compute (image, property_id, provider, values, parent_values, dependencies); + + if (computed == image) + { + g_object_unref (computed); + return _gtk_css_value_ref (value); + } + + return _gtk_css_image_value_new (computed); +} + static gboolean gtk_css_value_image_equal (const GtkCssValue *value1, const GtkCssValue *value2) { - return value1->image == value2->image; + return _gtk_css_image_equal (value1->image, value2->image); } static GtkCssValue * gtk_css_value_image_transition (GtkCssValue *start, GtkCssValue *end, + guint property_id, double progress) { - GtkCssImage *fade; + GtkCssImage *transition; - fade = _gtk_css_image_cross_fade_new (_gtk_css_image_value_get_image (start), - _gtk_css_image_value_get_image (end), - progress); + transition = _gtk_css_image_transition (_gtk_css_image_value_get_image (start), + _gtk_css_image_value_get_image (end), + property_id, + progress); - return _gtk_css_image_value_new (fade); + return _gtk_css_image_value_new (transition); } static void @@ -66,6 +94,7 @@ gtk_css_value_image_print (const GtkCssValue *value, static const GtkCssValueClass GTK_CSS_VALUE_IMAGE = { gtk_css_value_image_free, + gtk_css_value_image_compute, gtk_css_value_image_equal, gtk_css_value_image_transition, gtk_css_value_image_print