[gimp] app: Keep GimpDocks in GtkPaneds in GimpDockColumns
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Keep GimpDocks in GtkPaneds in GimpDockColumns
- Date: Sat, 24 Oct 2009 18:06:47 +0000 (UTC)
commit 6f95bc68885ba7832f38d4d61a0d5cf94ecb46d4
Author: Martin Nordholts <martinn src gnome org>
Date: Sat Oct 24 20:08:58 2009 +0200
app: Keep GimpDocks in GtkPaneds in GimpDockColumns
Use the new GimpPanedBox to make the space for GimpDocks in
GimpDockColumns manually distributable by the use of GtkPaneds.
app/gui/gimpuiconfigurer.c | 2 +-
app/widgets/gimpdockcolumns.c | 69 +++++++++++++++++++++++++++++++++++++---
app/widgets/gimpdockcolumns.h | 4 ++
3 files changed, 68 insertions(+), 7 deletions(-)
---
diff --git a/app/gui/gimpuiconfigurer.c b/app/gui/gimpuiconfigurer.c
index fafaac2..46abff0 100644
--- a/app/gui/gimpuiconfigurer.c
+++ b/app/gui/gimpuiconfigurer.c
@@ -160,7 +160,7 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
*/
g_object_ref (dock);
gtk_container_remove (GTK_CONTAINER (dock_window), GTK_WIDGET (dock));
- gimp_dock_columns_add_dock (dock_columns, dock);
+ gimp_dock_columns_add_dock (dock_columns, dock, -1);
g_object_unref (dock);
/* Queue for removal from the dialog factory. (We can't remove
diff --git a/app/widgets/gimpdockcolumns.c b/app/widgets/gimpdockcolumns.c
index dd082b6..dee49a6 100644
--- a/app/widgets/gimpdockcolumns.c
+++ b/app/widgets/gimpdockcolumns.c
@@ -26,14 +26,22 @@
#include "gimpdock.h"
#include "gimpdockcolumns.h"
+#include "gimppanedbox.h"
struct _GimpDockColumnsPrivate
{
- int dummy;
+ GList *docks;
+
+ GtkWidget *paned_hbox;
};
+static gboolean gimp_dock_columns_dropped_cb (GimpDockSeparator *separator,
+ GtkWidget *source,
+ gpointer data);
+
+
G_DEFINE_TYPE (GimpDockColumns, gimp_dock_columns, GTK_TYPE_HBOX)
#define parent_class gimp_dock_columns_parent_class
@@ -49,17 +57,66 @@ static void
gimp_dock_columns_init (GimpDockColumns *dock_columns)
{
dock_columns->p = G_TYPE_INSTANCE_GET_PRIVATE (dock_columns,
- GIMP_TYPE_DOCK_COLUMNS,
- GimpDockColumnsPrivate);
+ GIMP_TYPE_DOCK_COLUMNS,
+ GimpDockColumnsPrivate);
+
+ dock_columns->p->paned_hbox = gimp_paned_box_new (FALSE, 0,
+ GTK_ORIENTATION_HORIZONTAL);
+ gimp_paned_box_set_dropped_cb (GIMP_PANED_BOX (dock_columns->p->paned_hbox),
+ gimp_dock_columns_dropped_cb,
+ dock_columns);
+ gtk_container_add (GTK_CONTAINER (dock_columns), dock_columns->p->paned_hbox);
+ gtk_widget_show (dock_columns->p->paned_hbox);
}
+static gboolean
+gimp_dock_columns_dropped_cb (GimpDockSeparator *separator,
+ GtkWidget *source,
+ gpointer data)
+{
+ g_printerr ("%s: WiP: Will create a new column soon!\n", G_STRFUNC);
+
+ return FALSE;
+}
+
+/**
+ * gimp_dock_columns_add_dock:
+ * @dock_columns:
+ * @dock:
+ *
+ * Add a dock, added to a horizontal GimpPanedBox.
+ **/
void
gimp_dock_columns_add_dock (GimpDockColumns *dock_columns,
- GimpDock *dock)
+ GimpDock *dock,
+ gint index)
+{
+ g_return_if_fail (GIMP_IS_DOCK_COLUMNS (dock_columns));
+ g_return_if_fail (GIMP_IS_DOCK (dock));
+
+ dock_columns->p->docks = g_list_prepend (dock_columns->p->docks, dock);
+
+ gimp_paned_box_add_widget (GIMP_PANED_BOX (dock_columns->p->paned_hbox),
+ GTK_WIDGET (dock),
+ index);
+}
+
+
+void
+gimp_dock_columns_remove_dock (GimpDockColumns *dock_columns,
+ GimpDock *dock)
{
g_return_if_fail (GIMP_IS_DOCK_COLUMNS (dock_columns));
g_return_if_fail (GIMP_IS_DOCK (dock));
- gtk_box_pack_start (GTK_BOX (dock_columns), GTK_WIDGET (dock),
- TRUE, TRUE, 0);
+ dock_columns->p->docks = g_list_remove (dock_columns->p->docks, dock);
+
+ gimp_paned_box_remove_widget (GIMP_PANED_BOX (dock_columns->p->paned_hbox),
+ GTK_WIDGET (dock));
+}
+
+GList *
+gimp_dock_columns_get_docks (GimpDockColumns *dock_columns)
+{
+ return g_list_copy (dock_columns->p->docks);
}
diff --git a/app/widgets/gimpdockcolumns.h b/app/widgets/gimpdockcolumns.h
index 144748a..be3f82d 100644
--- a/app/widgets/gimpdockcolumns.h
+++ b/app/widgets/gimpdockcolumns.h
@@ -54,7 +54,11 @@ struct _GimpDockColumnsClass
GType gimp_dock_columns_get_type (void) G_GNUC_CONST;
void gimp_dock_columns_add_dock (GimpDockColumns *dock_columns,
+ GimpDock *dock,
+ gint index);
+void gimp_dock_columns_remove_dock (GimpDockColumns *dock_columns,
GimpDock *dock);
+GList * gimp_dock_columns_get_docks (GimpDockColumns *dock_columns);
#endif /* __GIMP_DOCK_COLUMNS_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]