pidgin/gtkutils.c

changeset 31217
d9b13102a21c
parent 30706
612b36b49058
child 31321
1fef3832cfa2
child 31372
743be8e50f23
child 32414
8c5d1edf9da2
equal deleted inserted replaced
31216:8c392eb25b36 31217:d9b13102a21c
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

mercurial