Mercurial > pidgin.yaz
comparison pidgin/gtkblist.c @ 25382:c0b42d6c2785
propagate from branch 'im.pidgin.pidgin' (head f018e11a7ea08e07f22667e6daca2ec7e64f9710)
to branch 'im.pidgin.pidgin.next.minor' (head 685e1461486f2e5322bc2952f8e8bbbf4313dee9)
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Fri, 02 Jan 2009 22:35:12 +0000 |
parents | 43b721aa4b76 289227f729ec |
children | 6c6846d169d6 |
comparison
equal
deleted
inserted
replaced
25381:43b721aa4b76 | 25382:c0b42d6c2785 |
---|---|
7823 { | 7823 { |
7824 GtkWidget *menuitem = NULL, *submenu = NULL; | 7824 GtkWidget *menuitem = NULL, *submenu = NULL; |
7825 GtkAccelGroup *accel_group = NULL; | 7825 GtkAccelGroup *accel_group = NULL; |
7826 GList *l = NULL, *accounts = NULL; | 7826 GList *l = NULL, *accounts = NULL; |
7827 gboolean disabled_accounts = FALSE; | 7827 gboolean disabled_accounts = FALSE; |
7828 gboolean enabled_accounts = FALSE; | |
7828 | 7829 |
7829 if (accountmenu == NULL) | 7830 if (accountmenu == NULL) |
7830 return; | 7831 return; |
7831 | 7832 |
7832 /* Clear the old Accounts menu */ | 7833 /* Clear the old Accounts menu */ |
7876 } | 7877 } |
7877 g_signal_connect(G_OBJECT(menuitem), "activate", | 7878 g_signal_connect(G_OBJECT(menuitem), "activate", |
7878 G_CALLBACK(enable_account_cb), account); | 7879 G_CALLBACK(enable_account_cb), account); |
7879 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | 7880 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
7880 gtk_widget_show(menuitem); | 7881 gtk_widget_show(menuitem); |
7881 } | 7882 } else { |
7882 } | 7883 enabled_accounts = TRUE; |
7884 } | |
7885 } | |
7886 | |
7887 if (!enabled_accounts) | |
7888 return; | |
7883 | 7889 |
7884 pidgin_separator(accountmenu); | 7890 pidgin_separator(accountmenu); |
7891 accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu)); | |
7885 | 7892 |
7886 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { | 7893 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { |
7887 char *buf = NULL; | 7894 char *buf = NULL; |
7888 char *accel_path_buf = NULL; | 7895 char *accel_path_buf = NULL; |
7889 GtkWidget *image = NULL; | 7896 GtkWidget *image = NULL; |
7891 PurpleAccount *account = NULL; | 7898 PurpleAccount *account = NULL; |
7892 GdkPixbuf *pixbuf = NULL; | 7899 GdkPixbuf *pixbuf = NULL; |
7893 PurplePlugin *plugin = NULL; | 7900 PurplePlugin *plugin = NULL; |
7894 | 7901 |
7895 account = accounts->data; | 7902 account = accounts->data; |
7896 accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu)); | 7903 |
7897 | 7904 if (!purple_account_get_enabled(account, PIDGIN_UI)) |
7898 if(purple_account_get_enabled(account, PIDGIN_UI)) { | 7905 continue; |
7899 buf = g_strconcat(purple_account_get_username(account), " (", | 7906 |
7900 purple_account_get_protocol_name(account), ")", NULL); | 7907 buf = g_strconcat(purple_account_get_username(account), " (", |
7901 menuitem = gtk_image_menu_item_new_with_label(buf); | 7908 purple_account_get_protocol_name(account), ")", NULL); |
7902 accel_path_buf = g_strconcat(N_("<PurpleMain>/Accounts/"), buf, NULL); | 7909 menuitem = gtk_image_menu_item_new_with_label(buf); |
7903 g_free(buf); | 7910 accel_path_buf = g_strconcat(N_("<PurpleMain>/Accounts/"), buf, NULL); |
7904 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); | 7911 g_free(buf); |
7905 if (pixbuf != NULL) | 7912 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); |
7906 { | 7913 if (pixbuf != NULL) { |
7907 if (!purple_account_is_connected(account)) | 7914 if (!purple_account_is_connected(account)) |
7908 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, | 7915 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, |
7909 0.0, FALSE); | 7916 0.0, FALSE); |
7910 image = gtk_image_new_from_pixbuf(pixbuf); | 7917 image = gtk_image_new_from_pixbuf(pixbuf); |
7911 g_object_unref(G_OBJECT(pixbuf)); | 7918 g_object_unref(G_OBJECT(pixbuf)); |
7912 gtk_widget_show(image); | 7919 gtk_widget_show(image); |
7913 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); | 7920 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); |
7914 } | 7921 } |
7915 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); | 7922 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); |
7923 gtk_widget_show(menuitem); | |
7924 | |
7925 submenu = gtk_menu_new(); | |
7926 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); | |
7927 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf); | |
7928 g_free(accel_path_buf); | |
7929 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); | |
7930 gtk_widget_show(submenu); | |
7931 | |
7932 | |
7933 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account")); | |
7934 g_signal_connect(G_OBJECT(menuitem), "activate", | |
7935 G_CALLBACK(modify_account_cb), account); | |
7936 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | |
7937 gtk_widget_show(menuitem); | |
7938 | |
7939 pidgin_separator(submenu); | |
7940 | |
7941 gc = purple_account_get_connection(account); | |
7942 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL; | |
7943 if (plugin && PURPLE_PLUGIN_HAS_ACTIONS(plugin)) { | |
7944 build_plugin_actions(submenu, plugin, gc); | |
7945 } else { | |
7946 menuitem = gtk_menu_item_new_with_label(_("No actions available")); | |
7947 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | |
7948 gtk_widget_set_sensitive(menuitem, FALSE); | |
7916 gtk_widget_show(menuitem); | 7949 gtk_widget_show(menuitem); |
7917 | 7950 } |
7918 submenu = gtk_menu_new(); | 7951 |
7919 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); | 7952 pidgin_separator(submenu); |
7920 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf); | 7953 |
7921 g_free(accel_path_buf); | 7954 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable")); |
7922 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); | 7955 g_signal_connect(G_OBJECT(menuitem), "activate", |
7923 gtk_widget_show(submenu); | 7956 G_CALLBACK(disable_account_cb), account); |
7924 | 7957 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
7925 | 7958 gtk_widget_show(menuitem); |
7926 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account")); | 7959 } |
7927 g_signal_connect(G_OBJECT(menuitem), "activate", | |
7928 G_CALLBACK(modify_account_cb), account); | |
7929 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | |
7930 gtk_widget_show(menuitem); | |
7931 | |
7932 pidgin_separator(submenu); | |
7933 | |
7934 gc = purple_account_get_connection(account); | |
7935 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL; | |
7936 if (plugin && PURPLE_PLUGIN_HAS_ACTIONS(plugin)) { | |
7937 build_plugin_actions(submenu, plugin, gc); | |
7938 } else { | |
7939 menuitem = gtk_menu_item_new_with_label(_("No actions available")); | |
7940 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | |
7941 gtk_widget_set_sensitive(menuitem, FALSE); | |
7942 gtk_widget_show(menuitem); | |
7943 } | |
7944 | |
7945 pidgin_separator(submenu); | |
7946 | |
7947 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable")); | |
7948 g_signal_connect(G_OBJECT(menuitem), "activate", | |
7949 G_CALLBACK(disable_account_cb), account); | |
7950 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | |
7951 gtk_widget_show(menuitem); | |
7952 } else { | |
7953 disabled_accounts = TRUE; | |
7954 } | |
7955 } | |
7956 | |
7957 } | 7960 } |
7958 | 7961 |
7959 static GList *plugin_submenus = NULL; | 7962 static GList *plugin_submenus = NULL; |
7960 | 7963 |
7961 void | 7964 void |