plugins/docklet/docklet.c

changeset 13113
bfc8191807c2
parent 13048
1ac7fd059e69
child 13176
df549de66219
--- a/plugins/docklet/docklet.c	Fri Feb 03 04:26:27 2006 +0000
+++ b/plugins/docklet/docklet.c	Fri Feb 03 04:43:06 2006 +0000
@@ -392,6 +392,31 @@
 }
 
 static GtkWidget *
+new_menu_item_with_gaim_icon(GtkWidget *menu, const char *str, GaimStatusPrimitive primitive, GtkSignalFunc sf, gpointer data, guint accel_key, guint accel_mods, char *mod)
+{
+	GtkWidget *menuitem;
+	GdkPixbuf *pixbuf;
+	GtkWidget *image;
+
+	menuitem = gtk_image_menu_item_new_with_mnemonic(str);
+
+	if (menu)
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
+
+	if (sf)
+		g_signal_connect(G_OBJECT(menuitem), "activate", sf, data);
+
+	pixbuf = gaim_gtk_create_gaim_icon_with_status(primitive, 0.5);
+	image = gtk_image_new_from_pixbuf(pixbuf);
+	g_object_unref(pixbuf);
+	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
+
+	gtk_widget_show_all(menuitem);
+
+	return menuitem;
+}
+
+static GtkWidget *
 docklet_status_submenu()
 {
 	GtkWidget *submenu, *menuitem;
@@ -401,20 +426,20 @@
 	menuitem = gtk_menu_item_new_with_label(_("Change Status"));
 	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
 
-	gaim_new_item_from_stock(submenu, _("Available"),
-		GAIM_STOCK_ICON_AWAY, G_CALLBACK(activate_status_primitive_cb),
+	new_menu_item_with_gaim_icon(submenu, _("Available"),
+		GAIM_STATUS_AVAILABLE, G_CALLBACK(activate_status_primitive_cb),
 		GINT_TO_POINTER(GAIM_STATUS_AVAILABLE), 0, 0, NULL);
 
-	gaim_new_item_from_stock(submenu, _("Away"),
-		GAIM_STOCK_ICON_AWAY, G_CALLBACK(activate_status_primitive_cb),
+	new_menu_item_with_gaim_icon(submenu, _("Away"),
+		GAIM_STATUS_AWAY, G_CALLBACK(activate_status_primitive_cb),
 		GINT_TO_POINTER(GAIM_STATUS_AWAY), 0, 0, NULL);
 
-	gaim_new_item_from_stock(submenu, _("Invisible"),
-		GAIM_STOCK_ICON_AWAY, G_CALLBACK(activate_status_primitive_cb),
+	new_menu_item_with_gaim_icon(submenu, _("Invisible"),
+		GAIM_STATUS_INVISIBLE, G_CALLBACK(activate_status_primitive_cb),
 		GINT_TO_POINTER(GAIM_STATUS_INVISIBLE), 0, 0, NULL);
 
-	gaim_new_item_from_stock(submenu, _("Offline"),
-		GAIM_STOCK_ICON_AWAY, G_CALLBACK(activate_status_primitive_cb),
+	new_menu_item_with_gaim_icon(submenu, _("Offline"),
+		GAIM_STATUS_OFFLINE, G_CALLBACK(activate_status_primitive_cb),
 		GINT_TO_POINTER(GAIM_STATUS_OFFLINE), 0, 0, NULL);
 
 	popular_statuses = gaim_savedstatuses_get_popular(6);
@@ -424,17 +449,17 @@
 	{
 		GaimSavedStatus *saved_status = cur->data;
 		time_t creation_time = gaim_savedstatus_get_creation_time(saved_status);
-		gaim_new_item_from_stock(submenu,
+		new_menu_item_with_gaim_icon(submenu,
 			gaim_savedstatus_get_title(saved_status),
-			GAIM_STOCK_ICON_AWAY, G_CALLBACK(activate_saved_status_cb),
+			gaim_savedstatus_get_type(saved_status), G_CALLBACK(activate_saved_status_cb),
 			GINT_TO_POINTER(creation_time), 0, 0, NULL);
 	}
 	g_list_free(popular_statuses);
 
 	gaim_separator(submenu);
 
-	gaim_new_item_from_stock(submenu, _("New Status..."), GAIM_STOCK_ICON_AWAY, G_CALLBACK(show_custom_status_editor_cb), NULL, 0, 0, NULL);
-	gaim_new_item_from_stock(submenu, _("Saved Status..."), GAIM_STOCK_ICON_AWAY, G_CALLBACK(gaim_gtk_status_window_show), NULL, 0, 0, NULL);
+	new_menu_item_with_gaim_icon(submenu, _("New Status..."), GAIM_STATUS_AVAILABLE, G_CALLBACK(show_custom_status_editor_cb), NULL, 0, 0, NULL);
+	new_menu_item_with_gaim_icon(submenu, _("Saved Status..."), GAIM_STATUS_AVAILABLE, G_CALLBACK(gaim_gtk_status_window_show), NULL, 0, 0, NULL);
 
 	return menuitem;
 }

mercurial