[gimp] app: Add gimp_dialog_factory_dock_window_new()
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Add gimp_dialog_factory_dock_window_new()
- Date: Sun, 25 Oct 2009 11:21:11 +0000 (UTC)
commit ff6a7877578ec6dfff2a4c2a0bc300f89adeb387
Author: Martin Nordholts <martinn src gnome org>
Date: Sun Oct 25 12:21:57 2009 +0100
app: Add gimp_dialog_factory_dock_window_new()
Add gimp_dialog_factory_dock_window_new() since we need to be able to
create only dock windows when going from single-window mode back to
multi-window.
app/widgets/gimpdialogfactory.c | 43 ++++++++++++++++++++++++++++++--------
app/widgets/gimpdialogfactory.h | 2 +
2 files changed, 36 insertions(+), 9 deletions(-)
---
diff --git a/app/widgets/gimpdialogfactory.c b/app/widgets/gimpdialogfactory.c
index 39985aa..75476c2 100644
--- a/app/widgets/gimpdialogfactory.c
+++ b/app/widgets/gimpdialogfactory.c
@@ -786,29 +786,54 @@ gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
* dock window before the dock because the dock has a dependnecy to
* the ui manager in the dock window
*/
- dock_window = factory->new_dock_window_func (factory,
- factory->context,
- 0);
- gtk_window_set_screen (GTK_WINDOW (dock_window), screen);
- gimp_dialog_factory_set_widget_data (dock_window, factory, NULL);
+ dock_window = gimp_dialog_factory_dock_window_new (factory, screen);
/* Create the dock */
ui_manager = gimp_dock_window_get_ui_manager (GIMP_DOCK_WINDOW (dock_window));
- dock = factory->new_dock_func (factory, factory->context, ui_manager);
+ dock = factory->new_dock_func (factory, factory->context, ui_manager);
if (dock)
{
/* Put the dock in the dock window */
gimp_dock_window_set_dock (GIMP_DOCK_WINDOW (dock_window),
GIMP_DOCK (dock));
-
- /* Add the dock window to the dialog factory */
- gimp_dialog_factory_add_dialog (factory, dock_window);
}
return dock;
}
+/**
+ * gimp_dialog_factory_dock_window_new:
+ * @factory:
+ * @screen:
+ *
+ * Creates a new dock window.
+ *
+ * Returns:
+ **/
+GtkWidget *
+gimp_dialog_factory_dock_window_new (GimpDialogFactory *factory,
+ GdkScreen *screen)
+{
+ GtkWidget *dock_window = NULL;
+
+ g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (factory), NULL);
+ g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
+ g_return_val_if_fail (factory->new_dock_window_func != NULL, NULL);
+
+ /* Create the dock window */
+ dock_window = factory->new_dock_window_func (factory, factory->context, 0);
+ gtk_window_set_screen (GTK_WINDOW (dock_window), screen);
+ gimp_dialog_factory_set_widget_data (dock_window, factory, NULL);
+
+ /* Add it to the dialog factory so it's position is saved when the
+ * app quits
+ */
+ gimp_dialog_factory_add_dialog (factory, dock_window);
+
+ return dock_window;
+}
+
void
gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
GtkWidget *dialog)
diff --git a/app/widgets/gimpdialogfactory.h b/app/widgets/gimpdialogfactory.h
index cc773ae..e777460 100644
--- a/app/widgets/gimpdialogfactory.h
+++ b/app/widgets/gimpdialogfactory.h
@@ -161,6 +161,8 @@ GtkWidget * gimp_dialog_factory_dockable_new (GimpDialogFactory
gint view_size);
GtkWidget * gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
GdkScreen *screen);
+GtkWidget * gimp_dialog_factory_dock_window_new (GimpDialogFactory *factory,
+ GdkScreen *screen);
void gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
GtkWidget *dialog);
void gimp_dialog_factory_add_foreign (GimpDialogFactory *factory,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]