aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/e-table-group-container.c30
-rw-r--r--widgets/table/e-table-group-container.h2
-rw-r--r--widgets/table/e-table-group-leaf.c28
-rw-r--r--widgets/table/e-table-group-leaf.h2
-rw-r--r--widgets/table/e-table-item.c44
-rw-r--r--widgets/table/e-table-item.h4
-rw-r--r--widgets/table/e-table.c2
-rw-r--r--widgets/table/e-tree-sorted.c7
-rw-r--r--widgets/table/e-tree-sorted.h3
-rw-r--r--widgets/table/e-tree.c2
10 files changed, 69 insertions, 55 deletions
diff --git a/widgets/table/e-table-group-container.c b/widgets/table/e-table-group-container.c
index 5ab6cdc754..540bec0645 100644
--- a/widgets/table/e-table-group-container.c
+++ b/widgets/table/e-table-group-container.c
@@ -38,7 +38,7 @@ enum {
ARG_TABLE_VERTICAL_DRAW_GRID,
ARG_TABLE_DRAW_FOCUS,
ARG_CURSOR_MODE,
- ARG_TABLE_SELECTION_MODEL,
+ ARG_SELECTION_MODEL,
ARG_LENGTH_THRESHOLD,
};
@@ -99,8 +99,8 @@ etgc_destroy (GtkObject *object)
if (etgc->sort_info)
gtk_object_unref (GTK_OBJECT(etgc->sort_info));
- if (etgc->table_selection_model)
- gtk_object_unref (GTK_OBJECT(etgc->table_selection_model));
+ if (etgc->selection_model)
+ gtk_object_unref (GTK_OBJECT(etgc->selection_model));
if (etgc->rect)
gtk_object_destroy (GTK_OBJECT(etgc->rect));
@@ -415,7 +415,7 @@ create_child_node (ETableGroupContainer *etgc, void *val)
"vertical_draw_grid", etgc->vertical_draw_grid,
"drawfocus", etgc->draw_focus,
"cursor_mode", etgc->cursor_mode,
- "table_selection_model", etgc->table_selection_model,
+ "selection_model", etgc->selection_model,
"length_threshold", etgc->length_threshold,
"minimum_width", etgc->minimum_width - GROUP_INDENT,
NULL);
@@ -535,7 +535,7 @@ static void
etgc_add_all (ETableGroup *etg)
{
ETableGroupContainer *etgc = E_TABLE_GROUP_CONTAINER (etg);
- ESorter *sorter = E_SELECTION_MODEL(etgc->table_selection_model)->sorter;
+ ESorter *sorter = etgc->selection_model->sorter;
int *array;
int count;
@@ -706,16 +706,16 @@ etgc_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
}
break;
- case ARG_TABLE_SELECTION_MODEL:
- if (etgc->table_selection_model)
- gtk_object_unref(GTK_OBJECT(etgc->table_selection_model));
- etgc->table_selection_model = E_TABLE_SELECTION_MODEL(GTK_VALUE_OBJECT (*arg));
- if (etgc->table_selection_model)
- gtk_object_ref(GTK_OBJECT(etgc->table_selection_model));
+ case ARG_SELECTION_MODEL:
+ if (etgc->selection_model)
+ gtk_object_unref(GTK_OBJECT(etgc->selection_model));
+ etgc->selection_model = E_SELECTION_MODEL(GTK_VALUE_OBJECT (*arg));
+ if (etgc->selection_model)
+ gtk_object_ref(GTK_OBJECT(etgc->selection_model));
for (list = etgc->children; list; list = g_list_next (list)) {
ETableGroupContainerChildNode *child_node = (ETableGroupContainerChildNode *)list->data;
gtk_object_set (GTK_OBJECT(child_node->child),
- "table_selection_model", etgc->table_selection_model,
+ "selection_model", etgc->selection_model,
NULL);
}
break;
@@ -825,8 +825,8 @@ etgc_class_init (GtkObjectClass *object_class)
GTK_ARG_WRITABLE, ARG_TABLE_DRAW_FOCUS);
gtk_object_add_arg_type ("ETableGroupContainer::cursor_mode", GTK_TYPE_INT,
GTK_ARG_WRITABLE, ARG_CURSOR_MODE);
- gtk_object_add_arg_type ("ETableGroupContainer::table_selection_model", GTK_TYPE_OBJECT,
- GTK_ARG_WRITABLE, ARG_TABLE_SELECTION_MODEL);
+ gtk_object_add_arg_type ("ETableGroupContainer::selection_model", E_SELECTION_MODEL_TYPE,
+ GTK_ARG_WRITABLE, ARG_SELECTION_MODEL);
gtk_object_add_arg_type ("ETableGroupContainer::length_threshold", GTK_TYPE_INT,
GTK_ARG_WRITABLE, ARG_LENGTH_THRESHOLD);
@@ -934,7 +934,7 @@ etgc_init (GtkObject *object)
container->draw_focus = 1;
container->cursor_mode = E_CURSOR_SIMPLE;
container->length_threshold = -1;
- container->table_selection_model = NULL;
+ container->selection_model = NULL;
}
E_MAKE_TYPE (e_table_group_container, "ETableGroupContainer", ETableGroupContainer, etgc_class_init, etgc_init, PARENT_TYPE);
diff --git a/widgets/table/e-table-group-container.h b/widgets/table/e-table-group-container.h
index e4c659993e..c57224d563 100644
--- a/widgets/table/e-table-group-container.h
+++ b/widgets/table/e-table-group-container.h
@@ -43,7 +43,7 @@ typedef struct {
int n;
int length_threshold;
- ETableSelectionModel *table_selection_model;
+ ESelectionModel *selection_model;
guint horizontal_draw_grid : 1;
guint vertical_draw_grid : 1;
diff --git a/widgets/table/e-table-group-leaf.c b/widgets/table/e-table-group-leaf.c
index 314d80e3de..b1a91ad67e 100644
--- a/widgets/table/e-table-group-leaf.c
+++ b/widgets/table/e-table-group-leaf.c
@@ -34,7 +34,7 @@ enum {
ARG_TABLE_DRAW_FOCUS,
ARG_CURSOR_MODE,
ARG_LENGTH_THRESHOLD,
- ARG_TABLE_SELECTION_MODEL,
+ ARG_SELECTION_MODEL,
};
static void etgl_set_arg (GtkObject *object, GtkArg *arg, guint arg_id);
@@ -48,8 +48,8 @@ etgl_destroy (GtkObject *object)
gtk_object_unref (GTK_OBJECT(etgl->ets));
if (etgl->item)
gtk_object_destroy (GTK_OBJECT(etgl->item));
- if (etgl->table_selection_model)
- gtk_object_unref (GTK_OBJECT(etgl->table_selection_model));
+ if (etgl->selection_model)
+ gtk_object_unref (GTK_OBJECT(etgl->selection_model));
if (GTK_OBJECT_CLASS (etgl_parent_class)->destroy)
GTK_OBJECT_CLASS (etgl_parent_class)->destroy (object);
}
@@ -182,7 +182,7 @@ etgl_realize (GnomeCanvasItem *item)
"cursor_mode", etgl->cursor_mode,
"minimum_width", etgl->minimum_width,
"length_threshold", etgl->length_threshold,
- "table_selection_model", etgl->table_selection_model,
+ "selection_model", etgl->selection_model,
NULL));
gtk_signal_connect (GTK_OBJECT(etgl->item), "cursor_change",
@@ -325,15 +325,15 @@ etgl_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
NULL);
}
break;
- case ARG_TABLE_SELECTION_MODEL:
- if (etgl->table_selection_model)
- gtk_object_unref(GTK_OBJECT(etgl->table_selection_model));
- etgl->table_selection_model = E_TABLE_SELECTION_MODEL(GTK_VALUE_OBJECT (*arg));
- if (etgl->table_selection_model)
- gtk_object_ref(GTK_OBJECT(etgl->table_selection_model));
+ case ARG_SELECTION_MODEL:
+ if (etgl->selection_model)
+ gtk_object_unref(GTK_OBJECT(etgl->selection_model));
+ etgl->selection_model = E_SELECTION_MODEL(GTK_VALUE_OBJECT (*arg));
+ if (etgl->selection_model)
+ gtk_object_ref(GTK_OBJECT(etgl->selection_model));
if (etgl->item) {
gnome_canvas_item_set (GNOME_CANVAS_ITEM(etgl->item),
- "table_selection_model", etgl->table_selection_model,
+ "selection_model", etgl->selection_model,
NULL);
}
@@ -438,8 +438,8 @@ etgl_class_init (GtkObjectClass *object_class)
GTK_ARG_WRITABLE, ARG_CURSOR_MODE);
gtk_object_add_arg_type ("ETableGroupLeaf::length_threshold", GTK_TYPE_INT,
GTK_ARG_WRITABLE, ARG_LENGTH_THRESHOLD);
- gtk_object_add_arg_type ("ETableGroupLeaf::table_selection_model", GTK_TYPE_OBJECT,
- GTK_ARG_WRITABLE, ARG_TABLE_SELECTION_MODEL);
+ gtk_object_add_arg_type ("ETableGroupLeaf::selection_model", E_SELECTION_MODEL_TYPE,
+ GTK_ARG_WRITABLE, ARG_SELECTION_MODEL);
gtk_object_add_arg_type ("ETableGroupLeaf::height", GTK_TYPE_DOUBLE,
GTK_ARG_READABLE, ARG_HEIGHT);
@@ -469,7 +469,7 @@ etgl_init (GtkObject *object)
etgl->cursor_mode = E_CURSOR_SIMPLE;
etgl->length_threshold = -1;
- etgl->table_selection_model = NULL;
+ etgl->selection_model = NULL;
e_canvas_item_set_reflow_callback (GNOME_CANVAS_ITEM(object), etgl_reflow);
}
diff --git a/widgets/table/e-table-group-leaf.h b/widgets/table/e-table-group-leaf.h
index 27407148b9..fad13c4b18 100644
--- a/widgets/table/e-table-group-leaf.h
+++ b/widgets/table/e-table-group-leaf.h
@@ -37,7 +37,7 @@ typedef struct {
guint draw_focus : 1;
ECursorMode cursor_mode;
- ETableSelectionModel *table_selection_model;
+ ESelectionModel *selection_model;
} ETableGroupLeaf;
typedef struct {
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index bd308a24e7..2605d5a7a4 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -50,7 +50,7 @@ enum {
ARG_0,
ARG_TABLE_HEADER,
ARG_TABLE_MODEL,
- ARG_TABLE_SELECTION_MODEL,
+ ARG_SELECTION_MODEL,
ARG_TABLE_HORIZONTAL_DRAW_GRID,
ARG_TABLE_VERTICAL_DRAW_GRID,
ARG_TABLE_DRAW_FOCUS,
@@ -70,9 +70,9 @@ enum {
static int eti_get_height (ETableItem *eti);
static int eti_row_height (ETableItem *eti, int row);
static void e_table_item_focus (ETableItem *eti, int col, int row, GdkModifierType state);
-static void eti_cursor_change (ETableSelectionModel *selection, int row, int col, ETableItem *eti);
-static void eti_cursor_activated (ETableSelectionModel *selection, int row, int col, ETableItem *eti);
-static void eti_selection_change (ETableSelectionModel *selection, ETableItem *eti);
+static void eti_cursor_change (ESelectionModel *selection, int row, int col, ETableItem *eti);
+static void eti_cursor_activated (ESelectionModel *selection, int row, int col, ETableItem *eti);
+static void eti_selection_change (ESelectionModel *selection, ETableItem *eti);
#if 0
static void eti_request_region_show (ETableItem *eti,
int start_col, int start_row,
@@ -352,7 +352,7 @@ eti_remove_table_model (ETableItem *eti)
* Invoked to release the table model associated with this ETableItem
*/
static void
-eti_remove_table_selection_model (ETableItem *eti)
+eti_remove_selection_model (ETableItem *eti)
{
if (!eti->selection)
return;
@@ -841,7 +841,7 @@ eti_add_table_model (ETableItem *eti, ETableModel *table_model)
}
static void
-eti_add_table_selection_model (ETableItem *eti, ETableSelectionModel *selection)
+eti_add_selection_model (ETableItem *eti, ESelectionModel *selection)
{
g_assert (eti->selection == NULL);
@@ -945,7 +945,7 @@ eti_destroy (GtkObject *object)
eti_remove_header_model (eti);
eti_remove_table_model (eti);
- eti_remove_table_selection_model (eti);
+ eti_remove_selection_model (eti);
if (eti->height_cache_idle_id)
g_source_remove(eti->height_cache_idle_id);
@@ -988,10 +988,10 @@ eti_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
eti_add_table_model (eti, E_TABLE_MODEL(GTK_VALUE_OBJECT (*arg)));
break;
- case ARG_TABLE_SELECTION_MODEL:
- eti_remove_table_selection_model (eti);
+ case ARG_SELECTION_MODEL:
+ eti_remove_selection_model (eti);
if (GTK_VALUE_OBJECT (*arg))
- eti_add_table_selection_model (eti, E_TABLE_SELECTION_MODEL(GTK_VALUE_OBJECT (*arg)));
+ eti_add_selection_model (eti, E_SELECTION_MODEL(GTK_VALUE_OBJECT (*arg)));
break;
case ARG_LENGTH_THRESHOLD:
@@ -1703,7 +1703,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
if (cursor_row == view_to_model_row(eti, row) && cursor_col == view_to_model_col(eti, col)){
- if ((!eti_editing(eti)) && e_table_model_is_cell_editable(eti->selection->model, cursor_col, cursor_row)) {
+ if ((!eti_editing(eti)) && e_table_model_is_cell_editable(eti->table_model, col, row)) {
e_table_item_enter_edit (eti, col, row);
}
@@ -1889,7 +1889,9 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
break;
}
- if (eti->cursor_mode != E_CURSOR_LINE && cursor_col != view_to_model_col(eti, 0))
+ gtk_signal_emit (GTK_OBJECT (eti), eti_signals [KEY_PRESS],
+ model_to_view_row(eti, cursor_row), cursor_col, e, &return_val);
+ if ((!return_val) && eti->cursor_mode != E_CURSOR_LINE && cursor_col != view_to_model_col(eti, 0))
eti_cursor_move_left (eti);
break;
@@ -1899,7 +1901,9 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
break;
}
- if (eti->cursor_mode != E_CURSOR_LINE && cursor_col != view_to_model_col(eti, eti->cols - 1))
+ gtk_signal_emit (GTK_OBJECT (eti), eti_signals [KEY_PRESS],
+ model_to_view_row(eti, cursor_row), cursor_col, e, &return_val);
+ if ((!return_val) && eti->cursor_mode != E_CURSOR_LINE && cursor_col != view_to_model_col(eti, eti->cols - 1))
eti_cursor_move_right (eti);
break;
@@ -1964,7 +1968,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
NULL);
if (cursor_col >= 0 && cursor_row >= 0 && return_val &&
- (!eti_editing(eti)) && e_table_model_is_cell_editable(eti->selection->model, cursor_col, cursor_row)) {
+ (!eti_editing(eti)) && e_table_model_is_cell_editable(eti->table_model, model_to_view_col(eti, cursor_col), model_to_view_row(eti, cursor_row))) {
e_table_item_enter_edit (eti, model_to_view_col(eti, cursor_col), model_to_view_row(eti, cursor_row));
}
break;
@@ -2002,7 +2006,7 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
gint col, row;
row = model_to_view_row(eti, cursor_row);
col = model_to_view_col(eti, cursor_col);
- if (col != -1 && row != -1 && e_table_model_is_cell_editable(eti->selection->model, cursor_col, cursor_row)) {
+ if (col != -1 && row != -1 && e_table_model_is_cell_editable(eti->table_model, col, row)) {
e_table_item_enter_edit (eti, col, row);
}
}
@@ -2093,8 +2097,8 @@ eti_class_init (GtkObjectClass *object_class)
GTK_ARG_WRITABLE, ARG_TABLE_HEADER);
gtk_object_add_arg_type ("ETableItem::ETableModel", E_TABLE_MODEL_TYPE,
GTK_ARG_WRITABLE, ARG_TABLE_MODEL);
- gtk_object_add_arg_type ("ETableItem::table_selection_model", E_TABLE_SELECTION_MODEL_TYPE,
- GTK_ARG_WRITABLE, ARG_TABLE_SELECTION_MODEL);
+ gtk_object_add_arg_type ("ETableItem::selection_model", E_SELECTION_MODEL_TYPE,
+ GTK_ARG_WRITABLE, ARG_SELECTION_MODEL);
gtk_object_add_arg_type ("ETableItem::horizontal_draw_grid", GTK_TYPE_BOOL,
GTK_ARG_WRITABLE, ARG_TABLE_HORIZONTAL_DRAW_GRID);
gtk_object_add_arg_type ("ETableItem::vertical_draw_grid", GTK_TYPE_BOOL,
@@ -2249,7 +2253,7 @@ e_table_item_get_focused_column (ETableItem *eti)
}
static void
-eti_cursor_change (ETableSelectionModel *selection, int row, int col, ETableItem *eti)
+eti_cursor_change (ESelectionModel *selection, int row, int col, ETableItem *eti)
{
int view_row;
int view_col;
@@ -2281,7 +2285,7 @@ eti_cursor_change (ETableSelectionModel *selection, int row, int col, ETableItem
}
static void
-eti_cursor_activated (ETableSelectionModel *selection, int row, int col, ETableItem *eti)
+eti_cursor_activated (ESelectionModel *selection, int row, int col, ETableItem *eti)
{
int view_row;
int view_col;
@@ -2304,7 +2308,7 @@ eti_cursor_activated (ETableSelectionModel *selection, int row, int col, ETableI
}
static void
-eti_selection_change (ETableSelectionModel *selection, ETableItem *eti)
+eti_selection_change (ESelectionModel *selection, ETableItem *eti)
{
if (!(GTK_OBJECT_FLAGS(eti) & GNOME_CANVAS_ITEM_REALIZED))
return;
diff --git a/widgets/table/e-table-item.h b/widgets/table/e-table-item.h
index 5e9ea2eb99..c5281b5185 100644
--- a/widgets/table/e-table-item.h
+++ b/widgets/table/e-table-item.h
@@ -5,9 +5,9 @@
#include <libgnomeui/gnome-canvas.h>
#include <gal/e-table/e-table-model.h>
#include <gal/e-table/e-table-header.h>
-#include <gal/e-table/e-table-selection-model.h>
#include <gal/e-table/e-table-defines.h>
#include <gal/e-table/e-table-tooltip.h>
+#include <gal/widgets/e-selection-model.h>
#include <gal/widgets/e-printable.h>
BEGIN_GNOME_DECLS
@@ -24,7 +24,7 @@ typedef struct {
ETableHeader *header;
ETableModel *source_model;
- ETableSelectionModel *selection;
+ ESelectionModel *selection;
int x1, y1;
int minimum_width, width, height;
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index a61ec0fea9..2dcd6e7c25 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -590,7 +590,7 @@ et_build_groups (ETable *et)
"drawfocus", et->draw_focus,
"cursor_mode", et->cursor_mode,
"length_threshold", et->length_threshold,
- "table_selection_model", et->selection,
+ "selection_model", et->selection,
NULL);
gtk_signal_connect (GTK_OBJECT (et->group), "cursor_change",
diff --git a/widgets/table/e-tree-sorted.c b/widgets/table/e-tree-sorted.c
index 1ebfbe7846..a5e5e751f5 100644
--- a/widgets/table/e-tree-sorted.c
+++ b/widgets/table/e-tree-sorted.c
@@ -1166,3 +1166,10 @@ e_tree_sorted_model_to_view_path (ETreeSorted *ets,
return path;
}
+int
+e_tree_sorted_orig_position (ETreeSorted *ets,
+ ETreePath path)
+{
+ ETreeSortedPath *sorted_path = path;
+ return sorted_path->orig_position;
+}
diff --git a/widgets/table/e-tree-sorted.h b/widgets/table/e-tree-sorted.h
index 87094e89a6..3b81e2dcab 100644
--- a/widgets/table/e-tree-sorted.h
+++ b/widgets/table/e-tree-sorted.h
@@ -32,6 +32,7 @@ struct ETreeSortedClass {
ETreeModelClass parent_class;
};
+
GtkType e_tree_sorted_get_type (void);
void e_tree_sorted_construct (ETreeSorted *etree,
ETreeModel *source,
@@ -45,6 +46,8 @@ ETreePath e_tree_sorted_view_to_model_path (ETreeSorted *ets,
ETreePath view_path);
ETreePath e_tree_sorted_model_to_view_path (ETreeSorted *ets,
ETreePath model_path);
+int e_tree_sorted_orig_position (ETreeSorted *ets,
+ ETreePath path);
#ifdef __cplusplus
}
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c
index 5263271557..03a439ed2f 100644
--- a/widgets/table/e-tree.c
+++ b/widgets/table/e-tree.c
@@ -472,7 +472,7 @@ et_build_item (ETree *et)
e_table_item_get_type(),
"ETableHeader", et->header,
"ETableModel", et->etta,
- "table_selection_model", et->selection,
+ "selection_model", et->selection,
"horizontal_draw_grid", et->horizontal_draw_grid,
"vertical_draw_grid", et->vertical_draw_grid,
"drawfocus", et->draw_focus,