aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-tree-model.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-tree-model.c')
-rw-r--r--e-util/e-tree-model.c309
1 files changed, 160 insertions, 149 deletions
diff --git a/e-util/e-tree-model.c b/e-util/e-tree-model.c
index 283c2f4e1b..abea032bd6 100644
--- a/e-util/e-tree-model.c
+++ b/e-util/e-tree-model.c
@@ -39,8 +39,6 @@
#include "e-marshal.h"
#include "e-xml-utils.h"
-#define ETM_CLASS(e) (E_TREE_MODEL_GET_CLASS(e))
-
#define d(x)
G_DEFINE_TYPE (ETreeModel, e_tree_model, G_TYPE_OBJECT)
@@ -133,48 +131,6 @@ e_tree_model_class_init (ETreeModelClass *class)
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
-
- class->get_root = NULL;
-
- class->get_parent = NULL;
- class->get_first_child = NULL;
- class->get_next = NULL;
-
- class->is_root = NULL;
- class->is_expandable = NULL;
- class->get_children = NULL;
- class->depth = NULL;
-
- class->icon_at = NULL;
-
- class->get_expanded_default = NULL;
- class->column_count = NULL;
-
- class->has_save_id = NULL;
- class->get_save_id = NULL;
- class->has_get_node_by_id = NULL;
- class->get_node_by_id = NULL;
-
- class->has_change_pending = NULL;
-
- class->sort_value_at = NULL;
- class->value_at = NULL;
- class->set_value_at = NULL;
- class->is_editable = NULL;
-
- class->duplicate_value = NULL;
- class->free_value = NULL;
- class->initialize_value = NULL;
- class->value_is_empty = NULL;
- class->value_to_string = NULL;
-
- class->pre_change = NULL;
- class->rebuilt = NULL;
- class->node_changed = NULL;
- class->node_data_changed = NULL;
- class->node_inserted = NULL;
- class->node_removed = NULL;
- class->node_deleted = NULL;
}
static void
@@ -316,12 +272,14 @@ e_tree_model_node_deleted (ETreeModel *tree_model,
ETreePath
e_tree_model_get_root (ETreeModel *tree_model)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->get_root)
- return ETM_CLASS (tree_model)->get_root (tree_model);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_root != NULL, NULL);
+
+ return class->get_root (tree_model);
}
/**
@@ -337,12 +295,14 @@ ETreePath
e_tree_model_node_get_parent (ETreeModel *tree_model,
ETreePath path)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->get_parent)
- return ETM_CLASS (tree_model)->get_parent (tree_model, path);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_parent != NULL, NULL);
+
+ return class->get_parent (tree_model, path);
}
/**
@@ -358,12 +318,14 @@ ETreePath
e_tree_model_node_get_first_child (ETreeModel *tree_model,
ETreePath path)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->get_first_child)
- return ETM_CLASS (tree_model)->get_first_child (tree_model, path);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_first_child != NULL, NULL);
+
+ return class->get_first_child (tree_model, path);
}
/**
@@ -379,12 +341,14 @@ ETreePath
e_tree_model_node_get_next (ETreeModel *tree_model,
ETreePath path)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->get_next)
- return ETM_CLASS (tree_model)->get_next (tree_model, path);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_next != NULL, NULL);
+
+ return class->get_next (tree_model, path);
}
/**
@@ -400,12 +364,14 @@ gboolean
e_tree_model_node_is_root (ETreeModel *tree_model,
ETreePath path)
{
- g_return_val_if_fail (tree_model != NULL, FALSE);
+ ETreeModelClass *class;
+
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), FALSE);
+
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->is_root != NULL, FALSE);
- if (ETM_CLASS (tree_model)->is_root)
- return ETM_CLASS (tree_model)->is_root (tree_model, path);
- else
- return FALSE;
+ return class->is_root (tree_model, path);
}
/**
@@ -421,13 +387,15 @@ gboolean
e_tree_model_node_is_expandable (ETreeModel *tree_model,
ETreePath path)
{
- g_return_val_if_fail (tree_model != NULL, FALSE);
+ ETreeModelClass *class;
+
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), FALSE);
g_return_val_if_fail (path != NULL, FALSE);
- if (ETM_CLASS (tree_model)->is_expandable)
- return ETM_CLASS (tree_model)->is_expandable (tree_model, path);
- else
- return FALSE;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->is_expandable != NULL, FALSE);
+
+ return class->is_expandable (tree_model, path);
}
guint
@@ -435,11 +403,14 @@ e_tree_model_node_get_children (ETreeModel *tree_model,
ETreePath path,
ETreePath **paths)
{
- g_return_val_if_fail (tree_model != NULL, 0);
- if (ETM_CLASS (tree_model)->get_children)
- return ETM_CLASS (tree_model)->get_children (tree_model, path, paths);
- else
- return 0;
+ ETreeModelClass *class;
+
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), 0);
+
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_children != NULL, 0);
+
+ return class->get_children (tree_model, path, paths);
}
/**
@@ -455,12 +426,14 @@ guint
e_tree_model_node_depth (ETreeModel *tree_model,
ETreePath path)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), 0);
- if (ETM_CLASS (tree_model)->depth)
- return ETM_CLASS (tree_model)->depth (tree_model, path);
- else
- return 0;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->depth != NULL, 0);
+
+ return class->depth (tree_model, path);
}
/**
@@ -476,12 +449,14 @@ GdkPixbuf *
e_tree_model_icon_at (ETreeModel *tree_model,
ETreePath path)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->icon_at)
- return ETM_CLASS (tree_model)->icon_at (tree_model, path);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->icon_at != NULL, NULL);
+
+ return class->icon_at (tree_model, path);
}
/**
@@ -495,12 +470,14 @@ e_tree_model_icon_at (ETreeModel *tree_model,
gboolean
e_tree_model_get_expanded_default (ETreeModel *tree_model)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), FALSE);
- if (ETM_CLASS (tree_model)->get_expanded_default)
- return ETM_CLASS (tree_model)->get_expanded_default (tree_model);
- else
- return FALSE;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_expanded_default != NULL, FALSE);
+
+ return class->get_expanded_default (tree_model);
}
/**
@@ -514,12 +491,14 @@ e_tree_model_get_expanded_default (ETreeModel *tree_model)
gint
e_tree_model_column_count (ETreeModel *tree_model)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), 0);
- if (ETM_CLASS (tree_model)->column_count)
- return ETM_CLASS (tree_model)->column_count (tree_model);
- else
- return 0;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->column_count != NULL, 0);
+
+ return class->column_count (tree_model);
}
/**
@@ -533,12 +512,14 @@ e_tree_model_column_count (ETreeModel *tree_model)
gboolean
e_tree_model_has_save_id (ETreeModel *tree_model)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), FALSE);
- if (ETM_CLASS (tree_model)->has_save_id)
- return ETM_CLASS (tree_model)->has_save_id (tree_model);
- else
- return FALSE;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->has_save_id != NULL, FALSE);
+
+ return class->has_save_id (tree_model);
}
/**
@@ -554,12 +535,14 @@ gchar *
e_tree_model_get_save_id (ETreeModel *tree_model,
ETreePath path)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->get_save_id)
- return ETM_CLASS (tree_model)->get_save_id (tree_model, path);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_save_id != NULL, NULL);
+
+ return class->get_save_id (tree_model, path);
}
/**
@@ -573,12 +556,14 @@ e_tree_model_get_save_id (ETreeModel *tree_model,
gboolean
e_tree_model_has_get_node_by_id (ETreeModel *tree_model)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), FALSE);
- if (ETM_CLASS (tree_model)->has_get_node_by_id)
- return ETM_CLASS (tree_model)->has_get_node_by_id (tree_model);
- else
- return FALSE;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->has_get_node_by_id != NULL, FALSE);
+
+ return class->has_get_node_by_id (tree_model);
}
/**
@@ -597,12 +582,14 @@ ETreePath
e_tree_model_get_node_by_id (ETreeModel *tree_model,
const gchar *save_id)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->get_node_by_id)
- return ETM_CLASS (tree_model)->get_node_by_id (tree_model, save_id);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->get_node_by_id != NULL, NULL);
+
+ return class->get_node_by_id (tree_model, save_id);
}
/**
@@ -616,12 +603,14 @@ e_tree_model_get_node_by_id (ETreeModel *tree_model,
gboolean
e_tree_model_has_change_pending (ETreeModel *tree_model)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), FALSE);
- if (ETM_CLASS (tree_model)->has_change_pending)
- return ETM_CLASS (tree_model)->has_change_pending (tree_model);
- else
- return FALSE;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->has_change_pending != NULL, FALSE);
+
+ return class->has_change_pending (tree_model);
}
/**
@@ -649,12 +638,14 @@ e_tree_model_sort_value_at (ETreeModel *tree_model,
ETreePath path,
gint col)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->sort_value_at)
- return ETM_CLASS (tree_model)->sort_value_at (tree_model, path, col);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->sort_value_at != NULL, NULL);
+
+ return class->sort_value_at (tree_model, path, col);
}
/**
@@ -681,12 +672,14 @@ e_tree_model_value_at (ETreeModel *tree_model,
ETreePath path,
gint col)
{
+ ETreeModelClass *class;
+
g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
- if (ETM_CLASS (tree_model)->value_at)
- return ETM_CLASS (tree_model)->value_at (tree_model, path, col);
- else
- return NULL;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->value_at != NULL, NULL);
+
+ return class->value_at (tree_model, path, col);
}
void
@@ -695,10 +688,14 @@ e_tree_model_set_value_at (ETreeModel *tree_model,
gint col,
gconstpointer val)
{
+ ETreeModelClass *class;
+
g_return_if_fail (E_IS_TREE_MODEL (tree_model));
- if (ETM_CLASS (tree_model)->set_value_at)
- ETM_CLASS (tree_model)->set_value_at (tree_model, path, col, val);
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_if_fail (class->set_value_at != NULL);
+
+ class->set_value_at (tree_model, path, col, val);
}
/**
@@ -715,12 +712,14 @@ e_tree_model_node_is_editable (ETreeModel *tree_model,
ETreePath path,
gint col)
{
- g_return_val_if_fail (tree_model != NULL, FALSE);
+ ETreeModelClass *class;
+
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), FALSE);
- if (ETM_CLASS (tree_model)->is_editable)
- return ETM_CLASS (tree_model)->is_editable (tree_model, path, col);
- else
- return FALSE;
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->is_editable != NULL, FALSE);
+
+ return class->is_editable (tree_model, path, col);
}
/**
@@ -737,12 +736,14 @@ e_tree_model_duplicate_value (ETreeModel *tree_model,
gint col,
gconstpointer value)
{
- g_return_val_if_fail (tree_model != NULL, NULL);
+ ETreeModelClass *class;
- if (ETM_CLASS (tree_model)->duplicate_value)
- return ETM_CLASS (tree_model)->duplicate_value (tree_model, col, value);
- else
- return NULL;
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
+
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->duplicate_value != NULL, NULL);
+
+ return class->duplicate_value (tree_model, col, value);
}
/**
@@ -759,10 +760,14 @@ e_tree_model_free_value (ETreeModel *tree_model,
gint col,
gpointer value)
{
- g_return_if_fail (tree_model != NULL);
+ ETreeModelClass *class;
+
+ g_return_if_fail (E_IS_TREE_MODEL (tree_model));
- if (ETM_CLASS (tree_model)->free_value)
- ETM_CLASS (tree_model)->free_value (tree_model, col, value);
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_if_fail (class->free_value != NULL);
+
+ class->free_value (tree_model, col, value);
}
/**
@@ -778,12 +783,14 @@ gpointer
e_tree_model_initialize_value (ETreeModel *tree_model,
gint col)
{
- g_return_val_if_fail (tree_model != NULL, NULL);
+ ETreeModelClass *class;
- if (ETM_CLASS (tree_model)->initialize_value)
- return ETM_CLASS (tree_model)->initialize_value (tree_model, col);
- else
- return NULL;
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
+
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->initialize_value != NULL, NULL);
+
+ return class->initialize_value (tree_model, col);
}
/**
@@ -800,12 +807,14 @@ e_tree_model_value_is_empty (ETreeModel *tree_model,
gint col,
gconstpointer value)
{
- g_return_val_if_fail (tree_model != NULL, TRUE);
+ ETreeModelClass *class;
- if (ETM_CLASS (tree_model)->value_is_empty)
- return ETM_CLASS (tree_model)->value_is_empty (tree_model, col, value);
- else
- return TRUE;
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), TRUE);
+
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->value_is_empty != NULL, TRUE);
+
+ return class->value_is_empty (tree_model, col, value);
}
/**
@@ -822,12 +831,14 @@ e_tree_model_value_to_string (ETreeModel *tree_model,
gint col,
gconstpointer value)
{
- g_return_val_if_fail (tree_model != NULL, g_strdup (""));
+ ETreeModelClass *class;
+
+ g_return_val_if_fail (E_IS_TREE_MODEL (tree_model), NULL);
+
+ class = E_TREE_MODEL_GET_CLASS (tree_model);
+ g_return_val_if_fail (class->value_to_string != NULL, NULL);
- if (ETM_CLASS (tree_model)->value_to_string)
- return ETM_CLASS (tree_model)->value_to_string (tree_model, col, value);
- else
- return g_strdup ("");
+ return class->value_to_string (tree_model, col, value);
}
/**