gimp r25242 - in trunk: . app/display data/images



Author: neo
Date: Wed Mar 26 14:08:45 2008
New Revision: 25242
URL: http://svn.gnome.org/viewvc/gimp?rev=25242&view=rev

Log:
2008-03-26  Sven Neumann  <sven gimp org>

	* data/images/Makefile.am: install wilber.png.

	* app/display/gimpcanvas.c (gimp_canvas_draw_drop_zone): try to
	load "wilber.png" from $prefix/share/gimp/2.0/images.

	* app/display/gimpdisplayshell.c (gimp_display_shell_new):
	improved tooltip.


Modified:
   trunk/ChangeLog
   trunk/app/display/gimpcanvas.c
   trunk/app/display/gimpdisplayshell.c
   trunk/data/images/Makefile.am

Modified: trunk/app/display/gimpcanvas.c
==============================================================================
--- trunk/app/display/gimpcanvas.c	(original)
+++ trunk/app/display/gimpcanvas.c	Wed Mar 26 14:08:45 2008
@@ -20,6 +20,7 @@
 
 #include <gtk/gtk.h>
 
+#include "libgimpbase/gimpbase.h"
 #include "libgimpcolor/gimpcolor.h"
 #include "libgimpwidgets/gimpwidgets.h"
 
@@ -822,12 +823,36 @@
                                 rgb_buf, rowstride, xdith, ydith);
 }
 
+static GdkPixbuf *
+gimp_canvas_drop_zone_image_load (GtkWidget *widget)
+{
+  GdkPixbuf *pixbuf;
+  gchar     *filename;
+
+  filename = g_build_filename (gimp_data_directory (), "images", "wilber.png",
+                               NULL);
+
+  pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
+  g_free (filename);
+
+  if (! pixbuf)
+    {
+      pixbuf = gtk_widget_render_icon (widget,
+                                       GIMP_STOCK_WILBER,
+                                       GTK_ICON_SIZE_DIALOG,
+                                       NULL);
+    }
+
+  return pixbuf;
+}
+
 void
 gimp_canvas_draw_drop_zone (GimpCanvas *canvas,
                             cairo_t    *cr)
 {
+  static cairo_surface_t *wilber = NULL;
+
   GtkWidget *widget = GTK_WIDGET (canvas);
-  GdkPixbuf *wilber;
   gint       wilber_width;
   gint       wilber_height;
   gint       wilber_x;
@@ -837,13 +862,16 @@
   gint       side;
   gdouble    factor;
 
-  wilber = gtk_widget_render_icon (widget,
-                                   GIMP_STOCK_WILBER,
-                                   GTK_ICON_SIZE_DIALOG,
-                                   NULL);
+  if (! wilber)
+    {
+      GdkPixbuf *pixbuf = gimp_canvas_drop_zone_image_load (widget);
 
-  wilber_width  = gdk_pixbuf_get_width  (wilber) / 2;
-  wilber_height = gdk_pixbuf_get_height (wilber) / 2;
+      wilber = gimp_cairo_surface_create_from_pixbuf (pixbuf);
+      g_object_unref (pixbuf);
+    }
+
+  wilber_width  = cairo_image_surface_get_width (wilber) / 2;
+  wilber_height = cairo_image_surface_get_width (wilber) / 2;
 
   side = MIN (MIN (widget->allocation.width,
                    widget->allocation.height),
@@ -858,19 +886,16 @@
 
   cairo_scale (cr, factor, factor);
 
-  /*  magic factors depend on the image used, everything else is
-   *  generic
+  /*  magic factors depend on the image used, everything else is generic
    */
   wilber_x = -wilber_width * 0.6;
   wilber_y = widget->allocation.height / factor - wilber_height * 1.1;
 
-  gdk_cairo_set_source_pixbuf (cr, wilber, wilber_x, wilber_y);
+  cairo_set_source_surface (cr, wilber, wilber_x, wilber_y);
   cairo_rectangle (cr,
                    wilber_x, wilber_y,
                    wilber_width * 2, wilber_height * 2);
   cairo_fill (cr);
-
-  g_object_unref (wilber);
 }
 
 /**

Modified: trunk/app/display/gimpdisplayshell.c
==============================================================================
--- trunk/app/display/gimpdisplayshell.c	(original)
+++ trunk/app/display/gimpdisplayshell.c	Wed Mar 26 14:08:45 2008
@@ -1202,7 +1202,8 @@
       gimp_dialog_factory_add_foreign (display_factory,
                                        "gimp-empty-image-window",
                                        GTK_WIDGET (shell));
-      gimp_help_set_help_data (shell->canvas, _("Drop files to open them."),
+      gimp_help_set_help_data (shell->canvas,
+                               _("Drop image files here to open them."),
                                NULL);
     }
 

Modified: trunk/data/images/Makefile.am
==============================================================================
--- trunk/data/images/Makefile.am	(original)
+++ trunk/data/images/Makefile.am	Wed Mar 26 14:08:45 2008
@@ -3,7 +3,8 @@
 imagedatadir = $(gimpdatadir)/images
 
 imagedata_DATA = \
-	gimp-logo.png		\
-	gimp-splash.png
+	gimp-logo.png	\
+	gimp-splash.png	\
+	wilber.png
 
 EXTRA_DIST = $(imagedata_DATA)



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