aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-tree-table-adapter.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-tree-table-adapter.c')
-rw-r--r--e-util/e-tree-table-adapter.c53
1 files changed, 30 insertions, 23 deletions
diff --git a/e-util/e-tree-table-adapter.c b/e-util/e-tree-table-adapter.c
index 2950d60a33..8c49ec4283 100644
--- a/e-util/e-tree-table-adapter.c
+++ b/e-util/e-tree-table-adapter.c
@@ -97,12 +97,19 @@ enum {
LAST_SIGNAL
};
+/* Forward Declarations */
+static void e_tree_table_adapter_table_model_init
+ (ETableModelInterface *interface);
+
static guint signals[LAST_SIGNAL];
-G_DEFINE_TYPE (
+G_DEFINE_TYPE_WITH_CODE (
ETreeTableAdapter,
e_tree_table_adapter,
- E_TYPE_TABLE_MODEL)
+ G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (
+ E_TYPE_TABLE_MODEL,
+ e_tree_table_adapter_table_model_init))
static GNode *
lookup_gnode (ETreeTableAdapter *etta,
@@ -732,7 +739,6 @@ static void
e_tree_table_adapter_class_init (ETreeTableAdapterClass *class)
{
GObjectClass *object_class;
- ETableModelClass *table_model_class;
g_type_class_add_private (class, sizeof (ETreeTableAdapterPrivate));
@@ -740,26 +746,6 @@ e_tree_table_adapter_class_init (ETreeTableAdapterClass *class)
object_class->dispose = tree_table_adapter_dispose;
object_class->finalize = tree_table_adapter_finalize;
- table_model_class = E_TABLE_MODEL_CLASS (class);
- table_model_class->column_count = tree_table_adapter_column_count;
- table_model_class->row_count = tree_table_adapter_row_count;
- table_model_class->append_row = tree_table_adapter_append_row;
-
- table_model_class->value_at = tree_table_adapter_value_at;
- table_model_class->set_value_at = tree_table_adapter_set_value_at;
- table_model_class->is_cell_editable = tree_table_adapter_is_cell_editable;
-
- table_model_class->has_save_id = tree_table_adapter_has_save_id;
- table_model_class->get_save_id = tree_table_adapter_get_save_id;
-
- table_model_class->duplicate_value = tree_table_adapter_duplicate_value;
- table_model_class->free_value = tree_table_adapter_free_value;
- table_model_class->initialize_value = tree_table_adapter_initialize_value;
- table_model_class->value_is_empty = tree_table_adapter_value_is_empty;
- table_model_class->value_to_string = tree_table_adapter_value_to_string;
-
- class->sorting_changed = NULL;
-
signals[SORTING_CHANGED] = g_signal_new (
"sorting_changed",
G_OBJECT_CLASS_TYPE (object_class),
@@ -772,6 +758,27 @@ e_tree_table_adapter_class_init (ETreeTableAdapterClass *class)
}
static void
+e_tree_table_adapter_table_model_init (ETableModelInterface *interface)
+{
+ interface->column_count = tree_table_adapter_column_count;
+ interface->row_count = tree_table_adapter_row_count;
+ interface->append_row = tree_table_adapter_append_row;
+
+ interface->value_at = tree_table_adapter_value_at;
+ interface->set_value_at = tree_table_adapter_set_value_at;
+ interface->is_cell_editable = tree_table_adapter_is_cell_editable;
+
+ interface->has_save_id = tree_table_adapter_has_save_id;
+ interface->get_save_id = tree_table_adapter_get_save_id;
+
+ interface->duplicate_value = tree_table_adapter_duplicate_value;
+ interface->free_value = tree_table_adapter_free_value;
+ interface->initialize_value = tree_table_adapter_initialize_value;
+ interface->value_is_empty = tree_table_adapter_value_is_empty;
+ interface->value_to_string = tree_table_adapter_value_to_string;
+}
+
+static void
e_tree_table_adapter_init (ETreeTableAdapter *etta)
{
etta->priv = E_TREE_TABLE_ADAPTER_GET_PRIVATE (etta);