pidgin/gtkdocklet.c

branch
soc.2013.gobjectification.plugins
changeset 36492
4918c33856be
parent 36488
48c3419844f0
child 36544
1bf8b6ef5aea
--- a/pidgin/gtkdocklet.c	Sun Aug 11 00:29:22 2013 +0530
+++ b/pidgin/gtkdocklet.c	Sun Aug 11 00:37:55 2013 +0530
@@ -631,14 +631,16 @@
 }
 
 static void
-build_plugin_actions(GtkWidget *menu, PurplePlugin *plugin,
-		gpointer context)
+build_plugin_actions(GtkWidget *menu, PurplePlugin *plugin)
 {
 	GtkWidget *menuitem;
+	PurplePluginGetActionsCallback get_actions;
 	PurplePluginAction *action = NULL;
 	GList *actions, *l;
 
-	actions = PURPLE_PLUGIN_ACTIONS(plugin, context);
+	get_actions =
+		purple_plugin_info_get_actions_callback(purple_plugin_get_info(plugin));
+	actions = get_actions(plugin);
 
 	for (l = actions; l != NULL; l = l->next)
 	{
@@ -646,7 +648,6 @@
 		{
 			action = (PurplePluginAction *) l->data;
 			action->plugin = plugin;
-			action->context = context;
 
 			menuitem = gtk_menu_item_new_with_label(action->label);
 			gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
@@ -671,6 +672,7 @@
 {
 	GtkWidget *menuitem, *submenu;
 	PurplePlugin *plugin = NULL;
+	PurplePluginInfo *info;
 	GList *l;
 	int c = 0;
 
@@ -678,21 +680,20 @@
 
 	/* Add a submenu for each plugin with custom actions */
 	for (l = purple_plugins_get_loaded(); l; l = l->next) {
-		plugin = (PurplePlugin *) l->data;
+		plugin = PURPLE_PLUGIN(l->data);
+		info = purple_plugin_get_info(plugin);
 
-		if (PURPLE_IS_PROTOCOL_PLUGIN(plugin))
+		if (!purple_plugin_info_get_actions_callback(info))
 			continue;
 
-		if (!PURPLE_PLUGIN_HAS_ACTIONS(plugin))
-			continue;
-
-		menuitem = gtk_image_menu_item_new_with_label(_(plugin->info->name));
+		menuitem =
+			gtk_image_menu_item_new_with_label(_(purple_plugin_info_get_name(info)));
 		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
 
 		submenu = gtk_menu_new();
 		gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
 
-		build_plugin_actions(submenu, plugin, NULL);
+		build_plugin_actions(submenu, plugin);
 
 		c++;
 	}

mercurial