[gimp] app: Turn gimp_dialog_factory_dock_with_window_new() into util func



commit 1e9048ded9ee9434fcbc8cee987e1ca6c8331eb5
Author: Martin Nordholts <martinn src gnome org>
Date:   Sat Feb 20 16:55:35 2010 +0100

    app: Turn gimp_dialog_factory_dock_with_window_new() into util func
    
    Turn gimp_dialog_factory_dock_with_window_new() into a utility
    function, it doesn't make sense to let it be part of the generic
    GimpDialogFactory.

 app/actions/windows-commands.c     |    7 ++--
 app/tests/test-window-management.c |   13 ++++---
 app/widgets/gimpdialogfactory.c    |   65 ++---------------------------------
 app/widgets/gimpdialogfactory.h    |    3 --
 app/widgets/gimpdockable.c         |    6 ++--
 app/widgets/gimpwidgets-utils.c    |   58 ++++++++++++++++++++++++++++++++
 app/widgets/gimpwidgets-utils.h    |    4 ++-
 7 files changed, 79 insertions(+), 77 deletions(-)
---
diff --git a/app/actions/windows-commands.c b/app/actions/windows-commands.c
index b8c9979..b06fd5c 100644
--- a/app/actions/windows-commands.c
+++ b/app/actions/windows-commands.c
@@ -31,6 +31,7 @@
 
 #include "widgets/gimpdialogfactory.h"
 #include "widgets/gimpsessioninfo.h"
+#include "widgets/gimpwidgets-utils.h"
 
 #include "display/gimpdisplay.h"
 #include "display/gimpdisplayshell.h"
@@ -104,9 +105,9 @@ windows_show_toolbox (void)
 
   if (! dialogs_get_toolbox ())
     {
-      toolbox = gimp_dialog_factory_dock_with_window_new (global_dialog_factory,
-                                                          gdk_screen_get_default (),
-                                                          TRUE /*toolbox*/);
+      toolbox = gimp_dock_with_window_new (global_dialog_factory,
+                                           gdk_screen_get_default (),
+                                           TRUE /*toolbox*/);
 
       gtk_widget_show (toolbox);
     }
diff --git a/app/tests/test-window-management.c b/app/tests/test-window-management.c
index 34eb281..95a4ea6 100644
--- a/app/tests/test-window-management.c
+++ b/app/tests/test-window-management.c
@@ -25,6 +25,7 @@
 #include "widgets/gimpdialogfactory.h"
 #include "widgets/gimpdock.h"
 #include "widgets/gimpdockwindow.h"
+#include "widgets/gimpwidgets-utils.h"
 
 #include "core/gimp.h"
 #include "core/gimpcontext.h"
