app: Add "dock-factory" property to GimpImageWindow
With the introduction of a single-window mode, not only dock windows needs to be able to create docks, the image window also needs to. So give it a "dock-factory" property.
This commit is contained in:
@ -384,7 +384,8 @@ gimp_display_new (Gimp *gimp,
|
|||||||
gdouble scale,
|
gdouble scale,
|
||||||
GimpMenuFactory *menu_factory,
|
GimpMenuFactory *menu_factory,
|
||||||
GimpUIManager *popup_manager,
|
GimpUIManager *popup_manager,
|
||||||
GimpDialogFactory *display_factory)
|
GimpDialogFactory *display_factory,
|
||||||
|
GimpDialogFactory *dock_factory)
|
||||||
{
|
{
|
||||||
GimpDisplay *display;
|
GimpDisplay *display;
|
||||||
GimpDisplayPrivate *private;
|
GimpDisplayPrivate *private;
|
||||||
@ -434,7 +435,8 @@ gimp_display_new (Gimp *gimp,
|
|||||||
window = gimp_image_window_new (gimp,
|
window = gimp_image_window_new (gimp,
|
||||||
display->image,
|
display->image,
|
||||||
menu_factory,
|
menu_factory,
|
||||||
display_factory);
|
display_factory,
|
||||||
|
dock_factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create the shell for the image */
|
/* create the shell for the image */
|
||||||
|
@ -56,7 +56,8 @@ GimpDisplay * gimp_display_new (Gimp *gimp,
|
|||||||
gdouble scale,
|
gdouble scale,
|
||||||
GimpMenuFactory *menu_factory,
|
GimpMenuFactory *menu_factory,
|
||||||
GimpUIManager *popup_manager,
|
GimpUIManager *popup_manager,
|
||||||
GimpDialogFactory *display_factory);
|
GimpDialogFactory *display_factory,
|
||||||
|
GimpDialogFactory *dock_factory);
|
||||||
void gimp_display_delete (GimpDisplay *display);
|
void gimp_display_delete (GimpDisplay *display);
|
||||||
void gimp_display_close (GimpDisplay *display);
|
void gimp_display_close (GimpDisplay *display);
|
||||||
|
|
||||||
|
@ -62,7 +62,8 @@ enum
|
|||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_GIMP,
|
PROP_GIMP,
|
||||||
PROP_MENU_FACTORY,
|
PROP_MENU_FACTORY,
|
||||||
PROP_DISPLAY_FACTORY
|
PROP_DISPLAY_FACTORY,
|
||||||
|
PROP_DOCK_FACTORY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -73,6 +74,7 @@ struct _GimpImageWindowPrivate
|
|||||||
Gimp *gimp;
|
Gimp *gimp;
|
||||||
GimpUIManager *menubar_manager;
|
GimpUIManager *menubar_manager;
|
||||||
GimpDialogFactory *display_factory;
|
GimpDialogFactory *display_factory;
|
||||||
|
GimpDialogFactory *dock_factory;
|
||||||
|
|
||||||
GList *shells;
|
GList *shells;
|
||||||
GimpDisplayShell *active_shell;
|
GimpDisplayShell *active_shell;
|
||||||
@ -208,6 +210,13 @@ gimp_image_window_class_init (GimpImageWindowClass *klass)
|
|||||||
GIMP_PARAM_READWRITE |
|
GIMP_PARAM_READWRITE |
|
||||||
G_PARAM_CONSTRUCT_ONLY));
|
G_PARAM_CONSTRUCT_ONLY));
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class, PROP_DOCK_FACTORY,
|
||||||
|
g_param_spec_object ("dock-factory",
|
||||||
|
NULL, NULL,
|
||||||
|
GIMP_TYPE_DIALOG_FACTORY,
|
||||||
|
GIMP_PARAM_READWRITE |
|
||||||
|
G_PARAM_CONSTRUCT_ONLY));
|
||||||
|
|
||||||
g_type_class_add_private (klass, sizeof (GimpImageWindowPrivate));
|
g_type_class_add_private (klass, sizeof (GimpImageWindowPrivate));
|
||||||
|
|
||||||
gtk_rc_parse_string (image_window_rc_style);
|
gtk_rc_parse_string (image_window_rc_style);
|
||||||
@ -379,6 +388,9 @@ gimp_image_window_set_property (GObject *object,
|
|||||||
case PROP_DISPLAY_FACTORY:
|
case PROP_DISPLAY_FACTORY:
|
||||||
private->display_factory = g_value_get_object (value);
|
private->display_factory = g_value_get_object (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_DOCK_FACTORY:
|
||||||
|
private->dock_factory = g_value_get_object (value);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
@ -403,6 +415,9 @@ gimp_image_window_get_property (GObject *object,
|
|||||||
case PROP_DISPLAY_FACTORY:
|
case PROP_DISPLAY_FACTORY:
|
||||||
g_value_set_object (value, private->display_factory);
|
g_value_set_object (value, private->display_factory);
|
||||||
break;
|
break;
|
||||||
|
case PROP_DOCK_FACTORY:
|
||||||
|
g_value_set_object (value, private->dock_factory);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_MENU_FACTORY:
|
case PROP_MENU_FACTORY:
|
||||||
default:
|
default:
|
||||||
@ -595,7 +610,8 @@ GimpImageWindow *
|
|||||||
gimp_image_window_new (Gimp *gimp,
|
gimp_image_window_new (Gimp *gimp,
|
||||||
GimpImage *image,
|
GimpImage *image,
|
||||||
GimpMenuFactory *menu_factory,
|
GimpMenuFactory *menu_factory,
|
||||||
GimpDialogFactory *display_factory)
|
GimpDialogFactory *display_factory,
|
||||||
|
GimpDialogFactory *dock_factory)
|
||||||
{
|
{
|
||||||
GimpImageWindow *window;
|
GimpImageWindow *window;
|
||||||
|
|
||||||
@ -608,6 +624,7 @@ gimp_image_window_new (Gimp *gimp,
|
|||||||
"gimp", gimp,
|
"gimp", gimp,
|
||||||
"menu-factory", menu_factory,
|
"menu-factory", menu_factory,
|
||||||
"display-factory", display_factory,
|
"display-factory", display_factory,
|
||||||
|
"dock-factory", dock_factory,
|
||||||
/* The window position will be overridden by the
|
/* The window position will be overridden by the
|
||||||
* dialog factory, it is only really used on first
|
* dialog factory, it is only really used on first
|
||||||
* startup.
|
* startup.
|
||||||
@ -648,6 +665,18 @@ gimp_image_window_get_ui_manager (GimpImageWindow *window)
|
|||||||
return private->menubar_manager;
|
return private->menubar_manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GimpDialogFactory*
|
||||||
|
gimp_image_window_get_dock_factory (GimpImageWindow *window)
|
||||||
|
{
|
||||||
|
GimpImageWindowPrivate *private;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_IMAGE_WINDOW (window), FALSE);
|
||||||
|
|
||||||
|
private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
|
||||||
|
|
||||||
|
return private->dock_factory;
|
||||||
|
}
|
||||||
|
|
||||||
GimpDockColumns *
|
GimpDockColumns *
|
||||||
gimp_image_window_get_left_docks (GimpImageWindow *window)
|
gimp_image_window_get_left_docks (GimpImageWindow *window)
|
||||||
{
|
{
|
||||||
|
@ -48,10 +48,12 @@ GType gimp_image_window_get_type (void) G_GNUC_CONST;
|
|||||||
GimpImageWindow * gimp_image_window_new (Gimp *gimp,
|
GimpImageWindow * gimp_image_window_new (Gimp *gimp,
|
||||||
GimpImage *image,
|
GimpImage *image,
|
||||||
GimpMenuFactory *menu_factory,
|
GimpMenuFactory *menu_factory,
|
||||||
GimpDialogFactory *display_factory);
|
GimpDialogFactory *display_factory,
|
||||||
|
GimpDialogFactory *dock_factory);
|
||||||
void gimp_image_window_destroy (GimpImageWindow *window);
|
void gimp_image_window_destroy (GimpImageWindow *window);
|
||||||
|
|
||||||
GimpUIManager * gimp_image_window_get_ui_manager (GimpImageWindow *window);
|
GimpUIManager * gimp_image_window_get_ui_manager (GimpImageWindow *window);
|
||||||
|
GimpDialogFactory* gimp_image_window_get_dock_factory (GimpImageWindow *window);
|
||||||
GimpDockColumns * gimp_image_window_get_left_docks (GimpImageWindow *window);
|
GimpDockColumns * gimp_image_window_get_left_docks (GimpImageWindow *window);
|
||||||
GimpDockColumns * gimp_image_window_get_right_docks (GimpImageWindow *window);
|
GimpDockColumns * gimp_image_window_get_right_docks (GimpImageWindow *window);
|
||||||
|
|
||||||
|
@ -311,7 +311,8 @@ gimp_ui_configurer_separate_shells (GimpUIConfigurer *ui_configurer,
|
|||||||
new_image_window = gimp_image_window_new (ui_configurer->p->gimp,
|
new_image_window = gimp_image_window_new (ui_configurer->p->gimp,
|
||||||
NULL,
|
NULL,
|
||||||
global_menu_factory,
|
global_menu_factory,
|
||||||
global_display_factory);
|
global_display_factory,
|
||||||
|
global_dock_factory);
|
||||||
/* Move the shell there */
|
/* Move the shell there */
|
||||||
shell = gimp_image_window_get_shell (source_image_window, 1);
|
shell = gimp_image_window_get_shell (source_image_window, 1);
|
||||||
|
|
||||||
|
@ -351,7 +351,8 @@ gui_display_create (Gimp *gimp,
|
|||||||
display = gimp_display_new (gimp, image, unit, scale,
|
display = gimp_display_new (gimp, image, unit, scale,
|
||||||
global_menu_factory,
|
global_menu_factory,
|
||||||
image_managers->data,
|
image_managers->data,
|
||||||
global_display_factory);
|
global_display_factory,
|
||||||
|
global_dock_factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gimp_context_get_display (context) == display)
|
if (gimp_context_get_display (context) == display)
|
||||||
|
Reference in New Issue
Block a user