aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree-model.h
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-tree-model.h')
-rw-r--r--widgets/table/e-tree-model.h202
1 files changed, 112 insertions, 90 deletions
diff --git a/widgets/table/e-tree-model.h b/widgets/table/e-tree-model.h
index 50bd8064a5..21d3b9b844 100644
--- a/widgets/table/e-tree-model.h
+++ b/widgets/table/e-tree-model.h
@@ -3,7 +3,6 @@
#define _E_TREE_MODEL_H_
#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gal/e-table/e-table-model.h>
#ifdef __cplusplus
extern "C" {
@@ -16,127 +15,150 @@ extern "C" {
#define E_IS_TREE_MODEL(o) (GTK_CHECK_TYPE ((o), E_TREE_MODEL_TYPE))
#define E_IS_TREE_MODEL_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TREE_MODEL_TYPE))
-typedef struct ETreePath ETreePath;
+typedef void * ETreePath;
typedef struct ETreeModel ETreeModel;
-typedef struct ETreeModelPriv ETreeModelPriv;
typedef struct ETreeModelClass ETreeModelClass;
-typedef gint (*ETreePathCompareFunc)(ETreeModel *model, ETreePath *path1, ETreePath *path2);
-typedef gboolean (*ETreePathFunc)(ETreeModel *model, ETreePath *path, gpointer data);
+typedef gint (*ETreePathCompareFunc)(ETreeModel *model, ETreePath path1, ETreePath path2);
+typedef gboolean (*ETreePathFunc)(ETreeModel *model, ETreePath path, gpointer data);
struct ETreeModel {
- ETableModel base;
- ETreeModelPriv *priv;
+ GtkObject base;
};
struct ETreeModelClass {
- ETableModelClass parent_class;
+ GtkObjectClass parent_class;
/*
* Virtual methods
*/
- ETreePath *(*get_root) (ETreeModel *etm);
+ ETreePath (*get_root) (ETreeModel *etm);
- ETreePath *(*get_parent) (ETreeModel *etm, ETreePath* node);
- ETreePath *(*get_first_child) (ETreeModel *etm, ETreePath* node);
- ETreePath *(*get_last_child) (ETreeModel *etm, ETreePath* node);
- ETreePath *(*get_next) (ETreeModel *etm, ETreePath* node);
- ETreePath *(*get_prev) (ETreeModel *etm, ETreePath* node);
- guint (*get_children) (ETreeModel *etm, ETreePath* node, ETreePath ***paths);
+ ETreePath (*get_parent) (ETreeModel *etm, ETreePath node);
+ ETreePath (*get_first_child) (ETreeModel *etm, ETreePath node);
+ ETreePath (*get_last_child) (ETreeModel *etm, ETreePath node);
+ ETreePath (*get_next) (ETreeModel *etm, ETreePath node);
+ ETreePath (*get_prev) (ETreeModel *etm, ETreePath node);
- gboolean (*is_expanded) (ETreeModel *etm, ETreePath* node);
- gboolean (*is_visible) (ETreeModel *etm, ETreePath* node);
- void (*set_expanded) (ETreeModel *etm, ETreePath* node, gboolean expanded);
- void (*set_expanded_recurse) (ETreeModel *etm, ETreePath *node, gboolean expanded);
- void (*set_expanded_level) (ETreeModel *etm, ETreePath *node, gboolean expanded, int level);
+ gboolean (*is_root) (ETreeModel *etm, ETreePath node);
+ gboolean (*is_expandable) (ETreeModel *etm, ETreePath node);
+ guint (*get_children) (ETreeModel *etm, ETreePath node, ETreePath **paths);
+ guint (*depth) (ETreeModel *etm, ETreePath node);
- GdkPixbuf *(*icon_at) (ETreeModel *etm, ETreePath* node);
- ETreePath* (*node_at_row) (ETreeModel *etm, int row);
+ GdkPixbuf *(*icon_at) (ETreeModel *etm, ETreePath node);
+
+ gboolean (*get_expanded_default) (ETreeModel *etm);
+ gint (*column_count) (ETreeModel *etm);
+
+ gboolean (*has_save_id) (ETreeModel *etm);
+ gchar *(*get_save_id) (ETreeModel *etm, ETreePath node);
/*
* ETable analogs
*/
- void *(*value_at) (ETreeModel *etm, ETreePath* node, int col);
- void (*set_value_at) (ETreeModel *etm, ETreePath* node, int col, const void *val);
- gboolean (*is_editable) (ETreeModel *etm, ETreePath* node, int col);
+ void *(*value_at) (ETreeModel *etm, ETreePath node, int col);
+ void (*set_value_at) (ETreeModel *etm, ETreePath node, int col, const void *val);
+ gboolean (*is_editable) (ETreeModel *etm, ETreePath node, int col);
+ void *(*duplicate_value) (ETreeModel *etm, int col, const void *value);
+ void (*free_value) (ETreeModel *etm, int col, void *value);
+ void *(*initialize_value) (ETreeModel *etm, int col);
+ gboolean (*value_is_empty) (ETreeModel *etm, int col, const void *value);
+ char *(*value_to_string) (ETreeModel *etm, int col, const void *value);
/*
* Signals
*/
- void (*node_changed) (ETreeModel *etm, ETreePath *node);
- void (*node_inserted) (ETreeModel *etm, ETreePath *parent, ETreePath *inserted_node);
- void (*node_removed) (ETreeModel *etm, ETreePath *parent, ETreePath *removed_node);
- void (*node_collapsed) (ETreeModel *etm, ETreePath *node);
- void (*node_expanded) (ETreeModel *etm, ETreePath *node, gboolean *allow_expand);
-
+ void (*pre_change) (ETreeModel *etm);
+ void (*node_changed) (ETreeModel *etm, ETreePath node);
+ void (*node_data_changed) (ETreeModel *etm, ETreePath node);
+ void (*node_col_changed) (ETreeModel *etm, ETreePath node, int col);
+ void (*node_inserted) (ETreeModel *etm, ETreePath parent, ETreePath inserted_node);
+ void (*node_removed) (ETreeModel *etm, ETreePath parent, ETreePath removed_node);
};
-
-GtkType e_tree_model_get_type (void);
-void e_tree_model_construct (ETreeModel *etree);
-ETreeModel *e_tree_model_new (void);
+GtkType e_tree_model_get_type (void);
+ETreeModel *e_tree_model_new (void);
/* tree traversal operations */
-ETreePath *e_tree_model_get_root (ETreeModel *etree);
-ETreePath *e_tree_model_node_get_parent (ETreeModel *etree, ETreePath *path);
-ETreePath *e_tree_model_node_get_first_child (ETreeModel *etree, ETreePath *path);
-ETreePath *e_tree_model_node_get_last_child (ETreeModel *etree, ETreePath *path);
-ETreePath *e_tree_model_node_get_next (ETreeModel *etree, ETreePath *path);
-ETreePath *e_tree_model_node_get_prev (ETreeModel *etree, ETreePath *path);
-
-/* node operations */
-ETreePath *e_tree_model_node_insert (ETreeModel *etree, ETreePath *parent, int position, gpointer node_data);
-ETreePath *e_tree_model_node_insert_before (ETreeModel *etree, ETreePath *parent, ETreePath *sibling, gpointer node_data);
-gpointer e_tree_model_node_remove (ETreeModel *etree, ETreePath *path);
-
-/* Freeze and thaw */
-void e_tree_model_freeze (ETreeModel *etree);
-void e_tree_model_thaw (ETreeModel *etree);
+ETreePath e_tree_model_get_root (ETreeModel *etree);
+ETreePath e_tree_model_node_get_parent (ETreeModel *etree,
+ ETreePath path);
+ETreePath e_tree_model_node_get_first_child (ETreeModel *etree,
+ ETreePath path);
+ETreePath e_tree_model_node_get_last_child (ETreeModel *etree,
+ ETreePath path);
+ETreePath e_tree_model_node_get_next (ETreeModel *etree,
+ ETreePath path);
+ETreePath e_tree_model_node_get_prev (ETreeModel *etree,
+ ETreePath path);
/* node accessors */
-gboolean e_tree_model_node_is_root (ETreeModel *etree, ETreePath *path);
-gboolean e_tree_model_node_is_expandable (ETreeModel *etree, ETreePath *path);
-gboolean e_tree_model_node_is_expanded (ETreeModel *etree, ETreePath *path);
-gboolean e_tree_model_node_is_visible (ETreeModel *etree, ETreePath *path);
-void e_tree_model_set_expanded_default (ETreeModel *etree, gboolean expanded);
-void e_tree_model_node_set_expanded (ETreeModel *etree, ETreePath *path, gboolean expanded);
-void e_tree_model_node_set_expanded_recurse (ETreeModel *etree, ETreePath *path, gboolean expanded);
-guint e_tree_model_node_get_children (ETreeModel *etree, ETreePath *path, ETreePath ***paths);
-guint e_tree_model_node_depth (ETreeModel *etree, ETreePath *path);
-guint e_tree_model_node_num_visible_descendents (ETreeModel *etm, ETreePath *node);
-gpointer e_tree_model_node_get_data (ETreeModel *etm, ETreePath *node);
-void e_tree_model_node_set_data (ETreeModel *etm, ETreePath *node, gpointer node_data);
-
-/* display oriented routines */
-ETreePath *e_tree_model_node_at_row (ETreeModel *etree, int row);
-GdkPixbuf *e_tree_model_icon_of_node (ETreeModel *etree, ETreePath *path);
-int e_tree_model_row_of_node (ETreeModel *etree, ETreePath *path);
-void e_tree_model_root_node_set_visible (ETreeModel *etree, gboolean visible);
-gboolean e_tree_model_root_node_is_visible (ETreeModel *etree);
-
-/* sort routine, analogous to gtk_ctree_node_sort */
-void e_tree_model_node_set_compare_function (ETreeModel *tree_model, ETreePath *node, ETreePathCompareFunc compare);
-void e_tree_model_node_sort (ETreeModel *tree_model, ETreePath *node);
+gboolean e_tree_model_node_is_root (ETreeModel *etree,
+ ETreePath path);
+gboolean e_tree_model_node_is_expandable (ETreeModel *etree,
+ ETreePath path);
+guint e_tree_model_node_get_children (ETreeModel *etree,
+ ETreePath path,
+ ETreePath **paths);
+guint e_tree_model_node_depth (ETreeModel *etree,
+ ETreePath path);
+GdkPixbuf *e_tree_model_icon_at (ETreeModel *etree,
+ ETreePath path);
+gboolean e_tree_model_get_expanded_default (ETreeModel *model);
+gint e_tree_model_column_count (ETreeModel *model);
+
+
+gboolean e_tree_model_has_save_id (ETreeModel *model);
+gchar *e_tree_model_get_save_id (ETreeModel *model,
+ ETreePath node);
+
+void *e_tree_model_value_at (ETreeModel *etree,
+ ETreePath node,
+ int col);
+void e_tree_model_set_value_at (ETreeModel *etree,
+ ETreePath node,
+ int col,
+ const void *val);
+gboolean e_tree_model_node_is_editable (ETreeModel *etree,
+ ETreePath node,
+ int col);
+void *e_tree_model_duplicate_value (ETreeModel *etree,
+ int col,
+ const void *value);
+void e_tree_model_free_value (ETreeModel *etree,
+ int col,
+ void *value);
+void *e_tree_model_initialize_value (ETreeModel *etree,
+ int col);
+gboolean e_tree_model_value_is_empty (ETreeModel *etree,
+ int col,
+ const void *value);
+char *e_tree_model_value_to_string (ETreeModel *etree,
+ int col,
+ const void *value);
+
+/* depth first traversal of path's descendents, calling func on each one */
+void e_tree_model_node_traverse (ETreeModel *model,
+ ETreePath path,
+ ETreePathFunc func,
+ gpointer data);
/*
** Routines for emitting signals on the ETreeModel
*/
-void e_tree_model_node_changed (ETreeModel *tree_model, ETreePath *node);
-void e_tree_model_node_inserted (ETreeModel *tree_model, ETreePath *parent_node, ETreePath *inserted_node);
-void e_tree_model_node_removed (ETreeModel *tree_model, ETreePath *parent_node, ETreePath *removed_node);
-void e_tree_model_node_collapsed (ETreeModel *tree_model, ETreePath *node);
-void e_tree_model_node_expanded (ETreeModel *tree_model, ETreePath *node, gboolean *allow_expand);
-
-/* expanded state saving stuff */
-gboolean e_tree_model_save_expanded_state (ETreeModel *etm, const char *filename);
-gboolean e_tree_model_load_expanded_state (ETreeModel *etm, const char *filename);
-void e_tree_model_node_set_save_id (ETreeModel *etm, ETreePath *node, const char *id);
-ETreePath* e_tree_model_node_insert_id (ETreeModel *tree_model, ETreePath *parent_path,
- int position, gpointer node_data, const char *save_id);
-
-/* depth first traversal of path's descendents, calling func on each one */
-void e_tree_model_node_traverse (ETreeModel *model, ETreePath *path, ETreePathFunc func, gpointer data);
-
-void e_tree_model_show_node (ETreeModel *etm, ETreePath* node);
+void e_tree_model_pre_change (ETreeModel *tree_model);
+void e_tree_model_node_changed (ETreeModel *tree_model,
+ ETreePath node);
+void e_tree_model_node_data_changed (ETreeModel *tree_model,
+ ETreePath node);
+void e_tree_model_node_col_changed (ETreeModel *tree_model,
+ ETreePath node,
+ int col);
+void e_tree_model_node_inserted (ETreeModel *tree_model,
+ ETreePath parent_node,
+ ETreePath inserted_node);
+void e_tree_model_node_removed (ETreeModel *tree_model,
+ ETreePath parent_node,
+ ETreePath removed_node);
#ifdef __cplusplus
}