@@ -98,12 +99,12 @@ gimp_test_window_roles (GimpTestFixture *fixture,
   GimpDockWindow *dock_window    = NULL;
   GimpDockWindow *toolbox_window = NULL;
 
-  dock           = gimp_dialog_factory_dock_with_window_new (global_dialog_factory,
-                                                             gdk_screen_get_default (),
-                                                             FALSE /*toolbox*/);
-  toolbox        = gimp_dialog_factory_dock_with_window_new (global_dialog_factory,
-                                                             gdk_screen_get_default (),
-                                                             TRUE /*toolbox*/);
+  dock           = gimp_dock_with_window_new (global_dialog_factory,
+                                              gdk_screen_get_default (),
+                                              FALSE /*toolbox*/);
+  toolbox        = gimp_dock_with_window_new (global_dialog_factory,
+                                              gdk_screen_get_default (),
+                                              TRUE /*toolbox*/);
   dock_window    = gimp_dock_window_from_dock (GIMP_DOCK (dock));
   toolbox_window = gimp_dock_window_from_dock (GIMP_DOCK (toolbox));
 
diff --git a/app/widgets/gimpdialogfactory.c b/app/widgets/gimpdialogfactory.c
index a5cb144..bd4e95c 100644
--- a/app/widgets/gimpdialogfactory.c
+++ b/app/widgets/gimpdialogfactory.c
@@ -41,6 +41,7 @@
 #include "gimpdockwindow.h"
 #include "gimpmenufactory.h"
 #include "gimpsessioninfo.h"
+#include "gimpwidgets-utils.h"
 
 #include "gimp-log.h"
 
@@ -477,9 +478,9 @@ gimp_dialog_factory_dialog_new_internal (GimpDialogFactory *factory,
            *  dialog. We do this because the new dockable needs to be
            *  created in its dock's context.
            */
-          dock     = gimp_dialog_factory_dock_with_window_new (factory,
-                                                               screen,
-                                                               FALSE /*toolbox*/);
+          dock     = gimp_dock_with_window_new (factory,
+                                                screen,
+                                                FALSE /*toolbox*/);
           dockbook = gimp_dockbook_new (factory->p->menu_factory);
 
           gimp_dock_add_book (GIMP_DOCK (dock),
@@ -787,64 +788,6 @@ gimp_dialog_factory_dockable_new (GimpDialogFactory *factory,
                                                   FALSE);
 }
 
-/**
- * gimp_dialog_factory_dock_with_window_new:
- * @factory: a #GimpDialogFacotry
- * @screen:  the #GdkScreen the dock window should appear on
- *
- * Returns a new #GimpDock in this %factory's context, put inside a
- * #GimpDockWindow. We use a function pointer passed to this
- * %factory's constructor instead of simply gimp_dock_new() because we
- * may want different instances of #GimpDialogFactory create different
- * subclasses of #GimpDock.
- *
- * Return value: the newly created #GimpDock.
- **/
-GtkWidget *
-gimp_dialog_factory_dock_with_window_new (GimpDialogFactory *factory,
-                                          GdkScreen         *screen,
-                                          gboolean           toolbox)
-{
-  GtkWidget     *dock_window = NULL;
-  GtkWidget     *dock        = NULL;
-  GimpUIManager *ui_manager  = NULL;
-
-  g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (factory), NULL);
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
-
-  /* Create a dock window to put the dock in. We need to create the
-   * dock window before the dock because the dock has a dependency to
-   * the ui manager in the dock window
-   */
-  dock_window =
-    gimp_dialog_factory_dialog_new (factory,
-                                    screen,
-                                    (toolbox ?
-                                     "gimp-toolbox-window" :
-                                     "gimp-dock-window"),
-                                    -1 /*view_size*/,
-                                    FALSE /*present*/);
-
-  /* Create the dock */
-  ui_manager = gimp_dock_window_get_ui_manager (GIMP_DOCK_WINDOW (dock_window));
-  dock       = gimp_dialog_factory_dialog_new (factory,
-                                               screen,
-                                               (toolbox ?
-                                                "gimp-toolbox" :
-                                                "gimp-dock"),
-                                               -1 /*view_size*/,
-                                               FALSE /*present*/);
-  if (dock)
-    {
-      /* Put the dock in the dock window */
-      gimp_dock_window_add_dock (GIMP_DOCK_WINDOW (dock_window),
-                                 GIMP_DOCK (dock),
-                                 -1);
-    }
-
-  return dock;
-}
-
 void
 gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
                                 GtkWidget         *dialog)
diff --git a/app/widgets/gimpdialogfactory.h b/app/widgets/gimpdialogfactory.h
index 634c859..9b4681b 100644
--- a/app/widgets/gimpdialogfactory.h
+++ b/app/widgets/gimpdialogfactory.h
@@ -150,9 +150,6 @@ GtkWidget *         gimp_dialog_factory_dockable_new         (GimpDialogFactory
                                                               GimpDock                *dock,
                                                               const gchar             *identifier,
                                                               gint                     view_size);
