gimp r25236 - in trunk: . app/display
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r25236 - in trunk: . app/display
- Date: Wed, 26 Mar 2008 13:08:32 +0000 (GMT)
Author: mitch
Date: Wed Mar 26 13:08:31 2008
New Revision: 25236
URL: http://svn.gnome.org/viewvc/gimp?rev=25236&view=rev
Log:
2008-03-26  Michael Natterer  <mitch gimp org>
	* app/display/gimpcanvas.c (gimp_canvas_draw_drop_zone): add
	wilber image to figure the proper scale behavior. Proper image
	still missing :)
Modified:
   trunk/ChangeLog
   trunk/app/display/gimpcanvas.c
Modified: trunk/app/display/gimpcanvas.c
==============================================================================
--- trunk/app/display/gimpcanvas.c	(original)
+++ trunk/app/display/gimpcanvas.c	Wed Mar 26 13:08:31 2008
@@ -21,6 +21,7 @@
 #include <gtk/gtk.h>
 
 #include "libgimpcolor/gimpcolor.h"
+#include "libgimpwidgets/gimpwidgets.h"
 
 #include "display-types.h"
 
@@ -871,6 +872,39 @@
                          opacity);
 
   pango_cairo_show_layout (cr, canvas->drop_zone_layout);
+
+  cairo_scale (cr, 1.0 / factor, 1.0 / factor);
+
+  {
+    GdkPixbuf *pixbuf = gtk_widget_render_icon (GTK_WIDGET (canvas),
+                                                GIMP_STOCK_WILBER,
+                                                GTK_ICON_SIZE_DIALOG,
+                                                NULL);
+    gint wilber_width  = gdk_pixbuf_get_width  (pixbuf) / 2;
+    gint wilber_height = gdk_pixbuf_get_height (pixbuf) / 2;
+    gint wilber_x;
+    gint wilber_y;
+
+    width  = MAX (wilber_width,  widget->allocation.width);
+    height = MAX (wilber_height, widget->allocation.height);
+
+    factor = 0.5 * MIN ((gdouble) width  / wilber_width,
+                        (gdouble) height / wilber_height);
+
+    cairo_scale (cr, factor, factor);
+
+    /*  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, pixbuf, wilber_x, wilber_y);
+    cairo_rectangle (cr,
+                     wilber_x, wilber_y,
+                     wilber_width * 2, wilber_height * 2);
+    cairo_fill (cr);
+  }
 }
 
 /**
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]