--- a/src/dialogs.c Thu Sep 21 19:21:35 2000 +0000 +++ b/src/dialogs.c Fri Sep 22 10:16:40 2000 +0000 @@ -71,6 +71,7 @@ GdkColor fgcolor; static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ +static GtkWidget *infodialog = NULL; static GList *dialogwindows = NULL; static GtkWidget *exportdialog, *importdialog; static GtkWidget *aliasdlg = NULL; @@ -332,6 +333,9 @@ if (dest == imdialog) imdialog = NULL; + if (dest == infodialog) + infodialog = NULL; + if (dest == exportdialog) exportdialog = NULL; @@ -369,6 +373,11 @@ destroy_dialog(NULL, imdialog); imdialog = NULL; } + + if (infodialog) { + destroy_dialog(NULL, infodialog); + infodialog = NULL; + } if (exportdialog) { destroy_dialog(NULL, exportdialog); @@ -639,6 +648,24 @@ g_free(who); } +static void do_info(GtkWidget *widget, GtkWidget *infoentry) +{ + char *who; + + who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(infoentry)))); + destroy_dialog(NULL, infodialog); + infodialog = NULL; + + if (!strcasecmp(who, "")) { + g_free(who); + return; + } + + serv_get_info(who); + + g_free(who); +} + void show_ee_dialog(int ee) { GtkWidget *ok; @@ -682,7 +709,7 @@ gtk_widget_show(eedialog); } -void show_im_dialog(GtkWidget *w, GtkWidget *w2) +void show_im_dialog() { GtkWidget *button; GtkWidget *imentry; @@ -722,7 +749,7 @@ gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), imdialog); - label = gtk_label_new(_("IM who: ")); + label = gtk_label_new(_("IM who:")); gtk_box_pack_start(GTK_BOX(ebox), label, TRUE, TRUE, 10); gtk_widget_show(label); @@ -757,6 +784,81 @@ gtk_widget_show(imdialog); } +void show_info_dialog() +{ + GtkWidget *button; + GtkWidget *infoentry; + GtkWidget *vbox; + GtkWidget *ebox; + GtkWidget *bbox; + GtkWidget *label; + GtkWidget *frame; + GtkWidget *fbox; + + if (!infodialog) { + + infodialog = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(infodialog), "infodialog", + "Gaim"); + gtk_widget_set_usize(infodialog, 255, 105); + gtk_container_border_width(GTK_CONTAINER(infodialog), 5); + gtk_window_set_policy(GTK_WINDOW(infodialog), FALSE, FALSE, TRUE); + gtk_widget_show(infodialog); + + bbox = gtk_hbox_new(TRUE, 10); + vbox = gtk_vbox_new(FALSE, 5); + ebox = gtk_hbox_new(FALSE, 2); + fbox = gtk_vbox_new(TRUE, 10); + + frame = gtk_frame_new(_("Get User Info")); + + infoentry = gtk_entry_new(); + + button = picture_button(infodialog, _("OK"), ok_xpm); + gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5); + gtk_signal_connect(GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(do_info), infoentry); + + button = picture_button(infodialog, _("Cancel"), cancel_xpm); + gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5); + gtk_signal_connect(GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(destroy_dialog), infodialog); + + label = gtk_label_new(_("User:")); + gtk_box_pack_start(GTK_BOX(ebox), label, TRUE, TRUE, 10); + gtk_widget_show(label); + + gtk_box_pack_start(GTK_BOX(ebox), infoentry, TRUE, TRUE, 10); + + gtk_box_pack_start(GTK_BOX(vbox), ebox, FALSE, FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); + + /* Handle closes right */ + gtk_signal_connect(GTK_OBJECT(infoentry), "activate", + GTK_SIGNAL_FUNC(do_info), infoentry); + gtk_signal_connect(GTK_OBJECT(infodialog), "destroy", + GTK_SIGNAL_FUNC(destroy_dialog), infodialog); + + /* Finish up */ + gtk_widget_show(ebox); + gtk_widget_show(infoentry); + gtk_widget_show(bbox); + gtk_widget_show(vbox); + gtk_widget_show(fbox); + gtk_widget_show(frame); + gtk_container_add(GTK_CONTAINER(frame), vbox); + gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 5); + gtk_window_set_title(GTK_WINDOW(infodialog), _("Gaim - Get User Info")); + gtk_container_add(GTK_CONTAINER(infodialog), fbox); + gtk_widget_grab_focus(infoentry); + gtk_widget_realize(infodialog); + + aol_icon(infodialog->window); + + } + gtk_widget_show(infodialog); +} + /*------------------------------------------------------------------------*/ /* The dialog for adding buddies */