Mercurial > pidgin.yaz
comparison pidgin/gtkblist.c @ 18041:678d78b7fa34
propagate from branch 'im.pidgin.pidgin' (head a58972b72c7aa0fa0899c5a6b96e51cd6c427ab4)
to branch 'im.pidgin.pidgin.2.1.0' (head 03df10bd904eed59317242a557aed2b8430d9630)
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Mon, 04 Jun 2007 05:55:13 +0000 |
parents | fbebe15c91a7 fa5c24086481 |
children | 58e28ccf08e6 |
comparison
equal
deleted
inserted
replaced
18040:541a6b0112c6 | 18041:678d78b7fa34 |
---|---|
1122 pidgin_append_blist_node_extended_menu(menu, (PurpleBlistNode *)buddy); | 1122 pidgin_append_blist_node_extended_menu(menu, (PurpleBlistNode *)buddy); |
1123 | 1123 |
1124 if (((PurpleBlistNode*)buddy)->parent->child->next && !sub && !contact_expanded) { | 1124 if (((PurpleBlistNode*)buddy)->parent->child->next && !sub && !contact_expanded) { |
1125 pidgin_separator(menu); | 1125 pidgin_separator(menu); |
1126 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy); | 1126 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy); |
1127 pidgin_new_item_from_stock(menu, _("Alias..."), PIDGIN_STOCK_ALIAS, | 1127 pidgin_new_item_from_stock(menu, _("_Alias..."), PIDGIN_STOCK_ALIAS, |
1128 G_CALLBACK(gtk_blist_menu_alias_cb), | 1128 G_CALLBACK(gtk_blist_menu_alias_cb), |
1129 contact, 0, 0, NULL); | 1129 contact, 0, 0, NULL); |
1130 pidgin_new_item_from_stock(menu, _("Remove"), GTK_STOCK_REMOVE, | 1130 pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE, |
1131 G_CALLBACK(pidgin_blist_remove_cb), | 1131 G_CALLBACK(pidgin_blist_remove_cb), |
1132 contact, 0, 0, NULL); | 1132 contact, 0, 0, NULL); |
1133 } else if (!sub || contact_expanded) { | 1133 } else if (!sub || contact_expanded) { |
1134 pidgin_separator(menu); | 1134 pidgin_separator(menu); |
1135 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy); | 1135 pidgin_append_blist_node_privacy_menu(menu, (PurpleBlistNode *)buddy); |
4733 if(gtk_tree_selection_get_selected(selection, NULL, &iter)){ | 4733 if(gtk_tree_selection_get_selected(selection, NULL, &iter)){ |
4734 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, | 4734 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, |
4735 NODE_COLUMN, &new_selection, -1); | 4735 NODE_COLUMN, &new_selection, -1); |
4736 } | 4736 } |
4737 | 4737 |
4738 /* we set this up as a timeout, otherwise the blist flickers */ | 4738 /* we set this up as a timeout, otherwise the blist flickers ... |
4739 g_timeout_add(0, (GSourceFunc)do_selection_changed, new_selection); | 4739 * but we don't do it for groups, because it causes total bizarness - |
4740 * the previously selected buddy node might rendered at half height. | |
4741 */ | |
4742 if ((new_selection != NULL) && PURPLE_BLIST_NODE_IS_GROUP(new_selection)) { | |
4743 do_selection_changed(new_selection); | |
4744 } else { | |
4745 g_timeout_add(0, (GSourceFunc)do_selection_changed, new_selection); | |
4746 } | |
4740 } | 4747 } |
4741 | 4748 |
4742 static gboolean insert_node(PurpleBuddyList *list, PurpleBlistNode *node, GtkTreeIter *iter) | 4749 static gboolean insert_node(PurpleBuddyList *list, PurpleBlistNode *node, GtkTreeIter *iter) |
4743 { | 4750 { |
4744 GtkTreeIter parent_iter, cur, *curptr = NULL; | 4751 GtkTreeIter parent_iter, cur, *curptr = NULL; |
5395 gtk_table_set_row_spacings(GTK_TABLE(table), 5); | 5402 gtk_table_set_row_spacings(GTK_TABLE(table), 5); |
5396 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | 5403 gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
5397 gtk_container_set_border_width(GTK_CONTAINER(table), 0); | 5404 gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
5398 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | 5405 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); |
5399 | 5406 |
5400 label = gtk_label_new(_("Screen name:")); | 5407 /* Set up stuff for the account box */ |
5408 label = gtk_label_new_with_mnemonic(_("_Account:")); | |
5401 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 5409 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5402 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | 5410 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
5403 | 5411 |
5412 data->account_box = pidgin_account_option_menu_new(account, FALSE, | |
5413 G_CALLBACK(add_buddy_select_account_cb), NULL, data); | |
5414 | |
5415 gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 1, 2, 0, 1); | |
5416 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_box); | |
5417 pidgin_set_accessible_label (data->account_box, label); | |
5418 /* End of account box */ | |
5419 | |
5420 label = gtk_label_new_with_mnemonic(_("_Screen name:")); | |
5421 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
5422 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
5423 | |
5404 data->entry = gtk_entry_new(); | 5424 data->entry = gtk_entry_new(); |
5405 gtk_table_attach_defaults(GTK_TABLE(table), data->entry, 1, 2, 0, 1); | 5425 gtk_table_attach_defaults(GTK_TABLE(table), data->entry, 1, 2, 1, 2); |
5406 gtk_widget_grab_focus(data->entry); | 5426 gtk_widget_grab_focus(data->entry); |
5407 | 5427 |
5408 if (username != NULL) | 5428 if (username != NULL) |
5409 gtk_entry_set_text(GTK_ENTRY(data->entry), username); | 5429 gtk_entry_set_text(GTK_ENTRY(data->entry), username); |
5410 else | 5430 else |
5411 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), | 5431 gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window), |
5412 GTK_RESPONSE_OK, FALSE); | 5432 GTK_RESPONSE_OK, FALSE); |
5413 | 5433 |
5414 gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE); | 5434 gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE); |
5435 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry); | |
5415 pidgin_set_accessible_label (data->entry, label); | 5436 pidgin_set_accessible_label (data->entry, label); |
5416 | 5437 |
5417 g_signal_connect(G_OBJECT(data->entry), "changed", | 5438 g_signal_connect(G_OBJECT(data->entry), "changed", |
5418 G_CALLBACK(pidgin_set_sensitive_if_input), | 5439 G_CALLBACK(pidgin_set_sensitive_if_input), |
5419 data->window); | 5440 data->window); |
5420 | 5441 |
5421 label = gtk_label_new(_("Alias:")); | 5442 label = gtk_label_new_with_mnemonic(_("A_lias:")); |
5422 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 5443 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5423 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | 5444 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); |
5424 | 5445 |
5425 data->entry_for_alias = gtk_entry_new(); | 5446 data->entry_for_alias = gtk_entry_new(); |
5426 gtk_table_attach_defaults(GTK_TABLE(table), | 5447 gtk_table_attach_defaults(GTK_TABLE(table), |
5427 data->entry_for_alias, 1, 2, 1, 2); | 5448 data->entry_for_alias, 1, 2, 2, 3); |
5428 | 5449 |
5429 if (alias != NULL) | 5450 if (alias != NULL) |
5430 gtk_entry_set_text(GTK_ENTRY(data->entry_for_alias), alias); | 5451 gtk_entry_set_text(GTK_ENTRY(data->entry_for_alias), alias); |
5431 | 5452 |
5432 if (username != NULL) | 5453 if (username != NULL) |
5433 gtk_widget_grab_focus(GTK_WIDGET(data->entry_for_alias)); | 5454 gtk_widget_grab_focus(GTK_WIDGET(data->entry_for_alias)); |
5434 | 5455 |
5435 gtk_entry_set_activates_default (GTK_ENTRY(data->entry_for_alias), TRUE); | 5456 gtk_entry_set_activates_default (GTK_ENTRY(data->entry_for_alias), TRUE); |
5457 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry_for_alias); | |
5436 pidgin_set_accessible_label (data->entry_for_alias, label); | 5458 pidgin_set_accessible_label (data->entry_for_alias, label); |
5437 | 5459 |
5438 label = gtk_label_new(_("Group:")); | 5460 label = gtk_label_new_with_mnemonic(_("_Group:")); |
5439 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 5461 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5440 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); | 5462 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); |
5441 | 5463 |
5442 data->combo = gtk_combo_new(); | 5464 data->combo = gtk_combo_new(); |
5443 gtk_combo_set_popdown_strings(GTK_COMBO(data->combo), groups_tree()); | 5465 gtk_combo_set_popdown_strings(GTK_COMBO(data->combo), groups_tree()); |
5444 gtk_table_attach_defaults(GTK_TABLE(table), data->combo, 1, 2, 2, 3); | 5466 gtk_table_attach_defaults(GTK_TABLE(table), data->combo, 1, 2, 3, 4); |
5467 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_COMBO(data->combo)->entry); | |
5445 pidgin_set_accessible_label (data->combo, label); | 5468 pidgin_set_accessible_label (data->combo, label); |
5446 | |
5447 /* Set up stuff for the account box */ | |
5448 label = gtk_label_new(_("Account:")); | |
5449 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
5450 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); | |
5451 | |
5452 data->account_box = pidgin_account_option_menu_new(account, FALSE, | |
5453 G_CALLBACK(add_buddy_select_account_cb), NULL, data); | |
5454 | |
5455 gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 1, 2, 3, 4); | |
5456 pidgin_set_accessible_label (data->account_box, label); | |
5457 /* End of account box */ | |
5458 | 5469 |
5459 g_signal_connect(G_OBJECT(data->window), "response", | 5470 g_signal_connect(G_OBJECT(data->window), "response", |
5460 G_CALLBACK(add_buddy_cb), data); | 5471 G_CALLBACK(add_buddy_cb), data); |
5461 | 5472 |
5462 gtk_widget_show_all(data->window); | 5473 gtk_widget_show_all(data->window); |
5759 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | 5770 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
5760 | 5771 |
5761 rowbox = gtk_hbox_new(FALSE, 5); | 5772 rowbox = gtk_hbox_new(FALSE, 5); |
5762 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | 5773 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); |
5763 | 5774 |
5764 label = gtk_label_new(_("Account:")); | 5775 label = gtk_label_new_with_mnemonic(_("_Account:")); |
5765 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 5776 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5766 gtk_size_group_add_widget(data->sg, label); | 5777 gtk_size_group_add_widget(data->sg, label); |
5767 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | 5778 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); |
5768 | 5779 |
5769 data->account_menu = pidgin_account_option_menu_new(account, FALSE, | 5780 data->account_menu = pidgin_account_option_menu_new(account, FALSE, |
5770 G_CALLBACK(addchat_select_account_cb), | 5781 G_CALLBACK(addchat_select_account_cb), |
5771 chat_account_filter_func, data); | 5782 chat_account_filter_func, data); |
5772 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0); | 5783 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0); |
5784 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_menu); | |
5773 pidgin_set_accessible_label (data->account_menu, label); | 5785 pidgin_set_accessible_label (data->account_menu, label); |
5774 | 5786 |
5775 data->entries_box = gtk_vbox_new(FALSE, 5); | 5787 data->entries_box = gtk_vbox_new(FALSE, 5); |
5776 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); | 5788 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); |
5777 gtk_box_pack_start(GTK_BOX(vbox), data->entries_box, TRUE, TRUE, 0); | 5789 gtk_box_pack_start(GTK_BOX(vbox), data->entries_box, TRUE, TRUE, 0); |
5779 rebuild_addchat_entries(data); | 5791 rebuild_addchat_entries(data); |
5780 | 5792 |
5781 rowbox = gtk_hbox_new(FALSE, 5); | 5793 rowbox = gtk_hbox_new(FALSE, 5); |
5782 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | 5794 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); |
5783 | 5795 |
5784 label = gtk_label_new(_("Alias:")); | 5796 label = gtk_label_new_with_mnemonic(_("A_lias:")); |
5785 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 5797 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5786 gtk_size_group_add_widget(data->sg, label); | 5798 gtk_size_group_add_widget(data->sg, label); |
5787 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | 5799 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); |
5788 | 5800 |
5789 data->alias_entry = gtk_entry_new(); | 5801 data->alias_entry = gtk_entry_new(); |
5790 if (alias != NULL) | 5802 if (alias != NULL) |
5791 gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias); | 5803 gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias); |
5792 gtk_box_pack_end(GTK_BOX(rowbox), data->alias_entry, TRUE, TRUE, 0); | 5804 gtk_box_pack_end(GTK_BOX(rowbox), data->alias_entry, TRUE, TRUE, 0); |
5793 gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE); | 5805 gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE); |
5806 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->alias_entry); | |
5794 pidgin_set_accessible_label (data->alias_entry, label); | 5807 pidgin_set_accessible_label (data->alias_entry, label); |
5795 if (name != NULL) | 5808 if (name != NULL) |
5796 gtk_widget_grab_focus(data->alias_entry); | 5809 gtk_widget_grab_focus(data->alias_entry); |
5797 | 5810 |
5798 rowbox = gtk_hbox_new(FALSE, 5); | 5811 rowbox = gtk_hbox_new(FALSE, 5); |
5799 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | 5812 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); |
5800 | 5813 |
5801 label = gtk_label_new(_("Group:")); | 5814 label = gtk_label_new_with_mnemonic(_("_Group:")); |
5802 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 5815 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5803 gtk_size_group_add_widget(data->sg, label); | 5816 gtk_size_group_add_widget(data->sg, label); |
5804 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | 5817 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); |
5805 | 5818 |
5806 data->group_combo = gtk_combo_new(); | 5819 data->group_combo = gtk_combo_new(); |
5810 if (group) | 5823 if (group) |
5811 { | 5824 { |
5812 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(data->group_combo)->entry), | 5825 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(data->group_combo)->entry), |
5813 group->name); | 5826 group->name); |
5814 } | 5827 } |
5828 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_COMBO(data->group_combo)->entry); | |
5815 pidgin_set_accessible_label (data->group_combo, label); | 5829 pidgin_set_accessible_label (data->group_combo, label); |
5816 | 5830 |
5817 g_signal_connect(G_OBJECT(data->window), "response", | 5831 g_signal_connect(G_OBJECT(data->window), "response", |
5818 G_CALLBACK(add_chat_resp_cb), data); | 5832 G_CALLBACK(add_chat_resp_cb), data); |
5819 | 5833 |