Mercurial > pidgin
diff pidgin/gtkutils.c @ 31014:695b6e57e255
UI hack ala Google Talk for Facebook.
committer: John Bailey <rekkanoryo@rekkanoryo.org>
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Tue, 07 Dec 2010 15:05:46 +0000 |
parents | 351d07aefb09 |
children | 85d5f1e37fdb 917c597beb97 a7397a3d67ef |
line wrap: on
line diff
--- a/pidgin/gtkutils.c Tue Dec 07 15:04:56 2010 +0000 +++ b/pidgin/gtkutils.c Tue Dec 07 15:05:46 2010 +0000 @@ -684,7 +684,7 @@ GdkPixbuf *pixbuf = NULL; GtkSizeGroup *sg; GList *p; - const char *gtalk_name = NULL; + const char *gtalk_name = NULL, *facebook_name = NULL; int i; aop_menu = g_malloc0(sizeof(AopMenu)); @@ -693,8 +693,10 @@ gtk_widget_show(aop_menu->menu); sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - if (purple_find_prpl("prpl-jabber")) + if (purple_find_prpl("prpl-jabber")) { gtalk_name = _("Google Talk"); + facebook_name = _("Facebook (XMPP)"); + } for (p = purple_plugins_get_protocols(), i = 0; p != NULL; @@ -712,7 +714,7 @@ gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), item = aop_menu_item_new(sg, pixbuf, gtalk_name, "prpl-jabber", "protocol")); - g_object_set_data(G_OBJECT(item), "fake", GINT_TO_POINTER(1)); + g_object_set_data(G_OBJECT(item), "fakegoogle", GINT_TO_POINTER(1)); if (pixbuf) g_object_unref(pixbuf); @@ -721,6 +723,25 @@ i++; } + if (facebook_name && strcmp(facebook_name, plugin->info->name) < 0) { + char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", + "16", "facebook.png", NULL); + GtkWidget *item; + + pixbuf = gdk_pixbuf_new_from_file(filename, NULL); + g_free(filename); + + gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), + item = aop_menu_item_new(sg, pixbuf, facebook_name, "prpl-jabber", "protocol")); + g_object_set_data(G_OBJECT(item), "fakefacebook", GINT_TO_POINTER(1)); + + if (pixbuf) + g_object_unref(pixbuf); + + facebook_name = NULL; + i++; + } + pixbuf = pidgin_create_prpl_icon_from_prpl(plugin, PIDGIN_PRPL_ICON_SMALL, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu),