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);
+}