From 63d51b566ea270b45b5b34b1feab37b8faa28232 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 9 May 2004 23:20:43 +0000 Subject: main fieryfilter work git-svn-id: file:///home/lennart/svn/public/fieryfilter/fieryfilter@31 79e6afc9-17da-0310-ae3c-b873bff394f4 --- client/advancedwin.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 client/advancedwin.c (limited to 'client/advancedwin.c') diff --git a/client/advancedwin.c b/client/advancedwin.c new file mode 100644 index 0000000..4cbac57 --- /dev/null +++ b/client/advancedwin.c @@ -0,0 +1,59 @@ +#include + +#include "advancedwin.h" +#include "interface.h" +#include "format.h" +#include "support.h" +#include "connection.h" +#include "ruleset.h" + +static gboolean ignore_apply = TRUE; + +static GtkWidget* get_window(void) { + static GtkWidget *aw = NULL; + + if (!aw) { + aw = create_advanced_window(); + fill_icmp_menu(GTK_OPTION_MENU(lookup_widget(aw, "icmp_option_menu")), TRUE, 0); + } + return aw; +} + + +void advancedwin_show(gboolean b) { + if (b) { + advancedwin_fill(); + gtk_widget_show_all(get_window()); + ignore_apply = FALSE; + } else { + ignore_apply = TRUE; + gtk_widget_hide(get_window()); + } +} + +void advancedwin_fill() { + GtkWidget *aw = get_window(); + + set_icmp_menu_entry(GTK_OPTION_MENU(lookup_widget(aw, "icmp_option_menu")), TRUE, ruleset.icmp_reject_code); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(aw, "tcp_rst_check_button")), ruleset.use_tcp_rst); +} + +void advancedwin_apply() { + GtkWidget *w, *aw; + GtkOptionMenu *om; + + if (ignore_apply) + return; + + aw = get_window(); + om = GTK_OPTION_MENU(lookup_widget(aw, "icmp_option_menu")); + + w = GTK_WIDGET(g_list_nth_data(gtk_container_get_children(GTK_CONTAINER(gtk_option_menu_get_menu(om))), + gtk_option_menu_get_history(om))); + ruleset.icmp_reject_code = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(w), "icmp_value")); + + ruleset.use_tcp_rst = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(aw, "tcp_rst_check_button"))); + + ruleset.modified = TRUE; + ruleset_update_ui(); +} -- cgit