aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-calendar-item.c
diff options
context:
space:
mode:
authorDamon Chaplin <damon@helixcode.com>2000-10-12 02:03:52 +0800
committerDamon Chaplin <damon@src.gnome.org>2000-10-12 02:03:52 +0800
commitfb19241a191ae47984e19ae43f0e6acff96cbb1a (patch)
tree5861f5ab084c53b754325c1e19954928d4c735cf /widgets/misc/e-calendar-item.c
parentfc74307dec70e897af78e748703e88b27eb491e8 (diff)
downloadgsoc2013-evolution-fb19241a191ae47984e19ae43f0e6acff96cbb1a.tar
gsoc2013-evolution-fb19241a191ae47984e19ae43f0e6acff96cbb1a.tar.gz
gsoc2013-evolution-fb19241a191ae47984e19ae43f0e6acff96cbb1a.tar.bz2
gsoc2013-evolution-fb19241a191ae47984e19ae43f0e6acff96cbb1a.tar.lz
gsoc2013-evolution-fb19241a191ae47984e19ae43f0e6acff96cbb1a.tar.xz
gsoc2013-evolution-fb19241a191ae47984e19ae43f0e6acff96cbb1a.tar.zst
gsoc2013-evolution-fb19241a191ae47984e19ae43f0e6acff96cbb1a.zip
fixed to recalculate min_cell_width/height in case the show_week_numbers
2000-10-11 Damon Chaplin <damon@helixcode.com> * e-calendar-item.c (e_calendar_item_recalc_sizes): fixed to recalculate min_cell_width/height in case the show_week_numbers option is changed. * e-dateedit.c: added support for hiding the date field, and added get/set_time_of_day() functions to get/set just the time. svn path=/trunk/; revision=5854
Diffstat (limited to 'widgets/misc/e-calendar-item.c')
-rw-r--r--widgets/misc/e-calendar-item.c75
1 files changed, 37 insertions, 38 deletions
diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c
index e84f24329d..de93fd988a 100644
--- a/widgets/misc/e-calendar-item.c
+++ b/widgets/misc/e-calendar-item.c
@@ -1502,53 +1502,52 @@ e_calendar_item_recalc_sizes (ECalendarItem *calitem)
g_return_if_fail (wkfont != NULL);
/* If both fonts are the same, just return. */
- if (font == calitem->old_font
- && wkfont == calitem->old_week_number_font)
- return;
-
- if (calitem->old_font)
- gdk_font_unref (calitem->old_font);
- calitem->old_font = font;
- gdk_font_ref (font);
-
- if (calitem->old_week_number_font)
- gdk_font_unref (calitem->old_week_number_font);
- calitem->old_week_number_font = wkfont;
- gdk_font_ref (wkfont);
-
- for (day = 0; day < 7; day++)
- calitem->day_widths[day] = gdk_char_width (font,
- calitem->days[day]);
-
- max_digit_width = 0;
- max_week_number_digit_width = 0;
- for (digit = 0; digit < 10; digit++) {
- width = gdk_char_width (font, digits[digit]);
- calitem->digit_widths[digit] = width;
- max_digit_width = MAX (max_digit_width, width);
-
- if (wkfont) {
- width = gdk_char_width (wkfont, digits[digit]);
- calitem->week_number_digit_widths[digit] = width;
- max_week_number_digit_width = MAX (max_week_number_digit_width, width);
- } else {
- calitem->week_number_digit_widths[digit] = width;
- max_week_number_digit_width = max_digit_width;
+ if (font != calitem->old_font
+ || wkfont != calitem->old_week_number_font) {
+ if (calitem->old_font)
+ gdk_font_unref (calitem->old_font);
+ calitem->old_font = font;
+ gdk_font_ref (font);
+
+ if (calitem->old_week_number_font)
+ gdk_font_unref (calitem->old_week_number_font);
+ calitem->old_week_number_font = wkfont;
+ gdk_font_ref (wkfont);
+
+ for (day = 0; day < 7; day++)
+ calitem->day_widths[day] = gdk_char_width (font, calitem->days[day]);
+
+ max_digit_width = 0;
+ max_week_number_digit_width = 0;
+ for (digit = 0; digit < 10; digit++) {
+ width = gdk_char_width (font, digits[digit]);
+ calitem->digit_widths[digit] = width;
+ max_digit_width = MAX (max_digit_width, width);
+
+ if (wkfont) {
+ width = gdk_char_width (wkfont, digits[digit]);
+ calitem->week_number_digit_widths[digit] = width;
+ max_week_number_digit_width = MAX (max_week_number_digit_width, width);
+ } else {
+ calitem->week_number_digit_widths[digit] = width;
+ max_week_number_digit_width = max_digit_width;
+ }
}
+ calitem->max_digit_width = max_digit_width;
+ calitem->max_week_number_digit_width = max_week_number_digit_width;
}
- calitem->max_digit_width = max_digit_width;
- calitem->max_week_number_digit_width = max_week_number_digit_width;
-
- min_cell_width = max_digit_width * 2 + E_CALENDAR_ITEM_MIN_CELL_XPAD;
+ min_cell_width = calitem->max_digit_width * 2
+ + E_CALENDAR_ITEM_MIN_CELL_XPAD;
min_cell_height = char_height + E_CALENDAR_ITEM_MIN_CELL_YPAD;
calitem->min_month_width = E_CALENDAR_ITEM_XPAD_BEFORE_WEEK_NUMBERS
+ E_CALENDAR_ITEM_XPAD_BEFORE_CELLS + min_cell_width * 7
+ E_CALENDAR_ITEM_XPAD_AFTER_CELLS;
- if (calitem->show_week_numbers)
- calitem->min_month_width += max_week_number_digit_width * 2
+ if (calitem->show_week_numbers) {
+ calitem->min_month_width += calitem->max_week_number_digit_width * 2
+ E_CALENDAR_ITEM_XPAD_AFTER_WEEK_NUMBERS + 1;
+ }
calitem->min_month_height = style->klass->ythickness * 2
+ E_CALENDAR_ITEM_YPAD_ABOVE_MONTH_NAME + char_height