From e8fa46be456329d453d8f200edd088f0e4fca037 Mon Sep 17 00:00:00 2001 From: GMT 2000 Tony Gale Date: Sat, 26 Feb 2000 11:39:07 +0000 Subject: [PATCH] Implement num_marked_dates, and don't emit mutiple day_selected signals on Sat Feb 26 11:46:25 GMT 2000 Tony Gale * gtk/gtkcalendar.c: Implement num_marked_dates, and don't emit mutiple day_selected signals on month_prev. --- ChangeLog | 6 ++++++ ChangeLog.pre-2-0 | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-2 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkcalendar.c | 24 +++++++++++++++--------- 8 files changed, 57 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index d5c54d946e..6f8ad88320 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sat Feb 26 11:46:25 GMT 2000 Tony Gale + + * gtk/gtkcalendar.c: Implement num_marked_dates, + and don't emit mutiple day_selected signals on + month_prev. + 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index d5c54d946e..6f8ad88320 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Sat Feb 26 11:46:25 GMT 2000 Tony Gale + + * gtk/gtkcalendar.c: Implement num_marked_dates, + and don't emit mutiple day_selected signals on + month_prev. + 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d5c54d946e..6f8ad88320 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Sat Feb 26 11:46:25 GMT 2000 Tony Gale + + * gtk/gtkcalendar.c: Implement num_marked_dates, + and don't emit mutiple day_selected signals on + month_prev. + 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index d5c54d946e..6f8ad88320 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Sat Feb 26 11:46:25 GMT 2000 Tony Gale + + * gtk/gtkcalendar.c: Implement num_marked_dates, + and don't emit mutiple day_selected signals on + month_prev. + 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index d5c54d946e..6f8ad88320 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Sat Feb 26 11:46:25 GMT 2000 Tony Gale + + * gtk/gtkcalendar.c: Implement num_marked_dates, + and don't emit mutiple day_selected signals on + month_prev. + 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index d5c54d946e..6f8ad88320 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Sat Feb 26 11:46:25 GMT 2000 Tony Gale + + * gtk/gtkcalendar.c: Implement num_marked_dates, + and don't emit mutiple day_selected signals on + month_prev. + 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index d5c54d946e..6f8ad88320 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Sat Feb 26 11:46:25 GMT 2000 Tony Gale + + * gtk/gtkcalendar.c: Implement num_marked_dates, + and don't emit mutiple day_selected signals on + month_prev. + 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c index e6f0330d49..435b434370 100644 --- a/gtk/gtkcalendar.c +++ b/gtk/gtkcalendar.c @@ -457,6 +457,7 @@ gtk_calendar_init (GtkCalendar *calendar) for (i=0;i<31;i++) calendar->marked_date[i] = FALSE; + calendar->num_marked_dates = 0; calendar->selected_day = 1; calendar->display_flags = ( GTK_CALENDAR_SHOW_HEADING | @@ -665,11 +666,9 @@ gtk_calendar_set_month_prev (GtkCalendar *calendar) { if (calendar->selected_day < 0) calendar->selected_day = calendar->selected_day + 1 + month_length[leap (calendar->year)][calendar->month + 1]; - else - gtk_calendar_select_day (calendar, calendar->selected_day); + gtk_calendar_select_day (calendar, calendar->selected_day); } - gtk_calendar_select_day (calendar, calendar->selected_day); gtk_calendar_paint (GTK_WIDGET (calendar), NULL); gtk_calendar_thaw (calendar); } @@ -2220,7 +2219,9 @@ gtk_calendar_clear_marks (GtkCalendar *calendar) { calendar->marked_date[day] = FALSE; } - + + calendar->num_marked_dates = 0; + if (GTK_WIDGET_DRAWABLE (calendar)) { gtk_calendar_paint_main (GTK_WIDGET (calendar)); @@ -2234,9 +2235,11 @@ gtk_calendar_mark_day (GtkCalendar *calendar, g_return_val_if_fail (calendar != NULL, FALSE); g_return_val_if_fail (GTK_IS_CALENDAR (calendar), FALSE); - if (day >= 1 && day <= 31) - calendar->marked_date[day - 1] = TRUE; - + if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == FALSE) + { + calendar->marked_date[day - 1] = TRUE; + calendar->num_marked_dates++; + } if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar))) { gtk_calendar_paint_main (GTK_WIDGET (calendar)); @@ -2252,8 +2255,11 @@ gtk_calendar_unmark_day (GtkCalendar *calendar, g_return_val_if_fail (calendar != NULL, FALSE); g_return_val_if_fail (GTK_IS_CALENDAR (calendar), FALSE); - if (day >= 1 && day <= 31) - calendar->marked_date[day - 1] = FALSE; + if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == TRUE) + { + calendar->marked_date[day - 1] = FALSE; + calendar->num_marked_dates--; + } if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar))) {