From 561ab42a1cd7da4bacd6b4080815156c5f95b7a5 Mon Sep 17 00:00:00 2001 From: Bharath Acharya Date: Tue, 27 Jan 2009 06:42:23 +0000 Subject: ** Fix for bug #463597, bug #463594, bug#463599 (BNC) and ** bug 2009-01-27 Bharath Acharya ** Fix for bug #463597, bug #463594, bug#463599 (BNC) and ** bug #567824(BGO) * gui/print.c (titled_box), (print_day_background), (print_day_view), (print_week_view), (print_month_view): Fix all header related bugs in calendar printing. Bug reports: 1) Daily Printouts Display Hour In Wrong Spot : When you print your daily calendar, it prints the hours in the left column below the :30 time slot 2) Font Problems On Printout, Days Of Week 3) Calendar Heading Printout Problems, Overlapping Fonts In print preview, short week day names in the header of the page are overlapped. Fixes all header issues mentioned at http://www.go-evolution.org/CalendarPrintoutLove svn path=/trunk/; revision=37138 --- calendar/gui/print.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'calendar/gui') diff --git a/calendar/gui/print.c b/calendar/gui/print.c index ba02840bec..ccf0c7c618 100644 --- a/calendar/gui/print.c +++ b/calendar/gui/print.c @@ -126,9 +126,9 @@ get_font_size (PangoFontDescription *font) /* The width of the small calendar months, the space from the right edge of the header rectangle, and the space between the months. */ -#define SMALL_MONTH_WIDTH 80 -#define SMALL_MONTH_PAD 4 -#define SMALL_MONTH_SPACING 12 +#define SMALL_MONTH_WIDTH 100 +#define SMALL_MONTH_PAD 5 +#define SMALL_MONTH_SPACING 20 /* The minimum number of rows we leave space for for the long events in the day view. */ @@ -499,7 +499,7 @@ titled_box (GtkPrintContext *context, const char *text, *x1 += 2; *x2 -= 2; *y2 += 2; - print_text (context, font, text, alignment, *x1, *x2, *y1, *y1 + size * 1.4); + print_text (context, font, text, alignment, *x1, *x2, *y1 + 1.0, *y1 + size * 1.4); *y1 += size * 1.4; } @@ -838,10 +838,10 @@ print_day_background (GtkPrintContext *context, GnomeCalendar *gcal, sprintf (buf, "%d", hour); print_text (context, font_hour, buf, PANGO_ALIGN_RIGHT, left, hour_minute_x, - y - yinc + yinc / 2, y - yinc + yinc / 2 + hour_font_size); + y - yinc, y - yinc + hour_font_size); print_text (context, font_minute, minute, PANGO_ALIGN_LEFT, hour_minute_x, left + width - 3, - y - yinc + yinc / 2, y - yinc + yinc / 2 + minute_font_size); + y - yinc, y - yinc + minute_font_size); /* Draw the horizontal line between hours, across the entire width of the day view. */ @@ -2086,7 +2086,7 @@ print_day_view (GtkPrintContext *context, GnomeCalendar *gcal, time_t date) /* Print the filled border around the header. */ print_border (context, 0.0, width, - 0.0, HEADER_HEIGHT + 2.0, 1.0, 0.9); + 0.0, HEADER_HEIGHT + 3.5, 1.0, 0.9); /* Print the 2 mini calendar-months. */ l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH * 2 - SMALL_MONTH_SPACING; @@ -2171,14 +2171,14 @@ print_week_view (GtkPrintContext *context, GnomeCalendar *gcal, time_t date) l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH * 2 - SMALL_MONTH_SPACING; print_month_small (context, gcal, when, - l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 30, + l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 10, DATE_MONTH | DATE_YEAR, when, time_add_week_with_zone (when, 1, zone), FALSE); l += SMALL_MONTH_SPACING + SMALL_MONTH_WIDTH; print_month_small (context, gcal, time_add_month_with_zone (when, 1, zone), - l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 30, + l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 10, DATE_MONTH | DATE_YEAR, when, time_add_week_with_zone (when, 1, zone), FALSE); @@ -2204,6 +2204,7 @@ print_month_view (GtkPrintContext *context, GnomeCalendar *gcal, time_t date) icaltimezone *zone = calendar_config_get_icaltimezone (); char buf[100]; gdouble width, height; + double l; setup = gtk_print_context_get_page_setup (context); @@ -2214,17 +2215,19 @@ print_month_view (GtkPrintContext *context, GnomeCalendar *gcal, time_t date) print_month_summary (context, gcal, date, 0.0, width, HEADER_HEIGHT, height); /* Print the border around the header. */ - print_border (context, 0.0, width, 0.0, HEADER_HEIGHT, 1.0, 0.9); + print_border (context, 0.0, width, 0.0, HEADER_HEIGHT + 10, 1.0, 0.9); + + l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH; /* Print the 2 mini calendar-months. */ print_month_small (context, gcal, time_add_month_with_zone (date, 1, zone), - width - width / 7 + 2, 4, - width - 8, HEADER_HEIGHT, + l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 4, DATE_MONTH | DATE_YEAR, 0, 0, FALSE); + print_month_small (context, gcal, time_add_month_with_zone (date, -1, zone), - 8, 4, width / 7 - 2, HEADER_HEIGHT, + 8, 4, width / 7 + 20, HEADER_HEIGHT + 4, DATE_MONTH | DATE_YEAR, 0, 0, FALSE); /* Print the month, e.g. 'May 2001'. */ -- cgit v1.2.3