2001-03-19 Christopher James Lahey <clahey@ximian.com> * configure.in: Upped the version number to 0.5.99.4. * Merged branch: 2001-03-18 Christopher James Lahey <clahey@ximian.com> * gal/widgets/e-selection-model.c, gal/widgets/e-selection-model.h: Added another semi-private function (e_selection_model_change_cursor.) 2001-03-18 Christopher James Lahey <clahey@ximian.com> * gal/widgets/e-selection-model.c, gal/widgets/e-selection-model.h: Added a couple of semi-private functions (e_selection_model_change_one_row and e_selection_model_confirm_row_count.) 2001-03-18 Christopher James Lahey <clahey@ximian.com> * tests/test-tree-1.c, tests/test-tree-3.c: Added arguments for e_tree_memory_callbacks_new of get_save_id and has_save_id to NULL. 2001-03-17 Christopher James Lahey <clahey@ximian.com> * gal/util/e-util.c (e_sort): Switched to just using qsort directly here. 2001-03-17 Christopher James Lahey <clahey@ximian.com> * gal/util/e-util.c, gal/util/e-util.h (e_bsearch, e_sort): Added e_sort and e_bsearch. They both take a closure. e_sort guarantees a stable sort. e_bsearch returns the range of matching elements including the position where an object would be if there are no matching elements. 2001-03-16 Christopher James Lahey <clahey@ximian.com> * gal/Makefile.am (libgal_la_LIBADD): Added e-tree-sorted.lo. 2001-03-14 Christopher James Lahey <clahey@ximian.com> * gal/widgets/e-selection-model-simple.c, gal/widgets/e-selection-model-simple.h: Replaced the methods insert_row and delete_row with insert_rows and delete_rows. * gal/widgets/e-selection-model.c, gal/widgets/e-selection-model.h: Replaced the methods insert_row and delete_row with insert_rows and delete_rows. 2001-03-08 Christopher James Lahey <clahey@ximian.com> * Makefile.am: Added e-table/e-table-utils.lo, e-table/e-tree-memory-callbacks.lo, e-table/e-tree-memory.lo, e-table/e-tree-scrolled.lo, e-table/e-tree-table-adapter.lo, and e-table/e-tree.lo. Removed e-table/e-tree-simple.lo. * gal/util/e-util.c, gal/util/e-util.h: Added a whole bunch of e_marshal functions for ETree. * tests/test-tree-1.c, tests/test-tree-3.c: Reworked these to use the new tree stuff. End of branch svn path=/trunk/; revision=8840
114 lines
3.6 KiB
C
114 lines
3.6 KiB
C
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
#ifndef _E_SELECTION_MODEL_H_
|
|
#define _E_SELECTION_MODEL_H_
|
|
|
|
#include <gtk/gtkobject.h>
|
|
#include <gal/util/e-sorter.h>
|
|
#include <gdk/gdktypes.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#define E_SELECTION_MODEL_TYPE (e_selection_model_get_type ())
|
|
#define E_SELECTION_MODEL(o) (GTK_CHECK_CAST ((o), E_SELECTION_MODEL_TYPE, ESelectionModel))
|
|
#define E_SELECTION_MODEL_CLASS(k) (GTK_CHECK_CLASS_CAST((k), E_SELECTION_MODEL_TYPE, ESelectionModelClass))
|
|
#define E_IS_SELECTION_MODEL(o) (GTK_CHECK_TYPE ((o), E_SELECTION_MODEL_TYPE))
|
|
#define E_IS_SELECTION_MODEL_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_SELECTION_MODEL_TYPE))
|
|
|
|
typedef void (*EForeachFunc) (int model_row,
|
|
gpointer closure);
|
|
|
|
/* list selection modes */
|
|
typedef enum {
|
|
E_CURSOR_LINE,
|
|
E_CURSOR_SIMPLE,
|
|
E_CURSOR_SPREADSHEET,
|
|
} ECursorMode;
|
|
|
|
typedef struct {
|
|
GtkObject base;
|
|
|
|
ESorter *sorter;
|
|
|
|
gint row_count;
|
|
guint32 *selection;
|
|
|
|
gint cursor_row;
|
|
gint cursor_col;
|
|
gint selection_start_row;
|
|
|
|
guint model_changed_id;
|
|
guint model_row_inserted_id, model_row_deleted_id;
|
|
|
|
guint frozen : 1;
|
|
guint selection_model_changed : 1;
|
|
guint group_info_changed : 1;
|
|
|
|
GtkSelectionMode mode;
|
|
ECursorMode cursor_mode;
|
|
} ESelectionModel;
|
|
|
|
typedef struct {
|
|
GtkObjectClass parent_class;
|
|
|
|
gint (*get_row_count) (ESelectionModel *selection);
|
|
|
|
/*
|
|
* Signals
|
|
*/
|
|
|
|
void (*cursor_changed) (ESelectionModel *selection, int row, int col);
|
|
void (*cursor_activated) (ESelectionModel *selection, int row, int col);
|
|
void (*selection_changed) (ESelectionModel *selection);
|
|
|
|
} ESelectionModelClass;
|
|
|
|
GtkType e_selection_model_get_type (void);
|
|
gboolean e_selection_model_is_row_selected (ESelectionModel *selection,
|
|
gint n);
|
|
void e_selection_model_foreach (ESelectionModel *selection,
|
|
EForeachFunc callback,
|
|
gpointer closure);
|
|
void e_selection_model_do_something (ESelectionModel *selection,
|
|
guint row,
|
|
guint col,
|
|
GdkModifierType state);
|
|
void e_selection_model_maybe_do_something (ESelectionModel *selection,
|
|
guint row,
|
|
guint col,
|
|
GdkModifierType state);
|
|
gint e_selection_model_key_press (ESelectionModel *selection,
|
|
GdkEventKey *key);
|
|
void e_selection_model_clear (ESelectionModel *selection);
|
|
gint e_selection_model_selected_count (ESelectionModel *selection);
|
|
void e_selection_model_select_all (ESelectionModel *selection);
|
|
void e_selection_model_invert_selection (ESelectionModel *selection);
|
|
|
|
/* Private Functions */
|
|
void e_selection_model_insert_rows (ESelectionModel *esm,
|
|
int row,
|
|
int count);
|
|
void e_selection_model_delete_rows (ESelectionModel *esm,
|
|
int row,
|
|
int count);
|
|
void e_selection_model_move_row (ESelectionModel *esm,
|
|
int old_row,
|
|
int new_row);
|
|
void e_selection_model_change_one_row (ESelectionModel *esm,
|
|
int row,
|
|
gboolean on);
|
|
void e_selection_model_change_cursor (ESelectionModel *esm,
|
|
int row);
|
|
gboolean e_selection_model_confirm_row_count (ESelectionModel *esm);
|
|
|
|
/* Virtual Function */
|
|
gint e_selection_model_get_row_count (ESelectionModel *esm);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
#endif /* _E_SELECTION_MODEL_H_ */
|