diff options
Diffstat (limited to 'widgets/misc/e-selection-model-simple.c')
-rw-r--r-- | widgets/misc/e-selection-model-simple.c | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/widgets/misc/e-selection-model-simple.c b/widgets/misc/e-selection-model-simple.c new file mode 100644 index 0000000000..9a9c1e0d79 --- /dev/null +++ b/widgets/misc/e-selection-model-simple.c @@ -0,0 +1,98 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * e-selection-model-simple.c: a Table Selection Model + * + * Author: + * Christopher James Lahey <clahey@ximian.com> + * + * (C) 2000, 2001 Ximian, Inc. + */ +#include <config.h> +#include <gal/util/e-util.h> +#include "e-selection-model-simple.h" + +#define ESMS_CLASS(e) ((ESelectionModelSimpleClass *)((GtkObject *)e)->klass) + +#define PARENT_TYPE e_selection_model_get_type () + +static ESelectionModel *parent_class; + +static gint esms_get_row_count (ESelectionModel *esm); + +static void +e_selection_model_simple_init (ESelectionModelSimple *selection) +{ + selection->row_count = 0; +} + +static void +e_selection_model_simple_class_init (ESelectionModelSimpleClass *klass) +{ + ESelectionModelClass *esm_class; + + parent_class = gtk_type_class (PARENT_TYPE); + + esm_class = E_SELECTION_MODEL_CLASS(klass); + + esm_class->get_row_count = esms_get_row_count; +} + +E_MAKE_TYPE(e_selection_model_simple, "ESelectionModelSimple", ESelectionModelSimple, + e_selection_model_simple_class_init, e_selection_model_simple_init, PARENT_TYPE); + +/** + * e_selection_model_simple_new + * + * This routine creates a new #ESelectionModelSimple. + * + * Returns: The new #ESelectionModelSimple. + */ +ESelectionModelSimple * +e_selection_model_simple_new (void) +{ + return gtk_type_new (e_selection_model_simple_get_type ()); +} + +void +e_selection_model_simple_set_row_count (ESelectionModelSimple *esms, + int row_count) +{ + if (esms->row_count != row_count) { + ESelectionModel *esm = E_SELECTION_MODEL(esms); + g_free(esm->selection); + esm->selection = NULL; + esm->row_count = -1; + } + esms->row_count = row_count; +} + +static gint +esms_get_row_count (ESelectionModel *esm) +{ + ESelectionModelSimple *esms = E_SELECTION_MODEL_SIMPLE(esm); + + return esms->row_count; +} + +void e_selection_model_simple_insert_row (ESelectionModelSimple *esms, + int row) +{ + esms->row_count ++; + e_selection_model_insert_row (E_SELECTION_MODEL(esms), row); +} + +void +e_selection_model_simple_delete_row (ESelectionModelSimple *esms, + int row) +{ + esms->row_count --; + e_selection_model_delete_row (E_SELECTION_MODEL(esms), row); +} + +void +e_selection_model_simple_move_row (ESelectionModelSimple *esms, + int old_row, + int new_row) +{ + e_selection_model_move_row (E_SELECTION_MODEL(esms), old_row, new_row); +} |