diff src/prefs.c @ 1144:b1454d019277

[gaim-migrate @ 1154] yay. the UI for the permit/deny stuff is done. the rest should be easy. :-P committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 27 Nov 2000 12:45:03 +0000
parents fb1490e8f9f8
children 65e0608e19f7
line wrap: on
line diff
--- a/src/prefs.c	Mon Nov 27 12:21:51 2000 +0000
+++ b/src/prefs.c	Mon Nov 27 12:45:03 2000 +0000
@@ -1399,7 +1399,7 @@
 	GtkWidget *list_item;
 	GSList *p;
 
-	if (current_is_deny)
+	if (!current_is_deny)
 		return;
 
 	p = current_deny_gc->permit;
@@ -1494,6 +1494,42 @@
 	gtk_widget_show(deny_opt_menu);
 }
 
+static void pref_deny_add(GtkWidget *button, gboolean permit)
+{
+	show_add_perm(current_deny_gc, NULL, permit);
+}
+
+static void pref_deny_rem(GtkWidget *button, gboolean permit)
+{
+	GList *i;
+	char *who;
+
+	if (permit && !allow_list)
+		return;
+	if (!permit && !block_list)
+		return;
+
+	if (permit)
+		i = GTK_LIST(allow_list)->selection;
+	else
+		i = GTK_LIST(block_list)->selection;
+
+	if (!i)
+		return;
+	who = gtk_object_get_user_data(GTK_OBJECT(i->data));
+	if (permit) {
+		current_deny_gc->permit = g_slist_remove(current_deny_gc->permit, who);
+		serv_rem_permit(current_deny_gc, who);
+		build_allow_list();
+	} else {
+		current_deny_gc->deny = g_slist_remove(current_deny_gc->deny, who);
+		serv_rem_deny(current_deny_gc, who);
+		build_block_list();
+	}
+
+	do_export(0, 0);
+}
+
 static void deny_page()
 {
 	GtkWidget *parent;
@@ -1574,9 +1610,11 @@
 	gtk_widget_show(bbox);
 
 	button = picture_button(prefs, _("Add"), gnome_add_xpm);
+	gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_add), (void *)TRUE);
 	gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
 
 	button = picture_button(prefs, _("Remove"), gnome_remove_xpm);
+	gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_rem), (void *)TRUE);
 	gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
 
 	vbox = gtk_vbox_new(FALSE, 5);
@@ -1607,9 +1645,11 @@
 	gtk_widget_show(bbox);
 
 	button = picture_button(prefs, _("Add"), gnome_add_xpm);
+	gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_add), FALSE);
 	gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
 
 	button = picture_button(prefs, _("Remove"), gnome_remove_xpm);
+	gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_rem), FALSE);
 	gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
 
 	gtk_widget_show(prefdialog);