aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-selection-model-simple.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/misc/e-selection-model-simple.c')
-rw-r--r--widgets/misc/e-selection-model-simple.c98
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);
+}