diff options
author | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2011-01-10 15:54:26 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2011-01-10 15:57:01 +0900 |
commit | db4732e826b0588b77b16ae62646bd08c6e86b67 (patch) | |
tree | ce74078c4b101f25dcc3b8fe2a179bc575c299de | |
parent | 054032caa39d962dcbaa635dfe636573a2619e6b (diff) | |
download | glade-db4732e826b0588b77b16ae62646bd08c6e86b67.tar.gz |
* plugins/gtk+/gtk+.xml.in, plugins/gtk+/glade-gtk.c: Expose internal GtkTreeSelection
child of GtkTreeView so that "changed" signal can be connected to. Fixes bug 383766.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | plugins/gtk+/glade-gtk.c | 31 | ||||
-rw-r--r-- | plugins/gtk+/gtk+.xml.in | 3 |
3 files changed, 34 insertions, 3 deletions
@@ -2,6 +2,9 @@ * gladeui/glade-widget.c: Dont set packing properties onto internal widgets. + * plugins/gtk+/gtk+.xml.in, plugins/gtk+/glade-gtk.c: Expose internal GtkTreeSelection + child of GtkTreeView so that "changed" signal can be connected to. Fixes bug 383766. + 2011-01-09 Tristan Van Berkom <tristanvb@openismus.com> * gladeui/glade-design-layout.c: Fixed to not hide widgets when removing diff --git a/plugins/gtk+/glade-gtk.c b/plugins/gtk+/glade-gtk.c index efe07708..56770342 100644 --- a/plugins/gtk+/glade-gtk.c +++ b/plugins/gtk+/glade-gtk.c @@ -1866,6 +1866,7 @@ glade_gtk_box_replace_child (GladeWidgetAdaptor * adaptor, GWA_GET_CLASS (GTK_TYPE_CONTAINER)->replace_child (adaptor, container, current, new_widget); + gbox = glade_widget_get_from_gobject (container); if ((gchild = glade_widget_get_from_gobject (new_widget)) != NULL) /* The "Remove Slot" operation only makes sence on placeholders, @@ -1873,7 +1874,6 @@ glade_gtk_box_replace_child (GladeWidgetAdaptor * adaptor, */ glade_widget_set_pack_action_visible (gchild, "remove_slot", FALSE); - gbox = glade_widget_get_from_gobject (container); fix_response_id_on_child (gbox, current, FALSE); fix_response_id_on_child (gbox, new_widget, TRUE); @@ -11142,6 +11142,18 @@ glade_gtk_cell_layout_action_activate_as_widget (GladeWidgetAdaptor * adaptor, /*--------------------------- GtkTreeView ---------------------------------*/ +void +glade_gtk_treeview_post_create (GladeWidgetAdaptor *adaptor, + GObject *object, + GladeCreateReason reason) +{ + GladeWidget *widget = glade_widget_get_from_gobject (object); + + glade_widget_adaptor_create_internal + (widget, G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (object))), + "selection", "treeview", FALSE, reason); +} + static void glade_gtk_treeview_launch_editor (GObject * treeview) { @@ -11259,7 +11271,22 @@ GList * glade_gtk_treeview_get_children (GladeWidgetAdaptor * adaptor, GtkTreeView * view) { - return gtk_tree_view_get_columns (view); + GList *children; + + children = gtk_tree_view_get_columns (view); + children = g_list_prepend (children, gtk_tree_view_get_selection (view)); + + return children; +} + +GObject * +glade_gtk_treeview_get_internal_child (GladeWidgetAdaptor * adaptor, + GtkTreeView *view, const gchar * name) +{ + if (strcmp (name, "selection") == 0) + return (GObject *)gtk_tree_view_get_selection (view); + + return NULL; } /* XXX FIXME: We should hide the actual "fixed-height-mode" setting from diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in index 8124b439..d5f54984 100644 --- a/plugins/gtk+/gtk+.xml.in +++ b/plugins/gtk+/gtk+.xml.in @@ -2012,10 +2012,11 @@ embedded in another object</_tooltip> <glade-widget-class name="GtkTreeView" generic-name="treeview" _title="Tree View"> - <post-create-function>empty</post-create-function> + <post-create-function>glade_gtk_treeview_post_create</post-create-function> <child-set-property-function>glade_gtk_treeview_set_child_property</child-set-property-function> <child-get-property-function>glade_gtk_treeview_get_child_property</child-get-property-function> <get-children-function>glade_gtk_treeview_get_children</get-children-function> + <get-internal-child-function>glade_gtk_treeview_get_internal_child</get-internal-child-function> <add-child-function>glade_gtk_treeview_add_child</add-child-function> <replace-child-function>glade_gtk_treeview_replace_child</replace-child-function> <remove-child-function>glade_gtk_treeview_remove_child</remove-child-function> |