Mercurial > pidgin.yaz
comparison pidgin/gtkblist.c @ 26251:8793f771eba4
propagate from branch 'im.pidgin.pidgin' (head df7280158976d27e9eaf4a660e32a5af5a484578)
to branch 'im.pidgin.soc.2008.yahoo' (head c6eb815e9facc358b7724957f4a8351bc589b43e)
author | Sulabh Mahajan <sulabh@soc.pidgin.im> |
---|---|
date | Sun, 01 Mar 2009 13:55:33 +0000 |
parents | 2cece7df80c3 |
children | 0bb35311dfe0 4b8c4870b13a 9fcff08ce726 25319f536d93 |
comparison
equal
deleted
inserted
replaced
26250:1520b67d792f | 26251:8793f771eba4 |
---|---|
64 | 64 |
65 #include <gdk/gdkkeysyms.h> | 65 #include <gdk/gdkkeysyms.h> |
66 #include <gtk/gtk.h> | 66 #include <gtk/gtk.h> |
67 #include <gdk/gdk.h> | 67 #include <gdk/gdk.h> |
68 | 68 |
69 #define HEADLINE_CLOSE_SIZE 12 | 69 #define HEADLINE_CLOSE_SIZE 11 |
70 | 70 |
71 typedef struct | 71 typedef struct |
72 { | 72 { |
73 PurpleAccount *account; | 73 PurpleAccount *account; |
74 | 74 |
953 if (value != NULL) | 953 if (value != NULL) |
954 gtk_entry_set_text(GTK_ENTRY(input), value); | 954 gtk_entry_set_text(GTK_ENTRY(input), value); |
955 if (pce->secret) | 955 if (pce->secret) |
956 { | 956 { |
957 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); | 957 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); |
958 #if !GTK_CHECK_VERSION(2,16,0) | |
958 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') | 959 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') |
959 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); | 960 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); |
961 #endif /* Less than GTK+ 2.16 */ | |
960 } | 962 } |
961 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); | 963 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); |
962 g_signal_connect(G_OBJECT(input), "changed", | 964 g_signal_connect(G_OBJECT(input), "changed", |
963 G_CALLBACK(joinchat_set_sensitive_if_input_cb), data); | 965 G_CALLBACK(joinchat_set_sensitive_if_input_cb), data); |
964 } | 966 } |
4550 GtkWidget *widget; | 4552 GtkWidget *widget; |
4551 | 4553 |
4552 if (!gtkblist) | 4554 if (!gtkblist) |
4553 return FALSE; | 4555 return FALSE; |
4554 | 4556 |
4557 /* clear any tooltips */ | |
4558 pidgin_blist_tooltip_destroy(); | |
4559 | |
4555 widget = gtk_window_get_focus(GTK_WINDOW(gtkblist->window)); | 4560 widget = gtk_window_get_focus(GTK_WINDOW(gtkblist->window)); |
4556 | 4561 |
4557 if (GTK_IS_IMHTML(widget) || GTK_IS_ENTRY(widget)) { | 4562 if (GTK_IS_IMHTML(widget) || GTK_IS_ENTRY(widget)) { |
4558 if (gtk_bindings_activate(GTK_OBJECT(widget), event->keyval, event->state)) | 4563 if (gtk_bindings_activate(GTK_OBJECT(widget), event->keyval, event->state)) |
4559 return TRUE; | 4564 return TRUE; |
5383 "expose_event", | 5388 "expose_event", |
5384 G_CALLBACK (paint_headline_hbox), | 5389 G_CALLBACK (paint_headline_hbox), |
5385 NULL); | 5390 NULL); |
5386 gtk_widget_set_name(gtkblist->headline_hbox, "gtk-tooltips"); | 5391 gtk_widget_set_name(gtkblist->headline_hbox, "gtk-tooltips"); |
5387 | 5392 |
5388 gtkblist->headline_close = gtk_widget_render_icon(ebox, GTK_STOCK_CLOSE, HEADLINE_CLOSE_SIZE, NULL); | 5393 gtkblist->headline_close = gtk_widget_render_icon(ebox, GTK_STOCK_CLOSE, |
5394 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC), NULL); | |
5389 gtkblist->hand_cursor = gdk_cursor_new (GDK_HAND2); | 5395 gtkblist->hand_cursor = gdk_cursor_new (GDK_HAND2); |
5390 gtkblist->arrow_cursor = gdk_cursor_new (GDK_LEFT_PTR); | 5396 gtkblist->arrow_cursor = gdk_cursor_new (GDK_LEFT_PTR); |
5391 | 5397 |
5392 g_signal_connect(G_OBJECT(ebox), "enter-notify-event", G_CALLBACK(headline_box_enter_cb), gtkblist); | 5398 g_signal_connect(G_OBJECT(ebox), "enter-notify-event", G_CALLBACK(headline_box_enter_cb), gtkblist); |
5393 g_signal_connect(G_OBJECT(ebox), "leave-notify-event", G_CALLBACK(headline_box_leave_cb), gtkblist); | 5399 g_signal_connect(G_OBJECT(ebox), "leave-notify-event", G_CALLBACK(headline_box_leave_cb), gtkblist); |
6824 if (value != NULL) | 6830 if (value != NULL) |
6825 gtk_entry_set_text(GTK_ENTRY(input), value); | 6831 gtk_entry_set_text(GTK_ENTRY(input), value); |
6826 if (pce->secret) | 6832 if (pce->secret) |
6827 { | 6833 { |
6828 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); | 6834 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); |
6835 #if !GTK_CHECK_VERSION(2,16,0) | |
6829 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') | 6836 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') |
6830 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); | 6837 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); |
6838 #endif /* Less than GTK+ 2.16 */ | |
6831 } | 6839 } |
6832 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); | 6840 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); |
6833 g_signal_connect(G_OBJECT(input), "changed", | 6841 g_signal_connect(G_OBJECT(input), "changed", |
6834 G_CALLBACK(addchat_set_sensitive_if_input_cb), data); | 6842 G_CALLBACK(addchat_set_sensitive_if_input_cb), data); |
6835 } | 6843 } |
7670 | 7678 |
7671 if(!purple_account_get_enabled(account, PIDGIN_UI)) { | 7679 if(!purple_account_get_enabled(account, PIDGIN_UI)) { |
7672 if (!disabled_accounts) { | 7680 if (!disabled_accounts) { |
7673 menuitem = gtk_menu_item_new_with_label(_("Enable Account")); | 7681 menuitem = gtk_menu_item_new_with_label(_("Enable Account")); |
7674 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); | 7682 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); |
7675 gtk_widget_show(menuitem); | |
7676 | 7683 |
7677 submenu = gtk_menu_new(); | 7684 submenu = gtk_menu_new(); |
7678 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); | 7685 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); |
7679 gtk_menu_set_accel_path(GTK_MENU(submenu), N_("<PurpleMain>/Accounts/Enable Account")); | 7686 gtk_menu_set_accel_path(GTK_MENU(submenu), N_("<PurpleMain>/Accounts/Enable Account")); |
7680 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); | 7687 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
7681 gtk_widget_show(submenu); | |
7682 | 7688 |
7683 disabled_accounts = TRUE; | 7689 disabled_accounts = TRUE; |
7684 } | 7690 } |
7685 | 7691 |
7686 buf = g_strconcat(purple_account_get_username(account), " (", | 7692 buf = g_strconcat(purple_account_get_username(account), " (", |
7698 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); | 7704 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); |
7699 } | 7705 } |
7700 g_signal_connect(G_OBJECT(menuitem), "activate", | 7706 g_signal_connect(G_OBJECT(menuitem), "activate", |
7701 G_CALLBACK(enable_account_cb), account); | 7707 G_CALLBACK(enable_account_cb), account); |
7702 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | 7708 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
7703 gtk_widget_show(menuitem); | |
7704 } else { | 7709 } else { |
7705 enabled_accounts = TRUE; | 7710 enabled_accounts = TRUE; |
7706 } | 7711 } |
7707 } | 7712 } |
7708 | 7713 |
7740 g_object_unref(G_OBJECT(pixbuf)); | 7745 g_object_unref(G_OBJECT(pixbuf)); |
7741 gtk_widget_show(image); | 7746 gtk_widget_show(image); |
7742 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); | 7747 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); |
7743 } | 7748 } |
7744 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); | 7749 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); |
7745 gtk_widget_show(menuitem); | |
7746 | 7750 |
7747 submenu = gtk_menu_new(); | 7751 submenu = gtk_menu_new(); |
7748 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); | 7752 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); |
7749 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf); | 7753 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf); |
7750 g_free(accel_path_buf); | 7754 g_free(accel_path_buf); |
7751 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); | 7755 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
7752 gtk_widget_show(submenu); | |
7753 | 7756 |
7754 | 7757 |
7755 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account")); | 7758 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account")); |
7756 g_signal_connect(G_OBJECT(menuitem), "activate", | 7759 g_signal_connect(G_OBJECT(menuitem), "activate", |
7757 G_CALLBACK(modify_account_cb), account); | 7760 G_CALLBACK(modify_account_cb), account); |
7758 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | 7761 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
7759 gtk_widget_show(menuitem); | |
7760 | 7762 |
7761 pidgin_separator(submenu); | 7763 pidgin_separator(submenu); |
7762 | 7764 |
7763 gc = purple_account_get_connection(account); | 7765 gc = purple_account_get_connection(account); |
7764 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL; | 7766 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL; |
7766 build_plugin_actions(submenu, plugin, gc); | 7768 build_plugin_actions(submenu, plugin, gc); |
7767 } else { | 7769 } else { |
7768 menuitem = gtk_menu_item_new_with_label(_("No actions available")); | 7770 menuitem = gtk_menu_item_new_with_label(_("No actions available")); |
7769 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | 7771 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
7770 gtk_widget_set_sensitive(menuitem, FALSE); | 7772 gtk_widget_set_sensitive(menuitem, FALSE); |
7771 gtk_widget_show(menuitem); | |
7772 } | 7773 } |
7773 | 7774 |
7774 pidgin_separator(submenu); | 7775 pidgin_separator(submenu); |
7775 | 7776 |
7776 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable")); | 7777 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable")); |
7777 g_signal_connect(G_OBJECT(menuitem), "activate", | 7778 g_signal_connect(G_OBJECT(menuitem), "activate", |
7778 G_CALLBACK(disable_account_cb), account); | 7779 G_CALLBACK(disable_account_cb), account); |
7779 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | 7780 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
7780 gtk_widget_show(menuitem); | 7781 } |
7781 } | 7782 gtk_widget_show_all(accountmenu); |
7782 } | 7783 } |
7783 | 7784 |
7784 static GList *plugin_submenus = NULL; | 7785 static GList *plugin_submenus = NULL; |
7785 | 7786 |
7786 void | 7787 void |
7815 if (!PURPLE_PLUGIN_HAS_ACTIONS(plugin)) | 7816 if (!PURPLE_PLUGIN_HAS_ACTIONS(plugin)) |
7816 continue; | 7817 continue; |
7817 | 7818 |
7818 menuitem = gtk_image_menu_item_new_with_label(_(plugin->info->name)); | 7819 menuitem = gtk_image_menu_item_new_with_label(_(plugin->info->name)); |
7819 gtk_menu_shell_append(GTK_MENU_SHELL(pluginmenu), menuitem); | 7820 gtk_menu_shell_append(GTK_MENU_SHELL(pluginmenu), menuitem); |
7820 gtk_widget_show(menuitem); | |
7821 | 7821 |
7822 plugin_submenus = g_list_append(plugin_submenus, menuitem); | 7822 plugin_submenus = g_list_append(plugin_submenus, menuitem); |
7823 | 7823 |
7824 submenu = gtk_menu_new(); | 7824 submenu = gtk_menu_new(); |
7825 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); | 7825 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
7826 gtk_widget_show(submenu); | |
7827 | 7826 |
7828 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); | 7827 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); |
7829 path = g_strdup_printf("%s/Tools/%s", gtkblist->ift->path, plugin->info->name); | 7828 path = g_strdup_printf("%s/Tools/%s", gtkblist->ift->path, plugin->info->name); |
7830 gtk_menu_set_accel_path(GTK_MENU(submenu), path); | 7829 gtk_menu_set_accel_path(GTK_MENU(submenu), path); |
7831 g_free(path); | 7830 g_free(path); |
7832 | 7831 |
7833 build_plugin_actions(submenu, plugin, NULL); | 7832 build_plugin_actions(submenu, plugin, NULL); |
7834 } | 7833 } |
7834 gtk_widget_show_all(pluginmenu); | |
7835 } | 7835 } |
7836 | 7836 |
7837 static void | 7837 static void |
7838 sortmethod_act(GtkCheckMenuItem *checkmenuitem, char *id) | 7838 sortmethod_act(GtkCheckMenuItem *checkmenuitem, char *id) |
7839 { | 7839 { |