X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkcssimage.c;h=167af64a9117b02624ab0cfcef6d88bd49651ccb;hb=50065b7ba07fe08f5c71e42101fedf5b6e810982;hp=999c54889da1a138335569c0ec63cccb39e1b376;hpb=a67bf5fde41b2fab0a558ee7888008767c3d404f;p=~andy%2Fgtk diff --git a/gtk/gtkcssimage.c b/gtk/gtkcssimage.c index 999c54889..167af64a9 100644 --- a/gtk/gtkcssimage.c +++ b/gtk/gtkcssimage.c @@ -69,7 +69,14 @@ gtk_css_image_real_compute (GtkCssImage *image, return g_object_ref (image); } -GtkCssImage * +static gboolean +gtk_css_image_real_equal (GtkCssImage *image1, + GtkCssImage *image2) +{ + return FALSE; +} + +static GtkCssImage * gtk_css_image_real_transition (GtkCssImage *start, GtkCssImage *end, guint property_id, @@ -90,6 +97,7 @@ _gtk_css_image_class_init (GtkCssImageClass *klass) klass->get_height = gtk_css_image_real_get_height; klass->get_aspect_ratio = gtk_css_image_real_get_aspect_ratio; klass->compute = gtk_css_image_real_compute; + klass->equal = gtk_css_image_real_equal; klass->transition = gtk_css_image_real_transition; } @@ -188,6 +196,29 @@ _gtk_css_image_transition (GtkCssImage *start, return klass->transition (start, end, property_id, progress); } +gboolean +_gtk_css_image_equal (GtkCssImage *image1, + GtkCssImage *image2) +{ + GtkCssImageClass *klass; + + g_return_val_if_fail (image1 == NULL || GTK_IS_CSS_IMAGE (image1), FALSE); + g_return_val_if_fail (image2 == NULL || GTK_IS_CSS_IMAGE (image2), FALSE); + + if (image1 == image2) + return TRUE; + + if (image1 == NULL || image2 == NULL) + return FALSE; + + if (G_OBJECT_TYPE (image1) != G_OBJECT_TYPE (image2)) + return FALSE; + + klass = GTK_CSS_IMAGE_GET_CLASS (image1); + + return klass->equal (image1, image2); +} + void _gtk_css_image_draw (GtkCssImage *image, cairo_t *cr, @@ -198,6 +229,8 @@ _gtk_css_image_draw (GtkCssImage *image, g_return_if_fail (GTK_IS_CSS_IMAGE (image)); g_return_if_fail (cr != NULL); + g_return_if_fail (width > 0); + g_return_if_fail (height > 0); cairo_save (cr); @@ -375,7 +408,7 @@ _gtk_css_image_get_surface (GtkCssImage *image, return result; } -GType +static GType gtk_css_image_get_parser_type (GtkCssParser *parser) { static const struct {