gimp r25124 - in trunk: . app/display app/gui



Author: mitch
Date: Wed Mar 19 16:15:50 2008
New Revision: 25124
URL: http://svn.gnome.org/viewvc/gimp?rev=25124&view=rev

Log:
2008-03-19  Michael Natterer  <mitch gimp org>

	* app/display/gimpdisplay.[ch]: add gimp_display_empty()/fill()
	which turns it into an empty display and back.

	* app/display/gimpdisplayshell.[ch]: add same api here.

	* app/display/gimpdisplayshell-close.c
	* app/gui/gui-vtable.c: use the new functions instead of having
	the code here.

	* app/display/gimpdisplayshell-selection.c
	(gimp_display_shell_selection_control): stop the timeout and free
	the segments when this function is called on an empty display.



Modified:
   trunk/ChangeLog
   trunk/app/display/gimpdisplay.c
   trunk/app/display/gimpdisplay.h
   trunk/app/display/gimpdisplayshell-close.c
   trunk/app/display/gimpdisplayshell-selection.c
   trunk/app/display/gimpdisplayshell.c
   trunk/app/display/gimpdisplayshell.h
   trunk/app/gui/gui-vtable.c

Modified: trunk/app/display/gimpdisplay.c
==============================================================================
--- trunk/app/display/gimpdisplay.c	(original)
+++ trunk/app/display/gimpdisplay.c	Wed Mar 19 16:15:50 2008
@@ -495,6 +495,32 @@
 }
 
 void
+gimp_display_empty (GimpDisplay *display)
+{
+  g_return_if_fail (GIMP_IS_DISPLAY (display));
+  g_return_if_fail (GIMP_IS_IMAGE (display->image));
+
+  gimp_display_set_image (display, NULL);
+
+  gimp_display_shell_empty (GIMP_DISPLAY_SHELL (display->shell));
+}
+
+void
+gimp_display_fill (GimpDisplay *display,
+                   GimpImage   *image,
+                   GimpUnit     unit,
+                   gdouble      scale)
+{
+  g_return_if_fail (GIMP_IS_DISPLAY (display));
+  g_return_if_fail (GIMP_IS_IMAGE (image));
+
+  gimp_display_set_image (display, image);
+
+  gimp_display_shell_fill (GIMP_DISPLAY_SHELL (display->shell),
+                           image, unit, scale);
+}
+
+void
 gimp_display_update_area (GimpDisplay *display,
                           gboolean     now,
                           gint         x,

Modified: trunk/app/display/gimpdisplay.h
==============================================================================
--- trunk/app/display/gimpdisplay.h	(original)
+++ trunk/app/display/gimpdisplay.h	Wed Mar 19 16:15:50 2008
@@ -74,6 +74,12 @@
 void          gimp_display_set_image   (GimpDisplay     *display,
                                         GimpImage       *image);
 
+void          gimp_display_empty       (GimpDisplay     *display);
+void          gimp_display_fill        (GimpDisplay     *display,
+                                        GimpImage       *image,
+                                        GimpUnit         unit,
+                                        gdouble          scale);
+
 void          gimp_display_update_area (GimpDisplay     *display,
                                         gboolean         now,
                                         gint             x,

Modified: trunk/app/display/gimpdisplayshell-close.c
==============================================================================
--- trunk/app/display/gimpdisplayshell-close.c	(original)
+++ trunk/app/display/gimpdisplayshell-close.c	Wed Mar 19 16:15:50 2008
@@ -42,12 +42,7 @@
 
 #include "gimpdisplay.h"
 #include "gimpdisplayshell.h"
-#include "gimpdisplayshell-appearance.h"
 #include "gimpdisplayshell-close.h"
-#include "gimpdisplayshell-cursor.h"
-#include "gimpdisplayshell-scale.h"
-#include "gimpdisplayshell-scroll.h"
-#include "gimpdisplayshell-selection.h"
 
 #include "gimp-intl.h"
 
@@ -310,20 +305,7 @@
     {
       GimpContext *user_context;
 
-      gimp_display_shell_selection_control (shell, GIMP_SELECTION_OFF);
-
-      gimp_display_set_image (shell->display, NULL);
-
-      gimp_display_shell_expose_full (shell);
-
-      gimp_display_shell_scale (shell, GIMP_ZOOM_TO, 1.0);
-      gimp_display_shell_scroll_clamp_offsets (shell);
-      gimp_display_shell_scale_setup (shell);
-      gimp_display_shell_scaled (shell);
-
-      gimp_display_shell_set_cursor (shell, GIMP_CURSOR_MOUSE,
-                                     GIMP_TOOL_CURSOR_NONE,
-                                     GIMP_CURSOR_MODIFIER_NONE);
+      gimp_display_empty (shell->display);
 
       gimp_ui_manager_update (shell->menubar_manager, shell->display);
 
@@ -331,8 +313,6 @@
 
       if (shell->display == gimp_context_get_display (user_context))
         gimp_ui_manager_update (shell->popup_manager, shell->display);
-
-      gimp_display_shell_appearance_update (shell);
     }
 }
 

Modified: trunk/app/display/gimpdisplayshell-selection.c
==============================================================================
--- trunk/app/display/gimpdisplayshell-selection.c	(original)
+++ trunk/app/display/gimpdisplayshell-selection.c	Wed Mar 19 16:15:50 2008
@@ -197,6 +197,11 @@
           break;
         }
     }
