diff plugins/docklet/docklet.c @ 12690:d03afaccd41c

[gaim-migrate @ 15033] Make the popular status docklet menu items actually do something. Strip html and newlines from the titles of saved-statuses when displaying them in the docklet menu. Add a 'gaim_savedstatus_find_by_creation_time()' function. Sadrul: you'll probably want to use this when you add popular statuses to the status box. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 03 Jan 2006 05:23:01 +0000
parents 473c23442a36
children 0a4996f15509
line wrap: on
line diff
--- a/plugins/docklet/docklet.c	Tue Jan 03 04:44:08 2006 +0000
+++ b/plugins/docklet/docklet.c	Tue Jan 03 05:23:01 2006 +0000
@@ -358,12 +358,24 @@
 #endif
 
 static void
-show_custom_status_editor_cb()
+show_custom_status_editor_cb(GtkMenuItem *menuitem, gpointer user_data)
 {
 	gaim_gtk_status_editor_show(NULL);
 }
 
 static void
+activate_saved_status_cb(GtkMenuItem *menuitem, gpointer user_data)
+{
+	time_t creation_time;
+	GaimSavedStatus *saved_status;
+
+	creation_time = GPOINTER_TO_INT(user_data);
+	saved_status = gaim_savedstatus_find_by_creation_time(creation_time);
+	if (saved_status != NULL)
+		gaim_savedstatus_activate(saved_status);
+}
+
+static void
 docklet_menu() {
 	static GtkWidget *menu = NULL;
 	GtkWidget *menuitem;
@@ -414,9 +426,11 @@
 	for (cur = popular_statuses; cur != NULL; cur = cur->next)
 	{
 		GaimSavedStatus *saved_status = cur->data;
+		time_t creation_time = gaim_savedstatus_get_creation_time(saved_status);
 		gaim_new_item_from_stock(menu,
 			gaim_savedstatus_get_title(saved_status),
-			GAIM_STOCK_ICON_AWAY, NULL /* TODO */, NULL, 0, 0, NULL);
+			GAIM_STOCK_ICON_AWAY, G_CALLBACK(activate_saved_status_cb),
+			GINT_TO_POINTER(creation_time), 0, 0, NULL);
 	}
 	g_list_free(popular_statuses);