gimp r26110 - in trunk: . app/display



Author: martinn
Date: Thu Jul 10 19:23:22 2008
New Revision: 26110
URL: http://svn.gnome.org/viewvc/gimp?rev=26110&view=rev

Log:
2008-07-10  Martin Nordholts  <martinn svn gnome org>

	* app/display/gimpdisplayshell-scroll.[ch]: Make
	gimp_display_shell_scroll() a sane public interface for scrolling
	and call the old version gimp_display_shell_scroll_private()

	* app/display/gimpnavigationeditor.c: Adapt to the saner version
	of gimp_display_shell_scroll()

	* app/display/gimpdisplayshell-callbacks.c: 
	* app/display/gimpdisplayshell-autoscroll.c: Use the private
	version of gimp_display_shell_scroll()

	* app/display/Makefile.am: Added gimpdisplayshell-private.h


Modified:
   trunk/ChangeLog
   trunk/app/display/Makefile.am
   trunk/app/display/gimpdisplayshell-autoscroll.c
   trunk/app/display/gimpdisplayshell-callbacks.c
   trunk/app/display/gimpdisplayshell-scroll.c
   trunk/app/display/gimpdisplayshell-scroll.h
   trunk/app/display/gimpnavigationeditor.c

Modified: trunk/app/display/Makefile.am
==============================================================================
--- trunk/app/display/Makefile.am	(original)
+++ trunk/app/display/Makefile.am	Thu Jul 10 19:23:22 2008
@@ -45,6 +45,7 @@
 	gimpdisplayshell-icon.h			\
 	gimpdisplayshell-preview.c		\
 	gimpdisplayshell-preview.h		\
+	gimpdisplayshell-private.h		\
 	gimpdisplayshell-progress.c		\
 	gimpdisplayshell-progress.h		\
 	gimpdisplayshell-render.c		\

Modified: trunk/app/display/gimpdisplayshell-autoscroll.c
==============================================================================
--- trunk/app/display/gimpdisplayshell-autoscroll.c	(original)
+++ trunk/app/display/gimpdisplayshell-autoscroll.c	Thu Jul 10 19:23:22 2008
@@ -26,6 +26,7 @@
 #include "gimpdisplayshell.h"
 #include "gimpdisplayshell-autoscroll.h"
 #include "gimpdisplayshell-coords.h"
+#include "gimpdisplayshell-private.h"
 #include "gimpdisplayshell-scroll.h"
 #include "gimpdisplayshell-transform.h"
 
@@ -135,9 +136,9 @@
 
       info->time += AUTOSCROLL_DT;
 
