aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/gnome-month-item.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@nuclecu.unam.mx>1998-08-28 08:29:59 +0800
committerArturo Espinosa <unammx@src.gnome.org>1998-08-28 08:29:59 +0800
commit21e41f438e4761587b0ea42db80b23dde1eb59e3 (patch)
treebf8fed6dc79bd0df6121f757e5f91afd699f645f /calendar/gui/gnome-month-item.c
parente4a4179f9d2226b1420e73ae894221502bfd7209 (diff)
downloadgsoc2013-evolution-21e41f438e4761587b0ea42db80b23dde1eb59e3.tar.gz
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/gui/gnome-month-item.c')
-rw-r--r--calendar/gui/gnome-month-item.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/calendar/gui/gnome-month-item.c b/calendar/gui/gnome-month-item.c
index 308207f5a1..eb0c5eb469 100644
--- a/calendar/gui/gnome-month-item.c
+++ b/calendar/gui/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);