[Evolution-hackers] The calendar appears to be using hard-coded colours



Hi,

The attachment is a patch for bugzilla #6767.

http://bugzilla.ximian.com/show_bug.cgi?id=6767

But it is for evolution1.4 now. Could you give me some advice about the
patch? If there aren't any better way, I will try to port it to
evolution 1.5.

Thanks,
Li


Index: calendar/gui/e-day-view-main-item.c
===================================================================
RCS file: /export/src/cvs/evolution/calendar/gui/e-day-view-main-item.c,v
retrieving revision 1.2
diff -r1.2 e-day-view-main-item.c
492a493
> 	gdk_gc_set_foreground (gc, &day_view->colors[E_DAY_VIEW_COLOR_EVENT_BACKGROUND]);
495c496
< 		gdk_draw_rectangle (drawable, style->white_gc, TRUE,
---
> 		gdk_draw_rectangle (drawable, gc, TRUE,
501c502
< 		gdk_draw_rectangle (drawable, style->white_gc, TRUE,
---
> 		gdk_draw_rectangle (drawable, gc, TRUE,
506c507,508
< 	gdk_draw_line (drawable, style->black_gc,
---
> 	gdk_gc_set_foreground (gc, &day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER]);
> 	gdk_draw_line (drawable, gc,
529a532
> 		gdk_gc_set_foreground (gc, &day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR]);
538c541,542
< 	gdk_draw_rectangle (drawable, style->black_gc, FALSE,
---
> 	gdk_gc_set_foreground (gc, &day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER]);
> 	gdk_draw_rectangle (drawable, gc, FALSE,
539a544
> 	gdk_gc_set_foreground (gc, &day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR]);
Index: calendar/gui/e-day-view.c
===================================================================
RCS file: /export/src/cvs/evolution/calendar/gui/e-day-view.c,v
retrieving revision 1.13
diff -r1.13 e-day-view.c
132a133
> static void e_day_view_set_colors(EDayView *day_view, GtkWidget *widget);
1001,1051c1002
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_WORKING].red   = 247 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_WORKING].green = 247 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_WORKING].blue  = 244 * 257;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_NOT_WORKING].red   = 216 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_NOT_WORKING].green = 216 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_NOT_WORKING].blue  = 214 * 257;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED].red   = 0 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED].green = 0 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED].blue  = 156 * 257;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED_UNFOCUSSED].red   = 16 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED_UNFOCUSSED].green = 78 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED_UNFOCUSSED].blue  = 139 * 257;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_GRID].red   = 0x8000;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_GRID].green = 0x8000;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_GRID].blue  = 0x8000;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS].red   = 0x8000;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS].green = 0x8000;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS].blue  = 0x8000;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_SELECTED].red   = 65535;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_SELECTED].green = 65535;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_SELECTED].blue  = 65535;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_GRID].red   = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_GRID].green = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_GRID].blue  = 0;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR].red   = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR].green = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR].blue  = 65535;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_BACKGROUND].red   = 65535;
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_BACKGROUND].green = 65535;
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_BACKGROUND].blue  = 65535;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER].red   = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER].green = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER].blue  = 0;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BACKGROUND].red   = 213 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BACKGROUND].green = 213 * 257;
< 	day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BACKGROUND].blue  = 213 * 257;
< 
< 	day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BORDER].red   = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BORDER].green = 0;
< 	day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BORDER].blue  = 0;
---
> 	e_day_view_set_colors(day_view, widget);
1113a1065,1083
> e_day_view_set_colors(EDayView *day_view, GtkWidget *widget)
> {
> 	day_view->colors[E_DAY_VIEW_COLOR_BG_WORKING] = widget->style->base[GTK_STATE_NORMAL];
>         day_view->colors[E_DAY_VIEW_COLOR_BG_NOT_WORKING] = widget->style->bg[GTK_STATE_ACTIVE];
> 	day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED] = widget->style->base[GTK_STATE_SELECTED];
>         day_view->colors[E_DAY_VIEW_COLOR_BG_SELECTED_UNFOCUSSED] = widget->style->bg[GTK_STATE_SELECTED];
>         day_view->colors[E_DAY_VIEW_COLOR_BG_GRID] = widget->style->fg[GTK_STATE_INSENSITIVE];
>         day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS] = widget->style->dark[GTK_STATE_NORMAL];
>         day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_SELECTED] = widget->style->bg[GTK_STATE_SELECTED];
>         day_view->colors[E_DAY_VIEW_COLOR_BG_TOP_CANVAS_GRID] = widget->style->fg[GTK_STATE_INSENSITIVE];
>         day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR] = widget->style->base[GTK_STATE_SELECTED];
>         day_view->colors[E_DAY_VIEW_COLOR_EVENT_BACKGROUND] = widget->style->base[GTK_STATE_NORMAL];
>         day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER] = widget->style->fg[GTK_STATE_INSENSITIVE];
>         day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BACKGROUND] = widget->style->bg[GTK_STATE_ACTIVE];
>         day_view->colors[E_DAY_VIEW_COLOR_LONG_EVENT_BORDER] = widget->style->fg[GTK_STATE_INSENSITIVE];
> }
> 
> 
> static void
1154a1125,1126
> 	gint week_day, event_num;
> 	EDayViewEvent *event;
1159a1132,1158
> 	e_day_view_set_colors(day_view, widget);
> 	
> 	for (week_day = 0; week_day < E_DAY_VIEW_MAX_DAYS; week_day++){
> 		for (event_num = 0; event_num < day_view->events[week_day]->len; event_num++) {
>         		event = &g_array_index (day_view->events[week_day], EDayViewEvent, event_num);
> 	                if (event->canvas_item)
> 				gnome_canvas_item_set (event->canvas_item,
>                                                        "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL],
>                                                        NULL);
> 	        }
> 	}
> 	for (event_num = 0; event_num < day_view->long_events->len; event_num++) {
> 		event = &g_array_index (day_view->long_events, EDayViewEvent, event_num);
> 		if (event->canvas_item)
> 			gnome_canvas_item_set (event->canvas_item,
> 					       "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL],
> 					       NULL);
> 	}
> 	gnome_canvas_item_set (day_view->main_canvas_top_resize_bar_item,
>                                "fill_color_gdk", &day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR],
>                                "outline_color_gdk", &day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER],
>                                NULL);
> 
>         gnome_canvas_item_set (day_view->main_canvas_bottom_resize_bar_item,
>                                "fill_color_gdk", &day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR],
>                                "outline_color_gdk", &day_view->colors[E_DAY_VIEW_COLOR_EVENT_BORDER],
>                                NULL);
5265a5265,5267
> 		GtkWidget *widget;
> 
> 		widget = (GtkWidget *)day_view;
5275c5277
< 					       "fill_color_rgba", GNOME_CANVAS_COLOR(0, 0, 0),
---
> 					       "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL],
5437a5440,5442
> 			GtkWidget *widget;
> 
> 			widget = (GtkWidget *)day_view;
5447c5452
< 						       "fill_color_rgba", GNOME_CANVAS_COLOR(0, 0, 0),
---
> 						       "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL],
Index: calendar/gui/e-week-view.c
===================================================================
RCS file: /export/src/cvs/evolution/calendar/gui/e-week-view.c,v
retrieving revision 1.15
diff -r1.15 e-week-view.c
101a102
> static void e_week_view_set_colors(EWeekView *week_view, GtkWidget *widget);
567,609c568
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVEN_MONTHS].red   = 0xe0e0;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVEN_MONTHS].green = 0xe0e0;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVEN_MONTHS].blue  = 0xe0e0;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_ODD_MONTHS].red   = 65535;
< 	week_view->colors[E_WEEK_VIEW_COLOR_ODD_MONTHS].green = 65535;
< 	week_view->colors[E_WEEK_VIEW_COLOR_ODD_MONTHS].blue  = 65535;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BACKGROUND].red   = 213 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BACKGROUND].green = 213 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BACKGROUND].blue  = 213 * 257;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BORDER].red   = 0;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BORDER].green = 0;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BORDER].blue  = 0;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_TEXT].red   = 0;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_TEXT].green = 0;
< 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_TEXT].blue  = 0;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_GRID].red   = 0 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_GRID].green = 0 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_GRID].blue  = 0 * 257;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED].red   = 0 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED].green = 0 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED].blue  = 156 * 257;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED_UNFOCUSSED].red   = 16 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED_UNFOCUSSED].green = 78 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED_UNFOCUSSED].blue  = 139 * 257;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_DATES].red   = 0 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_DATES].green = 0 * 257;
< 	week_view->colors[E_WEEK_VIEW_COLOR_DATES].blue  = 0 * 257;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_DATES_SELECTED].red   = 65535;
< 	week_view->colors[E_WEEK_VIEW_COLOR_DATES_SELECTED].green = 65535;
< 	week_view->colors[E_WEEK_VIEW_COLOR_DATES_SELECTED].blue  = 65535;
< 
< 	week_view->colors[E_WEEK_VIEW_COLOR_TODAY].red   = 65535;
< 	week_view->colors[E_WEEK_VIEW_COLOR_TODAY].green = 0;
< 	week_view->colors[E_WEEK_VIEW_COLOR_TODAY].blue  = 0;
---
> 	e_week_view_set_colors(week_view, widget);
624a584,600
> static void 
> e_week_view_set_colors(EWeekView *week_view, GtkWidget *widget)
> {
> 	week_view->colors[E_WEEK_VIEW_COLOR_EVEN_MONTHS] = widget->style->base[GTK_STATE_INSENSITIVE]; 
> 	week_view->colors[E_WEEK_VIEW_COLOR_ODD_MONTHS] = widget->style->base[GTK_STATE_NORMAL];
> 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BACKGROUND] = widget->style->base[GTK_STATE_NORMAL];
> 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BORDER] = widget->style->fg[GTK_STATE_INSENSITIVE];
> 	week_view->colors[E_WEEK_VIEW_COLOR_EVENT_TEXT] = widget->style->text[GTK_STATE_NORMAL];
> 	week_view->colors[E_WEEK_VIEW_COLOR_GRID] = widget->style->fg[GTK_STATE_INSENSITIVE];
> 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED] = widget->style->base[GTK_STATE_SELECTED]; 
> 	week_view->colors[E_WEEK_VIEW_COLOR_SELECTED_UNFOCUSSED] = widget->style->bg[GTK_STATE_SELECTED];
> 	week_view->colors[E_WEEK_VIEW_COLOR_DATES] = widget->style->text[GTK_STATE_NORMAL];
> 	week_view->colors[E_WEEK_VIEW_COLOR_DATES_SELECTED] = widget->style->text[GTK_STATE_SELECTED];
> 	week_view->colors[E_WEEK_VIEW_COLOR_TODAY] = widget->style->base[GTK_STATE_SELECTED];
> }	
> 
> 
689a666
> 	gint span_num;
695a673
> 	EWeekViewEventSpan *span;
702a681,694
> 	e_week_view_set_colors(week_view, widget);
>         if (week_view->spans) {
> 		for (span_num = 0; span_num < week_view->spans->len;
>              	     span_num++) {
>         		span = &g_array_index (week_view->spans,
> 	                               	       EWeekViewEventSpan, span_num);
> 	        	if (span->text_item){
> 				gnome_canvas_item_set (span->text_item,
> 	                        	               "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL],
> 		                        	       NULL);
> 	            	}
> 		}
> 	}
> 	
2916c2908,2910
< 
---
> 		GtkWidget *widget;
> 	
> 		widget = (GtkWidget *)week_view;
2927c2921
< 					       "fill_color_rgba", GNOME_CANVAS_COLOR(0, 0, 0),
---
> 					       "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL],
Index: widgets/misc/e-calendar-item.c
===================================================================
RCS file: /export/src/cvs/evolution/widgets/misc/e-calendar-item.c,v
retrieving revision 1.6
diff -r1.6 e-calendar-item.c
703,721c703
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX].red   = 65535;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX].green = 0;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX].blue  = 0;
< 
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG].red   = 65535;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG].green = 65535;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG].blue  = 65535;
< 
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED].red   = 4700;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED].green = 4700;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED].blue  = 65535;
< 
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG].red   = 47000;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG].green = 47000;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG].blue  = 48000;
< 
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG].red   = 47000;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG].green = 47000;
< 	calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG].blue  = 48000;
---
> 	e_calendar_item_style_set (GTK_WIDGET(item->canvas), calitem);
2922a2905,2913
> }
> 
> void e_calendar_item_style_set (GtkWidget *widget, ECalendarItem *calitem)
> {
> 	calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX] = widget->style->bg[GTK_STATE_SELECTED];
> 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG] = widget->style->base[GTK_STATE_NORMAL];
> 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED] = widget->style->bg[GTK_STATE_SELECTED];
> 	calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG] = widget->style->fg[GTK_STATE_INSENSITIVE];
> 	calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG] = widget->style->fg[GTK_STATE_INSENSITIVE];
Index: widgets/misc/e-calendar-item.h
===================================================================
RCS file: /export/src/cvs/evolution/widgets/misc/e-calendar-item.h,v
retrieving revision 1.3
diff -r1.3 e-calendar-item.h
373a374,375
> void e_calendar_item_style_set (GtkWidget *widget, ECalendarItem *calitem);
> 
Index: widgets/misc/e-calendar.c
===================================================================
RCS file: /export/src/cvs/evolution/widgets/misc/e-calendar.c,v
retrieving revision 1.5
diff -r1.5 e-calendar.c
282a283,285
> 	ECalendar *e_calendar;
> 
> 	e_calendar = E_CALENDAR(widget);
291a295
> 	e_calendar_item_style_set (widget, e_calendar->calitem);




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]