[gimp/gtk3-port: 48/227] app: port the splash to GTK+ 3.0



commit 6b1f8d4d83d20567668db5cfa6b1d3715a16b78d
Author: Michael Natterer <mitch gimp org>
Date:   Tue Oct 19 18:56:32 2010 +0200

    app: port the splash to GTK+ 3.0

 app/gui/splash.c |   32 +++++++++++---------------------
 1 files changed, 11 insertions(+), 21 deletions(-)
---
diff --git a/app/gui/splash.c b/app/gui/splash.c
index 5481947..35a2e56 100644
--- a/app/gui/splash.c
+++ b/app/gui/splash.c
@@ -68,14 +68,14 @@ static void        splash_position_layouts    (GimpSplash     *splash,
                                                const gchar    *text1,
                                                const gchar    *text2,
                                                GdkRectangle   *area);
-static gboolean    splash_area_expose         (GtkWidget      *widget,
-                                               GdkEventExpose *event,
+static gboolean    splash_area_draw           (GtkWidget      *widget,
+                                               cairo_t        *cr,
                                                GimpSplash     *splash);
 static void        splash_rectangle_union     (GdkRectangle   *dest,
                                                PangoRectangle *pango_rect,
                                                gint            offset_x,
                                                gint            offset_y);
-static gboolean    splash_average_text_area   (GimpSplash     *splash,
+static void        splash_average_text_area   (GimpSplash     *splash,
                                                GdkPixbuf      *pixbuf,
                                                GdkColor       *color);
 
@@ -159,8 +159,8 @@ splash_create (gboolean be_verbose)
 
   g_object_unref (pixbuf);
 
-  g_signal_connect_after (splash->area, "expose-event",
-                         G_CALLBACK (splash_area_expose),
+  g_signal_connect_after (splash->area, "draw",
+                         G_CALLBACK (splash_area_draw),
                          splash);
 
   /*  add a progress bar  */
@@ -230,15 +230,10 @@ splash_update (const gchar *text1,
 /*  private functions  */
 
 static gboolean
-splash_area_expose (GtkWidget      *widget,
-                    GdkEventExpose *event,
-                    GimpSplash     *splash)
+splash_area_draw (GtkWidget  *widget,
+                  cairo_t    *cr,
+                  GimpSplash *splash)
 {
-  cairo_t *cr = gdk_cairo_create (event->window);
-
-  gdk_cairo_region (cr, event->region);
-  cairo_clip (cr);
-
   gdk_cairo_set_source_color (cr, &splash->color);
 
   cairo_move_to (cr, splash->upper_x, splash->upper_y);
@@ -247,8 +242,6 @@ splash_area_expose (GtkWidget      *widget,
   cairo_move_to (cr, splash->lower_x, splash->lower_y);
   pango_cairo_show_layout (cr, splash->lower);
 
-  cairo_destroy (cr);
-
   return FALSE;
 }
 
@@ -319,7 +312,7 @@ splash_rectangle_union (GdkRectangle   *dest,
 /* This function chooses a gray value for the text color, based on
  * the average luminance of the text area of the splash image.
  */
-static gboolean
+static void
 splash_average_text_area (GimpSplash *splash,
                           GdkPixbuf  *pixbuf,
                           GdkColor   *color)
@@ -332,8 +325,8 @@ splash_average_text_area (GimpSplash *splash,
   GdkRectangle  image     = { 0, 0, 0, 0 };
   GdkRectangle  area      = { 0, 0, 0, 0 };
 
-  g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), FALSE);
-  g_return_val_if_fail (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8, FALSE);
+  g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+  g_return_if_fail (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8);
 
   image.width  = gdk_pixbuf_get_width (pixbuf);
   image.height = gdk_pixbuf_get_height (pixbuf);
@@ -378,9 +371,6 @@ splash_average_text_area (GimpSplash *splash,
     }
 
   color->red = color->green = color->blue = (luminance << 8 | luminance);
-
-  return gdk_colormap_alloc_color (gtk_widget_get_colormap (splash->area),
-                                   color, FALSE, TRUE);
 }
 
 static GdkPixbufAnimation *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]