mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-03 17:33:25 +00:00
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:
parent
ec0f3bdcb8
commit
1e9048ded9
7 changed files with 79 additions and 77 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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__ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue