static gint etss_column_count (ETableModel *etm) { ETableSubset *etss = (ETableSubset *) etm; return e_table_model_column_count (etss->source); }
static void one_dispose (GObject *object) { ETableOne *one = E_TABLE_ONE (object); if (one->data) { int i; int col_count; if (one->source) { col_count = e_table_model_column_count(one->source); for (i = 0; i < col_count; i++) e_table_model_free_value(one->source, i, one->data[i]); } g_free (one->data); } one->data = NULL; if (one->source) g_object_unref(one->source); one->source = NULL; G_OBJECT_CLASS (e_table_one_parent_class)->dispose (object); }
static int one_column_count (ETableModel *etm) { ETableOne *one = E_TABLE_ONE(etm); if (one->source) return e_table_model_column_count(one->source); else return 0; }
void e_table_one_commit (ETableOne *one) { if (one->source) { int empty = TRUE; int col; int cols = e_table_model_column_count(one->source); for (col = 0; col < cols; col++) { if (!e_table_model_value_is_empty(one->source, col, one->data[col])) { empty = FALSE; break; } } if (!empty) { e_table_model_append_row(one->source, E_TABLE_MODEL(one), 0); } } }
ETableModel * e_table_one_new (ETableModel *source) { ETableOne *eto; int col_count; int i; eto = g_object_new (E_TABLE_ONE_TYPE, NULL); eto->source = source; col_count = e_table_model_column_count(source); eto->data = g_new(void *, col_count); for (i = 0; i < col_count; i++) { eto->data[i] = e_table_model_initialize_value(source, i); } if (source) g_object_ref(source); return (ETableModel *) eto; }