aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-sorter.h
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-08-05 20:38:24 +0800
committerChris Lahey <clahey@src.gnome.org>2000-08-05 20:38:24 +0800
commit78adc934b0946d1f4f4f6dacb393b4a119d68bec (patch)
treee8c026a1e6fc854e2e11c0f620adb6f548b4824e /widgets/table/e-table-sorter.h
parenta223be493907708471d2fe3c1ecc9c658a98995d (diff)
downloadgsoc2013-evolution-78adc934b0946d1f4f4f6dacb393b4a119d68bec.tar
gsoc2013-evolution-78adc934b0946d1f4f4f6dacb393b4a119d68bec.tar.gz
gsoc2013-evolution-78adc934b0946d1f4f4f6dacb393b4a119d68bec.tar.bz2
gsoc2013-evolution-78adc934b0946d1f4f4f6dacb393b4a119d68bec.tar.lz
gsoc2013-evolution-78adc934b0946d1f4f4f6dacb393b4a119d68bec.tar.xz
gsoc2013-evolution-78adc934b0946d1f4f4f6dacb393b4a119d68bec.tar.zst
gsoc2013-evolution-78adc934b0946d1f4f4f6dacb393b4a119d68bec.zip
Made selection ranges work even if the table is sorted.
2000-08-05 Christopher James Lahey <clahey@helixcode.com> * Makefile.am, e-table-selection-model.c, e-table-selection-model.h, e-table.c, e-table.h: Made selection ranges work even if the table is sorted. * e-table-sorter.c, e-table-sorter.h: New files to help with making selection ranges work even if sorted. svn path=/trunk/; revision=4546
Diffstat (limited to 'widgets/table/e-table-sorter.h')
-rw-r--r--widgets/table/e-table-sorter.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/widgets/table/e-table-sorter.h b/widgets/table/e-table-sorter.h
new file mode 100644
index 0000000000..f5a71565a3
--- /dev/null
+++ b/widgets/table/e-table-sorter.h
@@ -0,0 +1,47 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+#ifndef _E_TABLE_SORTER_H_
+#define _E_TABLE_SORTER_H_
+
+#include <gtk/gtkobject.h>
+#include "e-table-model.h"
+#include "e-table-subset-variable.h"
+#include "e-table-sort-info.h"
+#include "e-table-header.h"
+
+#define E_TABLE_SORTER_TYPE (e_table_sorter_get_type ())
+#define E_TABLE_SORTER(o) (GTK_CHECK_CAST ((o), E_TABLE_SORTER_TYPE, ETableSorter))
+#define E_TABLE_SORTER_CLASS(k) (GTK_CHECK_CLASS_CAST((k), E_TABLE_SORTER_TYPE, ETableSorterClass))
+#define E_IS_TABLE_SORTER(o) (GTK_CHECK_TYPE ((o), E_TABLE_SORTER_TYPE))
+#define E_IS_TABLE_SORTER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_TABLE_SORTER_TYPE))
+
+typedef struct {
+ GtkObject base;
+
+ ETableModel *source;
+ ETableHeader *full_header;
+ ETableSortInfo *sort_info;
+
+ int needs_sorting;
+
+ int *sorted;
+ int *backsorted;
+
+ int table_model_changed_id;
+ int table_model_row_changed_id;
+ int table_model_cell_changed_id;
+ int sort_info_changed_id;
+} ETableSorter;
+
+typedef struct {
+ GtkObjectClass parent_class;
+} ETableSorterClass;
+
+GtkType e_table_sorter_get_type (void);
+ETableSorter *e_table_sorter_new (ETableModel *etm, ETableHeader *full_header, ETableSortInfo *sort_info);
+
+gint e_table_sorter_model_to_sorted (ETableSorter *sorter, int row);
+gint e_table_sorter_sorted_to_model (ETableSorter *sorter, int row);
+
+gboolean e_table_sorter_needs_sorting (ETableSorter *sorter);
+
+#endif /* _E_TABLE_SORTER_H_ */