diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-03-07 04:58:21 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-03-17 20:49:11 +0800 |
commit | 8091b6ebab8b9cbad721cfe73c638d7bfc1a495e (patch) | |
tree | 8db19034247861a92408d633b86514eb59fe12f1 /calendar/gui/e-day-view-main-item.c | |
parent | 854dfb8075b9b1d275bcc50c9ca327059e2320ac (diff) | |
download | gsoc2013-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.c | 35 |
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]); |