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);