+  else if (shell->selection)
+    {
+      selection_stop (shell->selection);
+      selection_free_segs (shell->selection);
+    }
 }
 
 void

Modified: trunk/app/display/gimpdisplayshell.c
==============================================================================
--- trunk/app/display/gimpdisplayshell.c	(original)
+++ trunk/app/display/gimpdisplayshell.c	Wed Mar 19 16:15:50 2008
@@ -67,6 +67,7 @@
 #include "gimpdisplayshell-handlers.h"
 #include "gimpdisplayshell-progress.h"
 #include "gimpdisplayshell-scale.h"
+#include "gimpdisplayshell-scroll.h"
 #include "gimpdisplayshell-selection.h"
 #include "gimpdisplayshell-title.h"
 #include "gimpdisplayshell-transform.h"
@@ -92,7 +93,7 @@
 
 /*  local function prototypes  */
 
-static void     gimp_color_managed_iface_init      (GimpColorManagedInterface *iface);
+static void      gimp_color_managed_iface_init     (GimpColorManagedInterface *iface);
 
 static void      gimp_display_shell_finalize       (GObject          *object);
 static void      gimp_display_shell_set_property   (GObject          *object,
@@ -1101,8 +1102,48 @@
   gimp_color_managed_profile_changed (GIMP_COLOR_MANAGED (shell));
 
   gimp_display_shell_scale_setup (shell);
+  gimp_display_shell_scaled (shell);
+
   gimp_display_shell_expose_full (shell);
+}
+
+void
+gimp_display_shell_empty (GimpDisplayShell *shell)
+{
+  g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
+  g_return_if_fail (GIMP_IS_DISPLAY (shell->display));
+  g_return_if_fail (shell->display->image == NULL);
+
+  gimp_display_shell_selection_control (shell, GIMP_SELECTION_OFF);
+
+  gimp_display_shell_scale (shell, GIMP_ZOOM_TO, 1.0);
+  gimp_display_shell_scroll_clamp_offsets (shell);
+  gimp_display_shell_scale_setup (shell);
   gimp_display_shell_scaled (shell);
+
+  gimp_display_shell_appearance_update (shell);
+
+  gimp_display_shell_expose_full (shell);
+}
+
+void
+gimp_display_shell_fill (GimpDisplayShell *shell,
+                         GimpImage        *image,
+                         GimpUnit          unit,
+                         gdouble           scale)
+{
+  gint display_width;
+  gint display_height;
+
+  g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
+  g_return_if_fail (GIMP_IS_DISPLAY (shell->display));
+  g_return_if_fail (GIMP_IS_IMAGE (image));
+
+  gimp_display_shell_set_unit (shell, unit);
+  gimp_display_shell_set_initial_scale (shell, scale,
+                                        &display_width, &display_height);
+
+  gimp_display_shell_appearance_update (shell);
 }
 
 /*

Modified: trunk/app/display/gimpdisplayshell.h
==============================================================================
--- trunk/app/display/gimpdisplayshell.h	(original)
+++ trunk/app/display/gimpdisplayshell.h	Wed Mar 19 16:15:50 2008
@@ -211,6 +211,12 @@
 
 void        gimp_display_shell_reconnect           (GimpDisplayShell   *shell);
 
+void        gimp_display_shell_empty               (GimpDisplayShell   *shell);
+void        gimp_display_shell_fill                (GimpDisplayShell   *shell,
+                                                    GimpImage          *image,
+                                                    GimpUnit            unit,
+                                                    gdouble             scale);
+
 void        gimp_display_shell_scale_changed       (GimpDisplayShell   *shell);
 
 void        gimp_display_shell_scaled              (GimpDisplayShell   *shell);

Modified: trunk/app/gui/gui-vtable.c
==============================================================================
--- trunk/app/gui/gui-vtable.c	(original)
+++ trunk/app/gui/gui-vtable.c	Wed Mar 19 16:15:50 2008
@@ -59,8 +59,6 @@
 #include "display/gimpdisplay.h"
 #include "display/gimpdisplay-foreach.h"
 #include "display/gimpdisplayshell.h"
-#include "display/gimpdisplayshell-appearance.h"
-#include "display/gimpdisplayshell-scale.h"
 
 #include "actions/plug-in-actions.h"
 
@@ -298,15 +296,7 @@
 
   if (display)
     {
-      gint display_width;
-      gint display_height;
-
-      gimp_display_set_image (display, image);
-      gimp_display_shell_set_unit (GIMP_DISPLAY_SHELL (display->shell), unit);
-      gimp_display_shell_set_initial_scale (GIMP_DISPLAY_SHELL (display->shell),
-                                            scale,
-                                            &display_width, &display_height);
-      gimp_display_shell_appearance_update (GIMP_DISPLAY_SHELL (display->shell));
+      gimp_display_fill (display, image, unit, scale);
 
       if (gimp_context_get_display (context) == display)
         {



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