[gimp] app: Add gimp_dock_separator_set_dropped_cb()



commit 69f17fdbf201a485365f68be8c9097dd2ecf6a52
Author: Martin Nordholts <martinn src gnome org>
Date:   Sat Oct 24 18:34:25 2009 +0200

    app: Add gimp_dock_separator_set_dropped_cb()
    
    Allow to set the dropped callback after dock separator construction.
    We need this in order to move the dock separators into a common widget
    for which the callback to use is not known at construction time.

 app/widgets/gimpdock.c          |   14 ++++++++------
 app/widgets/gimpdockseparator.c |   19 +++++++++++++------
 app/widgets/gimpdockseparator.h |    3 ++-
 3 files changed, 23 insertions(+), 13 deletions(-)
---
diff --git a/app/widgets/gimpdock.c b/app/widgets/gimpdock.c
index 17eed25..8ff5cc1 100644
--- a/app/widgets/gimpdock.c
+++ b/app/widgets/gimpdock.c
@@ -206,12 +206,14 @@ gimp_dock_init (GimpDock *dock)
   gtk_container_add (GTK_CONTAINER (dock->p->main_vbox), dock->p->vbox);
   gtk_widget_show (dock->p->vbox);
 
-  dock->p->north_separator = gimp_dock_separator_new (GTK_ANCHOR_NORTH,
-                                                      gimp_dock_dropped_cb,
-                                                      dock);
-  dock->p->south_separator = gimp_dock_separator_new (GTK_ANCHOR_SOUTH,
-                                                      gimp_dock_dropped_cb,
-                                                      dock);
+  dock->p->north_separator = gimp_dock_separator_new (GTK_ANCHOR_NORTH);
+  gimp_dock_separator_set_dropped_cb (GIMP_DOCK_SEPARATOR (dock->p->north_separator),
+                                      gimp_dock_dropped_cb,
+                                      dock);
+  dock->p->south_separator = gimp_dock_separator_new (GTK_ANCHOR_SOUTH);
+  gimp_dock_separator_set_dropped_cb (GIMP_DOCK_SEPARATOR (dock->p->north_separator),
+                                      gimp_dock_dropped_cb,
+                                      dock);
   gtk_box_pack_start (GTK_BOX (dock->p->vbox), dock->p->north_separator,
                       FALSE, FALSE, 0);
   gtk_box_pack_end (GTK_BOX (dock->p->vbox), dock->p->south_separator,
diff --git a/app/widgets/gimpdockseparator.c b/app/widgets/gimpdockseparator.c
index 33f67f3..a2cedbe 100644
--- a/app/widgets/gimpdockseparator.c
+++ b/app/widgets/gimpdockseparator.c
@@ -211,21 +211,28 @@ gimp_dock_separator_drag_drop (GtkWidget      *widget,
 /*  public functions  */
 
 GtkWidget *
-gimp_dock_separator_new (GtkAnchorType                anchor,
-                         GimpDockSeparatorDroppedFunc dropped_cb,
-                         gpointer                     dropped_cb_data)
+gimp_dock_separator_new (GtkAnchorType anchor)
 {
   GimpDockSeparator *separator;
 
   separator = g_object_new (GIMP_TYPE_DOCK_SEPARATOR, NULL);
 
-  separator->p->anchor          = anchor;
-  separator->p->dropped_cb      = dropped_cb;
-  separator->p->dropped_cb_data = dropped_cb_data;
+  separator->p->anchor = anchor;
 
   return GTK_WIDGET (separator);
 }
 
+void
+gimp_dock_separator_set_dropped_cb (GimpDockSeparator            *separator,
+                                    GimpDockSeparatorDroppedFunc  dropped_cb,
+                                    gpointer                      dropped_cb_data)
+{
+  g_return_if_fail (GIMP_IS_DOCK_SEPARATOR (separator));
+
+  separator->p->dropped_cb      = dropped_cb;
+  separator->p->dropped_cb_data = dropped_cb_data;
+}
+
 GtkAnchorType
 gimp_dock_separator_get_anchor (GimpDockSeparator *separator)
 {
diff --git a/app/widgets/gimpdockseparator.h b/app/widgets/gimpdockseparator.h
index f4dc5c4..4984eb1 100644
--- a/app/widgets/gimpdockseparator.h
+++ b/app/widgets/gimpdockseparator.h
@@ -53,7 +53,8 @@ struct _GimpDockSeparatorClass
 
 
 GType          gimp_dock_separator_get_type       (void) G_GNUC_CONST;
-GtkWidget    * gimp_dock_separator_new            (GtkAnchorType                 anchor,
+GtkWidget    * gimp_dock_separator_new            (GtkAnchorType                 anchor);
+void           gimp_dock_separator_set_dropped_cb (GimpDockSeparator            *separator,
                                                    GimpDockSeparatorDroppedFunc  dropped_cb,
                                                    gpointer                      dropped_cb_data);
 GtkAnchorType  gimp_dock_separator_get_anchor     (GimpDockSeparator            *separator);



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