[Xfce4-commits] <xfce4-dict:master> After the Speed Reading has finished, make the Stop button a Back button

Enrico Tröger noreply at xfce.org
Wed Dec 30 02:44:02 CET 2009


Updating branch refs/heads/master
         to 337fdbd92ee39948d5da99420ced040f2e846a7b (commit)
       from 5cc38e170540c2dcdb804ae666338779ceea5d11 (commit)

commit 337fdbd92ee39948d5da99420ced040f2e846a7b
Author: Enrico Tröger <enrico.troeger at uvena.de>
Date:   Wed Dec 30 02:07:53 2009 +0100

    After the Speed Reading has finished, make the Stop button a Back button

 lib/speedreader.c |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/lib/speedreader.c b/lib/speedreader.c
index 64e44e1..8e8ba0a 100644
--- a/lib/speedreader.c
+++ b/lib/speedreader.c
@@ -76,6 +76,7 @@ enum
 G_DEFINE_TYPE(XfdSpeedReader, xfd_speed_reader, GTK_TYPE_DIALOG);
 
 static void sr_stop(XfdSpeedReader *dialog);
+static void sr_stop_timer(XfdSpeedReader *dialog);
 
 
 static void xfd_speed_reader_finalize(GObject *object)
@@ -83,7 +84,7 @@ static void xfd_speed_reader_finalize(GObject *object)
 	g_return_if_fail(object != NULL);
 	g_return_if_fail(IS_XFD_SPEED_READER(object));
 
-	sr_stop(XFD_SPEED_READER(object));
+	sr_stop_timer(XFD_SPEED_READER(object));
 
 	G_OBJECT_CLASS(xfd_speed_reader_parent_class)->finalize(object);
 }
@@ -243,6 +244,8 @@ static gchar *sr_replace_unicode_characters(const gchar *text, gboolean mark_par
 static void xfd_speed_reader_set_window_title(XfdSpeedReader *dialog, gint state)
 {
 	gchar *title, *state_str, *name;
+	const gchar *button_label = GTK_STOCK_MEDIA_STOP;
+	XfdSpeedReaderPrivate *priv = XFD_SPEED_READER_GET_PRIVATE(dialog);
 
 	switch (state)
 	{
@@ -251,6 +254,7 @@ static void xfd_speed_reader_set_window_title(XfdSpeedReader *dialog, gint state
 			break;
 		case XSR_STATE_FINISHED:
 			state_str = _("Finished");
+			button_label = GTK_STOCK_GO_BACK;
 			break;
 		default:
 			state_str = "";
@@ -260,6 +264,7 @@ static void xfd_speed_reader_set_window_title(XfdSpeedReader *dialog, gint state
 	title = g_strdup_printf("%s%s%s", name, (NZV(state_str)) ? " - " : "", state_str);
 
 	gtk_window_set_title(GTK_WINDOW(dialog), title);
+	gtk_button_set_label(GTK_BUTTON(priv->button_stop), button_label);
 
 	g_free(title);
 }
@@ -268,7 +273,7 @@ static void xfd_speed_reader_set_window_title(XfdSpeedReader *dialog, gint state
 static void sr_set_label_text(XfdSpeedReader *dialog)
 {
 	XfdSpeedReaderPrivate *priv = XFD_SPEED_READER_GET_PRIVATE(dialog);
-	
+
 	if (NZV(priv->group->str))
 		gtk_label_set_text(GTK_LABEL(priv->display_label), priv->group->str);
 	g_string_erase(priv->group, 0, -1);
@@ -300,7 +305,7 @@ static gboolean sr_timer(gpointer data)
 				g_string_append_unichar(priv->group, 182);
 				sr_set_label_text(data);
 				priv->word_idx++;
-				return TRUE;				
+				return TRUE;
 			}
 			if ((priv->word_idx + 1) < priv->words_len &&
 				g_utf8_get_char(priv->words[priv->word_idx + 1]) == 182)
@@ -309,7 +314,7 @@ static gboolean sr_timer(gpointer data)
 				g_string_append_unichar(priv->group, 182);
 				sr_set_label_text(data);
 				priv->word_idx += 2;
-				return TRUE;				
+				return TRUE;
 			}
 			else
 			{
@@ -321,7 +326,7 @@ static gboolean sr_timer(gpointer data)
 		priv->word_idx++;
 	}
 	sr_set_label_text(data);
-	
+
 	return TRUE;
 }
 
@@ -393,7 +398,7 @@ static void sr_start(XfdSpeedReader *dialog)
 }
 
 
-static void sr_stop(XfdSpeedReader *dialog)
+static void sr_stop_timer(XfdSpeedReader *dialog)
 {
 	XfdSpeedReaderPrivate *priv = XFD_SPEED_READER_GET_PRIVATE(dialog);
 
@@ -407,6 +412,12 @@ static void sr_stop(XfdSpeedReader *dialog)
 		g_strfreev(priv->words);
 		priv->words = NULL;
 	}
+}
+
+
+static void sr_stop(XfdSpeedReader *dialog)
+{
+	sr_stop_timer(dialog);
 	xfd_speed_reader_set_window_title(dialog, XSR_STATE_INITIAL);
 }
 
@@ -510,7 +521,6 @@ static void xfd_speed_reader_init(XfdSpeedReader *dialog)
 	GtkSizeGroup *sizegroup;
 	XfdSpeedReaderPrivate *priv = XFD_SPEED_READER_GET_PRIVATE(dialog);
 
-	xfd_speed_reader_set_window_title(dialog, XSR_STATE_INITIAL);
 	gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE);
 	gtk_window_set_default_size(GTK_WINDOW(dialog), 400, 330);
 	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CLOSE);
@@ -607,15 +617,14 @@ static void xfd_speed_reader_init(XfdSpeedReader *dialog)
 	gtk_box_pack_start(GTK_BOX(hbox_text), vbox_text_buttons, FALSE, FALSE, 3);
 
 	priv->button_start = gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Start"), RESPONSE_START);
-	priv->button_stop = gtk_dialog_add_button(GTK_DIALOG(dialog), _("St_op"), RESPONSE_STOP);
+	priv->button_stop = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_MEDIA_STOP, RESPONSE_STOP);
 	gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
 
 	gtk_widget_hide(priv->button_stop);
 
 	gtk_button_set_image(GTK_BUTTON(priv->button_start),
 		gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY, GTK_ICON_SIZE_MENU));
-	gtk_button_set_image(GTK_BUTTON(priv->button_stop),
-		gtk_image_new_from_stock(GTK_STOCK_MEDIA_STOP, GTK_ICON_SIZE_MENU));
+	gtk_button_set_use_stock(GTK_BUTTON(priv->button_stop), TRUE);
 
 	g_signal_connect(dialog, "response", G_CALLBACK(xfd_speed_reader_response_cb), NULL);
 
@@ -643,6 +652,8 @@ static void xfd_speed_reader_init(XfdSpeedReader *dialog)
 
 	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), priv->first_page, TRUE, TRUE, 6);
 	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), priv->second_page, TRUE, TRUE, 6);
+
+	xfd_speed_reader_set_window_title(dialog, XSR_STATE_INITIAL);
 }
 
 



More information about the Xfce4-commits mailing list