/*
* This file is part of Gspoof-3 (a console/gtk+ tcp/ip packet forger)
*
* $Name: interface.c $
* $Version: 3.2 $
* $Date: 2003/12/22 16:30:03 $
* $Author: Embyte <embyte@madlab.it> $
* $Copyright: Copyright (C) 2002-2003 by embyte $
* $License: This software is under GPL version 2 of license $
*
*/
#include "config.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "ginclude.h" /* define payload and multi options */
#include "common.h"
#define GLADE_HOOKUP_OBJECT(component,widget,name) \
g_object_set_data_full (G_OBJECT (component), name, \
gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
g_object_set_data (G_OBJECT (component), name, widget)
GtkWidget* create_MainWin (void)
{
GtkWidget *MainWin;
GdkPixbuf *MainWin_icon_pixbuf;
GtkWidget *vbox1;
GtkWidget *vbox3;
GtkWidget *menubar1;
GtkWidget *menuitem1;
GtkWidget *menuitem1_menu;
GtkWidget *new1;
GtkWidget *image25;
GtkWidget *about1;
GtkWidget *image26;
GtkWidget *quit1;
GtkWidget *image27;
GtkWidget *options1;
GtkWidget *options1_menu;
GtkWidget *full_mode2;
GtkWidget *debug_check;
GtkWidget *add_data2;
GtkWidget *image28;
GtkWidget *send_multi_packets1;
GtkWidget *image29;
GtkWidget *image30;
GtkWidget *MainTable;
GtkWidget *MainFieldBox;
GtkWidget *NetworkFrame;
GtkWidget *network_hbox;
GtkWidget *network_vboxsx;
GtkWidget *label8;
GtkWidget *label9;
GtkWidget *label10;
GtkWidget *label11;
GtkWidget *label12;
GtkWidget *network_vboxdx;
GtkWidget *NetworkText;
GtkWidget *Transport_Frame;
GtkWidget *transport_hbox;
GtkWidget *transport_vboxsx;
GtkWidget *label19;
GtkWidget *label18;
GtkWidget *label16;
GtkWidget *label15;
GtkWidget *label14;
GtkWidget *label13;
GtkWidget *transport_vboxdx;
GtkWidget *TransportText;
GtkWidget *datalink_hbox;
GtkWidget *datalink_vboxsx;
GtkWidget *label4;
GtkWidget *label5;
GtkWidget *label6;
GtkWidget *label7;
GtkWidget *datalink_vboxdx;
GtkWidget *DatalinkText;
GtkWidget *SendBox;
GtkWidget *SendButton;
GtkWidget *ecn_support1;
GtkTooltips *tooltips;
GList *items;
tooltips = gtk_tooltips_new ();
MainWin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (MainWin, 640, 480);
gtk_window_set_title (GTK_WINDOW (MainWin), BANNER);
gtk_window_set_position (GTK_WINDOW (MainWin), GTK_WIN_POS_CENTER);
MainWin_icon_pixbuf = create_pixbuf ("icon.png");
if (MainWin_icon_pixbuf)
{
gtk_window_set_icon (GTK_WINDOW (MainWin), MainWin_icon_pixbuf);
gdk_pixbuf_unref (MainWin_icon_pixbuf);
}
vbox1 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox1);
gtk_container_add (GTK_CONTAINER (MainWin), vbox1);
menubar1 = gtk_menu_bar_new ();
gtk_widget_show (menubar1);
gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);
menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File"));
gtk_widget_show (menuitem1);
gtk_container_add (GTK_CONTAINER (menubar1), menuitem1);
menuitem1_menu = gtk_menu_new ();
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu);
new1 = gtk_image_menu_item_new_with_mnemonic (_("New"));
gtk_widget_show (new1);
gtk_container_add (GTK_CONTAINER (menuitem1_menu), new1);
image25 = gtk_image_new_from_stock ("gtk-clear", GTK_ICON_SIZE_MENU);
gtk_widget_show (image25);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new1), image25);
about1 = gtk_image_menu_item_new_with_mnemonic (_("About"));
gtk_widget_show (about1);
gtk_container_add (GTK_CONTAINER (menuitem1_menu), about1);
image26 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_MENU);
gtk_widget_show (image26);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (about1), image26);
quit1 = gtk_image_menu_item_new_with_mnemonic (_("Quit"));
gtk_widget_show (quit1);
gtk_container_add (GTK_CONTAINER (menuitem1_menu), quit1);
image27 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_MENU);
gtk_widget_show (image27);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (quit1), image27);
options1 = gtk_menu_item_new_with_mnemonic (_("_Options"));
gtk_widget_show (options1);
gtk_container_add (GTK_CONTAINER (menubar1), options1);
options1_menu = gtk_menu_new ();
gtk_menu_item_set_submenu (GTK_MENU_ITEM (options1), options1_menu);
add_data2 = gtk_image_menu_item_new_with_mnemonic (_("Add data"));
gtk_widget_show (add_data2);
gtk_container_add (GTK_CONTAINER (options1_menu), add_data2);
image28 = gtk_image_new_from_stock ("gtk-justify-center", GTK_ICON_SIZE_MENU);
gtk_widget_show (image28);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_data2), image28);
send_multi_packets1 = gtk_image_menu_item_new_with_mnemonic (_("Send multi packets"));
gtk_widget_show (send_multi_packets1);
gtk_container_add (GTK_CONTAINER (options1_menu), send_multi_packets1);
image29 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_MENU);
gtk_widget_show (image29);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (send_multi_packets1), image29);
ecn_support1 = gtk_image_menu_item_new_with_mnemonic (_("ECN support"));
gtk_widget_show (ecn_support1);
gtk_container_add (GTK_CONTAINER (options1_menu), ecn_support1);
image30 = gtk_image_new_from_stock ("gtk-yes", GTK_ICON_SIZE_MENU);
gtk_widget_show (image30);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (ecn_support1), image30);
full_mode2 = gtk_check_menu_item_new_with_mnemonic (_("Full mode"));
gtk_widget_show (full_mode2);
gtk_container_add (GTK_CONTAINER (options1_menu), full_mode2);
debug_check = gtk_check_menu_item_new_with_mnemonic (_("Debug"));
gtk_widget_show (debug_check);
gtk_container_add (GTK_CONTAINER (options1_menu), debug_check);
MainTable = gtk_vbox_new (FALSE, 0);
gtk_widget_show (MainTable);
gtk_box_pack_start (GTK_BOX (vbox1), MainTable, TRUE, TRUE, 0);
MainFieldBox = gtk_table_new (1, 3, TRUE);
gtk_widget_show (MainFieldBox);
gtk_box_pack_start (GTK_BOX (MainTable), MainFieldBox, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (MainFieldBox), 1);
gtk_table_set_col_spacings (GTK_TABLE (MainFieldBox), 1);
NetworkFrame = gtk_frame_new (NULL);
gtk_widget_show (NetworkFrame);
gtk_table_attach (GTK_TABLE (MainFieldBox), NetworkFrame, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
network_hbox = gtk_hbox_new (FALSE, 0);
gtk_widget_show (network_hbox);
gtk_container_add (GTK_CONTAINER (NetworkFrame), network_hbox);
gtk_container_set_border_width (GTK_CONTAINER (network_hbox), 5);
network_vboxsx = gtk_vbox_new (TRUE, 0);
gtk_widget_show (network_vboxsx);
gtk_box_pack_start (GTK_BOX (network_hbox), network_vboxsx, TRUE, TRUE, 0);
gtk_widget_set_size_request (network_vboxsx, 90, -1);
label8 = gtk_label_new (_("Src addr "));
gtk_widget_show (label8);
gtk_box_pack_start (GTK_BOX (network_vboxsx), label8, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label8), GTK_JUSTIFY_LEFT);
gtk_misc_set_padding (GTK_MISC (label8), 2, 0);
label9 = gtk_label_new (_("Dst addr"));
gtk_widget_show (label9);
gtk_box_pack_start (GTK_BOX (network_vboxsx), label9, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label9), GTK_JUSTIFY_LEFT);
label10 = gtk_label_new (_("TTL"));
gtk_widget_show (label10);
gtk_box_pack_start (GTK_BOX (network_vboxsx), label10, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label10), GTK_JUSTIFY_LEFT);
label11 = gtk_label_new (_("ID"));
gtk_widget_show (label11);
gtk_box_pack_start (GTK_BOX (network_vboxsx), label11, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label11), GTK_JUSTIFY_LEFT);
label12 = gtk_label_new (_("TOS"));
gtk_widget_show (label12);
gtk_box_pack_start (GTK_BOX (network_vboxsx), label12, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label12), GTK_JUSTIFY_LEFT);
network_vboxdx = gtk_vbox_new (TRUE, 0);
gtk_widget_show (network_vboxdx);
gtk_box_pack_start (GTK_BOX (network_hbox), network_vboxdx, TRUE, TRUE, 0);
srcaddr_entry = gtk_entry_new ();
gtk_widget_show (srcaddr_entry);
gtk_box_pack_start (GTK_BOX (network_vboxdx), srcaddr_entry, FALSE, FALSE, 0);
gtk_entry_set_max_length (GTK_ENTRY (srcaddr_entry), 15);
dstaddr_entry = gtk_entry_new ();
gtk_widget_show (dstaddr_entry);
gtk_box_pack_start (GTK_BOX (network_vboxdx), dstaddr_entry, FALSE, FALSE, 0);
gtk_entry_set_max_length (GTK_ENTRY (dstaddr_entry), 15);
ttl_entry = gtk_entry_new ();
gtk_widget_show (ttl_entry);
gtk_box_pack_start (GTK_BOX (network_vboxdx), ttl_entry, FALSE, FALSE, 0);
gtk_entry_set_max_length (GTK_ENTRY (ttl_entry), 3);
id_entry = gtk_entry_new ();
gtk_widget_show (id_entry);
gtk_box_pack_start (GTK_BOX (network_vboxdx), id_entry, FALSE, FALSE, 0);
gtk_entry_set_max_length (GTK_ENTRY (id_entry), 5);
tos_entry = gtk_entry_new ();
gtk_widget_show (tos_entry);
gtk_box_pack_start (GTK_BOX (network_vboxdx), tos_entry, FALSE, FALSE, 0);
gtk_editable_set_editable (GTK_EDITABLE (tos_entry), FALSE);
NetworkText = gtk_label_new (_("Network Layer"));
gtk_widget_show (NetworkText);
gtk_frame_set_label_widget (GTK_FRAME (NetworkFrame), NetworkText);
gtk_label_set_justify (GTK_LABEL (NetworkText), GTK_JUSTIFY_LEFT);
Transport_Frame = gtk_frame_new (NULL);
gtk_widget_show (Transport_Frame);
gtk_table_attach (GTK_TABLE (MainFieldBox), Transport_Frame, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
transport_hbox = gtk_hbox_new (FALSE, 0);
gtk_widget_show (transport_hbox);
gtk_container_add (GTK_CONTAINER (Transport_Frame), transport_hbox);
gtk_container_set_border_width (GTK_CONTAINER (transport_hbox), 6);
transport_vboxsx = gtk_vbox_new (TRUE, 0);
gtk_widget_show (transport_vboxsx);
gtk_box_pack_start (GTK_BOX (transport_hbox), transport_vboxsx, TRUE, TRUE, 0);
gtk_widget_set_size_request (transport_vboxsx, 90, -1);
label19 = gtk_label_new (_("Src port "));
gtk_widget_show (label19);
gtk_box_pack_start (GTK_BOX (transport_vboxsx), label19, FALSE, FALSE, 0);
gtk_misc_set_padding (GTK_MISC (label19), 3, 0);
label18 = gtk_label_new (_("Dst port"));
gtk_widget_show (label18);
gtk_box_pack_start (GTK_BOX (transport_vboxsx), label18, FALSE, FALSE, 0);
vbox3 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox3);
gtk_box_pack_start (GTK_BOX (transport_vboxsx), vbox3, FALSE, FALSE, 0);
ece_checkbutton = gtk_check_button_new_with_mnemonic (_("ECE"));
gtk_widget_show (ece_checkbutton);
gtk_box_pack_start (GTK_BOX (vbox3), ece_checkbutton, FALSE, FALSE, 0);
cwr_checkbutton = gtk_check_button_new_with_mnemonic (_("CWR"));
gtk_widget_show (cwr_checkbutton);
gtk_box_pack_start (GTK_BOX (vbox3), cwr_checkbutton, FALSE, FALSE, 0);
label16 = gtk_label_new (_("SEQ"));
gtk_widget_show (label16);
gtk_box_pack_start (GTK_BOX (transport_vboxsx), label16, FALSE, FALSE, 0);
label15 = gtk_label_new (_("ACK"));
gtk_widget_show (label15);
gtk_box_pack_start (GTK_BOX (transport_vboxsx), label15, FALSE, FALSE, 0);
label14 = gtk_label_new (_("Win Size"));
gtk_widget_show (label14);
gtk_box_pack_start (GTK_BOX (transport_vboxsx), label14, FALSE, FALSE, 0);
label13 = gtk_label_new (_("URG"));
gtk_widget_show (label13);
gtk_box_pack_start (GTK_BOX (transport_vboxsx), label13, FALSE, FALSE, 0);
transport_vboxdx = gtk_vbox_new (TRUE, 0);
gtk_widget_show (transport_vboxdx);
gtk_box_pack_start (GTK_BOX (transport_hbox), transport_vboxdx, TRUE, TRUE, 0);
srcport_entry = gtk_entry_new ();
gtk_widget_show (srcport_entry);
gtk_box_pack_start (GTK_BOX (transport_vboxdx), srcport_entry, FALSE, FALSE, 0);
dstport_entry = gtk_entry_new ();
gtk_widget_show (dstport_entry);
gtk_box_pack_start (GTK_BOX (transport_vboxdx), dstport_entry, FALSE, FALSE, 0);
flags_table = gtk_table_new (3, 2, FALSE);
gtk_widget_show (flags_table);
gtk_box_pack_start (GTK_BOX (transport_vboxdx), flags_table, TRUE, FALSE, 0);
gtk_table_set_col_spacings (GTK_TABLE (flags_table), 17);
syn_checkbutton = gtk_check_button_new_with_mnemonic (_("SYN"));
gtk_widget_show (syn_checkbutton);
gtk_table_attach (GTK_TABLE (flags_table), syn_checkbutton, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (syn_checkbutton), TRUE);
fin_checkbutton = gtk_check_button_new_with_mnemonic (_("FIN"));
gtk_widget_show (fin_checkbutton);
gtk_table_attach (GTK_TABLE (flags_table), fin_checkbutton, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
push_checkbutton = gtk_check_button_new_with_mnemonic (_("PUSH"));
gtk_widget_show (push_checkbutton);
gtk_table_attach (GTK_TABLE (flags_table), push_checkbutton, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
ack_checkbutton = gtk_check_button_new_with_mnemonic (_("ACK"));
gtk_widget_show (ack_checkbutton);
gtk_table_attach (GTK_TABLE (flags_table), ack_checkbutton, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
rst_checkbutton = gtk_check_button_new_with_mnemonic (_("RST"));
gtk_widget_show (rst_checkbutton);
gtk_table_attach (GTK_TABLE (flags_table), rst_checkbutton, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
urg_checkbutton = gtk_check_button_new_with_mnemonic (_("URG"));
gtk_widget_show (urg_checkbutton);
gtk_table_attach (GTK_TABLE (flags_table), urg_checkbutton, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
seq_entry = gtk_entry_new ();
gtk_widget_show (seq_entry);
gtk_box_pack_start (GTK_BOX (transport_vboxdx), seq_entry, FALSE, FALSE, 0);
ack_entry = gtk_entry_new ();
gtk_widget_show (ack_entry);
gtk_box_pack_start (GTK_BOX (transport_vboxdx), ack_entry, FALSE, FALSE, 0);
win_entry = gtk_entry_new ();
gtk_widget_show (win_entry);
gtk_box_pack_start (GTK_BOX (transport_vboxdx), win_entry, FALSE, FALSE, 0);
urg_entry = gtk_entry_new ();
gtk_widget_show (urg_entry);
gtk_box_pack_start (GTK_BOX (transport_vboxdx), urg_entry, FALSE, FALSE, 0);
TransportText = gtk_label_new (_("Transport Layer"));
gtk_widget_show (TransportText);
gtk_frame_set_label_widget (GTK_FRAME (Transport_Frame), TransportText);
DatalinkFrame = gtk_frame_new (NULL);
gtk_widget_show (DatalinkFrame);
gtk_table_attach (GTK_TABLE (MainFieldBox), DatalinkFrame, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
datalink_hbox = gtk_hbox_new (FALSE, 0);
gtk_widget_show (datalink_hbox);
gtk_container_add (GTK_CONTAINER (DatalinkFrame), datalink_hbox);
gtk_container_set_border_width (GTK_CONTAINER (datalink_hbox), 5);
datalink_vboxsx = gtk_vbox_new (TRUE, 0);
gtk_widget_show (datalink_vboxsx);
gtk_box_pack_start (GTK_BOX (datalink_hbox), datalink_vboxsx, TRUE, TRUE, 0);
gtk_widget_set_size_request (datalink_vboxsx, 90, -1);
label4 = gtk_label_new (_("Iface "));
gtk_widget_show (label4);
gtk_box_pack_start (GTK_BOX (datalink_vboxsx), label4, FALSE, FALSE, 0);
gtk_label_set_line_wrap (GTK_LABEL (label4), TRUE);
gtk_misc_set_padding (GTK_MISC (label4), 13, 0);
label5 = gtk_label_new (_("Src mac"));
gtk_widget_show (label5);
gtk_box_pack_start (GTK_BOX (datalink_vboxsx), label5, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_LEFT);
label6 = gtk_label_new (_("Dst mac"));
gtk_widget_show (label6);
gtk_box_pack_start (GTK_BOX (datalink_vboxsx), label6, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT);
label7 = gtk_label_new (_("Eth Type"));
gtk_widget_show (label7);
gtk_box_pack_start (GTK_BOX (datalink_vboxsx), label7, FALSE, FALSE, 0);
datalink_vboxdx = gtk_vbox_new (TRUE, 0);
gtk_widget_show (datalink_vboxdx);
gtk_box_pack_start (GTK_BOX (datalink_hbox), datalink_vboxdx, TRUE, TRUE, 0);
iface_entry = gtk_entry_new ();
gtk_widget_show (iface_entry);
gtk_box_pack_start (GTK_BOX (datalink_vboxdx), iface_entry, FALSE, FALSE, 0);
gtk_entry_set_max_length (GTK_ENTRY (iface_entry), 9);
srcmac_entry = gtk_entry_new ();
gtk_widget_show (srcmac_entry);
gtk_box_pack_start (GTK_BOX (datalink_vboxdx), srcmac_entry, FALSE, FALSE, 0);
gtk_entry_set_max_length (GTK_ENTRY (srcmac_entry), 17);
dstmac_entry = gtk_entry_new ();
gtk_widget_show (dstmac_entry);
gtk_box_pack_start (GTK_BOX (datalink_vboxdx), dstmac_entry, FALSE, FALSE, 0);
gtk_entry_set_max_length (GTK_ENTRY (dstmac_entry), 17);
ethtype_combo = gtk_combo_new ();
items = NULL;
items = g_list_append (items, "IP");
items = g_list_append (items, "LOOPBACK");
gtk_combo_set_popdown_strings (GTK_COMBO (ethtype_combo), items);
g_object_set_data (G_OBJECT (GTK_COMBO (ethtype_combo)->popwin),
"GladeParentKey", ethtype_combo);
gtk_widget_show (ethtype_combo);
gtk_box_pack_start (GTK_BOX (datalink_vboxdx), ethtype_combo, FALSE, FALSE, 0);
ethtype_combo_entry = GTK_COMBO (ethtype_combo)->entry;
gtk_widget_show (ethtype_combo_entry);
DatalinkText = gtk_label_new (_("Datalink Layer"));
gtk_widget_show (DatalinkText);
gtk_frame_set_label_widget (GTK_FRAME (DatalinkFrame), DatalinkText);
gtk_label_set_justify (GTK_LABEL (DatalinkText), GTK_JUSTIFY_LEFT);
SendBox = gtk_hbox_new (FALSE, 0);
gtk_widget_show (SendBox);
gtk_box_pack_start (GTK_BOX (MainTable), SendBox, FALSE, TRUE, 0);
gtk_widget_set_usize (SendBox, -2, 70);
SendButton = gtk_button_new_with_mnemonic (_("Send"));
gtk_widget_show (SendButton);
gtk_box_pack_start (GTK_BOX (SendBox), SendButton, FALSE, FALSE, 0);
VerticalScroll = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (VerticalScroll);
gtk_box_pack_start (GTK_BOX (SendBox), VerticalScroll, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (VerticalScroll), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
TextView = gtk_text_view_new ();
gtk_widget_show (TextView);
gtk_container_add (GTK_CONTAINER (VerticalScroll), TextView);
gtk_widget_set_sensitive (TextView, FALSE);
gtk_text_view_set_editable (GTK_TEXT_VIEW (TextView), FALSE);
gtk_text_view_set_justification (GTK_TEXT_VIEW (TextView), GTK_JUSTIFY_LEFT);
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (TextView), GTK_WRAP_WORD);
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (TextView), 15);
gtk_text_view_set_right_margin (GTK_TEXT_VIEW (TextView), 15);
/* Datalink work disable for default */
gtk_widget_set_sensitive (DatalinkFrame, FALSE);
/* SIGNALS */
g_signal_connect ((gpointer) MainWin, "delete_event",
G_CALLBACK (on_MainWin_delete_event),
NULL);
g_signal_connect ((gpointer) new1, "activate",
G_CALLBACK (on_new1_activate),
NULL);
g_signal_connect ((gpointer) about1, "activate",
G_CALLBACK (on_about1_activate),
NULL);
g_signal_connect ((gpointer) quit1, "activate",
G_CALLBACK (on_quit1_activate),
NULL);
g_signal_connect ((gpointer) full_mode2, "toggled",
G_CALLBACK (on_full_mode2_activate),
NULL);
g_signal_connect ((gpointer) debug_check, "toggled",
G_CALLBACK (on_debug_check_activate),
NULL);
g_signal_connect ((gpointer) add_data2, "activate",
G_CALLBACK (on_add_data2_activate),
NULL);
g_signal_connect ((gpointer) send_multi_packets1, "activate",
G_CALLBACK (on_send_multi_packets1_activate),
NULL);
g_signal_connect ((gpointer) ecn_support1, "activate",
G_CALLBACK (on_ecn_support1_activate),
NULL);
g_signal_connect ((gpointer) syn_checkbutton, "toggled",
G_CALLBACK (on_syn_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) fin_checkbutton, "toggled",
G_CALLBACK (on_fin_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) push_checkbutton, "toggled",
G_CALLBACK (on_push_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) ack_checkbutton, "toggled",
G_CALLBACK (on_ack_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) rst_checkbutton, "toggled",
G_CALLBACK (on_rst_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) urg_checkbutton, "toggled",
G_CALLBACK (on_urg_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) ece_checkbutton, "toggled",
G_CALLBACK (on_ece_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) cwr_checkbutton, "toggled",
G_CALLBACK (on_cwr_checkbutton_toggled),
NULL);
g_signal_connect ((gpointer) SendButton, "clicked",
G_CALLBACK (on_SendButton_clicked),
NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (MainWin, MainWin, "MainWin");
GLADE_HOOKUP_OBJECT (MainWin, vbox1, "vbox1");
GLADE_HOOKUP_OBJECT (MainWin, menubar1, "menubar1");
GLADE_HOOKUP_OBJECT (MainWin, menuitem1, "menuitem1");
GLADE_HOOKUP_OBJECT (MainWin, menuitem1_menu, "menuitem1_menu");
GLADE_HOOKUP_OBJECT (MainWin, new1, "new1");
GLADE_HOOKUP_OBJECT (MainWin, image25, "image25");
GLADE_HOOKUP_OBJECT (MainWin, about1, "about1");
GLADE_HOOKUP_OBJECT (MainWin, image26, "image26");
GLADE_HOOKUP_OBJECT (MainWin, quit1, "quit1");
GLADE_HOOKUP_OBJECT (MainWin, image27, "image27");
GLADE_HOOKUP_OBJECT (MainWin, options1, "options1");
GLADE_HOOKUP_OBJECT (MainWin, options1_menu, "options1_menu");
GLADE_HOOKUP_OBJECT (MainWin, full_mode2, "full_mode2");
GLADE_HOOKUP_OBJECT (MainWin, add_data2, "add_data2");
GLADE_HOOKUP_OBJECT (MainWin, image28, "image28");
GLADE_HOOKUP_OBJECT (MainWin, send_multi_packets1, "send_multi_packets1");
GLADE_HOOKUP_OBJECT (MainWin, image29, "image29");
GLADE_HOOKUP_OBJECT (MainWin, MainTable, "MainTable");
GLADE_HOOKUP_OBJECT (MainWin, MainFieldBox, "MainFieldBox");
GLADE_HOOKUP_OBJECT (MainWin, NetworkFrame, "NetworkFrame");
GLADE_HOOKUP_OBJECT (MainWin, network_hbox, "network_hbox");
GLADE_HOOKUP_OBJECT (MainWin, network_vboxsx, "network_vboxsx");
GLADE_HOOKUP_OBJECT (MainWin, label8, "label8");
GLADE_HOOKUP_OBJECT (MainWin, label9, "label9");
GLADE_HOOKUP_OBJECT (MainWin, label10, "label10");
GLADE_HOOKUP_OBJECT (MainWin, label11, "label11");
GLADE_HOOKUP_OBJECT (MainWin, label12, "label12");
GLADE_HOOKUP_OBJECT (MainWin, network_vboxdx, "network_vboxdx");
GLADE_HOOKUP_OBJECT (MainWin, srcaddr_entry, "srcaddr_entry");
GLADE_HOOKUP_OBJECT (MainWin, dstaddr_entry, "dstaddr_entry");
GLADE_HOOKUP_OBJECT (MainWin, ttl_entry, "ttl_entry");
GLADE_HOOKUP_OBJECT (MainWin, id_entry, "id_entry");
GLADE_HOOKUP_OBJECT (MainWin, tos_entry, "tos_entry");
GLADE_HOOKUP_OBJECT (MainWin, NetworkText, "NetworkText");
GLADE_HOOKUP_OBJECT (MainWin, Transport_Frame, "Transport_Frame");
GLADE_HOOKUP_OBJECT (MainWin, transport_hbox, "transport_hbox");
GLADE_HOOKUP_OBJECT (MainWin, transport_vboxsx, "transport_vboxsx");
GLADE_HOOKUP_OBJECT (MainWin, label19, "label19");
GLADE_HOOKUP_OBJECT (MainWin, label18, "label18");
GLADE_HOOKUP_OBJECT (MainWin, label16, "label16");
GLADE_HOOKUP_OBJECT (MainWin, label15, "label15");
GLADE_HOOKUP_OBJECT (MainWin, label14, "label14");
GLADE_HOOKUP_OBJECT (MainWin, label13, "label13");
GLADE_HOOKUP_OBJECT (MainWin, transport_vboxdx, "transport_vboxdx");
GLADE_HOOKUP_OBJECT (MainWin, srcport_entry, "srcport_entry");
GLADE_HOOKUP_OBJECT (MainWin, dstport_entry, "dstport_entry");
GLADE_HOOKUP_OBJECT (MainWin, flags_table, "flags_table");
GLADE_HOOKUP_OBJECT (MainWin, syn_checkbutton, "syn_checkbutton");
GLADE_HOOKUP_OBJECT (MainWin, fin_checkbutton, "fin_checkbutton");
GLADE_HOOKUP_OBJECT (MainWin, push_checkbutton, "push_checkbutton");
GLADE_HOOKUP_OBJECT (MainWin, ack_checkbutton, "ack_checkbutton");
GLADE_HOOKUP_OBJECT (MainWin, rst_checkbutton, "rst_checkbutton");
GLADE_HOOKUP_OBJECT (MainWin, urg_checkbutton, "urg_checkbutton");
GLADE_HOOKUP_OBJECT (MainWin, seq_entry, "seq_entry");
GLADE_HOOKUP_OBJECT (MainWin, ack_entry, "ack_entry");
GLADE_HOOKUP_OBJECT (MainWin, win_entry, "win_entry");
GLADE_HOOKUP_OBJECT (MainWin, urg_entry, "urg_entry");
GLADE_HOOKUP_OBJECT (MainWin, TransportText, "TransportText");
GLADE_HOOKUP_OBJECT (MainWin, DatalinkFrame, "DatalinkFrame");
GLADE_HOOKUP_OBJECT (MainWin, datalink_hbox, "datalink_hbox");
GLADE_HOOKUP_OBJECT (MainWin, datalink_vboxsx, "datalink_vboxsx");
GLADE_HOOKUP_OBJECT (MainWin, label4, "label4");
GLADE_HOOKUP_OBJECT (MainWin, label5, "label5");
GLADE_HOOKUP_OBJECT (MainWin, label6, "label6");
GLADE_HOOKUP_OBJECT (MainWin, label7, "label7");
GLADE_HOOKUP_OBJECT (MainWin, datalink_vboxdx, "datalink_vboxdx");
GLADE_HOOKUP_OBJECT (MainWin, iface_entry, "iface_entry");
GLADE_HOOKUP_OBJECT (MainWin, srcmac_entry, "srcmac_entry");
GLADE_HOOKUP_OBJECT (MainWin, dstmac_entry, "dstmac_entry");
GLADE_HOOKUP_OBJECT (MainWin, ethtype_combo, "ethtype_combo");
GLADE_HOOKUP_OBJECT (MainWin, ethtype_combo_entry, "ethtype_combo_entry");
GLADE_HOOKUP_OBJECT (MainWin, DatalinkText, "DatalinkText");
GLADE_HOOKUP_OBJECT (MainWin, SendBox, "SendBox");
GLADE_HOOKUP_OBJECT (MainWin, SendButton, "SendButton");
GLADE_HOOKUP_OBJECT (MainWin, VerticalScroll, "VerticalScroll");
GLADE_HOOKUP_OBJECT (MainWin, TextView, "TextView");
GLADE_HOOKUP_OBJECT (MainWin, ece_checkbutton, "ece_button");
GLADE_HOOKUP_OBJECT (MainWin, cwr_checkbutton, "cwr_button");
GLADE_HOOKUP_OBJECT (MainWin, vbox3, "vbox3");
GLADE_HOOKUP_OBJECT_NO_REF (MainWin, tooltips, "tooltips");
return MainWin;
}
GtkWidget* create_DataWin (void)
{
GtkWidget *DataWin;
GtkWidget *DataButton;
GtkWidget *vbox2;
GtkWidget *hbox2;
GtkWidget *alignment1;
GtkWidget *hbox3;
GtkWidget *image24;
GtkWidget *label2;
GdkPixbuf *DataWin_icon_pixbuf;
DataWin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_extension_events (DataWin, GDK_EXTENSION_EVENTS_CURSOR);
gtk_window_set_title (GTK_WINDOW (DataWin), _("Payload options"));
gtk_window_set_position (GTK_WINDOW (DataWin), GTK_WIN_POS_CENTER);
DataWin_icon_pixbuf = create_pixbuf ("icon.png");
if (DataWin_icon_pixbuf)
{
gtk_window_set_icon (GTK_WINDOW (DataWin), DataWin_icon_pixbuf);
gdk_pixbuf_unref (DataWin_icon_pixbuf);
}
vbox2 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox2);
gtk_container_add (GTK_CONTAINER (DataWin), vbox2);
hbox2 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox2);
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
DataButton = gtk_check_button_new ();
gtk_widget_show (DataButton);
if (ck.data)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (DataButton), TRUE);
else
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (DataButton), FALSE);
gtk_box_pack_start (GTK_BOX (hbox2), DataButton, FALSE, FALSE, 68);
alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_widget_show (alignment1);
gtk_container_add (GTK_CONTAINER (DataButton), alignment1);
hbox3 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox3);
gtk_container_add (GTK_CONTAINER (alignment1), hbox3);
image24 = gtk_image_new_from_stock ("gtk-justify-center", GTK_ICON_SIZE_BUTTON);
gtk_widget_show (image24);
gtk_box_pack_start (GTK_BOX (hbox3), image24, FALSE, FALSE, 0);
label2 = gtk_label_new_with_mnemonic (_("Enable TCP payload"));
gtk_widget_show (label2);
gtk_box_pack_start (GTK_BOX (hbox3), label2, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT);
DataEntry = gtk_entry_new ();
gtk_widget_show (DataEntry);
gtk_box_pack_start (GTK_BOX (vbox2), DataEntry, TRUE, TRUE, 0);
gtk_widget_set_size_request (DataEntry, 300, -2);
gtk_entry_set_max_length (GTK_ENTRY (DataEntry), 128); /* char data[128] */
gtk_entry_set_text (GTK_ENTRY(DataEntry), data);
if (ck.data)
gtk_widget_set_sensitive (DataEntry, TRUE);
else
gtk_widget_set_sensitive (DataEntry, FALSE);
g_signal_connect ((gpointer) DataButton, "toggled",
G_CALLBACK (on_DataButton_toggled),
NULL);
g_signal_connect ((gpointer) DataEntry, "changed",
G_CALLBACK (on_DataEntry_changed),
NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (DataWin, DataWin, "DataWin");
GLADE_HOOKUP_OBJECT (DataWin, vbox2, "vbox2");
GLADE_HOOKUP_OBJECT (DataWin, hbox2, "hbox2");
GLADE_HOOKUP_OBJECT (DataWin, DataButton, "DataButton");
GLADE_HOOKUP_OBJECT (DataWin, alignment1, "alignment1");
GLADE_HOOKUP_OBJECT (DataWin, hbox3, "hbox3");
GLADE_HOOKUP_OBJECT (DataWin, image24, "image24");
GLADE_HOOKUP_OBJECT (DataWin, label2, "label2");
GLADE_HOOKUP_OBJECT (DataWin, DataEntry, "DataEntry");
return DataWin;
}
GtkWidget* create_MultiPackets (void)
{
GtkWidget *MultiPackets;
GdkPixbuf *MultiPackets_icon_pixbuf;
GtkWidget *Multi_Table;
GtkWidget *NumberMulti;
GtkWidget *DelayMulti;
GtkWidget *MultiButton;
GtkWidget *alignment2;
GtkWidget *hbox7;
GtkWidget *image30;
GtkWidget *label3;
MultiPackets = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (MultiPackets), _("Pseudo-flood options"));
gtk_window_set_position (GTK_WINDOW (MultiPackets), GTK_WIN_POS_CENTER);
gtk_window_set_resizable (GTK_WINDOW (MultiPackets), FALSE);
MultiPackets_icon_pixbuf = create_pixbuf ("icon.png");
if (MultiPackets_icon_pixbuf)
{
gtk_window_set_icon (GTK_WINDOW (MultiPackets), MultiPackets_icon_pixbuf);
gdk_pixbuf_unref (MultiPackets_icon_pixbuf);
}
Multi_Table = gtk_table_new (2, 1, TRUE);
gtk_container_add (GTK_CONTAINER (MultiPackets), Multi_Table);
table2 = gtk_table_new (2, 2, FALSE);
gtk_table_attach (GTK_TABLE (Multi_Table), table2, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_container_set_border_width (GTK_CONTAINER (table2), 3);
NumberMulti = gtk_label_new (_("Number"));
gtk_table_attach (GTK_TABLE (table2), NumberMulti, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_label_set_justify (GTK_LABEL (NumberMulti), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (NumberMulti), 0, 0.5);
DelayMulti = gtk_label_new (_("Delay (ms)"));
gtk_table_attach (GTK_TABLE (table2), DelayMulti, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_label_set_justify (GTK_LABEL (DelayMulti), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (DelayMulti), 0, 0.5);
NumberEntryMulti = gtk_entry_new ();
gtk_entry_set_text (GTK_ENTRY (NumberEntryMulti), ltostr(m.number));
gtk_table_attach (GTK_TABLE (table2), NumberEntryMulti, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (NumberEntryMulti, 100, -2);
gtk_entry_set_max_length (GTK_ENTRY (NumberEntryMulti), 10);
DelayEntryMulty = gtk_entry_new ();
gtk_entry_set_text (GTK_ENTRY (DelayEntryMulty), ltostr(m.delay));
gtk_table_attach (GTK_TABLE (table2), DelayEntryMulty, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (DelayEntryMulty, 100, -2);
gtk_entry_set_max_length (GTK_ENTRY (DelayEntryMulty), 10);
MultiButton = gtk_check_button_new ();
if (ck.multi)
{
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (MultiButton), TRUE);
gtk_widget_set_sensitive (table2, TRUE);
}
else
{
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (MultiButton), FALSE);
gtk_widget_set_sensitive (table2, FALSE);
}
gtk_table_attach (GTK_TABLE (Multi_Table), MultiButton, 0, 1, 0, 1,
(GtkAttachOptions) (0),
(GtkAttachOptions) (GTK_FILL), 8, 0);
alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_container_add (GTK_CONTAINER (MultiButton), alignment2);
hbox7 = gtk_hbox_new (FALSE, 2);
gtk_container_add (GTK_CONTAINER (alignment2), hbox7);
image30 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON);
gtk_box_pack_start (GTK_BOX (hbox7), image30, FALSE, FALSE, 0);
label3 = gtk_label_new_with_mnemonic (_("Enable Multi-Mode"));
gtk_box_pack_start (GTK_BOX (hbox7), label3, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT);
g_signal_connect ((gpointer) MultiButton, "toggled",
G_CALLBACK (on_MultiButton_toggled),
NULL);
g_signal_connect ((gpointer) NumberEntryMulti, "changed",
G_CALLBACK (on_NumberEntryMulti_changed),
NULL);
g_signal_connect ((gpointer) DelayEntryMulty, "changed",
G_CALLBACK (on_DelayEntryMulty_changed),
NULL);
/* show widgets */
gtk_widget_show (Multi_Table);
gtk_widget_show (table2);
gtk_widget_show (NumberMulti);
gtk_widget_show (DelayMulti);
gtk_widget_show (NumberEntryMulti);
gtk_widget_show (DelayEntryMulty);
gtk_widget_show (MultiButton);
gtk_widget_show (alignment2);
gtk_widget_show (hbox7);
gtk_widget_show (image30);
gtk_widget_show (label3);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (MultiPackets, MultiPackets, "MultiPackets");
GLADE_HOOKUP_OBJECT (MultiPackets, Multi_Table, "Multi_Table");
GLADE_HOOKUP_OBJECT (MultiPackets, table2, "table2");
GLADE_HOOKUP_OBJECT (MultiPackets, NumberMulti, "NumberMulti");
GLADE_HOOKUP_OBJECT (MultiPackets, DelayMulti, "DelayMulti");
GLADE_HOOKUP_OBJECT (MultiPackets, NumberEntryMulti, "NumberEntryMulti");
GLADE_HOOKUP_OBJECT (MultiPackets, DelayEntryMulty, "DelayEntryMulty");
GLADE_HOOKUP_OBJECT (MultiPackets, MultiButton, "MultiButton");
GLADE_HOOKUP_OBJECT (MultiPackets, alignment2, "alignment2");
GLADE_HOOKUP_OBJECT (MultiPackets, hbox7, "hbox7");
GLADE_HOOKUP_OBJECT (MultiPackets, image30, "image30");
GLADE_HOOKUP_OBJECT (MultiPackets, label3, "label3");
return MultiPackets;
}
GtkWidget* create_AboutWin (void)
{
GtkWidget *AboutWin;
GdkPixbuf *AboutWin_icon_pixbuf;
GtkWidget *hbox1;
GtkWidget *image16;
GtkWidget *label1;
AboutWin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (AboutWin), _("About"));
gtk_window_set_position (GTK_WINDOW (AboutWin), GTK_WIN_POS_CENTER);
gtk_window_set_default_size (GTK_WINDOW (AboutWin), 350, 200);
gtk_window_set_resizable (GTK_WINDOW (AboutWin), FALSE);
AboutWin_icon_pixbuf = create_pixbuf ("icon.png");
if (AboutWin_icon_pixbuf)
{
gtk_window_set_icon (GTK_WINDOW (AboutWin), AboutWin_icon_pixbuf);
gdk_pixbuf_unref (AboutWin_icon_pixbuf);
}
hbox1 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox1);
gtk_container_add (GTK_CONTAINER (AboutWin), hbox1);
gtk_container_set_border_width (GTK_CONTAINER (hbox1), 2);
image16 = create_pixmap (AboutWin, "icon.png");
gtk_widget_show (image16);
gtk_box_pack_start (GTK_BOX (hbox1), image16, TRUE, TRUE, 0);
label1 = gtk_label_new (_("\nGspoof, V. 3.2\n\nAuthor: Embyte (c) 2002-2003\nContact: embyte@madlab.it\nLicensed under GPL domain\n\nEnjoy!\n"));
gtk_widget_show (label1);
gtk_box_pack_end (GTK_BOX (hbox1), label1, TRUE, TRUE, 3);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (AboutWin, AboutWin, "AboutWin");
GLADE_HOOKUP_OBJECT (AboutWin, hbox1, "hbox1");
GLADE_HOOKUP_OBJECT (AboutWin, image16, "image16");
GLADE_HOOKUP_OBJECT (AboutWin, label1, "label1");
return AboutWin;
}
GtkWidget*
create_ECNWin (void)
{
GtkWidget *ECNWin;
GdkPixbuf *ECNWin_icon_pixbuf;
GtkWidget *vbox4;
GtkWidget *hbox8;
GtkWidget *dscpLabel;
GtkWidget *hbox9;
GtkWidget *ecn_ctLaber;
GtkWidget *ecn_ct0;
GSList *ecn_ct0_group = NULL;
GtkWidget *ecn_ct1;
GtkWidget *hbox10;
GtkWidget *ecn_ceLaber;
GtkWidget *ecn_ce0;
GSList *ecn_ce0_group = NULL;
GtkWidget *ecn_ce1;
ECNWin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (ECNWin, -1, 90);
gtk_window_set_title (GTK_WINDOW (ECNWin), _("ECN options"));
gtk_window_set_position (GTK_WINDOW (ECNWin), GTK_WIN_POS_CENTER);
ECNWin_icon_pixbuf = create_pixbuf ("icon.png");
if (ECNWin_icon_pixbuf)
{
gtk_window_set_icon (GTK_WINDOW (ECNWin), ECNWin_icon_pixbuf);
gdk_pixbuf_unref (ECNWin_icon_pixbuf);
}
vbox4 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox4);
gtk_container_add (GTK_CONTAINER (ECNWin), vbox4);
hbox8 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox8);
gtk_box_pack_start (GTK_BOX (vbox4), hbox8, TRUE, TRUE, 0);
dscpLabel = gtk_label_new (_("Differentiated\nservice"));
gtk_widget_show (dscpLabel);
gtk_box_pack_start (GTK_BOX (hbox8), dscpLabel, FALSE, FALSE, 5);
gtk_label_set_justify (GTK_LABEL (dscpLabel), GTK_JUSTIFY_CENTER);
dscpEntry = gtk_entry_new ();
gtk_widget_show (dscpEntry);
gtk_box_pack_start (GTK_BOX (hbox8), dscpEntry, TRUE, TRUE, 0);
gtk_entry_set_max_length (GTK_ENTRY (dscpEntry), 2);
gtk_entry_set_text (GTK_ENTRY (dscpEntry), ltostr(ipv4_tos.dscp));
hbox9 = gtk_hbox_new (TRUE, 0);
gtk_widget_show (hbox9);
gtk_box_pack_start (GTK_BOX (vbox4), hbox9, TRUE, TRUE, 0);
ecn_ctLaber = gtk_label_new (_("ECN-Capable\n transport"));
gtk_widget_show (ecn_ctLaber);
gtk_box_pack_start (GTK_BOX (hbox9), ecn_ctLaber, FALSE, FALSE, 5);
gtk_label_set_justify (GTK_LABEL (ecn_ctLaber), GTK_JUSTIFY_CENTER);
ecn_ct0 = gtk_radio_button_new_with_mnemonic (NULL, _("0"));
gtk_widget_show (ecn_ct0);
gtk_box_pack_start (GTK_BOX (hbox9), ecn_ct0, FALSE, FALSE, 0);
gtk_radio_button_set_group (GTK_RADIO_BUTTON (ecn_ct0), ecn_ct0_group);
ecn_ct0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (ecn_ct0));
ecn_ct1 = gtk_radio_button_new_with_mnemonic (NULL, _("1"));
gtk_widget_show (ecn_ct1);
gtk_box_pack_start (GTK_BOX (hbox9), ecn_ct1, FALSE, FALSE, 0);
gtk_radio_button_set_group (GTK_RADIO_BUTTON (ecn_ct1), ecn_ct0_group);
ecn_ct0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (ecn_ct1));
if (ipv4_tos.ecn_ct)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ecn_ct1), TRUE);
hbox10 = gtk_hbox_new (TRUE, 0);
gtk_widget_show (hbox10);
gtk_box_pack_start (GTK_BOX (vbox4), hbox10, TRUE, TRUE, 0);
ecn_ceLaber = gtk_label_new (_("ECN-CE"));
gtk_widget_show (ecn_ceLaber);
gtk_box_pack_start (GTK_BOX (hbox10), ecn_ceLaber, FALSE, FALSE, 5);
gtk_label_set_justify (GTK_LABEL (ecn_ceLaber), GTK_JUSTIFY_CENTER);
ecn_ce0 = gtk_radio_button_new_with_mnemonic (NULL, _("0"));
gtk_widget_show (ecn_ce0);
gtk_box_pack_start (GTK_BOX (hbox10), ecn_ce0, FALSE, FALSE, 0);
gtk_radio_button_set_group (GTK_RADIO_BUTTON (ecn_ce0), ecn_ce0_group);
ecn_ce0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (ecn_ce0));
ecn_ce1 = gtk_radio_button_new_with_mnemonic (NULL, _("1"));
gtk_widget_show (ecn_ce1);
gtk_box_pack_start (GTK_BOX (hbox10), ecn_ce1, FALSE, FALSE, 0);
gtk_radio_button_set_group (GTK_RADIO_BUTTON (ecn_ce1), ecn_ce0_group);
ecn_ce0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (ecn_ce1));
if (ipv4_tos.ecn_ce)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ecn_ce1), TRUE);
/* signals */
g_signal_connect ((gpointer) dscpEntry, "changed", G_CALLBACK (on_dscpEntry_changed), NULL);
g_signal_connect ((gpointer) ecn_ct0, "toggled", G_CALLBACK (on_ecn_ct0_toggled), NULL);
g_signal_connect ((gpointer) ecn_ct1, "toggled", G_CALLBACK (on_ecn_ct1_toggled), NULL);
g_signal_connect ((gpointer) ecn_ce0, "toggled", G_CALLBACK (on_ecn_ce0_toggled), NULL);
g_signal_connect ((gpointer) ecn_ce1, "toggled", G_CALLBACK (on_ecn_ce1_toggled), NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (ECNWin, ECNWin, "ECNWin");
GLADE_HOOKUP_OBJECT (ECNWin, vbox4, "vbox4");
GLADE_HOOKUP_OBJECT (ECNWin, hbox8, "hbox8");
GLADE_HOOKUP_OBJECT (ECNWin, dscpLabel, "dscpLabel");
GLADE_HOOKUP_OBJECT (ECNWin, dscpEntry, "dscpEntry");
GLADE_HOOKUP_OBJECT (ECNWin, hbox9, "hbox9");
GLADE_HOOKUP_OBJECT (ECNWin, ecn_ctLaber, "ecn_ctLaber");
GLADE_HOOKUP_OBJECT (ECNWin, ecn_ct0, "ecn_ct0");
GLADE_HOOKUP_OBJECT (ECNWin, ecn_ct1, "ecn_ct1");
GLADE_HOOKUP_OBJECT (ECNWin, hbox10, "hbox10");
GLADE_HOOKUP_OBJECT (ECNWin, ecn_ceLaber, "ecn_ceLaber");
GLADE_HOOKUP_OBJECT (ECNWin, ecn_ce0, "ecn_ce0");
GLADE_HOOKUP_OBJECT (ECNWin, ecn_ce1, "ecn_ce1");
return ECNWin;
}
syntax highlighted by Code2HTML, v. 0.9.1