Mercurial > pidgin.yaz
comparison pidgin/gtkblist.c @ 21992:1690d040addd
Remove a lot of duplication from a lot of places. Closes #4558.
committer: Sadrul Habib Chowdhury <imadil@gmail.com>
author | Gabriel Schulhof <nix@go-nix.ca> |
---|---|
date | Sat, 05 Jan 2008 10:43:25 +0000 |
parents | d309d662a32c |
children | 0503cd74cb56 |
comparison
equal
deleted
inserted
replaced
21991:cca516eb7610 | 21992:1690d040addd |
---|---|
841 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) | 841 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) |
842 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, NULL); | 842 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, NULL); |
843 | 843 |
844 for (tmp = list; tmp; tmp = tmp->next) | 844 for (tmp = list; tmp; tmp = tmp->next) |
845 { | 845 { |
846 GtkWidget *label; | |
847 GtkWidget *rowbox; | |
848 GtkWidget *input; | 846 GtkWidget *input; |
849 | 847 |
850 pce = tmp->data; | 848 pce = tmp->data; |
851 | |
852 rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); | |
853 gtk_box_pack_start(GTK_BOX(data->entries_box), rowbox, FALSE, FALSE, 0); | |
854 | |
855 label = gtk_label_new_with_mnemonic(pce->label); | |
856 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
857 gtk_size_group_add_widget(data->sg, label); | |
858 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
859 | 849 |
860 if (pce->is_int) | 850 if (pce->is_int) |
861 { | 851 { |
862 GtkObject *adjust; | 852 GtkObject *adjust; |
863 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, | 853 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, |
864 1, 10, 10); | 854 1, 10, 10); |
865 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); | 855 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
866 gtk_widget_set_size_request(input, 50, -1); | 856 gtk_widget_set_size_request(input, 50, -1); |
867 gtk_box_pack_end(GTK_BOX(rowbox), input, FALSE, FALSE, 0); | 857 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, FALSE, NULL); |
868 } | 858 } |
869 else | 859 else |
870 { | 860 { |
871 char *value; | 861 char *value; |
872 input = gtk_entry_new(); | 862 input = gtk_entry_new(); |
878 { | 868 { |
879 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); | 869 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); |
880 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') | 870 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') |
881 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); | 871 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); |
882 } | 872 } |
883 gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0); | 873 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); |
884 g_signal_connect(G_OBJECT(input), "changed", | 874 g_signal_connect(G_OBJECT(input), "changed", |
885 G_CALLBACK(joinchat_set_sensitive_if_input_cb), data); | 875 G_CALLBACK(joinchat_set_sensitive_if_input_cb), data); |
886 } | 876 } |
887 | 877 |
888 /* Do the following for any type of input widget */ | 878 /* Do the following for any type of input widget */ |
889 if (focus) | 879 if (focus) |
890 { | 880 { |
891 gtk_widget_grab_focus(input); | 881 gtk_widget_grab_focus(input); |
892 focus = FALSE; | 882 focus = FALSE; |
893 } | 883 } |
894 gtk_label_set_mnemonic_widget(GTK_LABEL(label), input); | |
895 pidgin_set_accessible_label(input, label); | |
896 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier); | 884 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier); |
897 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int)); | 885 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int)); |
898 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required)); | 886 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required)); |
899 data->entries = g_list_append(data->entries, input); | 887 data->entries = g_list_append(data->entries, input); |
900 | 888 |
986 "about the chat you would like to join.\n")); | 974 "about the chat you would like to join.\n")); |
987 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 975 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
988 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | 976 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
989 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | 977 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
990 | 978 |
991 rowbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); | |
992 gtk_box_pack_start(GTK_BOX(vbox), rowbox, TRUE, TRUE, 0); | |
993 | |
994 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | 979 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
995 | |
996 label = gtk_label_new_with_mnemonic(_("_Account:")); | |
997 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
998 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
999 gtk_size_group_add_widget(data->sg, label); | |
1000 | 980 |
1001 data->account_menu = pidgin_account_option_menu_new(NULL, FALSE, | 981 data->account_menu = pidgin_account_option_menu_new(NULL, FALSE, |
1002 G_CALLBACK(joinchat_select_account_cb), | 982 G_CALLBACK(joinchat_select_account_cb), |
1003 chat_account_filter_func, data); | 983 chat_account_filter_func, data); |
1004 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0); | 984 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0); |
1005 gtk_label_set_mnemonic_widget(GTK_LABEL(label), | 985 |
1006 GTK_WIDGET(data->account_menu)); | 986 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Account:"), data->sg, data->account_menu, TRUE, NULL); |
1007 pidgin_set_accessible_label (data->account_menu, label); | |
1008 | 987 |
1009 data->entries_box = gtk_vbox_new(FALSE, 5); | 988 data->entries_box = gtk_vbox_new(FALSE, 5); |
1010 gtk_container_add(GTK_CONTAINER(vbox), data->entries_box); | 989 gtk_container_add(GTK_CONTAINER(vbox), data->entries_box); |
1011 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); | 990 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); |
1012 | 991 |
6514 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) | 6493 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) |
6515 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, data->default_chat_name); | 6494 defaults = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, data->default_chat_name); |
6516 | 6495 |
6517 for (tmp = list; tmp; tmp = tmp->next) | 6496 for (tmp = list; tmp; tmp = tmp->next) |
6518 { | 6497 { |
6519 GtkWidget *label; | |
6520 GtkWidget *rowbox; | |
6521 GtkWidget *input; | 6498 GtkWidget *input; |
6522 | 6499 |
6523 pce = tmp->data; | 6500 pce = tmp->data; |
6524 | |
6525 rowbox = gtk_hbox_new(FALSE, 5); | |
6526 gtk_box_pack_start(GTK_BOX(data->entries_box), rowbox, FALSE, FALSE, 0); | |
6527 | |
6528 label = gtk_label_new_with_mnemonic(pce->label); | |
6529 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
6530 gtk_size_group_add_widget(data->sg, label); | |
6531 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
6532 | 6501 |
6533 if (pce->is_int) | 6502 if (pce->is_int) |
6534 { | 6503 { |
6535 GtkObject *adjust; | 6504 GtkObject *adjust; |
6536 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, | 6505 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, |
6537 1, 10, 10); | 6506 1, 10, 10); |
6538 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); | 6507 input = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
6539 gtk_widget_set_size_request(input, 50, -1); | 6508 gtk_widget_set_size_request(input, 50, -1); |
6540 gtk_box_pack_end(GTK_BOX(rowbox), input, FALSE, FALSE, 0); | 6509 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, FALSE, NULL); |
6541 } | 6510 } |
6542 else | 6511 else |
6543 { | 6512 { |
6544 char *value; | 6513 char *value; |
6545 input = gtk_entry_new(); | 6514 input = gtk_entry_new(); |
6551 { | 6520 { |
6552 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); | 6521 gtk_entry_set_visibility(GTK_ENTRY(input), FALSE); |
6553 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') | 6522 if (gtk_entry_get_invisible_char(GTK_ENTRY(input)) == '*') |
6554 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); | 6523 gtk_entry_set_invisible_char(GTK_ENTRY(input), PIDGIN_INVISIBLE_CHAR); |
6555 } | 6524 } |
6556 gtk_box_pack_end(GTK_BOX(rowbox), input, TRUE, TRUE, 0); | 6525 pidgin_add_widget_to_vbox(GTK_BOX(data->entries_box), pce->label, data->sg, input, TRUE, NULL); |
6557 g_signal_connect(G_OBJECT(input), "changed", | 6526 g_signal_connect(G_OBJECT(input), "changed", |
6558 G_CALLBACK(addchat_set_sensitive_if_input_cb), data); | 6527 G_CALLBACK(addchat_set_sensitive_if_input_cb), data); |
6559 } | 6528 } |
6560 | 6529 |
6561 /* Do the following for any type of input widget */ | 6530 /* Do the following for any type of input widget */ |
6562 if (focus) | 6531 if (focus) |
6563 { | 6532 { |
6564 gtk_widget_grab_focus(input); | 6533 gtk_widget_grab_focus(input); |
6565 focus = FALSE; | 6534 focus = FALSE; |
6566 } | 6535 } |
6567 gtk_label_set_mnemonic_widget(GTK_LABEL(label), input); | |
6568 pidgin_set_accessible_label(input, label); | |
6569 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier); | 6536 g_object_set_data(G_OBJECT(input), "identifier", (gpointer)pce->identifier); |
6570 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int)); | 6537 g_object_set_data(G_OBJECT(input), "is_spin", GINT_TO_POINTER(pce->is_int)); |
6571 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required)); | 6538 g_object_set_data(G_OBJECT(input), "required", GINT_TO_POINTER(pce->required)); |
6572 data->entries = g_list_append(data->entries, input); | 6539 data->entries = g_list_append(data->entries, input); |
6573 | 6540 |
6606 PidginAddChatData *data; | 6573 PidginAddChatData *data; |
6607 PidginBuddyList *gtkblist; | 6574 PidginBuddyList *gtkblist; |
6608 GList *l; | 6575 GList *l; |
6609 PurpleConnection *gc; | 6576 PurpleConnection *gc; |
6610 GtkWidget *label; | 6577 GtkWidget *label; |
6611 GtkWidget *rowbox; | |
6612 GtkWidget *hbox; | 6578 GtkWidget *hbox; |
6613 GtkWidget *vbox; | 6579 GtkWidget *vbox; |
6614 GtkWidget *img; | 6580 GtkWidget *img; |
6615 | 6581 |
6616 if (account != NULL) { | 6582 if (account != NULL) { |
6682 gtk_widget_set_size_request(label, 400, -1); | 6648 gtk_widget_set_size_request(label, 400, -1); |
6683 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 6649 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
6684 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | 6650 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
6685 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | 6651 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
6686 | 6652 |
6687 rowbox = gtk_hbox_new(FALSE, 5); | |
6688 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | |
6689 | |
6690 label = gtk_label_new_with_mnemonic(_("_Account:")); | |
6691 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
6692 gtk_size_group_add_widget(data->sg, label); | |
6693 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
6694 | |
6695 data->account_menu = pidgin_account_option_menu_new(account, FALSE, | 6653 data->account_menu = pidgin_account_option_menu_new(account, FALSE, |
6696 G_CALLBACK(addchat_select_account_cb), | 6654 G_CALLBACK(addchat_select_account_cb), |
6697 chat_account_filter_func, data); | 6655 chat_account_filter_func, data); |
6698 gtk_box_pack_start(GTK_BOX(rowbox), data->account_menu, TRUE, TRUE, 0); | 6656 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Account:"), data->sg, data->account_menu, TRUE, NULL); |
6699 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_menu); | |
6700 pidgin_set_accessible_label (data->account_menu, label); | |
6701 | 6657 |
6702 data->entries_box = gtk_vbox_new(FALSE, 5); | 6658 data->entries_box = gtk_vbox_new(FALSE, 5); |
6703 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); | 6659 gtk_container_set_border_width(GTK_CONTAINER(data->entries_box), 0); |
6704 gtk_box_pack_start(GTK_BOX(vbox), data->entries_box, TRUE, TRUE, 0); | 6660 gtk_box_pack_start(GTK_BOX(vbox), data->entries_box, TRUE, TRUE, 0); |
6705 | 6661 |
6706 rebuild_addchat_entries(data); | 6662 rebuild_addchat_entries(data); |
6707 | 6663 |
6708 rowbox = gtk_hbox_new(FALSE, 5); | |
6709 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | |
6710 | |
6711 label = gtk_label_new_with_mnemonic(_("A_lias:")); | |
6712 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
6713 gtk_size_group_add_widget(data->sg, label); | |
6714 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
6715 | |
6716 data->alias_entry = gtk_entry_new(); | 6664 data->alias_entry = gtk_entry_new(); |
6717 if (alias != NULL) | 6665 if (alias != NULL) |
6718 gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias); | 6666 gtk_entry_set_text(GTK_ENTRY(data->alias_entry), alias); |
6719 gtk_box_pack_end(GTK_BOX(rowbox), data->alias_entry, TRUE, TRUE, 0); | |
6720 gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE); | 6667 gtk_entry_set_activates_default(GTK_ENTRY(data->alias_entry), TRUE); |
6721 gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->alias_entry); | 6668 |
6722 pidgin_set_accessible_label (data->alias_entry, label); | 6669 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("A_lias:"), data->sg, data->alias_entry, TRUE, NULL); |
6723 if (name != NULL) | 6670 if (name != NULL) |
6724 gtk_widget_grab_focus(data->alias_entry); | 6671 gtk_widget_grab_focus(data->alias_entry); |
6725 | 6672 |
6726 rowbox = gtk_hbox_new(FALSE, 5); | |
6727 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | |
6728 | |
6729 label = gtk_label_new_with_mnemonic(_("_Group:")); | |
6730 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
6731 gtk_size_group_add_widget(data->sg, label); | |
6732 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
6733 | |
6734 data->group_combo = pidgin_text_combo_box_entry_new(group ? group->name : NULL, groups_tree()); | 6673 data->group_combo = pidgin_text_combo_box_entry_new(group ? group->name : NULL, groups_tree()); |
6735 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_BIN(data->group_combo)->child); | 6674 pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Group:"), data->sg, data->group_combo, TRUE, NULL); |
6736 pidgin_set_accessible_label (data->group_combo, label); | |
6737 gtk_box_pack_end(GTK_BOX(rowbox), data->group_combo, TRUE, TRUE, 0); | |
6738 | 6675 |
6739 data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account becomes online.")); | 6676 data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account becomes online.")); |
6740 data->persistent = gtk_check_button_new_with_mnemonic(_("_Hide chat when the window is closed.")); | 6677 data->persistent = gtk_check_button_new_with_mnemonic(_("_Hide chat when the window is closed.")); |
6741 gtk_box_pack_start(GTK_BOX(vbox), data->autojoin, FALSE, FALSE, 0); | 6678 gtk_box_pack_start(GTK_BOX(vbox), data->autojoin, FALSE, FALSE, 0); |
6742 gtk_box_pack_start(GTK_BOX(vbox), data->persistent, FALSE, FALSE, 0); | 6679 gtk_box_pack_start(GTK_BOX(vbox), data->persistent, FALSE, FALSE, 0); |