evolution-rss r341 - in trunk: . src



Author: lucilanga
Date: Tue Jul 22 06:50:37 2008
New Revision: 341
URL: http://svn.gnome.org/viewvc/evolution-rss?rev=341&view=rev

Log:
2008-07-22  Lucian Langa  <lucilanga gnome org>

* src/rss.c: implement status icon message

Modified:
   trunk/ChangeLog
   trunk/src/rss.c

Modified: trunk/src/rss.c
==============================================================================
--- trunk/src/rss.c	(original)
+++ trunk/src/rss.c	Tue Jul 22 06:50:37 2008
@@ -139,6 +139,8 @@
 guint force_update = 0;
 GHashTable *custom_timeout;
 GtkStatusIcon *status_icon = NULL;
+GQueue *status_msg;
+gchar *flat_status_msg;
 
 #define DEFAULT_FEEDS_FOLDER "News&Blogs"
 #define DEFAULT_NO_CHANNEL "Untitled channel"
@@ -2909,17 +2911,30 @@
 	return FALSE;
 }
 
+void
+flaten_status(gpointer msg, gpointer user_data)
+{
+	if (strlen(msg))
+		flat_status_msg = g_strconcat(msg, "\n", NULL);
+}
+
 static void
-flicker_status_icon(gchar *channel)
+flicker_status_icon(gchar *channel, gchar *title)
 {
+	gchar *total = g_strdup_printf("%s: <b>%s</b>", channel, title);
 	create_status_icon();
-	gchar *total = g_strdup_printf("Feeds: %d articles in %s", farticle, channel);
-	gtk_status_icon_set_tooltip (status_icon, total);
+	g_queue_push_tail(status_msg, total);	
+	//g_free(total);
+	if (g_queue_get_length(status_msg) == 5)
+		g_queue_pop_head(status_msg);
+	g_queue_foreach(status_msg, flaten_status, flat_status_msg);
+	gtk_status_icon_set_tooltip (status_icon, flat_status_msg);
         gtk_status_icon_set_visible (status_icon, TRUE);
 	if (!gtk_status_icon_get_blinking(status_icon))
         	gtk_status_icon_set_blinking (status_icon, TRUE);
 	g_timeout_add(30*1000, flicker_stop, NULL);
-        g_free(total);
+        g_free(flat_status_msg);
+	flat_status_msg = NULL;
 }
 
 static void
@@ -3354,6 +3369,7 @@
 			rf->feed_queue = 0;
 			rf->main_folder = get_main_folder();
 			rf->soup_auth_retry = 1;
+			status_msg = g_queue_new();
 			get_feed_folders();
 #if HAVE_DBUS
 			d(g_print("init_dbus()\n"));
@@ -4512,7 +4528,7 @@
 				free_cf(CF);
 			}
 			farticle++;
-			flicker_status_icon(chn_name);
+			flicker_status_icon(chn_name, p);
 		g_free(p);
 		}
 		d(g_print("put success()\n"));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]