diff options
Diffstat (limited to 'widgets/table/e-tree-memory-callbacks.c')
-rw-r--r-- | widgets/table/e-tree-memory-callbacks.c | 81 |
1 files changed, 56 insertions, 25 deletions
diff --git a/widgets/table/e-tree-memory-callbacks.c b/widgets/table/e-tree-memory-callbacks.c index 2168ba81c5..adb5160bc2 100644 --- a/widgets/table/e-tree-memory-callbacks.c +++ b/widgets/table/e-tree-memory-callbacks.c @@ -57,6 +57,28 @@ etmc_get_save_id (ETreeModel *etm, ETreePath node) return NULL; } +static gboolean +etmc_has_get_node_by_id (ETreeModel *etm) +{ + ETreeMemoryCallbacks *etmc = E_TREE_MEMORY_CALLBACKS(etm); + + if (etmc->has_get_node_by_id) + return etmc->has_get_node_by_id (etm, etmc->model_data); + else + return FALSE; +} + +static ETreePath +etmc_get_node_by_id (ETreeModel *etm, gchar *save_id) +{ + ETreeMemoryCallbacks *etmc = E_TREE_MEMORY_CALLBACKS(etm); + + if (etmc->get_node_by_id) + return etmc->get_node_by_id (etm, save_id, etmc->model_data); + else + return NULL; +} + static void * etmc_value_at (ETreeModel *etm, ETreePath node, int col) @@ -142,22 +164,25 @@ e_tree_memory_callbacks_class_init (GtkObjectClass *object_class) { ETreeModelClass *model_class = (ETreeModelClass *) object_class; - model_class->icon_at = etmc_icon_at; + model_class->icon_at = etmc_icon_at; + + model_class->column_count = etmc_column_count; - model_class->column_count = etmc_column_count; + model_class->has_save_id = etmc_has_save_id; + model_class->get_save_id = etmc_get_save_id; - model_class->has_save_id = etmc_has_save_id; - model_class->get_save_id = etmc_get_save_id; + model_class->has_get_node_by_id = etmc_has_get_node_by_id; + model_class->get_node_by_id = etmc_get_node_by_id; - model_class->value_at = etmc_value_at; - model_class->set_value_at = etmc_set_value_at; - model_class->is_editable = etmc_is_editable; + model_class->value_at = etmc_value_at; + model_class->set_value_at = etmc_set_value_at; + model_class->is_editable = etmc_is_editable; - model_class->duplicate_value = etmc_duplicate_value; - model_class->free_value = etmc_free_value; - model_class->initialize_value = etmc_initialize_value; - model_class->value_is_empty = etmc_value_is_empty; - model_class->value_to_string = etmc_value_to_string; + model_class->duplicate_value = etmc_duplicate_value; + model_class->free_value = etmc_free_value; + model_class->initialize_value = etmc_initialize_value; + model_class->value_is_empty = etmc_value_is_empty; + model_class->value_to_string = etmc_value_to_string; } E_MAKE_TYPE(e_tree_memory_callbacks, "ETreeMemoryCallbacks", ETreeMemoryCallbacks, e_tree_memory_callbacks_class_init, NULL, PARENT_TYPE) @@ -191,6 +216,9 @@ e_tree_memory_callbacks_new (ETreeMemoryCallbacksIconAtFn icon_at, ETreeMemoryCallbacksHasSaveIdFn has_save_id, ETreeMemoryCallbacksGetSaveIdFn get_save_id, + ETreeMemoryCallbacksHasGetNodeByIdFn has_get_node_by_id, + ETreeMemoryCallbacksGetNodeByIdFn get_node_by_id, + ETreeMemoryCallbacksValueAtFn value_at, ETreeMemoryCallbacksSetValueAtFn set_value_at, ETreeMemoryCallbacksIsEditableFn is_editable, @@ -207,24 +235,27 @@ e_tree_memory_callbacks_new (ETreeMemoryCallbacksIconAtFn icon_at, etmc = gtk_type_new (e_tree_memory_callbacks_get_type ()); - etmc->icon_at = icon_at; + etmc->icon_at = icon_at; + + etmc->column_count = column_count; - etmc->column_count = column_count; + etmc->has_save_id = has_save_id; + etmc->get_save_id = get_save_id; - etmc->has_save_id = has_save_id; - etmc->get_save_id = get_save_id; + etmc->has_get_node_by_id = has_get_node_by_id; + etmc->get_node_by_id = get_node_by_id; - etmc->value_at = value_at; - etmc->set_value_at = set_value_at; - etmc->is_editable = is_editable; + etmc->value_at = value_at; + etmc->set_value_at = set_value_at; + etmc->is_editable = is_editable; - etmc->duplicate_value = duplicate_value; - etmc->free_value = free_value; - etmc->initialize_value = initialize_value; - etmc->value_is_empty = value_is_empty; - etmc->value_to_string = value_to_string; + etmc->duplicate_value = duplicate_value; + etmc->free_value = free_value; + etmc->initialize_value = initialize_value; + etmc->value_is_empty = value_is_empty; + etmc->value_to_string = value_to_string; - etmc->model_data = model_data; + etmc->model_data = model_data; return (ETreeModel*)etmc; } |