[gimp] app: Add GimpDockColumns to the left and right of a GimpImageWindow
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Add GimpDockColumns to the left and right of a GimpImageWindow
- Date: Sun, 4 Oct 2009 00:09:41 +0000 (UTC)
commit d1958a51030171985a6acdf8b064beb07c8a83e9
Author: Martin Nordholts <martinn src gnome org>
Date: Sun Oct 4 02:02:39 2009 +0200
app: Add GimpDockColumns to the left and right of a GimpImageWindow
app/display/gimpimagewindow.c | 91 +++++++++++++++++++++++++++++++++++++++-
app/display/gimpimagewindow.h | 6 +++
2 files changed, 94 insertions(+), 3 deletions(-)
---
diff --git a/app/display/gimpimagewindow.c b/app/display/gimpimagewindow.c
index 87725b1..95602b5 100644
--- a/app/display/gimpimagewindow.c
+++ b/app/display/gimpimagewindow.c
@@ -25,12 +25,16 @@
#include "display-types.h"
+#include "config/gimpguiconfig.h"
+
#include "core/gimp.h"
+#include "core/gimpcontext.h"
#include "core/gimpimage.h"
#include "core/gimpprogress.h"
#include "widgets/gimpactiongroup.h"
#include "widgets/gimpdialogfactory.h"
+#include "widgets/gimpdockcolumns.h"
#include "widgets/gimphelp-ids.h"
#include "widgets/gimpmenufactory.h"
#include "widgets/gimpsessioninfo.h"
@@ -72,7 +76,9 @@ struct _GimpImageWindowPrivate
GtkWidget *main_vbox;
GtkWidget *menubar;
GtkWidget *hbox;
+ GtkWidget *left_docks;
GtkWidget *notebook;
+ GtkWidget *right_docks;
GtkWidget *statusbar;
GdkWindowState window_state;
@@ -210,6 +216,7 @@ gimp_image_window_constructor (GType type,
GObjectConstructParam *params)
{
GObject *object;
+ GimpGuiConfig *config;
GimpImageWindow *window;
GimpImageWindowPrivate *private;
@@ -230,16 +237,19 @@ gimp_image_window_constructor (GType type,
G_CALLBACK (gimp_image_window_hide_tooltip),
window);
+ config = GIMP_GUI_CONFIG (private->display_factory->context->gimp->config);
+
+ /* Create the window toplevel container */
private->main_vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), private->main_vbox);
gtk_widget_show (private->main_vbox);
+ /* Create the menubar */
#ifndef GDK_WINDOWING_QUARTZ
private->menubar =
gtk_ui_manager_get_widget (GTK_UI_MANAGER (private->menubar_manager),
"/image-menubar");
#endif /* !GDK_WINDOWING_QUARTZ */
-
if (private->menubar)
{
gtk_box_pack_start (GTK_BOX (private->main_vbox),
@@ -264,22 +274,38 @@ gimp_image_window_constructor (GType type,
window);
}
+ /* Create the hbox that contains docks and images */
private->hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (private->main_vbox), private->hbox,
TRUE, TRUE, 0);
gtk_widget_show (private->hbox);
+ /* Create the left dock columns widget */
+ private->left_docks = g_object_new (GIMP_TYPE_DOCK_COLUMNS, NULL);
+ gtk_box_pack_start (GTK_BOX (private->hbox), private->left_docks,
+ FALSE, TRUE, 0);
+ if (config->single_window_mode)
+ gtk_widget_show (private->left_docks);
+
+ /* Create notebook that contains images */
private->notebook = gtk_notebook_new ();
gtk_notebook_set_show_border (GTK_NOTEBOOK (private->notebook), FALSE);
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (private->notebook), FALSE);
gtk_box_pack_start (GTK_BOX (private->hbox), private->notebook,
TRUE, TRUE, 0);
- gtk_widget_show (private->notebook);
-
g_signal_connect (private->notebook, "switch-page",
G_CALLBACK (gimp_image_window_switch_page),
window);
+ gtk_widget_show (private->notebook);
+ /* Create the right dock columns widget */
+ private->right_docks = g_object_new (GIMP_TYPE_DOCK_COLUMNS, NULL);
+ gtk_box_pack_start (GTK_BOX (private->hbox), private->right_docks,
+ FALSE, TRUE, 0);
+ if (config->single_window_mode)
+ gtk_widget_show (private->right_docks);
+
+ /* Create the statusbar */
private->statusbar = gimp_statusbar_new ();
gimp_help_set_help_data (private->statusbar, NULL,
GIMP_HELP_IMAGE_WINDOW_STATUS_BAR);
@@ -551,6 +577,30 @@ gimp_image_window_get_statusbar (GimpImageWindow *window)
return GIMP_STATUSBAR (private->statusbar);
}
+GimpDockColumns *
+gimp_image_window_get_left_docks (GimpImageWindow *window)
+{
+ GimpImageWindowPrivate *private;
+
+ g_return_val_if_fail (GIMP_IS_IMAGE_WINDOW (window), FALSE);
+
+ private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
+
+ return GIMP_DOCK_COLUMNS (private->left_docks);
+}
+
+GimpDockColumns *
+gimp_image_window_get_right_docks (GimpImageWindow *window)
+{
+ GimpImageWindowPrivate *private;
+
+ g_return_val_if_fail (GIMP_IS_IMAGE_WINDOW (window), FALSE);
+
+ private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
+
+ return GIMP_DOCK_COLUMNS (private->right_docks);
+}
+
void
gimp_image_window_add_shell (GimpImageWindow *window,
GimpDisplayShell *shell)
@@ -738,6 +788,41 @@ gimp_image_window_get_show_statusbar (GimpImageWindow *window)
return GTK_WIDGET_VISIBLE (private->statusbar);
}
+void
+gimp_image_window_set_show_docks (GimpImageWindow *window,
+ gboolean show)
+{
+ GimpImageWindowPrivate *private;
+
+ g_return_if_fail (GIMP_IS_IMAGE_WINDOW (window));
+
+ private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
+
+ if (show)
+ {
+ gtk_widget_show (private->left_docks);
+ gtk_widget_show (private->right_docks);
+ }
+ else
+ {
+ gtk_widget_hide (private->left_docks);
+ gtk_widget_hide (private->right_docks);
+ }
+}
+
+gboolean
+gimp_image_window_get_show_docks (GimpImageWindow *window)
+{
+ GimpImageWindowPrivate *private;
+
+ g_return_val_if_fail (GIMP_IS_IMAGE_WINDOW (window), FALSE);
+
+ private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
+
+ return (GTK_WIDGET_VISIBLE (private->left_docks) &&
+ GTK_WIDGET_VISIBLE (private->right_docks));
+}
+
gboolean
gimp_image_window_is_iconified (GimpImageWindow *window)
{
diff --git a/app/display/gimpimagewindow.h b/app/display/gimpimagewindow.h
index a37ac6e..edacc66 100644
--- a/app/display/gimpimagewindow.h
+++ b/app/display/gimpimagewindow.h
@@ -47,6 +47,8 @@ GType gimp_image_window_get_type (void) G_GNUC_CONST;
GimpUIManager * gimp_image_window_get_ui_manager (GimpImageWindow *window);
GimpStatusbar * gimp_image_window_get_statusbar (GimpImageWindow *window);
+GimpDockColumns * gimp_image_window_get_left_docks (GimpImageWindow *window);
+GimpDockColumns * gimp_image_window_get_right_docks (GimpImageWindow *window);
void gimp_image_window_add_shell (GimpImageWindow *window,
GimpDisplayShell *shell);
@@ -71,6 +73,10 @@ void gimp_image_window_set_show_statusbar (GimpImageWindow *windo
gboolean show);
gboolean gimp_image_window_get_show_statusbar (GimpImageWindow *window);
+void gimp_image_window_set_show_docks (GimpImageWindow *window,
+ gboolean show);
+gboolean gimp_image_window_get_show_docks (GimpImageWindow *window);
+
gboolean gimp_image_window_is_iconified (GimpImageWindow *window);
void gimp_image_window_shrink_wrap (GimpImageWindow *window,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]