[gimp] app: add gimp_tool_gui_set,get_overlay()



commit 1982cf1db74bc3d9fb5d6d06f8efcbd950236f93
Author: Michael Natterer <mitch gimp org>
Date:   Sat Jun 8 01:32:34 2013 +0200

    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(+), 0 deletions(-)
---
diff --git a/app/display/gimptoolgui.c b/app/display/gimptoolgui.c
index 277a8b5..52d42cc 100644
--- a/app/display/gimptoolgui.c
+++ b/app/display/gimptoolgui.c
@@ -391,6 +391,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 b9f1e3d..372eb40 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,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]