diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/gui/e-week-view-event-item.c | 51 | ||||
-rw-r--r-- | calendar/gui/e-week-view-main-item.c | 9 | ||||
-rw-r--r-- | calendar/gui/e-week-view-titles-item.c | 7 | ||||
-rw-r--r-- | calendar/gui/e-week-view.c | 20 |
4 files changed, 25 insertions, 62 deletions
diff --git a/calendar/gui/e-week-view-event-item.c b/calendar/gui/e-week-view-event-item.c index 68884cc596..57f859b7df 100644 --- a/calendar/gui/e-week-view-event-item.c +++ b/calendar/gui/e-week-view-event-item.c @@ -387,7 +387,7 @@ week_view_draw_time (EWeekView *week_view, static void week_view_event_item_draw_icons (EWeekViewEventItem *event_item, - GdkDrawable *drawable, + cairo_t *cr, gint icon_x, gint icon_y, gint x2, @@ -404,7 +404,6 @@ week_view_event_item_draw_icons (EWeekViewEventItem *event_item, gboolean draw_timezone_icon = FALSE, draw_attach_icon = FALSE; gboolean draw_meeting_icon = FALSE; GSList *categories_pixbufs = NULL, *pixbufs; - cairo_t *cr; canvas = GNOME_CANVAS_ITEM (event_item)->canvas; parent = gtk_widget_get_parent (GTK_WIDGET (canvas)); @@ -423,8 +422,6 @@ week_view_event_item_draw_icons (EWeekViewEventItem *event_item, e_cal_component_set_icalcomponent ( comp, icalcomponent_new_clone (event->comp_data->icalcomp)); - cr = gdk_cairo_create (drawable); - if (e_cal_component_has_alarms (comp)) { draw_reminder_icon = TRUE; num_icons++; @@ -502,7 +499,6 @@ week_view_event_item_draw_icons (EWeekViewEventItem *event_item, g_slist_foreach (categories_pixbufs, (GFunc)g_object_unref, NULL); g_slist_free (categories_pixbufs); - cairo_destroy (cr); g_object_unref (comp); } @@ -510,7 +506,7 @@ week_view_event_item_draw_icons (EWeekViewEventItem *event_item, the days visible on screen. */ static void week_view_event_item_draw_triangle (EWeekViewEventItem *event_item, - GdkDrawable *drawable, + cairo_t *cr, GdkColor bg_color, gint x, gint y, @@ -526,7 +522,6 @@ week_view_event_item_draw_triangle (EWeekViewEventItem *event_item, GdkPoint points[3]; const gchar *color_spec; gint c1, c2; - cairo_t *cr; if (!can_draw_in_region (draw_region, x, y, w, h)) return; @@ -544,8 +539,6 @@ week_view_event_item_draw_triangle (EWeekViewEventItem *event_item, if (!is_comp_data_valid (event)) return; - cr = gdk_cairo_create (drawable); - points[0].x = x; points[0].y = y; points[1].x = x + w; @@ -559,20 +552,7 @@ week_view_event_item_draw_triangle (EWeekViewEventItem *event_item, e_cal_model_get_color_for_component (model, event->comp_data); if (gdk_color_parse (color_spec, &bg_color)) { - GdkColormap *colormap; - - colormap = gtk_widget_get_colormap (GTK_WIDGET (week_view)); - if (gdk_colormap_alloc_color (colormap, &bg_color, TRUE, TRUE)) { - gdk_cairo_set_source_color (cr, &bg_color); - } else { - EWeekViewColors wvc; - GdkColor *color; - - wvc = E_WEEK_VIEW_COLOR_EVENT_BACKGROUND; - color = &week_view->colors[wvc]; - - gdk_cairo_set_source_color (cr, color); - } + gdk_cairo_set_source_color (cr, &bg_color); } else { EWeekViewColors wvc; GdkColor *color; @@ -607,8 +587,6 @@ week_view_event_item_draw_triangle (EWeekViewEventItem *event_item, cairo_move_to (cr, x, y + h - 1); cairo_line_to (cr, x + w, c2); cairo_restore (cr); - - cairo_destroy (cr); } static void @@ -703,7 +681,7 @@ week_view_event_item_update (GnomeCanvasItem *item, static void week_view_event_item_draw (GnomeCanvasItem *canvas_item, - GdkDrawable *drawable, + cairo_t *cr, gint x, gint y, gint width, @@ -723,7 +701,6 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, gboolean draw_start, draw_end; gboolean draw_start_triangle = FALSE, draw_end_triangle = FALSE; GdkColor bg_color; - cairo_t *cr; cairo_pattern_t *pat; guint16 red, green, blue; gdouble radius, cx0, cy0, rect_height, rect_width; @@ -787,8 +764,6 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, return; } - cr = gdk_cairo_create (drawable); - icon_y = y1 + E_WEEK_VIEW_EVENT_BORDER_HEIGHT + E_WEEK_VIEW_ICON_Y_PAD; /* Get the start & end times in 24-hour format. */ @@ -812,13 +787,8 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, e_cal_model_get_color_for_component (model, event->comp_data); bg_color = week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BACKGROUND]; - if (gdk_color_parse (color_spec, &bg_color)) { - GdkColormap *colormap; - - colormap = gtk_widget_get_colormap (GTK_WIDGET (week_view)); - if (!gdk_colormap_alloc_color (colormap, &bg_color, TRUE, TRUE)) { - bg_color = week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BACKGROUND]; - } + if (!gdk_color_parse (color_spec, &bg_color)) { + bg_color = week_view->colors[E_WEEK_VIEW_COLOR_EVENT_BACKGROUND]; } red = bg_color.red; @@ -918,7 +888,7 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, /* Draw the icons. */ week_view_event_item_draw_icons ( - event_item, drawable, icon_x, + event_item, cr, icon_x, icon_y, x2, FALSE, draw_region); } else { @@ -987,7 +957,7 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, if (draw_start_triangle) { week_view_event_item_draw_triangle ( - event_item, drawable, bg_color, + event_item, cr, bg_color, x1 + E_WEEK_VIEW_EVENT_L_PAD + 2, y1, -3, y2 - y1 + 1, draw_region); } else if (can_draw_in_region (draw_region, rect_x, y1, 1, y2 - y1)) { @@ -1008,7 +978,7 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, if (draw_end_triangle) { week_view_event_item_draw_triangle ( - event_item, drawable, bg_color, + event_item, cr, bg_color, x2 - E_WEEK_VIEW_EVENT_R_PAD - 2, y1, 3, y2 - y1 + 1, draw_region); } else if (can_draw_in_region (draw_region, rect_x2, y2, 1, 1)) { @@ -1098,11 +1068,10 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, || week_view->editing_span_num != event_item->priv->span_num)) { icon_x = span->text_item->x1 - E_WEEK_VIEW_ICON_R_PAD - x; week_view_event_item_draw_icons ( - event_item, drawable, icon_x, + event_item, cr, icon_x, icon_y, max_icon_x, TRUE, draw_region); } } - cairo_destroy (cr); cairo_region_destroy (draw_region); } diff --git a/calendar/gui/e-week-view-main-item.c b/calendar/gui/e-week-view-main-item.c index 252aa3c299..ae4316ca50 100644 --- a/calendar/gui/e-week-view-main-item.c +++ b/calendar/gui/e-week-view-main-item.c @@ -69,7 +69,7 @@ static void week_view_main_item_draw_day (EWeekViewMainItem *main_item, gint day, GDate *date, - GdkDrawable *drawable, + cairo_t *cr, gint x, gint y, gint width, @@ -87,12 +87,10 @@ week_view_main_item_draw_day (EWeekViewMainItem *main_item, PangoFontMetrics *font_metrics; PangoLayout *layout; gboolean today = FALSE; - cairo_t *cr; CalWeekdays working_days; week_view = e_week_view_main_item_get_week_view (main_item); style = gtk_widget_get_style (GTK_WIDGET (week_view)); - cr = gdk_cairo_create (drawable); /* Set up Pango prerequisites */ font_desc = pango_font_description_copy (style->font_desc); @@ -295,7 +293,6 @@ week_view_main_item_draw_day (EWeekViewMainItem *main_item, } pango_font_metrics_unref (font_metrics); pango_font_description_free (font_desc); - cairo_destroy (cr); } static void @@ -368,7 +365,7 @@ week_view_main_item_update (GnomeCanvasItem *item, static void week_view_main_item_draw (GnomeCanvasItem *canvas_item, - GdkDrawable *drawable, + cairo_t *cr, gint x, gint y, gint width, @@ -399,7 +396,7 @@ week_view_main_item_draw (GnomeCanvasItem *canvas_item, if (day_x < x + width && day_x + day_w >= x && day_y < y + height && day_y + day_h >= y) { week_view_main_item_draw_day ( - main_item, day, &date, drawable, + main_item, day, &date, cr, day_x - x, day_y - y, day_w, day_h); } g_date_add_days (&date, 1); diff --git a/calendar/gui/e-week-view-titles-item.c b/calendar/gui/e-week-view-titles-item.c index 2a5056d7f4..7ea7b1ffdc 100644 --- a/calendar/gui/e-week-view-titles-item.c +++ b/calendar/gui/e-week-view-titles-item.c @@ -115,7 +115,7 @@ week_view_titles_item_update (GnomeCanvasItem *item, static void week_view_titles_item_draw (GnomeCanvasItem *canvas_item, - GdkDrawable *drawable, + cairo_t *cr, gint x, gint y, gint width, @@ -130,13 +130,12 @@ week_view_titles_item_draw (GnomeCanvasItem *canvas_item, gboolean abbreviated; gint weekday; PangoLayout *layout; - cairo_t *cr; titles_item = E_WEEK_VIEW_TITLES_ITEM (canvas_item); week_view = e_week_view_titles_item_get_week_view (titles_item); g_return_if_fail (week_view != NULL); - cr = gdk_cairo_create (drawable); + cairo_save (cr); cairo_set_line_width (cr, 1.0); gtk_widget_get_allocation ( @@ -234,7 +233,7 @@ week_view_titles_item_draw (GnomeCanvasItem *canvas_item, } g_object_unref (layout); - cairo_destroy (cr); + cairo_restore (cr); } static GnomeCanvasItem * diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index acba2b6700..6497ec7694 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -1045,13 +1045,9 @@ e_week_view_get_text_color (EWeekView *week_view, EWeekViewEvent *event, GtkWidg if (is_comp_data_valid (event) && gdk_color_parse (e_cal_model_get_color_for_component (e_calendar_view_get_model (E_CALENDAR_VIEW (week_view)), event->comp_data), &bg_color)) { - GdkColormap *colormap; - colormap = gtk_widget_get_colormap (GTK_WIDGET (week_view)); - if (gdk_colormap_alloc_color (colormap, &bg_color, TRUE, TRUE)) { - red = bg_color.red; - green = bg_color.green; - blue = bg_color.blue; - } + red = bg_color.red; + green = bg_color.green; + blue = bg_color.blue; } style = gtk_widget_get_style (widget); @@ -2911,14 +2907,16 @@ e_week_view_reshape_events (EWeekView *week_view) if (week_view->rows_per_day[day] <= max_rows) { gnome_canvas_item_hide (week_view->jump_buttons[day]); } else { + cairo_matrix_t matrix; + e_week_view_get_day_position (week_view, day, &day_x, &day_y, &day_w, &day_h); - gnome_canvas_item_set (week_view->jump_buttons[day], - "GnomeCanvasPixbuf::x", (gdouble) (day_x + day_w - E_WEEK_VIEW_JUMP_BUTTON_X_PAD - E_WEEK_VIEW_JUMP_BUTTON_WIDTH), - "GnomeCanvasPixbuf::y", (gdouble) (day_y + day_h - E_WEEK_VIEW_JUMP_BUTTON_Y_PAD - E_WEEK_VIEW_JUMP_BUTTON_HEIGHT), - NULL); + cairo_matrix_init_translate (&matrix, + day_x + day_w - E_WEEK_VIEW_JUMP_BUTTON_X_PAD - E_WEEK_VIEW_JUMP_BUTTON_WIDTH, + day_y + day_h - E_WEEK_VIEW_JUMP_BUTTON_Y_PAD - E_WEEK_VIEW_JUMP_BUTTON_HEIGHT); + gnome_canvas_item_set_matrix (week_view->jump_buttons[day], &matrix); gnome_canvas_item_show (week_view->jump_buttons[day]); gnome_canvas_item_raise_to_top (week_view->jump_buttons[day]); |