diff options
author | Christopher James Lahey <clahey@ximian.com> | 2001-10-11 04:44:25 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2001-10-11 04:44:25 +0800 |
commit | 484c8193e1ae11a967e002b132dd04fa8b4e460d (patch) | |
tree | 7f7dca2ac352b4c8ab0cc5b1b372bc356158fef4 /widgets/table/e-table-item.c | |
parent | d74fe8f60dfecbe1ceaae89f8dad3679907d5738 (diff) | |
download | gsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.tar.gz gsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.tar.zst gsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.zip |
Implement these functions as pass through to the child cell.
2001-10-10 Christopher James Lahey <clahey@ximian.com>
* e-cell-popup.c (ecp_get_bg_color), e-cell-tree.c
(ect_get_bg_color): Implement these functions as pass through to
the child cell.
* e-cell-text.c, e-cell-text.h (ect_get_bg_color): Implemented
this using a bg_color_column which can be set through the argument
of the same string.
* e-cell.c, e-cell.h (e_cell_get_bg_color): Added this function to
allow background color to change by cell.
* e-table-item.c (eti_get_cell_background_color): Call
e_cell_get_bg_color to allow background color to change by cell.
svn path=/trunk/; revision=13566
Diffstat (limited to 'widgets/table/e-table-item.c')
-rw-r--r-- | widgets/table/e-table-item.c | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c index dbf4716c5c..067a5fc60b 100644 --- a/widgets/table/e-table-item.c +++ b/widgets/table/e-table-item.c @@ -156,13 +156,13 @@ eti_editing (ETableItem *eti) } inline static GdkColor * -eti_get_cell_background_color (ETableItem *eti, int row, int col, gboolean selected, gboolean *allocated) +eti_get_cell_background_color (ETableItem *eti, int row, int col, gboolean selected, gboolean *allocatedp) { + ECellView *ecell_view = eti->cell_views [col]; GtkWidget *canvas = GTK_WIDGET(GNOME_CANVAS_ITEM(eti)->canvas); - GdkColor *background; - - if (allocated) - *allocated = FALSE; + GdkColor *background, bg; + gchar *color_spec = NULL; + gboolean allocated = FALSE; if (selected){ if (GTK_WIDGET_HAS_FOCUS(canvas)) @@ -173,17 +173,29 @@ eti_get_cell_background_color (ETableItem *eti, int row, int col, gboolean selec background = &canvas->style->base [GTK_STATE_NORMAL]; } + color_spec = e_cell_get_bg_color (ecell_view, row); + + if (color_spec != NULL) { + if (gdk_color_parse (color_spec, &bg)) { + background = gdk_color_copy (&bg); + allocated = TRUE; + } + } + if (eti->alternating_row_colors) { if (row % 2) { } else { - if (allocated) - *allocated = TRUE; - background = gdk_color_copy (background); + if (!allocated) { + background = gdk_color_copy (background); + allocated = TRUE; + } e_hsv_tweak (background, 0.0f, 0.0f, -0.05f); gdk_color_alloc (gtk_widget_get_colormap (GTK_WIDGET (canvas)), background); } } + if (allocatedp) + *allocatedp = allocated; return background; } |