-GtkWidget *         gimp_dialog_factory_dock_with_window_new (GimpDialogFactory       *factory,
-                                                              GdkScreen               *screen,
-                                                              gboolean                 toolbox);
 void                gimp_dialog_factory_add_dialog           (GimpDialogFactory       *factory,
                                                               GtkWidget               *dialog);
 void                gimp_dialog_factory_add_foreign          (GimpDialogFactory       *factory,
diff --git a/app/widgets/gimpdockable.c b/app/widgets/gimpdockable.c
index a7771cf..362ba66 100644
--- a/app/widgets/gimpdockable.c
+++ b/app/widgets/gimpdockable.c
@@ -1205,9 +1205,9 @@ gimp_dockable_detach (GimpDockable *dockable)
   src_dock = gimp_dockbook_get_dock (dockable->p->dockbook);
   src_dock_window = gimp_dock_window_from_dock (src_dock);
 
-  dock = gimp_dialog_factory_dock_with_window_new (global_dialog_factory,
-                                                   gtk_widget_get_screen (GTK_WIDGET (dockable)),
-                                                   FALSE /*toolbox*/);
+  dock = gimp_dock_with_window_new (global_dialog_factory,
+                                    gtk_widget_get_screen (GTK_WIDGET (dockable)),
+                                    FALSE /*toolbox*/);
   dock_window = gimp_dock_window_from_dock (GIMP_DOCK (dock));
   gtk_window_set_position (GTK_WINDOW (dock_window), GTK_WIN_POS_MOUSE);
   if (src_dock_window)
diff --git a/app/widgets/gimpwidgets-utils.c b/app/widgets/gimpwidgets-utils.c
index b1fb850..762a069 100644
--- a/app/widgets/gimpwidgets-utils.c
+++ b/app/widgets/gimpwidgets-utils.c
@@ -56,6 +56,9 @@
 
 #include "widgets-types.h"
 
+#include "gimpdialogfactory.h"
+#include "gimpdock.h"
+#include "gimpdockwindow.h"
 #include "gimperrordialog.h"
 #include "gimpwidgets-utils.h"
 
@@ -1186,3 +1189,58 @@ gimp_highlight_widget (GtkWidget *widget,
   else
     gtk_drag_unhighlight (widget);
 }
+
+/**
+ * gimp_dock_with_window_new:
+ * @factory: a #GimpDialogFacotry
+ * @screen:  the #GdkScreen the dock window should appear on
+ * @toolbox: if %TRUE; gives a "gimp-toolbox-window" with a
+ *           "gimp-toolbox", "gimp-dock-window"+"gimp-dock"
+ *           otherwise
+ *
+ * Returns: the newly created #GimpDock with the #GimpDockWindow
+ **/
+GtkWidget *
+gimp_dock_with_window_new (GimpDialogFactory *factory,
+                           GdkScreen         *screen,
+                           gboolean           toolbox)
+{
+  GtkWidget     *dock_window = NULL;
+  GtkWidget     *dock        = NULL;
+  GimpUIManager *ui_manager  = NULL;
+
+  g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (factory), NULL);
+  g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
+
+  /* Create a dock window to put the dock in. We need to create the
+   * dock window before the dock because the dock has a dependency to
+   * the ui manager in the dock window
+   */
+  dock_window =
+    gimp_dialog_factory_dialog_new (factory,
+                                    screen,
+                                    (toolbox ?
+                                     "gimp-toolbox-window" :
+                                     "gimp-dock-window"),
+                                    -1 /*view_size*/,
+                                    FALSE /*present*/);
+
+  /* Create the dock */
+  ui_manager = gimp_dock_window_get_ui_manager (GIMP_DOCK_WINDOW (dock_window));
+  dock       = gimp_dialog_factory_dialog_new (factory,
+                                               screen,
+                                               (toolbox ?
+                                                "gimp-toolbox" :
+                                                "gimp-dock"),
+                                               -1 /*view_size*/,
+                                               FALSE /*present*/);
+  if (dock)
+    {
+      /* Put the dock in the dock window */
+      gimp_dock_window_add_dock (GIMP_DOCK_WINDOW (dock_window),
+                                 GIMP_DOCK (dock),
+                                 -1);
+    }
+
+  return dock;
+}
diff --git a/app/widgets/gimpwidgets-utils.h b/app/widgets/gimpwidgets-utils.h
index b24ba44..94a0262 100644
--- a/app/widgets/gimpwidgets-utils.h
+++ b/app/widgets/gimpwidgets-utils.h
@@ -89,7 +89,9 @@ void              gimp_pango_layout_set_weight     (PangoLayout          *layout
                                                     PangoWeight           weight);
 void              gimp_highlight_widget            (GtkWidget            *widget,
                                                     gboolean              highlight);
-
+GtkWidget       * gimp_dock_with_window_new        (GimpDialogFactory    *factory,
+                                                    GdkScreen            *screen,
+                                                    gboolean             toolbox);
 
 
 #endif /* __GIMP_WIDGETS_UTILS_H__ */



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