[gtk+] widget-factory: Make the activity mode more complete
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] widget-factory: Make the activity mode more complete
- Date: Mon, 11 Nov 2013 12:26:02 +0000 (UTC)
commit ea70c77867cf88c26ebc44209c4751b79e8c5ccc
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Nov 11 07:22:51 2013 -0500
widget-factory: Make the activity mode more complete
Test the 'no more pulse' situation. When the slider goes all
the way to the right towards slow, we remove the pulse timeout.
demos/widget-factory/widget-factory.c | 38 ++++++++++++++++++++------------
1 files changed, 24 insertions(+), 14 deletions(-)
---
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index da830e2..ee0e59c 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -130,9 +130,20 @@ dismiss (GtkWidget *button)
}
static gint pulse_time = 250;
+static guint pulse_id = 0;
+
+static gboolean
+pulse_it (GtkWidget *widget)
+{
+ gtk_progress_bar_pulse (GTK_PROGRESS_BAR (widget));
+
+ pulse_id = g_timeout_add (pulse_time, (GSourceFunc)pulse_it, widget);
+
+ return G_SOURCE_REMOVE;
+}
static void
-update_pulse_time (GtkAdjustment *adjustment)
+update_pulse_time (GtkAdjustment *adjustment, GtkWidget *widget)
{
gdouble value;
@@ -140,16 +151,16 @@ update_pulse_time (GtkAdjustment *adjustment)
/* vary between 50 and 450 */
pulse_time = 50 + 4 * value;
-}
-static gboolean
-pulse_it (GtkWidget *widget)
-{
- gtk_progress_bar_pulse (GTK_PROGRESS_BAR (widget));
-
- g_timeout_add (pulse_time, pulse_it, widget);
-
- return G_SOURCE_REMOVE;
+ if (value == 100 && pulse_id != 0)
+ {
+ g_source_remove (pulse_id);
+ pulse_id = 0;
+ }
+ else if (value < 100 && pulse_id == 0)
+ {
+ pulse_id = g_timeout_add (pulse_time, (GSourceFunc)pulse_it, widget);
+ }
}
static void
@@ -188,12 +199,11 @@ activate (GApplication *app)
win_entries, G_N_ELEMENTS (win_entries),
window);
+ widget = (GtkWidget *)gtk_builder_get_object (builder, "progressbar3");
+ pulse_id = g_timeout_add (250, (GSourceFunc)pulse_it, widget);
g_signal_connect (gtk_builder_get_object (builder, "adjustment1"),
"value-changed",
- G_CALLBACK (update_pulse_time), NULL);
-
- widget = (GtkWidget *)gtk_builder_get_object (builder, "progressbar3");
- g_timeout_add (250, (GSourceFunc)pulse_it, widget);
+ G_CALLBACK (update_pulse_time), widget);
widget = (GtkWidget *)gtk_builder_get_object (builder, "page2dismiss");
g_signal_connect (widget, "clicked", G_CALLBACK (dismiss), NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]