[Goodies-commits] r7442 - in xfce4-dict/trunk: . lib

Enrico Troeger enrico at xfce.org
Fri May 29 19:46:32 CEST 2009


Author: enrico
Date: 2009-05-29 17:46:32 +0000 (Fri, 29 May 2009)
New Revision: 7442

Modified:
   xfce4-dict/trunk/ChangeLog
   xfce4-dict/trunk/lib/speedreader.c
Log:
Display the speed reading status in the window title to make it more clear when the speed reading has finished.

Modified: xfce4-dict/trunk/ChangeLog
===================================================================
--- xfce4-dict/trunk/ChangeLog	2009-05-29 16:48:06 UTC (rev 7441)
+++ xfce4-dict/trunk/ChangeLog	2009-05-29 17:46:32 UTC (rev 7442)
@@ -4,6 +4,8 @@
    Don't treat quotes as word separators.
    Add an option to mark paragraphs when Speed Reading.
    Fix input focus in the Speed Reader dialog and enable word wrap.
+   Display the speed reading status in the window title to make it
+   more clear when the speed reading has finished.
 
 
 2009-05-18  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>

Modified: xfce4-dict/trunk/lib/speedreader.c
===================================================================
--- xfce4-dict/trunk/lib/speedreader.c	2009-05-29 16:48:06 UTC (rev 7441)
+++ xfce4-dict/trunk/lib/speedreader.c	2009-05-29 17:46:32 UTC (rev 7442)
@@ -59,9 +59,15 @@
 enum
 {
 	RESPONSE_START,
-	RESPONSE_STOP,
+	RESPONSE_STOP
 };
 
+enum
+{
+	XSR_STATE_INITIAL,
+	XSR_STATE_RUNNING,
+	XSR_STATE_FINISHED
+};
 
 G_DEFINE_TYPE(XfdSpeedReader, xfd_speed_reader, GTK_TYPE_DIALOG);
 
@@ -230,6 +236,31 @@
 }
 
 
+static void xfd_speed_reader_set_window_title(XfdSpeedReader *dialog, gint state)
+{
+	gchar *title, *state_str, *name;
+
+	switch (state)
+	{
+		case XSR_STATE_RUNNING:
+			state_str = _("Running");
+			break;
+		case XSR_STATE_FINISHED:
+			state_str = _("Finished");
+			break;
+		default:
+			state_str = "";
+	}
+
+	name = _("Speed Reader");
+	title = g_strdup_printf("%s%s%s", name, (NZV(state_str)) ? " - " : "", state_str);
+
+	gtk_window_set_title(GTK_WINDOW(dialog), title);
+
+	g_free(title);
+}
+
+
 static gboolean sr_timer(gpointer data)
 {
 	XfdSpeedReaderPrivate *priv = XFD_SPEED_READER_GET_PRIVATE(data);
@@ -237,6 +268,7 @@
 	if (priv->word_idx >= priv->words_len)
 	{
 		sr_stop(XFD_SPEED_READER(data));
+		xfd_speed_reader_set_window_title(XFD_SPEED_READER(data), XSR_STATE_FINISHED);
 		return FALSE;
 	}
 
@@ -275,11 +307,12 @@
 	if (! NZV(text))
 	{
 		gtk_dialog_response(GTK_DIALOG(dialog), RESPONSE_STOP);
-		/* FIXME use an own error dialog implementation */
 		dict_show_msgbox(priv->dd, GTK_MESSAGE_ERROR, _("You must enter a text."));
 		return;
 	}
 
+	xfd_speed_reader_set_window_title(dialog, XSR_STATE_RUNNING);
+
 	/* mark paragraphs? */
 	priv->dd->speedreader_mark_paragraphs = gtk_toggle_button_get_active(
 		GTK_TOGGLE_BUTTON(priv->check_mark_paragraphs));
@@ -325,6 +358,7 @@
 		g_strfreev(priv->words);
 		priv->words = NULL;
 	}
+	xfd_speed_reader_set_window_title(dialog, XSR_STATE_INITIAL);
 }
 
 
@@ -414,7 +448,7 @@
 	GtkSizeGroup *sizegroup;
 	XfdSpeedReaderPrivate *priv = XFD_SPEED_READER_GET_PRIVATE(dialog);
 
-	gtk_window_set_title(GTK_WINDOW(dialog), _("Speed Reader"));
+	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, 300);
 	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CLOSE);




More information about the Goodies-commits mailing list