From 1982cf1db74bc3d9fb5d6d06f8efcbd950236f93 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sat, 8 Jun 2013 01:32:34 +0200 Subject: [PATCH] app: add gimp_tool_gui_set,get_overlay() which allow to toggle embedded and dialog style gui. --- app/display/gimptoolgui.c | 43 +++++++++++++++++++++++++++++++++++++++ app/display/gimptoolgui.h | 4 ++++ 2 files changed, 47 insertions(+) diff --git a/app/display/gimptoolgui.c b/app/display/gimptoolgui.c index 277a8b5d0c..52d42ccbcb 100644 --- a/app/display/gimptoolgui.c +++ b/app/display/gimptoolgui.c @@ -390,6 +390,49 @@ gimp_tool_gui_hide (GimpToolGui *gui) } } +void +gimp_tool_gui_set_overlay (GimpToolGui *gui, + gboolean overlay) +{ + GimpToolGuiPrivate *private; + gboolean visible; + + g_return_if_fail (GIMP_IS_TOOL_GUI (gui)); + + private = GET_PRIVATE (gui); + + if (private->overlay == overlay) + return; + + visible = gtk_widget_get_visible (private->dialog); + + if (visible) + gimp_tool_gui_hide (gui); + + gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (private->vbox)), + private->vbox); + + if (private->overlay) + g_object_unref (private->dialog); + else + gtk_widget_destroy (private->dialog); + + private->overlay = overlay ? TRUE : FALSE; + + gimp_tool_gui_create_dialog (gui); + + if (visible) + gimp_tool_gui_show (gui); +} + +gboolean +gimp_tool_gui_get_overlay (GimpToolGui *gui) +{ + g_return_val_if_fail (GIMP_IS_TOOL_GUI (gui), FALSE); + + return GET_PRIVATE (gui)->overlay; +} + void gimp_tool_gui_set_default_response (GimpToolGui *gui, gint response_id) diff --git a/app/display/gimptoolgui.h b/app/display/gimptoolgui.h index b9f1e3d53a..372eb408b3 100644 --- a/app/display/gimptoolgui.h +++ b/app/display/gimptoolgui.h @@ -71,6 +71,10 @@ GtkWidget * gimp_tool_gui_get_vbox (GimpToolGui *gui); void gimp_tool_gui_show (GimpToolGui *gui); void gimp_tool_gui_hide (GimpToolGui *gui); +void gimp_tool_gui_set_overlay (GimpToolGui *gui, + gboolean overlay); +gboolean gimp_tool_gui_get_overlay (GimpToolGui *gui); + void gimp_tool_gui_set_default_response (GimpToolGui *gui, gint response_id); void gimp_tool_gui_set_response_sensitive (GimpToolGui *gui,