comparison src/dialogs.c @ 4180:3ed4fab5d7bf

[gaim-migrate @ 4411] More gtk2ification committer: Tailor Script <tailor@pidgin.im>
author Rob Flynn <gaim@robflynn.com>
date Fri, 03 Jan 2003 06:58:56 +0000
parents 67f45f27ed3c
children 05a456d5f799
comparison
equal deleted inserted replaced
4179:67f45f27ed3c 4180:3ed4fab5d7bf
870 /* The dialog for adding buddies */ 870 /* The dialog for adding buddies */
871 /*------------------------------------------------------------------------*/ 871 /*------------------------------------------------------------------------*/
872 872
873 extern void add_callback(GtkWidget *, struct conversation *); 873 extern void add_callback(GtkWidget *, struct conversation *);
874 874
875 void do_add_buddy(GtkWidget *w, struct addbuddy *a) 875 void do_add_buddy(GtkWidget *w, int resp, struct addbuddy *a)
876 { 876 {
877 const char *grp, *who, *whoalias; 877 const char *grp, *who, *whoalias;
878 struct conversation *c; 878 struct conversation *c;
879 879
880 who = gtk_entry_get_text(GTK_ENTRY(a->entry)); 880 if (resp == GTK_RESPONSE_OK) {
881 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry)); 881
882 whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias)); 882 who = gtk_entry_get_text(GTK_ENTRY(a->entry));
883 883 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry));
884 c = find_conversation(who); 884 whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias));
885 885
886 add_buddy(a->gc, grp, who, whoalias); 886 c = find_conversation(who);
887 serv_add_buddy(a->gc, who); 887
888 888 add_buddy(a->gc, grp, who, whoalias);
889 if (c != NULL) { 889 serv_add_buddy(a->gc, who);
890 update_buttons_by_protocol(c); 890
891 } 891 if (c != NULL) {
892 892 update_buttons_by_protocol(c);
893 do_export(a->gc); 893 }
894
895 do_export(a->gc);
896 }
894 897
895 destroy_dialog(NULL, a->window); 898 destroy_dialog(NULL, a->window);
896 } 899 }
897 900
898 void do_add_group(GtkWidget *w, int resp, struct addbuddy *a) 901 void do_add_group(GtkWidget *w, int resp, struct addbuddy *a)
1056 GtkWidget *table; 1059 GtkWidget *table;
1057 GtkWidget *bbox; 1060 GtkWidget *bbox;
1058 GtkWidget *cancel; 1061 GtkWidget *cancel;
1059 GtkWidget *add; 1062 GtkWidget *add;
1060 GtkWidget *label; 1063 GtkWidget *label;
1064 GtkWidget *hbox;
1065 GtkWidget *vbox;
1066
1067 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
1068 GtkWidget *img = gtk_image_new_from_file(filename);
1061 1069
1062 struct addbuddy *a = g_new0(struct addbuddy, 1); 1070 struct addbuddy *a = g_new0(struct addbuddy, 1);
1063 a->gc = gc ? gc : connections->data; 1071 a->gc = gc ? gc : connections->data;
1064 1072
1073 g_free(filename);
1074
1065 GAIM_DIALOG(a->window); 1075 GAIM_DIALOG(a->window);
1076 a->window = gtk_dialog_new_with_buttons(_("Gaim - Add Buddy"), blist ? GTK_WINDOW(blist) : NULL, GTK_DIALOG_MODAL,
1077 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL);
1078
1079 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK);
1080 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6);
1081 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE);
1082 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE);
1083 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12);
1084 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6);
1066 gtk_window_set_role(GTK_WINDOW(a->window), "add_buddy"); 1085 gtk_window_set_role(GTK_WINDOW(a->window), "add_buddy");
1067 gtk_window_set_policy(GTK_WINDOW(a->window), FALSE, FALSE, TRUE); 1086
1068 gtk_window_set_title(GTK_WINDOW(a->window), _("Gaim - Add Buddy")); 1087 hbox = gtk_hbox_new(FALSE, 12);
1069 1088 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox);
1070 gtk_widget_realize(a->window); 1089 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
1090 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
1091
1092 vbox = gtk_vbox_new(FALSE, 0);
1093 gtk_container_add(GTK_CONTAINER(hbox), vbox);
1094
1095 label = gtk_label_new(_("Please enter the screen name of the person you would like to add to your buddylist. You may optionally enter an alias, or nickname, for the buddy. The alias will be displayed in place of the screen name whenever possible.\n"));
1096 gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1);
1097 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
1098 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
1099 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
1100
1101 hbox = gtk_hbox_new(FALSE, 6);
1102 gtk_container_add(GTK_CONTAINER(vbox), hbox);
1103
1071 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(destroy_dialog), a->window); 1104 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(destroy_dialog), a->window);
1072 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(free_dialog), a); 1105 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(free_dialog), a);
1073 dialogwindows = g_list_prepend(dialogwindows, a->window); 1106 dialogwindows = g_list_prepend(dialogwindows, a->window);
1074 1107
1075 mainbox = gtk_vbox_new(FALSE, 5);
1076 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5);
1077 gtk_container_add(GTK_CONTAINER(a->window), mainbox);
1078
1079 frame = gtk_frame_new(_("Add Buddy"));
1080 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0);
1081 gtk_widget_show(frame);
1082
1083 table = gtk_table_new(4, 2, FALSE); 1108 table = gtk_table_new(4, 2, FALSE);
1084 gtk_table_set_row_spacings(GTK_TABLE(table), 5); 1109 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
1085 gtk_table_set_col_spacings(GTK_TABLE(table), 5); 1110 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
1086 gtk_container_set_border_width(GTK_CONTAINER(table), 5); 1111 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
1087 gtk_container_add(GTK_CONTAINER(frame), table); 1112 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
1088 1113
1089 label = gtk_label_new(_("Contact")); 1114 label = gtk_label_new(_("Screen Name"));
1115 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
1090 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); 1116 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
1091 1117
1092 a->entry = gtk_entry_new(); 1118 a->entry = gtk_entry_new();
1093 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1); 1119 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1);
1094 gtk_widget_grab_focus(a->entry); 1120 gtk_widget_grab_focus(a->entry);
1095 if (buddy != NULL) 1121 if (buddy != NULL)
1096 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); 1122 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy);
1097 g_signal_connect(GTK_OBJECT(a->entry), "activate", G_CALLBACK(do_add_buddy), a); 1123 g_signal_connect(GTK_OBJECT(a->entry), "activate", G_CALLBACK(do_add_buddy), a);
1098 1124
1099 label = gtk_label_new(_("Alias")); 1125 label = gtk_label_new(_("Alias"));
1126 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
1100 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); 1127 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
1101 1128
1102 a->entry_for_alias = gtk_entry_new(); 1129 a->entry_for_alias = gtk_entry_new();
1103 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2); 1130 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2);
1104 if (alias != NULL) 1131 if (alias != NULL)
1105 gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias); 1132 gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias);
1106 1133
1107 label = gtk_label_new(_("Group")); 1134 label = gtk_label_new(_("Group"));
1135 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
1108 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); 1136 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
1109 1137
1110 a->combo = gtk_combo_new(); 1138 a->combo = gtk_combo_new();
1111 gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), groups_tree(a->gc)); 1139 gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), groups_tree(a->gc));
1112 gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3); 1140 gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3);
1113 1141
1114 /* Set up stuff for the account box */ 1142 /* Set up stuff for the account box */
1115 label = gtk_label_new(_("Add To")); 1143 label = gtk_label_new(_("Add To"));
1144 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
1116 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); 1145 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
1117 1146
1118 a->account = gtk_option_menu_new(); 1147 a->account = gtk_option_menu_new();
1119 gtk_table_attach_defaults(GTK_TABLE(table), a->account, 1, 2, 3, 4); 1148 gtk_table_attach_defaults(GTK_TABLE(table), a->account, 1, 2, 3, 4);
1120 1149
1121 create_online_user_names(a); 1150 create_online_user_names(a);
1122 1151
1123 /* End of account box */ 1152 /* End of account box */
1124 1153
1125 bbox = gtk_hbox_new(FALSE, 5); 1154 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_buddy), a);
1126 gtk_box_pack_start(GTK_BOX(mainbox), bbox, TRUE, TRUE, 0);
1127
1128 add = picture_button(a->window, _("Add"), add_xpm);
1129 gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 0);
1130 g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_add_buddy), a);
1131
1132 cancel = picture_button(a->window, _("Cancel"), cancel_xpm);
1133 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
1134 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), a->window);
1135 1155
1136 gtk_widget_show_all(a->window); 1156 gtk_widget_show_all(a->window);
1157
1137 if (group != NULL) 1158 if (group != NULL)
1138 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group); 1159 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group);
1139 } 1160 }
1140 1161
1141 1162