[gimp] Add some more shell management API to GimpImageWindow



commit d1dc70fbdf5b41fec1168ca2c92885e896e8c41a
Author: Michael Natterer <mitch gimp org>
Date:   Tue Sep 29 22:59:48 2009 +0200

    Add some more shell management API to GimpImageWindow
    
    - gimp_image_window_remove_shell()
    - gimp_image_window_get_n_shells()

 app/display/gimpimagewindow.c |   34 ++++++++++++++++++++++++++++++++++
 app/display/gimpimagewindow.h |    4 ++++
 2 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/app/display/gimpimagewindow.c b/app/display/gimpimagewindow.c
index c705153..e6b05dd 100644
--- a/app/display/gimpimagewindow.c
+++ b/app/display/gimpimagewindow.c
@@ -570,6 +570,40 @@ gimp_image_window_add_shell (GimpImageWindow  *window,
 }
 
 void
+gimp_image_window_remove_shell (GimpImageWindow  *window,
+                                GimpDisplayShell *shell)
+{
+  GimpImageWindowPrivate *private;
+
+  g_return_if_fail (GIMP_IS_IMAGE_WINDOW (window));
+  g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
+
+  private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
+
+  g_return_if_fail (g_list_find (private->shells, shell) != NULL);
+
+  private->shells = g_list_remove (private->shells, shell);
+
+  gtk_container_remove (GTK_CONTAINER (private->notebook),
+                        GTK_WIDGET (shell));
+
+  if (g_list_length (private->shells) == 1)
+    gtk_notebook_set_show_tabs (GTK_NOTEBOOK (private->notebook), FALSE);
+}
+
+gint
+gimp_image_window_get_n_shells (GimpImageWindow *window)
+{
+  GimpImageWindowPrivate *private;
+
+  g_return_val_if_fail (GIMP_IS_IMAGE_WINDOW (window), 0);
+
+  private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
+
+  return g_list_length (private->shells);
+}
+
+void
 gimp_image_window_set_active_shell (GimpImageWindow  *window,
                                     GimpDisplayShell *shell)
 {
diff --git a/app/display/gimpimagewindow.h b/app/display/gimpimagewindow.h
index 32905a7..a37ac6e 100644
--- a/app/display/gimpimagewindow.h
+++ b/app/display/gimpimagewindow.h
@@ -50,6 +50,10 @@ GimpStatusbar    * gimp_image_window_get_statusbar      (GimpImageWindow  *windo
 
 void               gimp_image_window_add_shell          (GimpImageWindow  *window,
                                                          GimpDisplayShell *shell);
+void               gimp_image_window_remove_shell       (GimpImageWindow  *window,
+                                                         GimpDisplayShell *shell);
+
+gint               gimp_image_window_get_n_shells       (GimpImageWindow *window);
 
 void               gimp_image_window_set_active_shell   (GimpImageWindow  *window,
                                                          GimpDisplayShell *shell);



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