-      gimp_display_shell_scroll (shell,
-                                 AUTOSCROLL_DX * (gdouble) dx,
-                                 AUTOSCROLL_DX * (gdouble) dy);
+      gimp_display_shell_scroll_private (shell,
+                                         AUTOSCROLL_DX * (gdouble) dx,
+                                         AUTOSCROLL_DX * (gdouble) dy);
 
       gimp_display_shell_untransform_coordinate (shell,
                                                  &device_coords,

Modified: trunk/app/display/gimpdisplayshell-callbacks.c
==============================================================================
--- trunk/app/display/gimpdisplayshell-callbacks.c	(original)
+++ trunk/app/display/gimpdisplayshell-callbacks.c	Thu Jul 10 19:23:22 2008
@@ -67,6 +67,7 @@
 #include "gimpdisplayshell-draw.h"
 #include "gimpdisplayshell-layer-select.h"
 #include "gimpdisplayshell-preview.h"
+#include "gimpdisplayshell-private.h"
 #include "gimpdisplayshell-scale.h"
 #include "gimpdisplayshell-scroll.h"
 #include "gimpdisplayshell-selection.h"
@@ -1093,11 +1094,11 @@
 
         if (shell->scrolling)
           {
-            gimp_display_shell_scroll (shell,
-                                       (shell->scroll_start_x - mevent->x -
-                                        shell->offset_x),
-                                       (shell->scroll_start_y - mevent->y -
-                                        shell->offset_y));
+            gimp_display_shell_scroll_private (shell,
+                                               (shell->scroll_start_x - mevent->x -
+                                                shell->offset_x),
+                                               (shell->scroll_start_y - mevent->y -
+                                                shell->offset_y));
           }
         else if (state & GDK_BUTTON1_MASK)
           {
@@ -1648,20 +1649,20 @@
 gimp_display_shell_vscrollbar_update (GtkAdjustment    *adjustment,
                                       GimpDisplayShell *shell)
 {
-  gimp_display_shell_scroll (shell,
-                             0,
-                             gtk_adjustment_get_value (adjustment) -
-                             shell->offset_y);
+  gimp_display_shell_scroll_private (shell,
+                                     0,
+                                     gtk_adjustment_get_value (adjustment) -
+                                     shell->offset_y);
 }
 
 static void
 gimp_display_shell_hscrollbar_update (GtkAdjustment    *adjustment,
                                       GimpDisplayShell *shell)
 {
-  gimp_display_shell_scroll (shell,
-                             gtk_adjustment_get_value (adjustment) -
-                             shell->offset_x,
-                             0);
+  gimp_display_shell_scroll_private (shell,
+                                     gtk_adjustment_get_value (adjustment) -
+                                     shell->offset_x,
+                                     0);
 }
 
 static GdkModifierType

Modified: trunk/app/display/gimpdisplayshell-scroll.c
==============================================================================
--- trunk/app/display/gimpdisplayshell-scroll.c	(original)
+++ trunk/app/display/gimpdisplayshell-scroll.c	Thu Jul 10 19:23:22 2008
@@ -31,14 +31,40 @@
 #include "gimpdisplay.h"
 #include "gimpdisplay-foreach.h"
 #include "gimpdisplayshell.h"
+#include "gimpdisplayshell-private.h"
 #include "gimpdisplayshell-scale.h"
 #include "gimpdisplayshell-scroll.h"
 
 
+/**
+ * gimp_display_shell_scroll:
+ * @shell:
+ * @x_offset_into_image: In image coordinates.
+ * @y_offset_into_image:
+ *
+ * When the viewport is smaller than the image, offset the viewport to
+ * the specified amount into the image.
+ *
+ * TODO: Behave in a sane way when zoomed out.
+ *
+ **/
+void gimp_display_shell_scroll (GimpDisplayShell *shell,
+                                gdouble           x_offset_into_image,
+                                gdouble           y_offset_into_image)
+{
+  gint x_offset;
+  gint y_offset;
+
+  x_offset = RINT (x_offset_into_image * shell->scale_x - shell->offset_x);
+  y_offset = RINT (y_offset_into_image * shell->scale_y - shell->offset_y);
+
+  gimp_display_shell_scroll_private (shell, x_offset, y_offset);
+}
+
 void
-gimp_display_shell_scroll (GimpDisplayShell *shell,
-                           gint              x_offset,
-                           gint              y_offset)
+gimp_display_shell_scroll_private (GimpDisplayShell *shell,
+                                   gint              x_offset,
+                                   gint              y_offset)
 {
   gint old_x;
   gint old_y;

Modified: trunk/app/display/gimpdisplayshell-scroll.h
==============================================================================
--- trunk/app/display/gimpdisplayshell-scroll.h	(original)
+++ trunk/app/display/gimpdisplayshell-scroll.h	Thu Jul 10 19:23:22 2008
@@ -21,8 +21,8 @@
 
 
 void       gimp_display_shell_scroll               (GimpDisplayShell *shell,
-                                                    gint              x_offset,
-                                                    gint              y_offset);
+                                                    gdouble           x_offset_into_image,
+                                                    gdouble           y_offset_into_image);
 
 void       gimp_display_shell_scroll_clamp_offsets (GimpDisplayShell *shell);
 

Modified: trunk/app/display/gimpnavigationeditor.c
==============================================================================
--- trunk/app/display/gimpnavigationeditor.c	(original)
+++ trunk/app/display/gimpnavigationeditor.c	Thu Jul 10 19:23:22 2008
@@ -497,9 +497,7 @@
     {
       GimpDisplayShell *shell = editor->shell;
 
-      gimp_display_shell_scroll (shell,
-                                 RINT (x * shell->scale_x - shell->offset_x),
-                                 RINT (y * shell->scale_y - shell->offset_y));
+      gimp_display_shell_scroll (shell, x, y);
     }
 }
 



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