diff options
-rw-r--r-- | calendar/ChangeLog | 3 | ||||
-rw-r--r-- | calendar/gncal-week-view.c | 4 | ||||
-rw-r--r-- | calendar/gnome-cal.c | 42 | ||||
-rw-r--r-- | calendar/gnome-cal.h | 4 | ||||
-rw-r--r-- | calendar/gui/gncal-week-view.c | 4 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 42 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.h | 4 | ||||
-rw-r--r-- | calendar/gui/main.c | 15 | ||||
-rw-r--r-- | calendar/main.c | 15 | ||||
-rw-r--r-- | calendar/timeutil.c | 29 |
10 files changed, 119 insertions, 43 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index fbd5003dc9..b72da59fdc 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,8 @@ 1998-04-03 Miguel de Icaza <miguel@nuclecu.unam.mx> + * timeutil.c (time_add_year, time_add_year, time_add_week): + Routines for time manipulation. + * calobj.c (ical_object_destroy): Full destruction of the object. * eventedit.c: Finished the main event editor form; It still diff --git a/calendar/gncal-week-view.c b/calendar/gncal-week-view.c index f7d3222cfe..f837b3b2d8 100644 --- a/calendar/gncal-week-view.c +++ b/calendar/gncal-week-view.c @@ -151,7 +151,7 @@ gncal_week_view_set (GncalWeekView *wview, time_t start_of_week) /* Calendar */ - gtk_calendar_select_month (wview->gtk_calendar, tm.tm_mon + 1, tm.tm_year + 1900); + gtk_calendar_select_month (wview->gtk_calendar, tm.tm_mon, tm.tm_year + 1900); /* Day views */ @@ -159,6 +159,8 @@ gncal_week_view_set (GncalWeekView *wview, time_t start_of_week) tm.tm_mday++; day_end = mktime (&tm); + printf ("Boundary: "); + print_time_t (day_start); gncal_day_view_set_bounds (wview->days[i], day_start, day_end - 1); day_start = day_end; diff --git a/calendar/gnome-cal.c b/calendar/gnome-cal.c index 4c0806357d..6e6c17ed21 100644 --- a/calendar/gnome-cal.c +++ b/calendar/gnome-cal.c @@ -93,21 +93,51 @@ get_current_page (GnomeCalendar *gcal) return GTK_NOTEBOOK (gcal->notebook)->cur_page->child; } -GtkWidget * -gnome_calendar_next (GnomeCalendar *gcal) +void +gnome_calendar_goto (GnomeCalendar *gcal, time_t new_time) +{ + GtkWidget *current = get_current_page (gcal); + g_assert (new_time != -1); + + if (current == gcal->week_view) + gncal_week_view_set (GNCAL_WEEK_VIEW (gcal->week_view), new_time); + else if (current == gcal->day_view) + printf ("updating day view\n"); + else if (current == gcal->year_view) + printf ("updating year view\n"); + else + printf ("My penguin is gone!\n"); + gcal->current_display = new_time; +} + +static void +gnome_calendar_direction (GnomeCalendar *gcal, int direction) { GtkWidget *cp = get_current_page (gcal); time_t new_time; if (cp == gcal->week_view) - new_time = time_add_week (gcal->current_display, 1); + new_time = time_add_day (gcal->current_display, 7 * direction); else if (cp == gcal->day_view) - new_time = time_add_day (gcal->current_display, 1); + new_time = time_add_day (gcal->current_display, 1 * direction); else if (cp == gcal->year_view) - new_time = time_add_year (gcal->current_display, 1); + new_time = time_add_year (gcal->current_display, 1 * direction); else g_warning ("Weee! Where did the penguin go?"); + + gnome_calendar_goto (gcal, new_time); +} + +void +gnome_calendar_next (GnomeCalendar *gcal) +{ + gnome_calendar_direction (gcal, 1); +} +void +gnome_calendar_previous (GnomeCalendar *gcal) +{ + gnome_calendar_direction (gcal, -1); } GtkWidget * @@ -147,6 +177,8 @@ gnome_calendar_load (GnomeCalendar *gcal, char *file) void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj) { + printf ("Adding object at: "); + print_time_t (obj->dtstart); calendar_add_object (gcal->cal, obj); gnome_calendar_update_all (gcal); } diff --git a/calendar/gnome-cal.h b/calendar/gnome-cal.h index 8168c26ec8..c13162ef65 100644 --- a/calendar/gnome-cal.h +++ b/calendar/gnome-cal.h @@ -39,6 +39,10 @@ guint gnome_calendar_get_type (void); GtkWidget *gnome_calendar_new (char *title); void gnome_calendar_load (GnomeCalendar *gcal, char *file); void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj); +void gnome_calendar_next (GnomeCalendar *gcal); +void gnome_calendar_previous (GnomeCalendar *gcal); +void gnome_calendar_goto (GnomeCalendar *gcal, time_t new_time); + END_GNOME_DECLS #endif diff --git a/calendar/gui/gncal-week-view.c b/calendar/gui/gncal-week-view.c index f7d3222cfe..f837b3b2d8 100644 --- a/calendar/gui/gncal-week-view.c +++ b/calendar/gui/gncal-week-view.c @@ -151,7 +151,7 @@ gncal_week_view_set (GncalWeekView *wview, time_t start_of_week) /* Calendar */ - gtk_calendar_select_month (wview->gtk_calendar, tm.tm_mon + 1, tm.tm_year + 1900); + gtk_calendar_select_month (wview->gtk_calendar, tm.tm_mon, tm.tm_year + 1900); /* Day views */ @@ -159,6 +159,8 @@ gncal_week_view_set (GncalWeekView *wview, time_t start_of_week) tm.tm_mday++; day_end = mktime (&tm); + printf ("Boundary: "); + print_time_t (day_start); gncal_day_view_set_bounds (wview->days[i], day_start, day_end - 1); day_start = day_end; diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 4c0806357d..6e6c17ed21 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -93,21 +93,51 @@ get_current_page (GnomeCalendar *gcal) return GTK_NOTEBOOK (gcal->notebook)->cur_page->child; } -GtkWidget * -gnome_calendar_next (GnomeCalendar *gcal) +void +gnome_calendar_goto (GnomeCalendar *gcal, time_t new_time) +{ + GtkWidget *current = get_current_page (gcal); + g_assert (new_time != -1); + + if (current == gcal->week_view) + gncal_week_view_set (GNCAL_WEEK_VIEW (gcal->week_view), new_time); + else if (current == gcal->day_view) + printf ("updating day view\n"); + else if (current == gcal->year_view) + printf ("updating year view\n"); + else + printf ("My penguin is gone!\n"); + gcal->current_display = new_time; +} + +static void +gnome_calendar_direction (GnomeCalendar *gcal, int direction) { GtkWidget *cp = get_current_page (gcal); time_t new_time; if (cp == gcal->week_view) - new_time = time_add_week (gcal->current_display, 1); + new_time = time_add_day (gcal->current_display, 7 * direction); else if (cp == gcal->day_view) - new_time = time_add_day (gcal->current_display, 1); + new_time = time_add_day (gcal->current_display, 1 * direction); else if (cp == gcal->year_view) - new_time = time_add_year (gcal->current_display, 1); + new_time = time_add_year (gcal->current_display, 1 * direction); else g_warning ("Weee! Where did the penguin go?"); + + gnome_calendar_goto (gcal, new_time); +} + +void +gnome_calendar_next (GnomeCalendar *gcal) +{ + gnome_calendar_direction (gcal, 1); +} +void +gnome_calendar_previous (GnomeCalendar *gcal) +{ + gnome_calendar_direction (gcal, -1); } GtkWidget * @@ -147,6 +177,8 @@ gnome_calendar_load (GnomeCalendar *gcal, char *file) void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj) { + printf ("Adding object at: "); + print_time_t (obj->dtstart); calendar_add_object (gcal->cal, obj); gnome_calendar_update_all (gcal); } diff --git a/calendar/gui/gnome-cal.h b/calendar/gui/gnome-cal.h index 8168c26ec8..c13162ef65 100644 --- a/calendar/gui/gnome-cal.h +++ b/calendar/gui/gnome-cal.h @@ -39,6 +39,10 @@ guint gnome_calendar_get_type (void); GtkWidget *gnome_calendar_new (char *title); void gnome_calendar_load (GnomeCalendar *gcal, char *file); void gnome_calendar_add_object (GnomeCalendar *gcal, iCalObject *obj); +void gnome_calendar_next (GnomeCalendar *gcal); +void gnome_calendar_previous (GnomeCalendar *gcal); +void gnome_calendar_goto (GnomeCalendar *gcal, time_t new_time); + END_GNOME_DECLS #endif diff --git a/calendar/gui/main.c b/calendar/gui/main.c index eb272c1246..b8e3f2fb9e 100644 --- a/calendar/gui/main.c +++ b/calendar/gui/main.c @@ -151,31 +151,22 @@ close_cmd (GtkWidget *widget, GnomeCalendar *gcal) gtk_main_quit (); } -static GtkWidget * -get_current_page (GnomeCalendar *gcal) -{ - return GTK_NOTEBOOK (gcal->notebook)->cur_page->child; -} - void previous_clicked (GtkWidget *widget, GnomeCalendar *gcal) { - GtkWidget *current_page = get_current_page (gcal); - - if (current_page == gcal->week_view){ - } + gnome_calendar_previous (gcal); } void next_clicked (GtkWidget *widget, GnomeCalendar *gcal) { - GtkWidget *current_page = get_current_page (gcal); + gnome_calendar_next (gcal); } void today_clicked (GtkWidget *widget, GnomeCalendar *gcal) { - GtkWidget *current_page = get_current_page (gcal); + gnome_calendar_goto (gcal, time (NULL)); } GnomeUIInfo gnome_cal_file_menu [] = { diff --git a/calendar/main.c b/calendar/main.c index eb272c1246..b8e3f2fb9e 100644 --- a/calendar/main.c +++ b/calendar/main.c @@ -151,31 +151,22 @@ close_cmd (GtkWidget *widget, GnomeCalendar *gcal) gtk_main_quit (); } -static GtkWidget * -get_current_page (GnomeCalendar *gcal) -{ - return GTK_NOTEBOOK (gcal->notebook)->cur_page->child; -} - void previous_clicked (GtkWidget *widget, GnomeCalendar *gcal) { - GtkWidget *current_page = get_current_page (gcal); - - if (current_page == gcal->week_view){ - } + gnome_calendar_previous (gcal); } void next_clicked (GtkWidget *widget, GnomeCalendar *gcal) { - GtkWidget *current_page = get_current_page (gcal); + gnome_calendar_next (gcal); } void today_clicked (GtkWidget *widget, GnomeCalendar *gcal) { - GtkWidget *current_page = get_current_page (gcal); + gnome_calendar_goto (gcal, time (NULL)); } GnomeUIInfo gnome_cal_file_menu [] = { diff --git a/calendar/timeutil.c b/calendar/timeutil.c index 3a78bf2b4f..20d6fa7990 100644 --- a/calendar/timeutil.c +++ b/calendar/timeutil.c @@ -37,7 +37,7 @@ print_time_t (time_t t) struct tm *tm = localtime (&t); printf ("TIEMPO: %d/%d/%d %d:%d:%d\n", - tm->tm_mday, tm->tm_mon, tm->tm_year, + tm->tm_mon+1, tm->tm_mday, tm->tm_year, tm->tm_hour, tm->tm_min, tm->tm_sec); } @@ -89,17 +89,32 @@ format_simple_hour (int hour, int use_am_pm) } time_t -time_add_week (time_t time, int weeks) -{ -} - -time_t -time_add_day (time_t time, int weeks) +time_add_day (time_t time, int days) { + struct tm *tm = localtime (&time); + time_t new_time; + + tm->tm_mday += days; + if ((new_time = mktime (tm)) == -1){ + g_warning ("mktime could not handling adding a day with\n"); + print_time_t (time); + return time; + } + return new_time; } time_t time_add_year (time_t time, int years) { + struct tm *tm = localtime (&time); + time_t new_time; + + tm->tm_year += years; + if ((new_time = mktime (tm)) == -1){ + g_warning ("mktime could not handling adding a year with\n"); + print_time_t (time); + return time; + } + return new_time; } |