From 6ee10d625c899552cf17ae95e314b53effd91cac Mon Sep 17 00:00:00 2001 From: hasen j Date: Tue, 6 Oct 2009 22:47:40 -0600 Subject: [PATCH] Added button to reset timer --- panel-plugin/time-out.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/panel-plugin/time-out.c b/panel-plugin/time-out.c index fbc6269..de492b7 100644 --- a/panel-plugin/time-out.c +++ b/panel-plugin/time-out.c @@ -115,6 +115,8 @@ static void time_out_take_break (GtkMenuItem TimeOutPlugin *time_out); static void time_out_enabled_toggled (GtkCheckMenuItem *menu_item, TimeOutPlugin *time_out); +static void time_out_reset_timer (GtkMenuItem *menu_item, + TimeOutPlugin *time_out); static void time_out_start_break_countdown (TimeOutPlugin *time_out, gint seconds); static void time_out_stop_break_countdown (TimeOutPlugin *time_out); @@ -249,6 +251,14 @@ time_out_construct (XfcePanelPlugin *plugin) /* Connect to the menu item to react on break requests */ g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (time_out_take_break), time_out); + /* Create menu item for resetting the timer */ + menu_item = gtk_menu_item_new_with_label (_("Reset Timer")); + xfce_panel_plugin_menu_insert_item (plugin, GTK_MENU_ITEM (menu_item)); + gtk_widget_show (GTK_WIDGET (menu_item)); + + /* Connect to the menu item to react on reset requests */ + g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (time_out_reset_timer), time_out); + /* Create menu item for enabling/disabling the countdown */ menu_item = gtk_check_menu_item_new_with_label (_("Enabled")); xfce_panel_plugin_menu_insert_item (plugin, GTK_MENU_ITEM (menu_item)); @@ -320,7 +330,23 @@ time_out_enabled_toggled (GtkCheckMenuItem *menu_item, time_out_save_settings (time_out); } +static void +time_out_reset_timer(GtkMenuItem *menu_item, + TimeOutPlugin *time_out) +{ + g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); + g_return_if_fail (time_out != NULL); + time_out_countdown_stop (time_out->break_countdown); + time_out_countdown_start (time_out->break_countdown, time_out->break_countdown_seconds); + //if we're not enabled, we need to update the timer + if(!time_out->enabled) + { + time_out_break_countdown_update(time_out->break_countdown, time_out->break_countdown_seconds, time_out); + //keep it paused, however + time_out_countdown_pause (time_out->break_countdown); + } +} static gboolean time_out_size_changed (XfcePanelPlugin *plugin, -- 1.6.0.4