diff options
author | Thouis R. Jones <thouis@csail.mit.edu> | 2005-05-13 19:08:28 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2005-05-13 19:08:28 +0800 |
commit | 51490d54078a67793ab48584a4f672d0ae3d3bd4 (patch) | |
tree | b448ad9371d92e8edbe0126f60cdf01cb77571a5 /calendar/gui/e-day-view-main-item.c | |
parent | 8b3b58503dca17206fd530fc4828fdd51faa08a3 (diff) | |
download | gsoc2013-evolution-51490d54078a67793ab48584a4f672d0ae3d3bd4.tar.gz gsoc2013-evolution-51490d54078a67793ab48584a4f672d0ae3d3bd4.tar.zst gsoc2013-evolution-51490d54078a67793ab48584a4f672d0ae3d3bd4.zip |
Fixes #272301
2005-05-13 Thouis R. Jones <thouis@csail.mit.edu>
Fixes #272301
* gui/apps_evolution_calendar.schemas.in.in:
* gui/calendar-config-keys.h:
* gui/calendar-config.c: (calendar_config_get_marcus_bains,
calendar_config_add_notification_marcus_bains):
* gui/calendar-config.h:
* gui/e-day-view-config.c: (set_marcus_bains,
marcus_bains_changed_cb, e_day_view_config_set_view):
* gui/e-day-view-main-item.c: (e_day_view_main_item_draw):
* gui/e-day-view-time-item.c: (e_day_view_time_item_draw):
* gui/e-day-view.c: (e_day_view_init, e_day_view_set_colors,
e_day_view_get_show_marcus_bains, e_day_view_set_marcus_bains,
e_day_view_update_marcus_bains):
* gui/e-day-view.h:
* gui/gnome-cal.c: (update_marcus_bains_line_cb, setup_widgets,
gnome_calendar_destroy): Added Marcus Bains Line to main item
view and time bar.
svn path=/trunk/; revision=29351
Diffstat (limited to 'calendar/gui/e-day-view-main-item.c')
-rw-r--r-- | calendar/gui/e-day-view-main-item.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c index c936342f74..6203e264e8 100644 --- a/calendar/gui/e-day-view-main-item.c +++ b/calendar/gui/e-day-view-main-item.c @@ -35,6 +35,7 @@ #include "e-day-view-layout.h" #include "e-day-view-main-item.h" #include "ea-calendar.h" +#include <libecal/e-cal-time-util.h> static void e_day_view_main_item_set_arg (GtkObject *o, GtkArg *arg, guint arg_id); @@ -299,6 +300,44 @@ e_day_view_main_item_draw (GnomeCanvasItem *canvas_item, GdkDrawable *drawable, x, y, width, height, day); } + + + if (e_day_view_get_show_marcus_bains (day_view)) { + icaltimezone *zone; + struct icaltimetype time_now, day_start; + int marcus_bains_y; + GdkColor mb_color; + + gdk_gc_set_foreground (gc, &day_view->colors[E_DAY_VIEW_COLOR_MARCUS_BAINS_LINE]); + + if (day_view->marcus_bains_day_view_color && gdk_color_parse (day_view->marcus_bains_day_view_color, &mb_color)) { + GdkColormap *colormap; + + colormap = gtk_widget_get_colormap (GTK_WIDGET (day_view)); + if (gdk_colormap_alloc_color (colormap, &mb_color, TRUE, TRUE)) { + gdk_gc_set_foreground (gc, &mb_color); + } + } + + zone = e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view)); + time_now = icaltime_current_time_with_zone (zone); + + for (day = 0; day < day_view->days_shown; day++) { + day_start = icaltime_from_timet_with_zone (day_view->day_starts[day], FALSE, zone); + + if ((day_start.year == time_now.year) && + (day_start.month == time_now.month) && + (day_start.day == time_now.day)) { + + grid_x1 = day_view->day_offsets[day] - x + E_DAY_VIEW_BAR_WIDTH; + grid_x2 = day_view->day_offsets[day + 1] - x - 1; + marcus_bains_y = (time_now.hour * 60 + time_now.minute) * day_view->row_height / day_view->mins_per_row - y; + gdk_draw_line (drawable, gc, grid_x1, marcus_bains_y, grid_x2, marcus_bains_y); + } + } + } + + } |