mirror of https://github.com/GNOME/gimp.git
app: Make GimpDockWindow implement GimpDockContainer
Make GimpDockWindow implement the GimpDockContainer interface. The plan is to make GimpImageWindow also implement the GimpDockContainer interface when we start to session manage docks in single-window mode.
This commit is contained in:
parent
2287b6e008
commit
4b9243fc60
|
@ -30,6 +30,7 @@
|
||||||
#include "widgets/gimpdialogfactory.h"
|
#include "widgets/gimpdialogfactory.h"
|
||||||
#include "widgets/gimpdock.h"
|
#include "widgets/gimpdock.h"
|
||||||
#include "widgets/gimpdockcolumns.h"
|
#include "widgets/gimpdockcolumns.h"
|
||||||
|
#include "widgets/gimpdockcontainer.h"
|
||||||
#include "widgets/gimpdockwindow.h"
|
#include "widgets/gimpdockwindow.h"
|
||||||
#include "widgets/gimptoolbox.h"
|
#include "widgets/gimptoolbox.h"
|
||||||
|
|
||||||
|
@ -164,16 +165,18 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
|
||||||
|
|
||||||
for (dialog_iter = dialogs; dialog_iter; dialog_iter = dialog_iter->next)
|
for (dialog_iter = dialogs; dialog_iter; dialog_iter = dialog_iter->next)
|
||||||
{
|
{
|
||||||
GimpDockWindow *dock_window = NULL;
|
GimpDockWindow *dock_window = NULL;
|
||||||
GList *docks = NULL;
|
GimpDockContainer *dock_container = NULL;
|
||||||
GList *dock_iter = NULL;
|
GList *docks = NULL;
|
||||||
|
GList *dock_iter = NULL;
|
||||||
|
|
||||||
if (!GIMP_IS_DOCK_WINDOW (dialog_iter->data))
|
if (!GIMP_IS_DOCK_WINDOW (dialog_iter->data))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
dock_window = GIMP_DOCK_WINDOW (dialog_iter->data);
|
dock_window = GIMP_DOCK_WINDOW (dialog_iter->data);
|
||||||
|
dock_container = GIMP_DOCK_CONTAINER (dock_window);
|
||||||
|
|
||||||
docks = g_list_copy (gimp_dock_window_get_docks (dock_window));
|
docks = g_list_copy (gimp_dock_container_get_docks (dock_container));
|
||||||
for (dock_iter = docks; dock_iter; dock_iter = dock_iter->next)
|
for (dock_iter = docks; dock_iter; dock_iter = dock_iter->next)
|
||||||
{
|
{
|
||||||
GimpDock *dock = GIMP_DOCK (dock_iter->data);
|
GimpDock *dock = GIMP_DOCK (dock_iter->data);
|
||||||
|
@ -200,7 +203,7 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
|
||||||
* destroyed
|
* destroyed
|
||||||
*/
|
*/
|
||||||
if (GTK_IS_WIDGET (dock_window) &&
|
if (GTK_IS_WIDGET (dock_window) &&
|
||||||
g_list_length (gimp_dock_window_get_docks (dock_window)) == 0)
|
g_list_length (gimp_dock_container_get_docks (dock_container)) == 0)
|
||||||
{
|
{
|
||||||
gimp_dialog_factory_remove_dialog (gimp_dialog_factory_get_singleton (),
|
gimp_dialog_factory_remove_dialog (gimp_dialog_factory_get_singleton (),
|
||||||
GTK_WIDGET (dock_window));
|
GTK_WIDGET (dock_window));
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#include "widgets/gimpdock.h"
|
#include "widgets/gimpdock.h"
|
||||||
#include "widgets/gimpdockable.h"
|
#include "widgets/gimpdockable.h"
|
||||||
#include "widgets/gimpdockbook.h"
|
#include "widgets/gimpdockbook.h"
|
||||||
|
#include "widgets/gimpdockcontainer.h"
|
||||||
#include "widgets/gimpdocked.h"
|
#include "widgets/gimpdocked.h"
|
||||||
#include "widgets/gimpdockwindow.h"
|
#include "widgets/gimpdockwindow.h"
|
||||||
#include "widgets/gimphelp-ids.h"
|
#include "widgets/gimphelp-ids.h"
|
||||||
|
@ -734,15 +735,17 @@ gimp_ui_not_toolbox_window (GObject *object)
|
||||||
static gboolean
|
static gboolean
|
||||||
gimp_ui_multicolumn_not_toolbox_window (GObject *object)
|
gimp_ui_multicolumn_not_toolbox_window (GObject *object)
|
||||||
{
|
{
|
||||||
GimpDockWindow *dock_window = GIMP_DOCK_WINDOW (object);
|
GimpDockWindow *dock_window;
|
||||||
|
GimpDockContainer *dock_container;
|
||||||
|
|
||||||
if (! GIMP_IS_DOCK_WINDOW (object))
|
if (! GIMP_IS_DOCK_WINDOW (object))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
dock_window = GIMP_DOCK_WINDOW (object);
|
dock_window = GIMP_DOCK_WINDOW (object);
|
||||||
|
dock_container = GIMP_DOCK_CONTAINER (object);
|
||||||
|
|
||||||
return (! gimp_dock_window_has_toolbox (dock_window) &&
|
return (! gimp_dock_window_has_toolbox (dock_window) &&
|
||||||
g_list_length (gimp_dock_window_get_docks (dock_window)) > 1);
|
g_list_length (gimp_dock_container_get_docks (dock_container)) > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include "gimpdock.h"
|
#include "gimpdock.h"
|
||||||
#include "gimpdockbook.h"
|
#include "gimpdockbook.h"
|
||||||
#include "gimpdockcolumns.h"
|
#include "gimpdockcolumns.h"
|
||||||
|
#include "gimpdockcontainer.h"
|
||||||
#include "gimpdockwindow.h"
|
#include "gimpdockwindow.h"
|
||||||
#include "gimphelp-ids.h"
|
#include "gimphelp-ids.h"
|
||||||
#include "gimpmenufactory.h"
|
#include "gimpmenufactory.h"
|
||||||
|
@ -108,6 +109,9 @@ struct _GimpDockWindowPrivate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static void gimp_dock_window_dock_container_iface_init
|
||||||
|
(GimpDockContainerInterface
|
||||||
|
*iface);
|
||||||
static void gimp_dock_window_constructed (GObject *object);
|
static void gimp_dock_window_constructed (GObject *object);
|
||||||
static void gimp_dock_window_dispose (GObject *object);
|
static void gimp_dock_window_dispose (GObject *object);
|
||||||
static void gimp_dock_window_finalize (GObject *object);
|
static void gimp_dock_window_finalize (GObject *object);
|
||||||
|
@ -124,6 +128,8 @@ static void gimp_dock_window_style_set (GtkWidget *widg
|
||||||
GtkStyle *prev_style);
|
GtkStyle *prev_style);
|
||||||
static gboolean gimp_dock_window_delete_event (GtkWidget *widget,
|
static gboolean gimp_dock_window_delete_event (GtkWidget *widget,
|
||||||
GdkEventAny *event);
|
GdkEventAny *event);
|
||||||
|
static GList * gimp_dock_window_get_docks (GimpDockContainer
|
||||||
|
*dock_container);
|
||||||
|
|
||||||
static gboolean gimp_dock_window_should_add_to_recent (GimpDockWindow *dock_window);
|
static gboolean gimp_dock_window_should_add_to_recent (GimpDockWindow *dock_window);
|
||||||
static void gimp_dock_window_display_changed (GimpDockWindow *dock_window,
|
static void gimp_dock_window_display_changed (GimpDockWindow *dock_window,
|
||||||
|
@ -152,7 +158,9 @@ static void gimp_dock_window_auto_clicked (GtkWidget *widg
|
||||||
GimpDock *dock);
|
GimpDock *dock);
|
||||||
|
|
||||||
|
|
||||||
G_DEFINE_TYPE (GimpDockWindow, gimp_dock_window, GIMP_TYPE_WINDOW)
|
G_DEFINE_TYPE_WITH_CODE (GimpDockWindow, gimp_dock_window, GIMP_TYPE_WINDOW,
|
||||||
|
G_IMPLEMENT_INTERFACE (GIMP_TYPE_DOCK_CONTAINER,
|
||||||
|
gimp_dock_window_dock_container_iface_init))
|
||||||
|
|
||||||
#define parent_class gimp_dock_window_parent_class
|
#define parent_class gimp_dock_window_parent_class
|
||||||
|
|
||||||
|
@ -253,6 +261,12 @@ gimp_dock_window_init (GimpDockWindow *dock_window)
|
||||||
gtk_window_set_focus_on_map (GTK_WINDOW (dock_window), FALSE);
|
gtk_window_set_focus_on_map (GTK_WINDOW (dock_window), FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_dock_window_dock_container_iface_init (GimpDockContainerInterface *iface)
|
||||||
|
{
|
||||||
|
iface->get_docks = gimp_dock_window_get_docks;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gimp_dock_window_constructed (GObject *object)
|
gimp_dock_window_constructed (GObject *object)
|
||||||
{
|
{
|
||||||
|
@ -668,6 +682,25 @@ gimp_dock_window_delete_event (GtkWidget *widget,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gimp_dock_window_get_docks:
|
||||||
|
*
|
||||||
|
* Get a list of docks in the dock window.
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
**/
|
||||||
|
static GList *
|
||||||
|
gimp_dock_window_get_docks (GimpDockContainer *dock_container)
|
||||||
|
{
|
||||||
|
GimpDockWindow *dock_window;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_DOCK_WINDOW (dock_container), NULL);
|
||||||
|
|
||||||
|
dock_window = GIMP_DOCK_WINDOW (dock_container);
|
||||||
|
|
||||||
|
return gimp_dock_columns_get_docks (dock_window->p->dock_columns);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gimp_dock_window_should_add_to_recent:
|
* gimp_dock_window_should_add_to_recent:
|
||||||
* @dock_window:
|
* @dock_window:
|
||||||
|
@ -680,9 +713,11 @@ gimp_dock_window_delete_event (GtkWidget *widget,
|
||||||
static gboolean
|
static gboolean
|
||||||
gimp_dock_window_should_add_to_recent (GimpDockWindow *dock_window)
|
gimp_dock_window_should_add_to_recent (GimpDockWindow *dock_window)
|
||||||
{
|
{
|
||||||
GList *docks = gimp_dock_window_get_docks (dock_window);
|
GList *docks;
|
||||||
gboolean should_add = TRUE;
|
gboolean should_add = TRUE;
|
||||||
|
|
||||||
|
docks = gimp_dock_container_get_docks (GIMP_DOCK_CONTAINER (dock_window));
|
||||||
|
|
||||||
if (g_list_length (docks) < 1)
|
if (g_list_length (docks) < 1)
|
||||||
{
|
{
|
||||||
should_add = FALSE;
|
should_add = FALSE;
|
||||||
|
@ -763,7 +798,7 @@ gimp_dock_window_get_description (GimpDockWindow *dock_window,
|
||||||
GString *complete_desc = g_string_new (NULL);
|
GString *complete_desc = g_string_new (NULL);
|
||||||
GList *iter = NULL;
|
GList *iter = NULL;
|
||||||
|
|
||||||
for (iter = gimp_dock_window_get_docks (dock_window);
|
for (iter = gimp_dock_container_get_docks (GIMP_DOCK_CONTAINER (dock_window));
|
||||||
iter;
|
iter;
|
||||||
iter = g_list_next (iter))
|
iter = g_list_next (iter))
|
||||||
{
|
{
|
||||||
|
@ -1005,22 +1040,6 @@ gimp_dock_window_get_dialog_factory (GimpDockWindow *dock_window)
|
||||||
return dock_window->p->dialog_factory;
|
return dock_window->p->dialog_factory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gimp_dock_window_get_docks:
|
|
||||||
* @dock_window:
|
|
||||||
*
|
|
||||||
* Get a list of docks in the dock window.
|
|
||||||
*
|
|
||||||
* Returns:
|
|
||||||
**/
|
|
||||||
GList *
|
|
||||||
gimp_dock_window_get_docks (GimpDockWindow *dock_window)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GIMP_IS_DOCK_WINDOW (dock_window), NULL);
|
|
||||||
|
|
||||||
return gimp_dock_columns_get_docks (dock_window->p->dock_columns);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
gimp_dock_window_get_auto_follow_active (GimpDockWindow *dock_window)
|
gimp_dock_window_get_auto_follow_active (GimpDockWindow *dock_window)
|
||||||
{
|
{
|
||||||
|
|
|
@ -70,7 +70,6 @@ void gimp_dock_window_remove_dock (GimpDockWindow *
|
||||||
GimpUIManager * gimp_dock_window_get_ui_manager (GimpDockWindow *dock_window);
|
GimpUIManager * gimp_dock_window_get_ui_manager (GimpDockWindow *dock_window);
|
||||||
GimpContext * gimp_dock_window_get_context (GimpDockWindow *dock);
|
GimpContext * gimp_dock_window_get_context (GimpDockWindow *dock);
|
||||||
GimpDialogFactory * gimp_dock_window_get_dialog_factory (GimpDockWindow *dock);
|
GimpDialogFactory * gimp_dock_window_get_dialog_factory (GimpDockWindow *dock);
|
||||||
GList * gimp_dock_window_get_docks (GimpDockWindow *dock_window);
|
|
||||||
gboolean gimp_dock_window_get_auto_follow_active (GimpDockWindow *menu_dock);
|
gboolean gimp_dock_window_get_auto_follow_active (GimpDockWindow *menu_dock);
|
||||||
void gimp_dock_window_set_auto_follow_active (GimpDockWindow *menu_dock,
|
void gimp_dock_window_set_auto_follow_active (GimpDockWindow *menu_dock,
|
||||||
gboolean show);
|
gboolean show);
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include "config/gimpguiconfig.h"
|
#include "config/gimpguiconfig.h"
|
||||||
|
|
||||||
|
#include "widgets/gimpdockcontainer.h"
|
||||||
|
|
||||||
#include "core/gimp.h"
|
#include "core/gimp.h"
|
||||||
#include "core/gimpcontext.h"
|
#include "core/gimpcontext.h"
|
||||||
|
|
||||||
|
@ -740,11 +742,12 @@ gimp_session_info_get_info (GimpSessionInfo *info)
|
||||||
|
|
||||||
info->p->aux_info = gimp_session_info_aux_get_list (info->p->widget);
|
info->p->aux_info = gimp_session_info_aux_get_list (info->p->widget);
|
||||||
|
|
||||||
if (GIMP_IS_DOCK_WINDOW (info->p->widget))
|
if (GIMP_IS_DOCK_CONTAINER (info->p->widget))
|
||||||
{
|
{
|
||||||
GList *iter = NULL;
|
GimpDockContainer *dock_container = GIMP_DOCK_CONTAINER (info->p->widget);
|
||||||
|
GList *iter = NULL;
|
||||||
|
|
||||||
for (iter = gimp_dock_window_get_docks (GIMP_DOCK_WINDOW (info->p->widget));
|
for (iter = gimp_dock_container_get_docks (dock_container);
|
||||||
iter;
|
iter;
|
||||||
iter = g_list_next (iter))
|
iter = g_list_next (iter))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue