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.
This commit is contained in:
Martin Nordholts 2010-02-20 16:55:35 +01:00
parent ec0f3bdcb8
commit 1e9048ded9
7 changed files with 79 additions and 77 deletions

View file

@ -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);
}

View file

@ -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));

View file

@ -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)

View file

@ -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,

View file

@ -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)

View file

@ -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;
}

View file

@ -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__ */