/* * Copyright (c) 2001 Fenris, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "callbacks.h" #include "interface.h" #include "support.h" GtkWidget* create_gui (void) { GtkWidget *gui; GtkWidget *vbox_main; GtkWidget *menubar; guint tmp_key; GtkWidget *filemenu; GtkWidget *filemenu_menu; GtkAccelGroup *filemenu_menu_accels; GtkWidget *file_options; GtkWidget *file_clear_dns; GtkWidget *separator5; GtkWidget *file_exit; GtkWidget *filtermenu; GtkWidget *filtermenu_menu; GtkAccelGroup *filtermenu_menu_accels; GtkWidget *f_arp; GtkWidget *f_arp_menu; GtkAccelGroup *f_arp_menu_accels; GtkWidget *f_arp_all; GtkWidget *f_ip; GtkWidget *f_ip_menu; GtkAccelGroup *f_ip_menu_accels; GtkWidget *f_ip_all; GtkWidget *f_ip_port; GtkWidget *separator1; GtkWidget *f_ip_icmp; GtkWidget *f_ip_icmp_menu; GtkAccelGroup *f_ip_icmp_menu_accels; GtkWidget *f_ip_icmp_all; GtkWidget *separator3; GtkWidget *f_ip_icmp_request; GtkWidget *f_ip_icmp_reply; GtkWidget *f_ip_icmp_pair; GtkWidget *f_ip_igmp; GtkWidget *f_ip_igmp_menu; GtkAccelGroup *f_ip_igmp_menu_accels; GtkWidget *f_ip_igmp_all; GtkWidget *f_ip_tcp; GtkWidget *f_ip_tcp_menu; GtkAccelGroup *f_ip_tcp_menu_accels; GtkWidget *f_ip_tcp_all; GtkWidget *f_ip_tcp_port; GtkWidget *separator4; GtkWidget *f_ip_tcp_http; GtkWidget *f_ip_tcp_ftp; GtkWidget *f_ip_tcp_ssh; GtkWidget *f_ip_udp; GtkWidget *f_ip_udp_menu; GtkAccelGroup *f_ip_udp_menu_accels; GtkWidget *f_ip_udp_all; GtkWidget *f_ip_udp_port; GtkWidget *hbox3; GtkWidget *help_pixmap; GtkWidget *scrolledwindow; GtkWidget *viewport; GtkWidget *area; GtkWidget *status_label; GtkWidget *f_all; GtkWidget *by_address; GtkWidget *separator6; GtkAccelGroup *accel_group; GtkWidget *vbox3; GtkWidget *max_label; GtkWidget *min_label; struct Options_Dialog_Context *options_dialog; struct IP_Filter_Dialog_Context *ip_filter_dialog; add_pixmap_directory("."); add_pixmap_directory(BINDIR); options_dialog = create_options_dialog(); ip_filter_dialog = create_ip_filter_dialog(); accel_group = gtk_accel_group_new (); gui = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_object_set_data (GTK_OBJECT (gui), "tvark", gui); gtk_window_set_title (GTK_WINDOW (gui), _("Tvark")); vbox_main = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox_main); gtk_object_set_data_full (GTK_OBJECT (gui), "vbox_main", vbox_main, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox_main); gtk_container_add (GTK_CONTAINER (gui), vbox_main); menubar = gtk_menu_bar_new (); gtk_widget_ref (menubar); gtk_object_set_data_full (GTK_OBJECT (gui), "menubar", menubar, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (menubar); gtk_box_pack_start (GTK_BOX (vbox_main), menubar, FALSE, FALSE, 0); filemenu = gtk_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (filemenu)->child), _("_File")); gtk_widget_add_accelerator (filemenu, "activate_item", accel_group, tmp_key, GDK_MOD1_MASK, 0); gtk_widget_ref (filemenu); gtk_object_set_data_full (GTK_OBJECT (gui), "filemenu", filemenu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (filemenu); gtk_container_add (GTK_CONTAINER (menubar), filemenu); filemenu_menu = gtk_menu_new (); gtk_widget_ref (filemenu_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "filemenu_menu", filemenu_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (filemenu), filemenu_menu); filemenu_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (filemenu_menu)); file_options = gtk_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (file_options)->child), _("_Options")); gtk_widget_add_accelerator (file_options, "activate_item", filemenu_menu_accels, tmp_key, 0, 0); gtk_widget_ref (file_options); gtk_object_set_data_full (GTK_OBJECT (gui), "file_options", file_options, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (file_options); gtk_container_add (GTK_CONTAINER (filemenu_menu), file_options); file_clear_dns = gtk_menu_item_new_with_label(""); tmp_key = gtk_label_parse_uline(GTK_LABEL(GTK_BIN(file_clear_dns)->child), _("_Clear DNS cache")); gtk_widget_add_accelerator(file_clear_dns, "activate_item", filemenu_menu_accels, tmp_key, 0, 0); gtk_widget_ref(file_clear_dns); gtk_object_set_data_full (GTK_OBJECT (gui), "file_clear_dns", file_clear_dns, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (file_clear_dns); gtk_container_add (GTK_CONTAINER (filemenu_menu), file_clear_dns); separator5 = gtk_menu_item_new (); gtk_widget_ref (separator5); gtk_object_set_data_full (GTK_OBJECT (gui), "separator5", separator5, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (separator5); gtk_container_add (GTK_CONTAINER (filemenu_menu), separator5); gtk_widget_set_sensitive (separator5, FALSE); file_exit = gtk_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (file_exit)->child), _("E_xit")); gtk_widget_add_accelerator (file_exit, "activate_item", filemenu_menu_accels, tmp_key, 0, 0); gtk_widget_ref (file_exit); gtk_object_set_data_full (GTK_OBJECT (gui), "file_exit", file_exit, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (file_exit); gtk_container_add (GTK_CONTAINER (filemenu_menu), file_exit); filtermenu = gtk_menu_item_new_with_label (""); tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (filtermenu)->child), _("F_ilter")); gtk_widget_add_accelerator (filtermenu, "activate_item", accel_group, tmp_key, GDK_MOD1_MASK, 0); gtk_widget_ref (filtermenu); gtk_object_set_data_full (GTK_OBJECT (gui), "filtermenu", filtermenu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (filtermenu); gtk_container_add (GTK_CONTAINER (menubar), filtermenu); filtermenu_menu = gtk_menu_new (); gtk_widget_ref (filtermenu_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "filtermenu_menu", filtermenu_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (filtermenu), filtermenu_menu); filtermenu_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (filtermenu_menu)); f_all = gtk_menu_item_new_with_label (_("All traffic")); gtk_widget_ref (f_all); gtk_object_set_data_full (GTK_OBJECT (gui), "f_all", f_all, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_all); gtk_container_add (GTK_CONTAINER (filtermenu_menu), f_all); by_address = gtk_menu_item_new_with_label (_("By Address...")); gtk_widget_ref (by_address); gtk_object_set_data_full (GTK_OBJECT (gui), "by_address", by_address, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (by_address); gtk_container_add (GTK_CONTAINER (filtermenu_menu), by_address); separator6 = gtk_menu_item_new (); gtk_widget_ref (separator6); gtk_object_set_data_full (GTK_OBJECT (gui), "separator6", separator6, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (separator6); gtk_container_add (GTK_CONTAINER (filtermenu_menu), separator6); gtk_widget_set_sensitive (separator6, FALSE); f_arp = gtk_menu_item_new_with_label (_("ARP")); gtk_widget_ref (f_arp); gtk_object_set_data_full (GTK_OBJECT (gui), "f_arp", f_arp, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_arp); gtk_container_add (GTK_CONTAINER (filtermenu_menu), f_arp); f_arp_menu = gtk_menu_new (); gtk_widget_ref (f_arp_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "f_arp_menu", f_arp_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (f_arp), f_arp_menu); f_arp_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (f_arp_menu)); f_arp_all = gtk_menu_item_new_with_label (_("All")); gtk_widget_ref (f_arp_all); gtk_object_set_data_full (GTK_OBJECT (gui), "f_arp_all", f_arp_all, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_arp_all); gtk_container_add (GTK_CONTAINER (f_arp_menu), f_arp_all); f_ip = gtk_menu_item_new_with_label (_("IP")); gtk_widget_ref (f_ip); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip", f_ip, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip); gtk_container_add (GTK_CONTAINER (filtermenu_menu), f_ip); f_ip_menu = gtk_menu_new (); gtk_widget_ref (f_ip_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_menu", f_ip_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (f_ip), f_ip_menu); f_ip_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (f_ip_menu)); f_ip_all = gtk_menu_item_new_with_label (_("All")); gtk_widget_ref (f_ip_all); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_all", f_ip_all, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_all); gtk_container_add (GTK_CONTAINER (f_ip_menu), f_ip_all); /* f_ip_port = gtk_menu_item_new_with_label (_("By port...")); gtk_widget_ref (f_ip_port); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_port", f_ip_port, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_port); gtk_container_add (GTK_CONTAINER (f_ip_menu), f_ip_port); */ separator1 = gtk_menu_item_new (); gtk_widget_ref (separator1); gtk_object_set_data_full (GTK_OBJECT (gui), "separator1", separator1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (separator1); gtk_container_add (GTK_CONTAINER (f_ip_menu), separator1); gtk_widget_set_sensitive (separator1, FALSE); f_ip_icmp = gtk_menu_item_new_with_label (_("ICMP")); gtk_widget_ref (f_ip_icmp); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_icmp", f_ip_icmp, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_icmp); gtk_container_add (GTK_CONTAINER (f_ip_menu), f_ip_icmp); f_ip_icmp_menu = gtk_menu_new (); gtk_widget_ref (f_ip_icmp_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_icmp_menu", f_ip_icmp_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (f_ip_icmp), f_ip_icmp_menu); f_ip_icmp_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (f_ip_icmp_menu)); f_ip_icmp_all = gtk_menu_item_new_with_label (_("All")); gtk_widget_ref (f_ip_icmp_all); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_icmp_all", f_ip_icmp_all, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_icmp_all); gtk_container_add (GTK_CONTAINER (f_ip_icmp_menu), f_ip_icmp_all); separator3 = gtk_menu_item_new (); gtk_widget_ref (separator3); gtk_object_set_data_full (GTK_OBJECT (gui), "separator3", separator3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (separator3); gtk_container_add (GTK_CONTAINER (f_ip_icmp_menu), separator3); gtk_widget_set_sensitive (separator3, FALSE); f_ip_icmp_request = gtk_menu_item_new_with_label (_("Request")); gtk_widget_ref (f_ip_icmp_request); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_icmp_request", f_ip_icmp_request, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_icmp_request); gtk_container_add (GTK_CONTAINER (f_ip_icmp_menu), f_ip_icmp_request); f_ip_icmp_reply = gtk_menu_item_new_with_label (_("Reply")); gtk_widget_ref (f_ip_icmp_reply); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_icmp_reply", f_ip_icmp_reply, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_icmp_reply); gtk_container_add (GTK_CONTAINER (f_ip_icmp_menu), f_ip_icmp_reply); f_ip_icmp_pair = gtk_menu_item_new_with_label (_("Pair")); gtk_widget_ref (f_ip_icmp_pair); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_icmp_pair", f_ip_icmp_pair, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_icmp_pair); gtk_container_add (GTK_CONTAINER (f_ip_icmp_menu), f_ip_icmp_pair); f_ip_igmp = gtk_menu_item_new_with_label (_("IGMP")); gtk_widget_ref (f_ip_igmp); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_igmp", f_ip_igmp, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_igmp); gtk_container_add (GTK_CONTAINER (f_ip_menu), f_ip_igmp); f_ip_igmp_menu = gtk_menu_new (); gtk_widget_ref (f_ip_igmp_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_igmp_menu", f_ip_igmp_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (f_ip_igmp), f_ip_igmp_menu); f_ip_igmp_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (f_ip_igmp_menu)); f_ip_igmp_all = gtk_menu_item_new_with_label (_("All")); gtk_widget_ref (f_ip_igmp_all); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_igmp_all", f_ip_igmp_all, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_igmp_all); gtk_container_add (GTK_CONTAINER (f_ip_igmp_menu), f_ip_igmp_all); f_ip_tcp = gtk_menu_item_new_with_label (_("TCP")); gtk_widget_ref (f_ip_tcp); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_tcp", f_ip_tcp, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_tcp); gtk_container_add (GTK_CONTAINER (f_ip_menu), f_ip_tcp); f_ip_tcp_menu = gtk_menu_new (); gtk_widget_ref (f_ip_tcp_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_tcp_menu", f_ip_tcp_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (f_ip_tcp), f_ip_tcp_menu); f_ip_tcp_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (f_ip_tcp_menu)); f_ip_tcp_all = gtk_menu_item_new_with_label (_("All")); gtk_widget_ref (f_ip_tcp_all); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_tcp_all", f_ip_tcp_all, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_tcp_all); gtk_container_add (GTK_CONTAINER (f_ip_tcp_menu), f_ip_tcp_all); /* f_ip_tcp_port = gtk_menu_item_new_with_label (_("By port...")); gtk_widget_ref (f_ip_tcp_port); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_tcp_port", f_ip_tcp_port, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_tcp_port); gtk_container_add (GTK_CONTAINER (f_ip_tcp_menu), f_ip_tcp_port); */ separator4 = gtk_menu_item_new (); gtk_widget_ref (separator4); gtk_object_set_data_full (GTK_OBJECT (gui), "separator4", separator4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (separator4); gtk_container_add (GTK_CONTAINER (f_ip_tcp_menu), separator4); gtk_widget_set_sensitive (separator4, FALSE); f_ip_tcp_http = gtk_menu_item_new_with_label (_("http")); gtk_widget_ref (f_ip_tcp_http); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_tcp_http", f_ip_tcp_http, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_tcp_http); gtk_container_add (GTK_CONTAINER (f_ip_tcp_menu), f_ip_tcp_http); f_ip_tcp_ftp = gtk_menu_item_new_with_label (_("ftp")); gtk_widget_ref (f_ip_tcp_ftp); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_tcp_ftp", f_ip_tcp_ftp, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_tcp_ftp); gtk_container_add (GTK_CONTAINER (f_ip_tcp_menu), f_ip_tcp_ftp); f_ip_tcp_ssh = gtk_menu_item_new_with_label (_("ssh")); gtk_widget_ref (f_ip_tcp_ssh); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_tcp_ssh", f_ip_tcp_ssh, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_tcp_ssh); gtk_container_add (GTK_CONTAINER (f_ip_tcp_menu), f_ip_tcp_ssh); f_ip_udp = gtk_menu_item_new_with_label (_("UDP")); gtk_widget_ref (f_ip_udp); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_udp", f_ip_udp, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_udp); gtk_container_add (GTK_CONTAINER (f_ip_menu), f_ip_udp); f_ip_udp_menu = gtk_menu_new (); gtk_widget_ref (f_ip_udp_menu); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_udp_menu", f_ip_udp_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (f_ip_udp), f_ip_udp_menu); f_ip_udp_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (f_ip_udp_menu)); f_ip_udp_all = gtk_menu_item_new_with_label (_("All")); gtk_widget_ref (f_ip_udp_all); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_udp_all", f_ip_udp_all, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_udp_all); gtk_container_add (GTK_CONTAINER (f_ip_udp_menu), f_ip_udp_all); /* f_ip_udp_port = gtk_menu_item_new_with_label (_("By port...")); gtk_widget_ref (f_ip_udp_port); gtk_object_set_data_full (GTK_OBJECT (gui), "f_ip_udp_port", f_ip_udp_port, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (f_ip_udp_port); gtk_container_add (GTK_CONTAINER (f_ip_udp_menu), f_ip_udp_port); */ hbox3 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (hbox3); gtk_object_set_data_full (GTK_OBJECT (gui), "hbox3", hbox3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox3); gtk_box_pack_start (GTK_BOX (vbox_main), hbox3, TRUE, TRUE, 0); vbox3 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox3); gtk_object_set_data_full (GTK_OBJECT (gui), "vbox3", vbox3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox3); gtk_box_pack_start (GTK_BOX (hbox3), vbox3, FALSE, FALSE, 0); max_label = gtk_label_new (_("1 Kbps")); gtk_widget_ref (max_label); gtk_object_set_data_full (GTK_OBJECT (gui), "max_label", max_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (max_label); gtk_box_pack_start (GTK_BOX (vbox3), max_label, TRUE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (max_label), 0.5, 1); help_pixmap = create_pixmap (gui, "tvark-grad.xpm"); gtk_widget_ref (help_pixmap); gtk_object_set_data_full (GTK_OBJECT (gui), "help_pixmap", help_pixmap, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (help_pixmap); gtk_box_pack_start (GTK_BOX (vbox3), help_pixmap, FALSE, FALSE, 2); gtk_misc_set_alignment (GTK_MISC (help_pixmap), 1, 0.5); gtk_misc_set_padding (GTK_MISC (help_pixmap), 1, 0); min_label = gtk_label_new (_("0 bps")); gtk_widget_ref (min_label); gtk_object_set_data_full (GTK_OBJECT (gui), "min_label", min_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (min_label); gtk_box_pack_start (GTK_BOX (vbox3), min_label, TRUE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (min_label), 0.5, 7.45058e-09); options_dialog->min_label = GTK_LABEL(min_label); options_dialog->max_label = GTK_LABEL(max_label); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow); gtk_object_set_data_full (GTK_OBJECT (gui), "scrolledwindow", scrolledwindow, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (hbox3), scrolledwindow, TRUE, TRUE, 0); gtk_widget_set_usize (scrolledwindow, 400, 500); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow), 4); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport = gtk_viewport_new (NULL, NULL); gtk_widget_ref (viewport); gtk_object_set_data_full (GTK_OBJECT (gui), "viewport", viewport, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (viewport); gtk_container_add (GTK_CONTAINER (scrolledwindow), viewport); area = gtk_drawing_area_new (); gtk_widget_ref (area); gtk_object_set_data_full (GTK_OBJECT (gui), "area", area, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (area); gtk_container_add (GTK_CONTAINER (viewport), area); gtk_widget_set_usize (area, -2, 1000); status_label = gtk_label_new (_("Displaying all traffic.")); gtk_widget_ref (status_label); gtk_object_set_data_full (GTK_OBJECT (gui), "status_label", status_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (status_label); gtk_box_pack_start (GTK_BOX (vbox_main), status_label, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (status_label), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (status_label), 0.5, 0); gtk_misc_set_padding (GTK_MISC (status_label), 5, 1); statusbar = GTK_LABEL(status_label); gtk_signal_connect (GTK_OBJECT (gui), "destroy", GTK_SIGNAL_FUNC (event_destroy), NULL); gtk_signal_connect (GTK_OBJECT (file_options), "activate", GTK_SIGNAL_FUNC (on_file_options_activate), options_dialog); gtk_signal_connect (GTK_OBJECT (file_clear_dns), "activate", GTK_SIGNAL_FUNC (on_file_clear_dns_activate), NULL); gtk_signal_connect (GTK_OBJECT (file_exit), "activate", GTK_SIGNAL_FUNC (on_file_exit_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_all), "activate", GTK_SIGNAL_FUNC (on_f_all_activate), NULL); gtk_signal_connect (GTK_OBJECT (by_address), "activate", GTK_SIGNAL_FUNC (on_by_address_activate), ip_filter_dialog->dialog); gtk_signal_connect (GTK_OBJECT (f_arp_all), "activate", GTK_SIGNAL_FUNC (on_f_arp_all_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_all), "activate", GTK_SIGNAL_FUNC (on_f_ip_all_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_icmp_all), "activate", GTK_SIGNAL_FUNC (on_f_ip_icmp_all_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_icmp_request), "activate", GTK_SIGNAL_FUNC (on_f_ip_icmp_request_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_icmp_reply), "activate", GTK_SIGNAL_FUNC (on_f_ip_icmp_reply_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_icmp_pair), "activate", GTK_SIGNAL_FUNC (on_f_ip_icmp_pair_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_igmp_all), "activate", GTK_SIGNAL_FUNC (on_f_ip_igmp_all_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_tcp_all), "activate", GTK_SIGNAL_FUNC (on_f_ip_tcp_all_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_tcp_http), "activate", GTK_SIGNAL_FUNC (on_f_ip_tcp_http_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_tcp_ftp), "activate", GTK_SIGNAL_FUNC (on_f_ip_tcp_ftp_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_tcp_ssh), "activate", GTK_SIGNAL_FUNC (on_f_ip_tcp_ssh_activate), NULL); gtk_signal_connect (GTK_OBJECT (f_ip_udp_all), "activate", GTK_SIGNAL_FUNC (on_f_ip_udp_all_activate), NULL); gtk_signal_connect (GTK_OBJECT (area), "configure_event", GTK_SIGNAL_FUNC (event_configure), NULL); gtk_signal_connect (GTK_OBJECT (area), "expose_event", GTK_SIGNAL_FUNC (event_expose), NULL); gtk_window_add_accel_group (GTK_WINDOW (gui), accel_group); gtk_timeout_add(1, draw_timer, (gpointer)area); return gui; } struct Options_Dialog_Context *create_options_dialog (void) { GtkWidget *options_dialog; GtkWidget *vbox2; GtkWidget *table1; GtkWidget *label2; GtkWidget *label3; GtkWidget *label4; GtkWidget *min_entry; GtkWidget *min_optionmenu; GtkWidget *min_optionmenu_menu; GtkWidget *glade_menuitem; GtkWidget *max_entry; GtkWidget *max_optionmenu; GtkWidget *max_optionmenu_menu; GtkObject *buffer_spin_adj; GtkWidget *buffer_spin; GtkWidget *hbox7; GtkWidget *option_ok; GtkWidget *options_cancel; struct Options_Dialog_Context *context; options_dialog = gtk_window_new (GTK_WINDOW_DIALOG); gtk_object_set_data (GTK_OBJECT (options_dialog), "options_dialog", options_dialog); gtk_window_set_title (GTK_WINDOW (options_dialog), _("Options")); gtk_window_set_position (GTK_WINDOW (options_dialog), GTK_WIN_POS_CENTER); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox2); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "vbox2", vbox2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (options_dialog), vbox2); table1 = gtk_table_new (3, 3, FALSE); gtk_widget_ref (table1); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "table1", table1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox2), table1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table1), 5); gtk_table_set_row_spacings (GTK_TABLE (table1), 5); gtk_table_set_col_spacings (GTK_TABLE (table1), 10); label2 = gtk_label_new (_("Buffer size (in seconds)")); gtk_widget_ref (label2); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "label2", label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label2); gtk_table_attach (GTK_TABLE (table1), label2, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); label3 = gtk_label_new (_("Minimum rate")); gtk_widget_ref (label3); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "label3", label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label3); gtk_table_attach (GTK_TABLE (table1), label3, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label3), 0, 0.5); label4 = gtk_label_new (_("Maximum rate")); gtk_widget_ref (label4); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "label4", label4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label4); gtk_table_attach (GTK_TABLE (table1), label4, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label4), 0, 0.5); min_optionmenu = gtk_option_menu_new (); gtk_widget_ref (min_optionmenu); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "min_optionmenu", min_optionmenu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (min_optionmenu); gtk_table_attach (GTK_TABLE (table1), min_optionmenu, 2, 3, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); min_optionmenu_menu = gtk_menu_new (); glade_menuitem = gtk_menu_item_new_with_label (_("bps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (min_optionmenu_menu), glade_menuitem); glade_menuitem = gtk_menu_item_new_with_label (_("Kbps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (min_optionmenu_menu), glade_menuitem); glade_menuitem = gtk_menu_item_new_with_label (_("Mbps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (min_optionmenu_menu), glade_menuitem); glade_menuitem = gtk_menu_item_new_with_label (_("Gbps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (min_optionmenu_menu), glade_menuitem); gtk_option_menu_set_menu (GTK_OPTION_MENU (min_optionmenu), min_optionmenu_menu); max_optionmenu = gtk_option_menu_new (); gtk_widget_ref (max_optionmenu); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "max_optionmenu", max_optionmenu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (max_optionmenu); gtk_table_attach (GTK_TABLE (table1), max_optionmenu, 2, 3, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); max_optionmenu_menu = gtk_menu_new (); glade_menuitem = gtk_menu_item_new_with_label (_("bps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (max_optionmenu_menu), glade_menuitem); glade_menuitem = gtk_menu_item_new_with_label (_("Kbps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (max_optionmenu_menu), glade_menuitem); glade_menuitem = gtk_menu_item_new_with_label (_("Mbps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (max_optionmenu_menu), glade_menuitem); glade_menuitem = gtk_menu_item_new_with_label (_("Gbps")); gtk_widget_show (glade_menuitem); gtk_menu_append (GTK_MENU (max_optionmenu_menu), glade_menuitem); gtk_option_menu_set_menu (GTK_OPTION_MENU (max_optionmenu), max_optionmenu_menu); buffer_spin_adj = gtk_adjustment_new (10, 1, 30, 1, 5, 5); buffer_spin = gtk_spin_button_new (GTK_ADJUSTMENT (buffer_spin_adj), 1, 0); gtk_widget_ref (buffer_spin); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "buffer_spin", buffer_spin, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (buffer_spin); gtk_table_attach (GTK_TABLE (table1), buffer_spin, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_usize (buffer_spin, 45, -2); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (buffer_spin), TRUE); min_entry = gtk_entry_new (); gtk_widget_ref (min_entry); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "min_entry", min_entry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (min_entry); gtk_table_attach (GTK_TABLE (table1), min_entry, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_usize (min_entry, 50, -2); max_entry = gtk_entry_new (); gtk_widget_ref (max_entry); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "max_entry", max_entry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (max_entry); gtk_table_attach (GTK_TABLE (table1), max_entry, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_usize (max_entry, 50, -2); hbox7 = gtk_hbox_new (TRUE, 10); gtk_widget_ref (hbox7); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "hbox7", hbox7, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox7); gtk_box_pack_start (GTK_BOX (vbox2), hbox7, TRUE, FALSE, 0); option_ok = gtk_button_new_with_label (_("OK")); gtk_widget_ref (option_ok); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "option_ok", option_ok, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (option_ok); gtk_box_pack_start (GTK_BOX (hbox7), option_ok, FALSE, TRUE, 0); options_cancel = gtk_button_new_with_label (_("Cancel")); gtk_widget_ref (options_cancel); gtk_object_set_data_full (GTK_OBJECT (options_dialog), "options_cancel", options_cancel, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (options_cancel); gtk_box_pack_start (GTK_BOX (hbox7), options_cancel, FALSE, TRUE, 0); context = malloc(sizeof(struct Options_Dialog_Context)); context->dialog = options_dialog; context->buf_size = GTK_SPIN_BUTTON(buffer_spin); context->min = GTK_ENTRY(min_entry); context->min_menu = GTK_MENU(min_optionmenu_menu); context->min_option = GTK_OPTION_MENU(min_optionmenu); context->max = GTK_ENTRY(max_entry); context->max_menu = GTK_MENU(max_optionmenu_menu); context->max_option = GTK_OPTION_MENU(max_optionmenu); gtk_signal_connect (GTK_OBJECT (option_ok), "clicked", GTK_SIGNAL_FUNC (on_option_ok_clicked), context); gtk_signal_connect (GTK_OBJECT (options_cancel), "clicked", GTK_SIGNAL_FUNC (on_options_cancel_clicked), options_dialog); return context; } struct IP_Filter_Dialog_Context* create_ip_filter_dialog (void) { GtkWidget *ip_filter_dialog; GtkWidget *vbox3; GtkWidget *addr_lbl; GtkWidget *hseparator1; GtkWidget *table2; GtkWidget *dst_filter_check; GtkWidget *hbox13; GtkWidget *src_1; GtkWidget *src_2; GtkWidget *src_3; GtkWidget *src_4; GtkWidget *hbox14; GtkWidget *dst_1; GtkWidget *dst_2; GtkWidget *dst_3; GtkWidget *dst_4; GtkWidget *vseparator1; GtkWidget *vseparator2; GtkWidget *src_filter_check; GtkWidget *hseparator2; GtkWidget *table4; GtkWidget *src_cidr; GtkWidget *hseparator7; GtkWidget *hseparator8; GtkWidget *hseparator9; GtkWidget *dst_cidr; GtkWidget *vseparator5; GtkWidget *vseparator4; GtkWidget *dst_cidr_lbl; GtkWidget *scr_cidr_lbl; GtkWidget *hbox8; GtkWidget *ok_button; GtkWidget *cancel_button; GtkWidget *table5; GtkWidget *src_ports; GtkWidget *dst_ports; GtkWidget *src_p_chk; GtkWidget *dst_p_chk; GtkWidget *vseparator6; GtkWidget *vseparator7; GtkWidget *hseparator10; GtkWidget *hseparator11; GtkWidget *hseparator12; GtkWidget *vbox4; GtkWidget *hbox15; GtkWidget *hbox16; struct IP_Filter_Dialog_Context *context; ip_filter_dialog = gtk_window_new (GTK_WINDOW_DIALOG); gtk_object_set_data (GTK_OBJECT (ip_filter_dialog), "ip_filter_dialog", ip_filter_dialog); gtk_container_set_border_width (GTK_CONTAINER (ip_filter_dialog), 5); gtk_window_set_title (GTK_WINDOW (ip_filter_dialog), _("IP Filter ...")); gtk_window_set_position (GTK_WINDOW (ip_filter_dialog), GTK_WIN_POS_MOUSE); vbox3 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox3); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "vbox3", vbox3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox3); gtk_container_add (GTK_CONTAINER (ip_filter_dialog), vbox3); addr_lbl = gtk_label_new (_("Please check filter option, and enter IP address.")); gtk_widget_ref (addr_lbl); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "addr_lbl", addr_lbl, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (addr_lbl); gtk_box_pack_start (GTK_BOX (vbox3), addr_lbl, FALSE, FALSE, 5); hseparator1 = gtk_hseparator_new (); gtk_widget_ref (hseparator1); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator1", hseparator1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator1); gtk_box_pack_start (GTK_BOX (vbox3), hseparator1, TRUE, TRUE, 0); table2 = gtk_table_new (2, 3, FALSE); gtk_widget_ref (table2); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "table2", table2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table2); gtk_box_pack_start (GTK_BOX (vbox3), table2, TRUE, TRUE, 0); dst_filter_check = gtk_check_button_new_with_label (_("Filter on Destination Address")); gtk_widget_ref (dst_filter_check); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_filter_check", dst_filter_check, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_filter_check); gtk_table_attach (GTK_TABLE (table2), dst_filter_check, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_container_set_border_width (GTK_CONTAINER (dst_filter_check), 2); hbox13 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (hbox13); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hbox13", hbox13, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox13); gtk_table_attach (GTK_TABLE (table2), hbox13, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); src_1 = gtk_entry_new_with_max_length (3); gtk_widget_ref (src_1); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_1", src_1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_1); gtk_box_pack_start (GTK_BOX (hbox13), src_1, TRUE, TRUE, 2); gtk_widget_set_usize (src_1, 30, -2); src_2 = gtk_entry_new_with_max_length (3); gtk_widget_ref (src_2); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_2", src_2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_2); gtk_box_pack_start (GTK_BOX (hbox13), src_2, TRUE, TRUE, 1); gtk_widget_set_usize (src_2, 30, -2); src_3 = gtk_entry_new_with_max_length (3); gtk_widget_ref (src_3); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_3", src_3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_3); gtk_box_pack_start (GTK_BOX (hbox13), src_3, TRUE, TRUE, 1); gtk_widget_set_usize (src_3, 30, -2); src_4 = gtk_entry_new_with_max_length (3); gtk_widget_ref (src_4); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_4", src_4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_4); gtk_box_pack_start (GTK_BOX (hbox13), src_4, TRUE, TRUE, 1); gtk_widget_set_usize (src_4, 30, -2); hbox14 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (hbox14); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hbox14", hbox14, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox14); gtk_table_attach (GTK_TABLE (table2), hbox14, 2, 3, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); dst_1 = gtk_entry_new_with_max_length (3); gtk_widget_ref (dst_1); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_1", dst_1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_1); gtk_box_pack_start (GTK_BOX (hbox14), dst_1, TRUE, TRUE, 1); gtk_widget_set_usize (dst_1, 30, -2); dst_2 = gtk_entry_new_with_max_length (3); gtk_widget_ref (dst_2); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_2", dst_2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_2); gtk_box_pack_start (GTK_BOX (hbox14), dst_2, TRUE, TRUE, 1); gtk_widget_set_usize (dst_2, 30, -2); dst_3 = gtk_entry_new_with_max_length (3); gtk_widget_ref (dst_3); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_3", dst_3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_3); gtk_box_pack_start (GTK_BOX (hbox14), dst_3, TRUE, TRUE, 1); gtk_widget_set_usize (dst_3, 30, -2); dst_4 = gtk_entry_new_with_max_length (3); gtk_widget_ref (dst_4); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_4", dst_4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_4); gtk_box_pack_start (GTK_BOX (hbox14), dst_4, TRUE, TRUE, 1); gtk_widget_set_usize (dst_4, 30, -2); vseparator1 = gtk_vseparator_new (); gtk_widget_ref (vseparator1); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "vseparator1", vseparator1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vseparator1); gtk_table_attach (GTK_TABLE (table2), vseparator1, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); vseparator2 = gtk_vseparator_new (); gtk_widget_ref (vseparator2); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "vseparator2", vseparator2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vseparator2); gtk_table_attach (GTK_TABLE (table2), vseparator2, 1, 2, 1, 2, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), 0, 0); src_filter_check = gtk_check_button_new_with_label (_("Filter on Source Address")); gtk_widget_ref (src_filter_check); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_filter_check", src_filter_check, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_filter_check); gtk_table_attach (GTK_TABLE (table2), src_filter_check, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 10, 0); gtk_container_set_border_width (GTK_CONTAINER (src_filter_check), 2); hseparator2 = gtk_hseparator_new (); gtk_widget_ref (hseparator2); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator2", hseparator2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator2); gtk_box_pack_start (GTK_BOX (vbox3), hseparator2, TRUE, TRUE, 0); table4 = gtk_table_new (3, 3, FALSE); gtk_widget_ref (table4); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "table4", table4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table4); gtk_box_pack_start (GTK_BOX (vbox3), table4, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table4), 1); src_cidr = gtk_entry_new_with_max_length (3); gtk_widget_ref (src_cidr); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_cidr", src_cidr, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_cidr); gtk_table_attach (GTK_TABLE (table4), src_cidr, 0, 1, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_usize (src_cidr, 50, -2); hseparator7 = gtk_hseparator_new (); gtk_widget_ref (hseparator7); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator7", hseparator7, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator7); gtk_table_attach (GTK_TABLE (table4), hseparator7, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); hseparator8 = gtk_hseparator_new (); gtk_widget_ref (hseparator8); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator8", hseparator8, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator8); gtk_table_attach (GTK_TABLE (table4), hseparator8, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); hseparator9 = gtk_hseparator_new (); gtk_widget_ref (hseparator9); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator9", hseparator9, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator9); gtk_table_attach (GTK_TABLE (table4), hseparator9, 2, 3, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); dst_cidr = gtk_entry_new_with_max_length (3); gtk_widget_ref (dst_cidr); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_cidr", dst_cidr, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_cidr); gtk_table_attach (GTK_TABLE (table4), dst_cidr, 2, 3, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_usize (dst_cidr, 50, -2); vseparator5 = gtk_vseparator_new (); gtk_widget_ref (vseparator5); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "vseparator5", vseparator5, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vseparator5); gtk_table_attach (GTK_TABLE (table4), vseparator5, 1, 2, 1, 2, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), 0, 0); vseparator4 = gtk_vseparator_new (); gtk_widget_ref (vseparator4); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "vseparator4", vseparator4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vseparator4); gtk_table_attach (GTK_TABLE (table4), vseparator4, 1, 2, 0, 1, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), 0, 0); dst_cidr_lbl = gtk_label_new (_("Destination CIDR netmask")); gtk_widget_ref (dst_cidr_lbl); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_cidr_lbl", dst_cidr_lbl, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_cidr_lbl); gtk_table_attach (GTK_TABLE (table4), dst_cidr_lbl, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 1, 1); gtk_label_set_justify (GTK_LABEL (dst_cidr_lbl), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (dst_cidr_lbl), 0, 0.5); gtk_misc_set_padding (GTK_MISC (dst_cidr_lbl), 5, 0); scr_cidr_lbl = gtk_label_new (_("Source CIDR netmask")); gtk_widget_ref (scr_cidr_lbl); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "scr_cidr_lbl", scr_cidr_lbl, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scr_cidr_lbl); gtk_table_attach (GTK_TABLE (table4), scr_cidr_lbl, 0, 1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 1, 1); gtk_label_set_justify (GTK_LABEL (scr_cidr_lbl), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment (GTK_MISC (scr_cidr_lbl), 0, 0.5); gtk_misc_set_padding (GTK_MISC (scr_cidr_lbl), 15, 0); // start table5 here table5 = gtk_table_new (3, 3, FALSE); gtk_widget_ref (table5); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "table5", table5, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table5); gtk_box_pack_start (GTK_BOX (vbox3), table5, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table5), 1); src_ports = gtk_entry_new_with_max_length (255); gtk_widget_ref (src_ports); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_ports", src_ports, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_ports); gtk_table_attach (GTK_TABLE (table5), src_ports, 0, 1, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_usize (src_ports, 50, -2); hseparator10 = gtk_hseparator_new (); gtk_widget_ref (hseparator10); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator10", hseparator10, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator10); gtk_table_attach (GTK_TABLE (table5), hseparator10, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); hseparator11 = gtk_hseparator_new (); gtk_widget_ref (hseparator11); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator11", hseparator11, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator11); gtk_table_attach (GTK_TABLE (table5), hseparator11, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); hseparator12 = gtk_hseparator_new (); gtk_widget_ref (hseparator12); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hseparator12", hseparator12, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hseparator12); gtk_table_attach (GTK_TABLE (table5), hseparator12, 2, 3, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); dst_ports = gtk_entry_new_with_max_length (255); gtk_widget_ref (dst_ports); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_ports", dst_ports, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_ports); gtk_table_attach (GTK_TABLE (table5), dst_ports, 2, 3, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_widget_set_usize (dst_ports, 50, -2); vseparator6 = gtk_vseparator_new (); gtk_widget_ref (vseparator6); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "vseparator6", vseparator6, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vseparator6); gtk_table_attach (GTK_TABLE (table5), vseparator6, 1, 2, 1, 2, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), 0, 0); vseparator7 = gtk_vseparator_new (); gtk_widget_ref (vseparator7); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "vseparator7", vseparator7, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vseparator7); gtk_table_attach (GTK_TABLE (table5), vseparator7, 1, 2, 0, 1, (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), (GtkAttachOptions) (GTK_SHRINK | GTK_FILL), 0, 0); src_p_chk = gtk_check_button_new_with_label (_("Filter on Source Ports")); gtk_widget_ref (src_p_chk); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "src_p_chk", src_p_chk, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (src_p_chk); gtk_table_attach (GTK_TABLE (table5), src_p_chk, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 10, 0); gtk_container_set_border_width (GTK_CONTAINER (src_p_chk), 2); dst_p_chk = gtk_check_button_new_with_label (_("Filter on Destination Ports")); gtk_widget_ref (dst_p_chk); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "dst_p_chk", dst_p_chk, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (dst_p_chk); gtk_table_attach (GTK_TABLE (table5), dst_p_chk, 2, 3, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_container_set_border_width (GTK_CONTAINER (dst_p_chk), 2); hbox8 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (hbox8); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "hbox8", hbox8, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox8); gtk_box_pack_start (GTK_BOX (vbox3), hbox8, TRUE, TRUE, 2); gtk_container_set_border_width (GTK_CONTAINER (hbox8), 1); ok_button = gtk_button_new_with_label (_("Ok")); gtk_widget_ref (ok_button); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "ok_button", ok_button, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (ok_button); gtk_box_pack_start (GTK_BOX (hbox8), ok_button, TRUE, FALSE, 1); gtk_widget_set_usize (ok_button, 50, -2); gtk_container_set_border_width (GTK_CONTAINER (ok_button), 1); cancel_button = gtk_button_new_with_label (_("Cancel")); gtk_widget_ref (cancel_button); gtk_object_set_data_full (GTK_OBJECT (ip_filter_dialog), "cancel_button", cancel_button, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (cancel_button); gtk_box_pack_start (GTK_BOX (hbox8), cancel_button, TRUE, FALSE, 1); gtk_widget_set_usize (cancel_button, 50, -2); gtk_container_set_border_width (GTK_CONTAINER (cancel_button), 1); context = malloc(sizeof(struct IP_Filter_Dialog_Context)); context->dialog = ip_filter_dialog; /* XXX */ context->src_chk = GTK_CHECK_BUTTON(src_filter_check); context->dst_chk = GTK_CHECK_BUTTON(dst_filter_check); context->src_entry_1 = GTK_ENTRY(src_1); context->src_entry_2 = GTK_ENTRY(src_2); context->src_entry_3 = GTK_ENTRY(src_3); context->src_entry_4 = GTK_ENTRY(src_4); context->dst_entry_1 = GTK_ENTRY(dst_1); context->dst_entry_2 = GTK_ENTRY(dst_2); context->dst_entry_3 = GTK_ENTRY(dst_3); context->dst_entry_4 = GTK_ENTRY(dst_4); context->src_cidr = GTK_ENTRY(src_cidr); context->dst_cidr = GTK_ENTRY(dst_cidr); context->src_port_chk = GTK_CHECK_BUTTON(src_p_chk); context->dst_port_chk = GTK_CHECK_BUTTON(dst_p_chk); context->src_port_entry = GTK_ENTRY(src_ports); context->dst_port_entry = GTK_ENTRY(dst_ports); gtk_signal_connect (GTK_OBJECT (ok_button), "clicked", GTK_SIGNAL_FUNC (on_filter_ok_clicked), context); gtk_signal_connect (GTK_OBJECT (cancel_button), "clicked", GTK_SIGNAL_FUNC (on_filter_cancel_clicked), ip_filter_dialog); return context; }