diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2001-07-01 10:04:46 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2001-07-01 10:04:46 +0800 |
commit | 915c3e0e0cfa6ca8751455c19fd509ac0855652d (patch) | |
tree | c9172a3c0546182cc23b9c440e945fef3ec7808c /calendar/gui/e-day-view-main-item.c | |
parent | 1a5710ebc0c786cb102578c0eb5ee82a979c3065 (diff) | |
download | gsoc2013-evolution-915c3e0e0cfa6ca8751455c19fd509ac0855652d.tar.gz gsoc2013-evolution-915c3e0e0cfa6ca8751455c19fd509ac0855652d.tar.zst gsoc2013-evolution-915c3e0e0cfa6ca8751455c19fd509ac0855652d.zip |
draw icons per category
2001-07-01 Rodrigo Moya <rodrigo@ximian.com>
* gui/e-day-view-main-item.c
(e_day_view_main_item_draw_day_event): draw icons per category
* gui/e-day-view-top-item.c
(e_day_view_top_item_draw_long_event): draw icons per category
* gui/e-day-view.c
(e_day_view_reshape_long_event):
(e_day_view_reshape_day_event): calculate space for category icons
* gui/e-week-view-event-item.c
(e_week_view_event_item_draw_icons): draw icons per category
* gui/e-week-view.c
(e_week_view_reshape_event_span): calculate space for category icons
svn path=/trunk/; revision=10646
Diffstat (limited to 'calendar/gui/e-day-view-main-item.c')
-rw-r--r-- | calendar/gui/e-day-view-main-item.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c index 0f5f37ce52..6c7d47c911 100644 --- a/calendar/gui/e-day-view-main-item.c +++ b/calendar/gui/e-day-view-main-item.c @@ -465,6 +465,7 @@ e_day_view_main_item_draw_day_event (EDayViewMainItem *dvmitem, gint num_icons, icon_x, icon_y, icon_x_inc, icon_y_inc; gint max_icon_w, max_icon_h; gboolean draw_reminder_icon, draw_recurrence_icon; + GSList *categories_list, *elem; day_view = dvmitem->day_view; @@ -574,6 +575,9 @@ e_day_view_main_item_draw_day_event (EDayViewMainItem *dvmitem, num_icons++; } + cal_component_get_categories_list (comp, &categories_list); + num_icons += g_slist_length (categories_list); + if (num_icons != 0) { if (item_h >= (E_DAY_VIEW_ICON_HEIGHT + E_DAY_VIEW_ICON_Y_PAD) * num_icons) { @@ -620,9 +624,46 @@ e_day_view_main_item_draw_day_event (EDayViewMainItem *dvmitem, max_icon_w), MIN (E_DAY_VIEW_ICON_HEIGHT, max_icon_h)); + + icon_x += icon_x_inc; + icon_y += icon_y_inc; + } + + /* draw icons per category */ + for (elem = categories_list; elem; elem = elem->next) { + char *category; + GdkPixmap *pixmap; + GdkBitmap *mask; + + category = (char *) elem->data; + /* FIXME: get icon for this category */ + pixmap = day_view->recurrence_icon; + mask = day_view->recurrence_mask; + + max_icon_w = item_x + item_w - icon_x + - E_DAY_VIEW_EVENT_BORDER_WIDTH; + max_icon_h = item_y + item_h - icon_y + - E_DAY_VIEW_EVENT_BORDER_HEIGHT; + + gdk_gc_set_clip_origin (gc, icon_x, icon_y); + gdk_gc_set_clip_mask (gc, mask); + gdk_draw_pixmap (drawable, gc, + pixmap, + 0, 0, icon_x, icon_y, + MIN (E_DAY_VIEW_ICON_WIDTH, + max_icon_w), + MIN (E_DAY_VIEW_ICON_HEIGHT, + max_icon_h)); + + icon_x += icon_x_inc; + icon_y += icon_y_inc; } + gdk_gc_set_clip_mask (gc, NULL); } + + /* free memory */ + cal_component_free_categories_list (categories_list); } |