aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-group-container.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-04-24 09:30:48 +0800
committerChris Lahey <clahey@src.gnome.org>2001-04-24 09:30:48 +0800
commit44c7d231440ad4f4ef59bfbf175be6cf35271e86 (patch)
tree9929929ac2369484283e05cac27bbcfacdfb4f57 /widgets/table/e-table-group-container.c
parentfb53364c9c0114daa0f961965b38652016c900e5 (diff)
downloadgsoc2013-evolution-44c7d231440ad4f4ef59bfbf175be6cf35271e86.tar.gz
gsoc2013-evolution-44c7d231440ad4f4ef59bfbf175be6cf35271e86.tar.zst
gsoc2013-evolution-44c7d231440ad4f4ef59bfbf175be6cf35271e86.zip
Added get_cell_geometry method.
2001-04-23 Christopher James Lahey <clahey@ximian.com> * e-table-group-container.c, e-table-group-leaf.c, e-table-group.c, e-table-group-.h: Added get_cell_geometry method. * e-table-item.c, e-table-item.h: Added e_table_item_get_cell_geometry. * e-table.c, e-table.h: Added e_table_get_cell_geometry. svn path=/trunk/; revision=9532
Diffstat (limited to 'widgets/table/e-table-group-container.c')
-rw-r--r--widgets/table/e-table-group-container.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/widgets/table/e-table-group-container.c b/widgets/table/e-table-group-container.c
index abb2690b61..5812910643 100644
--- a/widgets/table/e-table-group-container.c
+++ b/widgets/table/e-table-group-container.c
@@ -665,6 +665,34 @@ etgc_compute_location (ETableGroup *etg, int *x, int *y, int *row, int *col)
}
}
+static void
+etgc_get_cell_geometry (ETableGroup *etg, int *row, int *col, int *x, int *y, int *width, int *height)
+{
+ ETableGroupContainer *etgc = E_TABLE_GROUP_CONTAINER(etg);
+
+ int ypos;
+
+ ypos = 0;
+
+ if (etgc->children) {
+ GList *list;
+ for (list = etgc->children; list; list = list->next) {
+ ETableGroupContainerChildNode *child_node = (ETableGroupContainerChildNode *)list->data;
+ ETableGroup *child = child_node->child;
+ int thisy;
+
+ e_table_group_get_cell_geometry (child, row, col, x, &thisy, width, height);
+ ypos += thisy;
+ if ((*row == -1) || (*col == -1)) {
+ ypos += TITLE_HEIGHT;
+ *x += GROUP_INDENT;
+ *y = ypos;
+ return;
+ }
+ }
+ }
+}
+
static void etgc_thaw (ETableGroup *etg)
{
e_canvas_item_request_reflow (GNOME_CANVAS_ITEM(etg));
@@ -817,6 +845,7 @@ etgc_class_init (GtkObjectClass *object_class)
e_group_class->get_focus_column = etgc_get_focus_column;
e_group_class->get_printable = etgc_get_printable;
e_group_class->compute_location = etgc_compute_location;
+ e_group_class->get_cell_geometry = etgc_get_cell_geometry;
gtk_object_add_arg_type ("ETableGroupContainer::horizontal_draw_grid", GTK_TYPE_BOOL,
GTK_ARG_WRITABLE, ARG_TABLE_HORIZONTAL_DRAW_GRID);