Mercurial > pidgin
diff src/prpl.c @ 2827:51999a36c0b1
[gaim-migrate @ 2840]
heh.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Sun, 02 Dec 2001 00:35:34 +0000 |
parents | f3c094e78609 |
children | 87d11d2a7d59 |
line wrap: on
line diff
--- a/src/prpl.c Sat Dec 01 22:53:51 2001 +0000 +++ b/src/prpl.c Sun Dec 02 00:35:34 2001 +0000 @@ -444,7 +444,7 @@ mn->url = g_strdup(url); urlbut = picture_button(mn->email_win, _("Open Mail"), tb_forward_xpm); gtk_box_pack_end(GTK_BOX(hbox), urlbut, 0, 0, 5); - gtk_signal_connect(GTK_OBJECT(urlbut), "clicked", GTK_SIGNAL_FUNC(open_url_nw), mn->url); + gtk_signal_connect(GTK_OBJECT(urlbut), "clicked", GTK_SIGNAL_FUNC(open_url), mn->url); gtk_signal_connect(GTK_OBJECT(urlbut), "clicked", GTK_SIGNAL_FUNC(des_email_win), mn); } @@ -575,3 +575,106 @@ else do_ask_dialog(buf, ga, do_add, dont_add); } + +static GtkWidget *regdlg = NULL; +static GtkWidget *reg_list = NULL; +static GtkWidget *reg_area = NULL; +static GtkWidget *reg_reg = NULL; + +static void delete_regdlg() +{ + GtkWidget *tmp = regdlg; + regdlg = NULL; + if (tmp) + gtk_widget_destroy(tmp); +} + +static void reset_reg_dlg() +{ + GSList *P = protocols; + + if (!regdlg) + return; + + while (GTK_BOX(reg_list)->children) + gtk_container_remove(GTK_CONTAINER(reg_list), + ((GtkBoxChild *)GTK_BOX(reg_list)->children->data)->widget); + + while (GTK_BOX(reg_area)->children) + gtk_container_remove(GTK_CONTAINER(reg_area), + ((GtkBoxChild *)GTK_BOX(reg_area)->children->data)->widget); + + while (P) { + struct prpl *p = P->data; + if (p->register_user) + break; + P = P->next; + } + + if (!P) { + GtkWidget *no = gtk_label_new(_("You do not currently have any plugins loaded" + " that are able to register new accounts.")); + gtk_box_pack_start(GTK_BOX(reg_area), no, FALSE, FALSE, 5); + gtk_widget_show(no); + + gtk_widget_set_sensitive(reg_reg, FALSE); + + return; + } +} + +void register_dialog() +{ + /* this is just one big hack */ + GtkWidget *vbox; + GtkWidget *frame; + GtkWidget *hbox; + GtkWidget *close; + + if (regdlg) { + gdk_window_raise(regdlg->window); + return; + } + + regdlg = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_title(GTK_WINDOW(regdlg), _("Gaim - Registration")); + gtk_window_set_wmclass(GTK_WINDOW(regdlg), "register", "Gaim"); + gtk_widget_realize(regdlg); + aol_icon(regdlg->window); + gtk_signal_connect(GTK_OBJECT(regdlg), "destroy", GTK_SIGNAL_FUNC(delete_regdlg), NULL); + + vbox = gtk_vbox_new(FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); + gtk_container_add(GTK_CONTAINER(regdlg), vbox); + gtk_widget_show(vbox); + + reg_list = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), reg_list, FALSE, FALSE, 5); + gtk_widget_show(reg_list); + + frame = gtk_frame_new(_("Registration Information")); + gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5); + gtk_widget_show(frame); + + reg_area = gtk_hbox_new(FALSE, 5); + gtk_container_add(GTK_CONTAINER(frame), reg_area); + gtk_widget_show(reg_area); + + hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); + gtk_widget_show(hbox); + + close = picture_button(regdlg, _("Close"), cancel_xpm); + gtk_box_pack_end(GTK_BOX(hbox), close, FALSE, FALSE, 5); + gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(delete_regdlg), NULL); + gtk_widget_show(close); + + reg_reg = picture_button(regdlg, _("Register"), ok_xpm); + gtk_box_pack_end(GTK_BOX(hbox), reg_reg, FALSE, FALSE, 5); + gtk_widget_show(reg_reg); + + /* fuck me */ + reset_reg_dlg(); + + gtk_widget_show(regdlg); +}