Updating branch refs/heads/master to 76765b56e3e899b00c79a2d47581c74fc7ec318d (commit) from 43b27ee8fec844bc3d39cb0cf649a6a7f55377fa (commit)
commit 76765b56e3e899b00c79a2d47581c74fc7ec318d Author: Florian Rivoal <friv...@xfce.org> Date: Mon Nov 8 23:05:25 2010 +0900 Add a progress bar to the lock screen. Addresses Bug #3222. panel-plugin/time-out-lock-screen.c | 19 ++++++++++++++++++- panel-plugin/time-out-lock-screen.h | 3 ++- panel-plugin/time-out.c | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/panel-plugin/time-out-lock-screen.c b/panel-plugin/time-out-lock-screen.c index cc3000e..3dfcf69 100644 --- a/panel-plugin/time-out-lock-screen.c +++ b/panel-plugin/time-out-lock-screen.c @@ -59,6 +59,9 @@ struct _TimeOutLockScreen { GObject __parent__; + /* Total seconds */ + gint max_seconds; + /* Remaining seconds */ gint remaining_seconds; @@ -79,6 +82,7 @@ struct _TimeOutLockScreen GtkWidget *time_label; GtkWidget *postpone_button; GtkWidget *resume_button; + GtkWidget *progress; /* Fade out */ TimeOutFadeout *fadeout; @@ -206,6 +210,12 @@ time_out_lock_screen_init (TimeOutLockScreen *lock_screen) gtk_box_pack_start (GTK_BOX (vbox), lock_screen->time_label, FALSE, FALSE, 12); gtk_widget_show (lock_screen->time_label); + /* Create a progress bar to visually display the remaining tme */ + lock_screen->progress = gtk_progress_bar_new (); + gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (lock_screen->progress), GTK_PROGRESS_LEFT_TO_RIGHT); + gtk_box_pack_start (GTK_BOX (vbox), lock_screen->progress, FALSE, FALSE, 0); + gtk_widget_show (lock_screen->progress); + /* Create postpone button */ lock_screen->postpone_button = gtk_button_new_with_mnemonic (_("_Postpone")); gtk_box_pack_start (GTK_BOX (vbox), lock_screen->postpone_button, FALSE, FALSE, 0); @@ -244,7 +254,7 @@ time_out_lock_screen_new (void) void -time_out_lock_screen_show (TimeOutLockScreen *lock_screen) +time_out_lock_screen_show (TimeOutLockScreen *lock_screen, gint max_sec) { GdkScreen *screen; gint monitor; @@ -268,6 +278,10 @@ time_out_lock_screen_show (TimeOutLockScreen *lock_screen) /* Center window on target monitor */ xfce_gtk_window_center_on_monitor (GTK_WINDOW (lock_screen->window), screen, monitor); + lock_screen->max_seconds = max_sec; + + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (lock_screen->progress), 1.0); + /* Display information window */ gtk_widget_show_now (lock_screen->window); gtk_widget_grab_focus (lock_screen->window); @@ -314,6 +328,9 @@ time_out_lock_screen_set_remaining (TimeOutLockScreen *lock_screen, /* Update widgets */ gtk_label_set_markup (GTK_LABEL (lock_screen->time_label), time_string->str); + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (lock_screen->progress), + ((gdouble)seconds) / ((gdouble)lock_screen->max_seconds)); + /* Free time string */ g_string_free (time_string, TRUE); } diff --git a/panel-plugin/time-out-lock-screen.h b/panel-plugin/time-out-lock-screen.h index a6cc032..2549d4c 100644 --- a/panel-plugin/time-out-lock-screen.h +++ b/panel-plugin/time-out-lock-screen.h @@ -40,7 +40,8 @@ typedef struct _TimeOutLockScreen TimeOutLockScreen; GType time_out_lock_screen_get_type (void) G_GNUC_CONST; TimeOutLockScreen *time_out_lock_screen_new (void) G_GNUC_MALLOC; -void time_out_lock_screen_show (TimeOutLockScreen *lock_screen); +void time_out_lock_screen_show (TimeOutLockScreen *lock_screen, + gint max_sec); void time_out_lock_screen_hide (TimeOutLockScreen *lock_screen); void time_out_lock_screen_set_remaining (TimeOutLockScreen *lock_screen, gint seconds); diff --git a/panel-plugin/time-out.c b/panel-plugin/time-out.c index 927fce1..b8e0b75 100644 --- a/panel-plugin/time-out.c +++ b/panel-plugin/time-out.c @@ -913,7 +913,7 @@ time_out_start_lock_countdown (TimeOutPlugin *time_out) time_out_lock_screen_show_resume (time_out->lock_screen, FALSE); /* Display the lock screen */ - time_out_lock_screen_show (time_out->lock_screen); + time_out_lock_screen_show (time_out->lock_screen, time_out->lock_countdown_seconds); } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits