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.
This commit is contained in:
Martin Nordholts 2009-10-24 18:34:25 +02:00
parent fafee5230f
commit 69f17fdbf2
3 changed files with 23 additions and 13 deletions

View File

@ -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,

View File

@ -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)
{

View File

@ -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);