/*
* 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 <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#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;
}
syntax highlighted by Code2HTML, v. 0.9.1