aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-day-view-main-item.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-03-07 04:58:21 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-03-17 20:49:11 +0800
commit8091b6ebab8b9cbad721cfe73c638d7bfc1a495e (patch)
tree8db19034247861a92408d633b86514eb59fe12f1 /calendar/gui/e-day-view-main-item.c
parent854dfb8075b9b1d275bcc50c9ca327059e2320ac (diff)
downloadgsoc2013-evolution-8091b6ebab8b9cbad721cfe73c638d7bfc1a495e.tar
gsoc2013-evolution-8091b6ebab8b9cbad721cfe73c638d7bfc1a495e.tar.gz
gsoc2013-evolution-8091b6ebab8b9cbad721cfe73c638d7bfc1a495e.tar.bz2
gsoc2013-evolution-8091b6ebab8b9cbad721cfe73c638d7bfc1a495e.tar.lz
gsoc2013-evolution-8091b6ebab8b9cbad721cfe73c638d7bfc1a495e.tar.xz
gsoc2013-evolution-8091b6ebab8b9cbad721cfe73c638d7bfc1a495e.tar.zst
gsoc2013-evolution-8091b6ebab8b9cbad721cfe73c638d7bfc1a495e.zip
EDayView: Split working days into separate boolean properties.
Far easier to deal with than flags.
Diffstat (limited to 'calendar/gui/e-day-view-main-item.c')
-rw-r--r--calendar/gui/e-day-view-main-item.c35
1 files changed, 30 insertions, 5 deletions
diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c
index 1492cdebd5..9d6b07aa13 100644
--- a/calendar/gui/e-day-view-main-item.c
+++ b/calendar/gui/e-day-view-main-item.c
@@ -1001,10 +1001,9 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
gint row, row_y, grid_x1, grid_x2;
gint day, grid_y1, grid_y2;
gint work_day_start_y, work_day_end_y;
- gint day_x, day_w, work_day;
+ gint day_x, day_w;
gint start_row, end_row, rect_x, rect_y, rect_width, rect_height;
struct icaltimetype day_start_tt, today_tt;
- gint weekday;
gboolean today = FALSE;
cairo_region_t *draw_region;
GdkRectangle rect;
@@ -1042,17 +1041,43 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
for (day = 0; day < day_view->days_shown; day++) {
+ GDateWeekday weekday;
+
day_start_tt = icaltime_from_timet_with_zone (
day_view->day_starts[day], FALSE,
e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)));
- weekday = icaltime_day_of_week (day_start_tt) - 1;
- work_day = day_view->working_days & (1 << weekday);
+ switch (icaltime_day_of_week (day_start_tt)) {
+ case 1:
+ weekday = G_DATE_SUNDAY;
+ break;
+ case 2:
+ weekday = G_DATE_MONDAY;
+ break;
+ case 3:
+ weekday = G_DATE_TUESDAY;
+ break;
+ case 4:
+ weekday = G_DATE_WEDNESDAY;
+ break;
+ case 5:
+ weekday = G_DATE_THURSDAY;
+ break;
+ case 6:
+ weekday = G_DATE_FRIDAY;
+ break;
+ case 7:
+ weekday = G_DATE_SATURDAY;
+ break;
+ default:
+ weekday = G_DATE_BAD_WEEKDAY;
+ break;
+ }
day_x = day_view->day_offsets[day] - x;
day_w = day_view->day_widths[day];
- if (work_day) {
+ if (e_day_view_get_work_day (day_view, weekday)) {
if (can_draw_in_region (draw_region, day_x, 0 - y, day_w, work_day_start_y - (0 - y))) {
cairo_save (cr);
gdk_cairo_set_source_color (cr, &day_view->colors[E_DAY_VIEW_COLOR_BG_NOT_WORKING]);