diff options
author | Federico Mena Quintero <federico@nuclecu.unam.mx> | 1998-08-28 08:29:59 +0800 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1998-08-28 08:29:59 +0800 |
commit | 21e41f438e4761587b0ea42db80b23dde1eb59e3 (patch) | |
tree | bf8fed6dc79bd0df6121f757e5f91afd699f645f /calendar/gnome-month-item.c | |
parent | e4a4179f9d2226b1420e73ae894221502bfd7209 (diff) | |
download | gsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.tar gsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.tar.gz gsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.tar.bz2 gsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.tar.lz gsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.tar.xz gsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.tar.zst gsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.zip |
Today: fixed calculation of day indexes when weeks start on Monday. The
Today: fixed calculation of day indexes when weeks start on Monday.
The year view now marks days (and fixed bugs in day marking as well).
Next step: make a generic month-marker routine and use that all
over the place.
1998-08-27 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gnome-month-item.c (build_month): Now does the correct thing
when the user wants weeks to start on Monday. Now all the Monday
special casing, as far as day numbering is concerned, is only in
this function.
* year-view.c (mark_days): This function marks the days that have
events in them. It also fixes a memory leak in the old
implementation (it was leaking the whole list).
(unmark_days): New function used to unmark all the days in the
year view.
(mark_event): New function that marks all the days that are
spanned by a time range. It also fixes the bug in the old
implementation where it could possibly mark days past the ends of
the year (if the event crosses year boundaries, for example).
* timeutil.c (time_year_begin): Take the year parameter since year
1, not 1900.
(time_year_end): Likewise.
* year-view.c (year_view_size_allocate): Now changing the size of
the calendars is done in the idle loop.
(idle_handler): This function actually does the resizing of the items.
* year-view.h (struct _YearView): Added idle_id and need_resize
fields.
svn path=/trunk/; revision=346
Diffstat (limited to 'calendar/gnome-month-item.c')
-rw-r--r-- | calendar/gnome-month-item.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/calendar/gnome-month-item.c b/calendar/gnome-month-item.c index 308207f5a1..eb0c5eb469 100644 --- a/calendar/gnome-month-item.c +++ b/calendar/gnome-month-item.c @@ -407,7 +407,7 @@ day_in_week (int day, int month, int year) * returned in the start and end arguments. */ static void -build_month (int month, int year, int *days, int *start, int *end) +build_month (int month, int year, int start_on_monday, int *days, int *start, int *end) { int i; int d_month, d_week; @@ -432,6 +432,9 @@ build_month (int month, int year, int *days, int *start, int *end) d_month = days_in_month[is_leap_year (year)][month]; d_week = day_in_week (1, month, year); + if (start_on_monday) + d_week = (d_week + 6) % 7; + for (i = 0; i < d_month; i++) days[d_week + i] = i + 1; @@ -446,20 +449,15 @@ build_month (int month, int year, int *days, int *start, int *end) static void set_days (GnomeMonthItem *mitem) { - int i, ofs; + int i; int start, end; char buf[100]; - build_month (mitem->month, mitem->year, mitem->day_numbers, &start, &end); - - if (mitem->start_on_monday) - ofs = (start + 6) % 7; - else - ofs = start; + build_month (mitem->month, mitem->year, mitem->start_on_monday, mitem->day_numbers, &start, &end); /* Clear days before start of month */ - for (i = 0; i < ofs; i++) + for (i = 0; i < start; i++) gnome_canvas_item_set (mitem->items[GNOME_MONTH_ITEM_DAY_LABEL + i], "text", NULL, NULL); |