aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-item.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-10-11 04:44:25 +0800
committerChris Lahey <clahey@src.gnome.org>2001-10-11 04:44:25 +0800
commit484c8193e1ae11a967e002b132dd04fa8b4e460d (patch)
tree7f7dca2ac352b4c8ab0cc5b1b372bc356158fef4 /widgets/table/e-table-item.c
parentd74fe8f60dfecbe1ceaae89f8dad3679907d5738 (diff)
downloadgsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.tar
gsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.tar.gz
gsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.tar.bz2
gsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.tar.lz
gsoc2013-evolution-484c8193e1ae11a967e002b132dd04fa8b4e460d.tar.xz
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.c28
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;
}