[gnome-builder] tree: add collapse and expand state helpers



commit 76dd31fef2b6b7d8b3d1085d0cc2587831d55801
Author: Christian Hergert <christian hergert me>
Date:   Fri Apr 10 18:49:51 2015 -0700

    tree: add collapse and expand state helpers

 src/tree/gb-tree-node.c |   31 +++++++++++++++++++++++++++++++
 src/tree/gb-tree-node.h |    2 ++
 2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/src/tree/gb-tree-node.c b/src/tree/gb-tree-node.c
index 3a2eba1..1564c83 100644
--- a/src/tree/gb-tree-node.c
+++ b/src/tree/gb-tree-node.c
@@ -375,6 +375,20 @@ gb_tree_node_expand (GbTreeNode *node,
 }
 
 void
+gb_tree_node_collapse (GbTreeNode *node)
+{
+  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_collapse_row (GTK_TREE_VIEW (tree), path);
+  gtk_tree_path_free (path);
+}
+
+void
 gb_tree_node_select (GbTreeNode  *node)
 {
   GbTree *tree;
@@ -419,6 +433,23 @@ gb_tree_node_rebuild (GbTreeNode *self)
   _gb_tree_rebuild_node (tree, self);
 }
 
+gboolean
+gb_tree_node_get_expanded (GbTreeNode *self)
+{
+  GbTree *tree;
+  GtkTreePath *path;
+  gboolean ret;
+
+  g_return_val_if_fail (GB_IS_TREE_NODE (self), FALSE);
+
+  tree = gb_tree_node_get_tree (self);
+  path = gb_tree_node_get_path (self);
+  ret = gtk_tree_view_row_expanded (GTK_TREE_VIEW (tree), path);
+  gtk_tree_path_free (path);
+
+  return ret;
+}
+
 /**
  * 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 a633059..b6aae49 100644
--- a/src/tree/gb-tree-node.h
+++ b/src/tree/gb-tree-node.h
@@ -72,10 +72,12 @@ void           gb_tree_node_set_item      (GbTreeNode   *node,
                                            GObject      *item);
 void           gb_tree_node_expand        (GbTreeNode   *node,
                                            gboolean      expand_ancestors);
+void           gb_tree_node_collapse      (GbTreeNode   *node);
 void           gb_tree_node_select        (GbTreeNode   *node);
 void           gb_tree_node_get_area      (GbTreeNode   *node,
                                            GdkRectangle *area);
 void           gb_tree_node_rebuild       (GbTreeNode   *node);
+gboolean       gb_tree_node_get_expanded  (GbTreeNode   *node);
 
 G_END_DECLS
 


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