aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/table/e-tree.c24
-rw-r--r--widgets/table/e-tree.h11
2 files changed, 35 insertions, 0 deletions
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c
index c397341cff..bdc1db64ac 100644
--- a/widgets/table/e-tree.c
+++ b/widgets/table/e-tree.c
@@ -28,7 +28,12 @@
#include <gal/e-table/e-table-sort-info.h>
#include <gal/e-table/e-table-utils.h>
+#ifdef E_TREE_USE_TREE_SELECTION
+#include <gal/e-table/e-tree-selection-model.h>
+#else
#include <gal/e-table/e-table-selection-model.h>
+#endif
+
#include <gal/e-table/e-tree-sorted.h>
#include <gal/e-table/e-tree-table-adapter.h>
@@ -236,7 +241,11 @@ e_tree_init (GtkObject *object)
e_tree->priv->drag_source_button_press_event_id = 0;
e_tree->priv->drag_source_motion_notify_event_id = 0;
+#ifdef E_TREE_USE_TREE_SELECTION
+ e_tree->priv->selection = E_SELECTION_MODEL(e_tree_selection_model_new());
+#else
e_tree->priv->selection = E_SELECTION_MODEL(e_table_selection_model_new());
+#endif
e_tree->priv->spec = NULL;
e_tree->priv->header_canvas = NULL;
@@ -1064,6 +1073,21 @@ e_tree_selected_row_foreach (ETree *e_tree,
closure);
}
+#ifdef E_TREE_USE_TREE_SELECTION
+void
+e_tree_selected_path_foreach (ETree *e_tree,
+ ETreeForeachFunc callback,
+ gpointer closure)
+{
+ g_return_if_fail(e_tree != NULL);
+ g_return_if_fail(E_IS_TREE(e_tree));
+
+ e_tree_selection_model_foreach(E_TREE_SELECTION_MODEL (e_tree->priv->selection),
+ callback,
+ closure);
+}
+#endif
+
gint
e_tree_selected_count (ETree *e_tree)
{
diff --git a/widgets/table/e-tree.h b/widgets/table/e-tree.h
index 60d39d8464..668fb8dc8d 100644
--- a/widgets/table/e-tree.h
+++ b/widgets/table/e-tree.h
@@ -12,6 +12,12 @@
#include <gal/e-table/e-table-state.h>
#include <gal/e-table/e-tree-model.h>
+/*#define E_TREE_USE_TREE_SELECTION*/
+
+#ifdef E_TREE_USE_TREE_SELECTION
+#include <gal/e-table/e-tree-selection-model.h>
+#endif
+
BEGIN_GNOME_DECLS
#define E_TREE_TYPE (e_tree_get_type ())
@@ -149,6 +155,11 @@ ETreePath e_tree_get_cursor (ETree *e_tree);
void e_tree_selected_row_foreach (ETree *e_tree,
EForeachFunc callback,
gpointer closure);
+#ifdef E_TREE_USE_TREE_SELECTION
+void e_tree_selected_path_foreach (ETree *e_tree,
+ ETreeForeachFunc callback,
+ gpointer closure);
+#endif
gint e_tree_selected_count (ETree *e_tree);
EPrintable *e_tree_get_printable (ETree *e_tree);