Mercurial > pidgin
diff src/prpl.c @ 1064:b0b40b5faede
[gaim-migrate @ 1074]
for some things, the prpl needs to ask the user if they want to do something. i added a way of doing that to prpl.c. i also tweaked oscar.c to get it to use that system, as well as adding the beginnings of getfile support to oscar.
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Sat, 04 Nov 2000 09:13:29 +0000 |
| parents | d50d3abb9eb7 |
| children | 265abea9db72 |
line wrap: on
line diff
--- a/src/prpl.c Sat Nov 04 03:08:54 2000 +0000 +++ b/src/prpl.c Sat Nov 04 09:13:29 2000 +0000 @@ -21,6 +21,9 @@ #include "prpl.h" +#include "pixmaps/ok.xpm" +#include "pixmaps/cancel.xpm" + extern void toc_init(struct prpl *); extern void oscar_init(struct prpl *); @@ -83,3 +86,57 @@ load_protocol(oscar_init); #endif } + +static void des_win(GtkWidget *a, GtkWidget *b) { + gtk_widget_destroy(b); +} + +static int rem_win(GtkObject *a, GtkWidget *b) { + gpointer d = gtk_object_get_user_data(a); + gtk_signal_disconnect_by_data(GTK_OBJECT(b), d); + gtk_widget_destroy(b); + return TRUE; +} + +void do_ask_dialog(const char *text, void *data, void *doit, void *dont) +{ + GtkWidget *window; + GtkWidget *box; + GtkWidget *label; + GtkWidget *hbox; + GtkWidget *button; + + window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window), "accept", "Gaim"); + gtk_window_set_policy(GTK_WINDOW(window), 0, 0, 1); + gtk_window_set_title(GTK_WINDOW(window), _("Accept?")); + gtk_widget_realize(window); + aol_icon(window->window); + if (dont) + gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(dont), data); + + box = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(window), box); + gtk_widget_show(box); + + label = gtk_label_new(text); + gtk_box_pack_start(GTK_BOX(box), label, 0, 0, 5); + gtk_widget_show(label); + + hbox = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(box), hbox, 0, 0, 1); + gtk_widget_show(hbox); + + button = picture_button(window, _("Accept"), ok_xpm); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); + gtk_object_set_user_data(GTK_OBJECT(button), data); + if (doit) + gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(doit), data); + gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(rem_win), window); + + button = picture_button(window, _("Cancel"), cancel_xpm); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); + gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(des_win), window); + + gtk_widget_show(window); +}
