# HG changeset patch # User Eric Warmenhoven # Date 975329103 0 # Node ID b1454d01927709474baa033471c7ba4329252e15 # Parent 403989ecc1cc96d7da7430a26aa46c6fa9678668 [gaim-migrate @ 1154] yay. the UI for the permit/deny stuff is done. the rest should be easy. :-P committer: Tailor Script diff -r 403989ecc1cc -r b1454d019277 src/conversation.c --- a/src/conversation.c Mon Nov 27 12:21:51 2000 +0000 +++ b/src/conversation.c Mon Nov 27 12:45:03 2000 +0000 @@ -440,7 +440,7 @@ void block_callback(GtkWidget *widget, struct conversation *c) { - if (c->gc) show_add_perm(c->gc, c->name); + if (c->gc) show_add_perm(c->gc, c->name, FALSE); gtk_widget_grab_focus(c->entry); } diff -r 403989ecc1cc -r b1454d019277 src/dialogs.c --- a/src/dialogs.c Mon Nov 27 12:21:51 2000 +0000 +++ b/src/dialogs.c Mon Nov 27 12:45:03 2000 +0000 @@ -105,9 +105,9 @@ struct addperm { GtkWidget *window; - GSList *buttons; GtkWidget *entry; struct gaim_connection *gc; + gboolean permit; }; struct addbp { @@ -1828,7 +1828,6 @@ char *who; char *name; int d = 0; - GSList *buttons = p->buttons; who = gtk_entry_get_text(GTK_ENTRY(p->entry)); @@ -1836,15 +1835,7 @@ name = g_malloc(strlen(who) + 2); g_snprintf(name, strlen(who) + 2, "%s", who); - while(buttons) { - if((int)gtk_object_get_user_data(GTK_OBJECT(buttons->data)) == 1) { - if (GTK_TOGGLE_BUTTON(buttons->data)->active) - d = 1; - } - buttons = buttons->next; - } - - if (d) { + if (!p->permit) { GSList *d = p->gc->deny; char *n; n = g_strdup(normalize(name)); @@ -1885,56 +1876,49 @@ -void show_add_perm(struct gaim_connection *gc, char *who) +void show_add_perm(struct gaim_connection *gc, char *who, gboolean permit) { GtkWidget *cancel; GtkWidget *add; GtkWidget *label; GtkWidget *bbox; GtkWidget *vbox; - GtkWidget *rbox; GtkWidget *topbox; - GtkWidget *which; GtkWidget *frame; struct addperm *p = g_new0(struct addperm, 1); p->gc = gc; + p->permit = permit; p->window = gtk_window_new(GTK_WINDOW_DIALOG); gtk_container_set_border_width(GTK_CONTAINER(p->window), 5); - gtk_widget_set_usize(p->window, 310, 130); gtk_window_set_policy(GTK_WINDOW(p->window), FALSE, FALSE, TRUE); - gtk_widget_show(p->window); + gtk_widget_realize(p->window); dialogwindows = g_list_prepend(dialogwindows, p->window); bbox = gtk_hbox_new(TRUE, 10); topbox = gtk_hbox_new(FALSE, 5); vbox = gtk_vbox_new(FALSE, 5); - rbox = gtk_vbox_new(FALSE, 5); p->entry = gtk_entry_new(); - frame = gtk_frame_new(_("Permit / Deny")); + if (permit) + frame = gtk_frame_new(_("Permit")); + else + frame = gtk_frame_new(_("Deny")); /* Build Add Button */ - add = picture_button(p->window, _("Add"), add_xpm); + if (permit) + add = picture_button(p->window, _("Permit"), add_xpm); + else + add = picture_button(p->window, _("Deny"), add_xpm); cancel = picture_button(p->window, _("Cancel"), cancel_xpm); /* End of Cancel Button */ if (who != NULL) gtk_entry_set_text(GTK_ENTRY(p->entry), who); - which = gtk_radio_button_new_with_label(NULL, _("Deny")); - gtk_box_pack_start(GTK_BOX(rbox), which, FALSE, FALSE, 0); - gtk_object_set_user_data(GTK_OBJECT(which), (int *)1); - gtk_widget_show(which); - - which = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(which)), _("Permit")); - gtk_box_pack_start(GTK_BOX(rbox), which, FALSE, FALSE, 0); - gtk_object_set_user_data(GTK_OBJECT(which), (int *)2); - gtk_widget_show(which); - /* Put the buttons in the box */ gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5); @@ -1944,14 +1928,12 @@ gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5); - gtk_box_pack_start(GTK_BOX(topbox), rbox, FALSE, FALSE, 5); /* And the boxes in the box */ gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); gtk_container_add(GTK_CONTAINER(frame), vbox); - p->buttons = gtk_radio_button_group(GTK_RADIO_BUTTON(which)); /* Handle closes right */ gtk_signal_connect(GTK_OBJECT(p->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), p->window); @@ -1969,9 +1951,11 @@ gtk_widget_show(topbox); gtk_widget_show(bbox); gtk_widget_show(vbox); - gtk_widget_show(rbox); gtk_widget_show(frame); - gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Permit/Deny")); + if (permit) + gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Permit")); + else + gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Deny")); gtk_window_set_focus(GTK_WINDOW(p->window), p->entry); gtk_container_add(GTK_CONTAINER(p->window), frame); gtk_widget_realize(p->window); diff -r 403989ecc1cc -r b1454d019277 src/gaim.h --- a/src/gaim.h Mon Nov 27 12:21:51 2000 +0000 +++ b/src/gaim.h Mon Nov 27 12:45:03 2000 +0000 @@ -729,7 +729,7 @@ extern void show_info_dialog(); extern void show_add_buddy(struct gaim_connection *, char *, char *); extern void show_add_group(struct gaim_connection *); -extern void show_add_perm(struct gaim_connection *, char *); +extern void show_add_perm(struct gaim_connection *, char *, gboolean); extern void destroy_all_dialogs(); extern void show_export_dialog(); extern void show_import_dialog(); diff -r 403989ecc1cc -r b1454d019277 src/prefs.c --- 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);