[gnome-builder] tree: add gb_tree_node_select() and gb_tree_node_expand()



commit 779722ee5c8144cbcdf78d6ea0e420f7a19f5267
Author: Christian Hergert <christian hergert me>
Date:   Wed Apr 8 20:58:11 2015 -0700

    tree: add gb_tree_node_select() and gb_tree_node_expand()
    
    These are convenience helpers to simplify working with tree nodes.

 src/tree/gb-tree-node.c |   35 +++++++++++++++++++++++++++++++++--
 src/tree/gb-tree-node.h |    3 +++
 2 files changed, 36 insertions(+), 2 deletions(-)
---
diff --git a/src/tree/gb-tree-node.c b/src/tree/gb-tree-node.c
index d484077..3aada51 100644
--- a/src/tree/gb-tree-node.c
+++ b/src/tree/gb-tree-node.c
@@ -225,8 +225,6 @@ gb_tree_node_get_parent (GbTreeNode *node)
  * gb_tree_node_get_icon_name:
  *
  * Fetches the icon-name of the icon to display, or NULL for no icon.
- *
- * Returns: 
  */
 const gchar *
 gb_tree_node_get_icon_name (GbTreeNode *node)
@@ -356,6 +354,39 @@ gb_tree_node_get_item (GbTreeNode *node)
   return node->priv->item;
 }
 
+void
+gb_tree_node_expand (GbTreeNode *node,
+                     gboolean    expand_ancestors)
+{
+  GbTree *tree;
+  GtkTreePath *path;
+
+  g_return_if_fail (GB_IS_TREE_NODE (node));
+
+  tree = gb_tree_node_get_tree (node);
+  path = gb_tree_node_get_path (node);
+  gtk_tree_view_expand_row (GTK_TREE_VIEW (tree), path, FALSE);
+  if (expand_ancestors)
+    gtk_tree_view_expand_to_path (GTK_TREE_VIEW (tree), path);
+  gtk_tree_path_free (path);
+}
+
+void
+gb_tree_node_select (GbTreeNode  *node)
+{
+  GbTree *tree;
+  GtkTreePath *path;
+  GtkTreeSelection *selection;
+
+  g_return_if_fail (GB_IS_TREE_NODE (node));
+
+  tree = gb_tree_node_get_tree (node);
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
+  path = gb_tree_node_get_path (node);
+  gtk_tree_selection_select_path (selection, path);
+  gtk_tree_path_free (path);
+}
+
 /**
  * gb_tree_node_finalize:
  * @object: (in): A #GbTreeNode.
diff --git a/src/tree/gb-tree-node.h b/src/tree/gb-tree-node.h
index b2f3e6f..0d0217c 100644
--- a/src/tree/gb-tree-node.h
+++ b/src/tree/gb-tree-node.h
@@ -68,6 +68,9 @@ void           gb_tree_node_set_icon_name (GbTreeNode  *node,
                                            const gchar *icon_name);
 void           gb_tree_node_set_item      (GbTreeNode  *node,
                                            GObject     *item);
+void           gb_tree_node_expand        (GbTreeNode  *node,
+                                           gboolean     expand_ancestors);
+void           gb_tree_node_select        (GbTreeNode  *node);
 
 G_END_DECLS
 


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