| 682 AopMenu *aop_menu = NULL; |
682 AopMenu *aop_menu = NULL; |
| 683 PurplePlugin *plugin; |
683 PurplePlugin *plugin; |
| 684 GdkPixbuf *pixbuf = NULL; |
684 GdkPixbuf *pixbuf = NULL; |
| 685 GtkSizeGroup *sg; |
685 GtkSizeGroup *sg; |
| 686 GList *p; |
686 GList *p; |
| 687 const char *gtalk_name = NULL; |
687 const char *gtalk_name = NULL, *facebook_name = NULL; |
| 688 int i; |
688 int i; |
| 689 |
689 |
| 690 aop_menu = g_malloc0(sizeof(AopMenu)); |
690 aop_menu = g_malloc0(sizeof(AopMenu)); |
| 691 aop_menu->default_item = -1; |
691 aop_menu->default_item = -1; |
| 692 aop_menu->menu = gtk_menu_new(); |
692 aop_menu->menu = gtk_menu_new(); |
| 693 gtk_widget_show(aop_menu->menu); |
693 gtk_widget_show(aop_menu->menu); |
| 694 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
694 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 695 |
695 |
| 696 if (purple_find_prpl("prpl-jabber")) |
696 if (purple_find_prpl("prpl-jabber")) { |
| 697 gtalk_name = _("Google Talk"); |
697 gtalk_name = _("Google Talk"); |
| |
698 facebook_name = _("Facebook (XMPP)"); |
| |
699 } |
| 698 |
700 |
| 699 for (p = purple_plugins_get_protocols(), i = 0; |
701 for (p = purple_plugins_get_protocols(), i = 0; |
| 700 p != NULL; |
702 p != NULL; |
| 701 p = p->next, i++) { |
703 p = p->next, i++) { |
| 702 |
704 |
| 710 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); |
712 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); |
| 711 g_free(filename); |
713 g_free(filename); |
| 712 |
714 |
| 713 gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), |
715 gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), |
| 714 item = aop_menu_item_new(sg, pixbuf, gtalk_name, "prpl-jabber", "protocol")); |
716 item = aop_menu_item_new(sg, pixbuf, gtalk_name, "prpl-jabber", "protocol")); |
| 715 g_object_set_data(G_OBJECT(item), "fake", GINT_TO_POINTER(1)); |
717 g_object_set_data(G_OBJECT(item), "fakegoogle", GINT_TO_POINTER(1)); |
| 716 |
718 |
| 717 if (pixbuf) |
719 if (pixbuf) |
| 718 g_object_unref(pixbuf); |
720 g_object_unref(pixbuf); |
| 719 |
721 |
| 720 gtalk_name = NULL; |
722 gtalk_name = NULL; |
| |
723 i++; |
| |
724 } |
| |
725 |
| |
726 if (facebook_name && strcmp(facebook_name, plugin->info->name) < 0) { |
| |
727 char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", |
| |
728 "16", "facebook.png", NULL); |
| |
729 GtkWidget *item; |
| |
730 |
| |
731 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); |
| |
732 g_free(filename); |
| |
733 |
| |
734 gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), |
| |
735 item = aop_menu_item_new(sg, pixbuf, facebook_name, "prpl-jabber", "protocol")); |
| |
736 g_object_set_data(G_OBJECT(item), "fakefacebook", GINT_TO_POINTER(1)); |
| |
737 |
| |
738 if (pixbuf) |
| |
739 g_object_unref(pixbuf); |
| |
740 |
| |
741 facebook_name = NULL; |
| 721 i++; |
742 i++; |
| 722 } |
743 } |
| 723 |
744 |
| 724 pixbuf = pidgin_create_prpl_icon_from_prpl(plugin, PIDGIN_PRPL_ICON_SMALL, NULL); |
745 pixbuf = pidgin_create_prpl_icon_from_prpl(plugin, PIDGIN_PRPL_ICON_SMALL, NULL); |
| 725 |
746 |