diff options
author | Viren.L <lviren@novell.com> | 2005-10-21 17:32:36 +0800 |
---|---|---|
committer | Sankarasivasubramanian Pasupathilingam <psankar@src.gnome.org> | 2005-10-21 17:32:36 +0800 |
commit | ded9e18e126f3469b89f0deccdc490fe4c9314f4 (patch) | |
tree | 2b795655635f42fad34120277a1d028172a550ed /calendar/gui | |
parent | f681752db0d20196cf6daf6b7ba76815096e01ab (diff) | |
download | gsoc2013-evolution-ded9e18e126f3469b89f0deccdc490fe4c9314f4.tar.gz gsoc2013-evolution-ded9e18e126f3469b89f0deccdc490fe4c9314f4.tar.zst gsoc2013-evolution-ded9e18e126f3469b89f0deccdc490fe4c9314f4.zip |
Sankar committing for Viren
2005-10-21 Viren.L <lviren@novell.com>
Sankar committing for Viren
Fixes #272920
* gui/gnome-cal.c (setup_widgets):
Connect signal to catch the scroll-event on the widget of date navigator
and handle the GDK_SCROLL_UP,GDK_SCROLL_DOWN in the callback.
svn path=/trunk/; revision=30548
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/gnome-cal.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 5a203b31f8..9fa7edf7a4 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -219,6 +219,7 @@ static void gnome_calendar_update_date_navigator (GnomeCalendar *gcal); static void gnome_calendar_hpane_realized (GtkWidget *w, GnomeCalendar *gcal); static void gnome_calendar_vpane_realized (GtkWidget *w, GnomeCalendar *gcal); static gboolean gnome_calendar_vpane_resized (GtkWidget *w, GdkEventButton *e, GnomeCalendar *gcal); +static void gnome_calendar_date_navigator_scrolled (GtkWidget *widget, GdkEventScroll *event, gpointer user_data); static gboolean gnome_calendar_hpane_resized (GtkWidget *w, GdkEventButton *e, GnomeCalendar *gcal); static void gnome_calendar_on_date_navigator_date_range_changed (ECalendarItem *calitem, @@ -1400,6 +1401,8 @@ setup_widgets (GnomeCalendar *gcal) G_CALLBACK (gnome_calendar_on_date_navigator_selection_changed), gcal); g_signal_connect (priv->date_navigator->calitem, "date_range_changed", G_CALLBACK (gnome_calendar_on_date_navigator_date_range_changed), gcal); + g_signal_connect (w, "scroll-event", + G_CALLBACK (gnome_calendar_date_navigator_scrolled), gcal); /* The ToDo list. */ priv->todo = e_calendar_table_new (); @@ -3177,6 +3180,32 @@ gnome_calendar_vpane_resized (GtkWidget *w, GdkEventButton *e, GnomeCalendar *gc return FALSE; } +static void +gnome_calendar_date_navigator_scrolled (GtkWidget *widget, GdkEventScroll *event, gpointer user_data) +{ + GnomeCalendar *gcal = user_data; + ECalendarItem *calitem = gcal->priv->date_navigator->calitem; + GDate start_date, end_date; + + if (e_calendar_item_get_selection (calitem, &start_date, &end_date)) { + switch (event->direction) { + case GDK_SCROLL_UP: + g_date_subtract_months (&start_date, 1); + g_date_subtract_months (&end_date, 1); + break; + case GDK_SCROLL_DOWN: + g_date_add_months (&start_date, 1); + g_date_add_months (&end_date, 1); + break; + default: + break; + + } + e_calendar_item_set_selection (calitem, &start_date, &end_date); + gnome_calendar_on_date_navigator_selection_changed (calitem, gcal); + } +} + static gboolean gnome_calendar_hpane_resized (GtkWidget *w, GdkEventButton *e, GnomeCalendar *gcal) { |