diff 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
line wrap: on
line diff
--- a/src/dialogs.c	Fri Jan 03 06:01:08 2003 +0000
+++ b/src/dialogs.c	Fri Jan 03 06:58:56 2003 +0000
@@ -872,26 +872,29 @@
 
 extern void add_callback(GtkWidget *, struct conversation *);
 
-void do_add_buddy(GtkWidget *w, struct addbuddy *a)
+void do_add_buddy(GtkWidget *w, int resp, struct addbuddy *a)
 {
 	const char *grp, *who, *whoalias;
 	struct conversation *c;
 
-	who = gtk_entry_get_text(GTK_ENTRY(a->entry));
-	grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry));
-	whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias));
-
-	c = find_conversation(who);
-
-	add_buddy(a->gc, grp, who, whoalias);
-	serv_add_buddy(a->gc, who);
-
-	if (c != NULL) {
-		update_buttons_by_protocol(c);
+	if (resp == GTK_RESPONSE_OK) {
+
+		who = gtk_entry_get_text(GTK_ENTRY(a->entry));
+		grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry));
+		whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias));
+
+		c = find_conversation(who);
+
+		add_buddy(a->gc, grp, who, whoalias);
+		serv_add_buddy(a->gc, who);
+
+		if (c != NULL) {
+			update_buttons_by_protocol(c);
+		}
+
+		do_export(a->gc);
 	}
 
-	do_export(a->gc);
-
 	destroy_dialog(NULL, a->window);
 }
 
@@ -1058,35 +1061,58 @@
 	GtkWidget *cancel;
 	GtkWidget *add;
 	GtkWidget *label;
+	GtkWidget *hbox;
+	GtkWidget *vbox;
+
+	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
+	GtkWidget *img = gtk_image_new_from_file(filename);
 
 	struct addbuddy *a = g_new0(struct addbuddy, 1);
 	a->gc = gc ? gc : connections->data;
 
+	g_free(filename);
+
 	GAIM_DIALOG(a->window);
+	a->window = gtk_dialog_new_with_buttons(_("Gaim - Add Buddy"), blist ? GTK_WINDOW(blist) : NULL, GTK_DIALOG_MODAL,
+					GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL);
+
+	gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK);
+	gtk_container_set_border_width(GTK_CONTAINER(a->window), 6);
+	gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE);
+	gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE);
+	gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12);
+	gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6);
 	gtk_window_set_role(GTK_WINDOW(a->window), "add_buddy");
-	gtk_window_set_policy(GTK_WINDOW(a->window), FALSE, FALSE, TRUE);
-	gtk_window_set_title(GTK_WINDOW(a->window), _("Gaim - Add Buddy"));
-
-	gtk_widget_realize(a->window);
+
+	hbox = gtk_hbox_new(FALSE, 12);
+	gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox);
+	gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
+	gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
+
+	vbox = gtk_vbox_new(FALSE, 0);
+	gtk_container_add(GTK_CONTAINER(hbox), vbox);
+
+	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"));
+	gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1);
+	gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+	gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
+
+	hbox = gtk_hbox_new(FALSE, 6);
+	gtk_container_add(GTK_CONTAINER(vbox), hbox);
+
 	g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(destroy_dialog), a->window);
 	g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(free_dialog), a);
 	dialogwindows = g_list_prepend(dialogwindows, a->window);
 
-	mainbox = gtk_vbox_new(FALSE, 5);
-	gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5);
-	gtk_container_add(GTK_CONTAINER(a->window), mainbox);
-
-	frame = gtk_frame_new(_("Add Buddy"));
-	gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0);
-	gtk_widget_show(frame);
-
 	table = gtk_table_new(4, 2, FALSE);
 	gtk_table_set_row_spacings(GTK_TABLE(table), 5);
 	gtk_table_set_col_spacings(GTK_TABLE(table), 5);
-	gtk_container_set_border_width(GTK_CONTAINER(table), 5);
-	gtk_container_add(GTK_CONTAINER(frame), table);
-
-	label = gtk_label_new(_("Contact"));
+	gtk_container_set_border_width(GTK_CONTAINER(table), 0);
+	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
+
+	label = gtk_label_new(_("Screen Name"));
+	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
 
 	a->entry = gtk_entry_new();
@@ -1097,6 +1123,7 @@
 	g_signal_connect(GTK_OBJECT(a->entry), "activate", G_CALLBACK(do_add_buddy), a);
 
 	label = gtk_label_new(_("Alias"));
+	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
 
 	a->entry_for_alias = gtk_entry_new();
@@ -1105,6 +1132,7 @@
 		gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias);
 
 	label = gtk_label_new(_("Group"));
+	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
 
 	a->combo = gtk_combo_new();
@@ -1113,6 +1141,7 @@
 
 	/* Set up stuff for the account box */
 	label = gtk_label_new(_("Add To"));
+	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
 
 	a->account = gtk_option_menu_new();
@@ -1122,18 +1151,10 @@
 	
 	/* End of account box */
 
-	bbox = gtk_hbox_new(FALSE, 5);
-	gtk_box_pack_start(GTK_BOX(mainbox), bbox, TRUE, TRUE, 0);
-
-	add = picture_button(a->window, _("Add"), add_xpm);
-	gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 0);
-	g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_add_buddy), a);
-
-	cancel = picture_button(a->window, _("Cancel"), cancel_xpm);
-	gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
-	g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), a->window);
+	g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_buddy), a);
 
 	gtk_widget_show_all(a->window);
+
 	if (group != NULL) 
 		gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group);
 }