summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2009-05-01 16:12:36 +0200
committerRoss Burton <ross@linux.intel.com>2009-07-06 11:53:31 +0100
commitfe400023ef6e29a74a2709f42a02b232bdd034c6 (patch)
tree7d1896ec5ed2a014e82c666b0f93d62ee3c00b49 /tools
parentc8b3a57fada7cc2390d54cb12bc341d22b39380e (diff)
downloadgssdp-fe400023ef6e29a74a2709f42a02b232bdd034c6.tar.gz
Port gssdp-device-sniffer to GtkBuilder
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am6
-rw-r--r--tools/gssdp-device-sniffer.c64
-rw-r--r--tools/gssdp-device-sniffer.glade587
-rw-r--r--tools/gssdp-device-sniffer.ui526
4 files changed, 563 insertions, 620 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am
index fad500e..565e556 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,12 +1,12 @@
uidir = $(datadir)/gssdp
-dist_ui_DATA = $(srcdir)/gssdp-device-sniffer.glade
+dist_ui_DATA = $(srcdir)/gssdp-device-sniffer.ui
-AM_CFLAGS = $(LIBGSSDP_CFLAGS) $(LIBGLADE_CFLAGS) -I$(top_srcdir) -DUI_DIR='"$(uidir)"'
+AM_CFLAGS = $(LIBGSSDP_CFLAGS) $(LIBGTK_CFLAGS) -I$(top_srcdir) -DUI_DIR='"$(uidir)"'
bin_PROGRAMS = gssdp-device-sniffer
gssdp_device_sniffer_SOURCES = gssdp-device-sniffer.c
-gssdp_device_sniffer_LDADD = $(LIBGLADE_LIBS) $(LIBGSSDP_LIBS) $(top_builddir)/libgssdp/libgssdp-1.0.la
+gssdp_device_sniffer_LDADD = $(LIBGSSDP_LIBS) $(LIBGTK_LIBS) $(top_builddir)/libgssdp/libgssdp-1.0.la
gssdp_device_sniffer_LDFLAGS = -export-dynamic
MAINTAINERCLEANFILES = Makefile.in
diff --git a/tools/gssdp-device-sniffer.c b/tools/gssdp-device-sniffer.c
index b22c93b..2ca44c5 100644
--- a/tools/gssdp-device-sniffer.c
+++ b/tools/gssdp-device-sniffer.c
@@ -21,19 +21,19 @@
#include <libgssdp/gssdp-client-private.h>
#include <libsoup/soup.h>
#include <gtk/gtk.h>
-#include <glade/glade.h>
#include <string.h>
#include <stdlib.h>
-#define GLADE_FILE "gssdp-device-sniffer.glade"
+#define UI_FILE "gssdp-device-sniffer.ui"
#define MAX_IP_LEN 16
-GladeXML *glade_xml;
+GtkBuilder *builder;
GSSDPResourceBrowser *resource_browser;
GSSDPClient *client;
char *ip_filter = NULL;
gboolean capture_packets = TRUE;
+G_MODULE_EXPORT
void
on_enable_packet_capture_activate (GtkCheckMenuItem *menuitem, gpointer user_data)
{
@@ -49,7 +49,7 @@ clear_packet_treeview ()
gboolean more;
time_t *arrival_time;
- treeview = glade_xml_get_widget (glade_xml, "packet-treeview");
+ treeview = GTK_WIDGET(gtk_builder_get_object (builder, "packet-treeview"));
g_assert (treeview != NULL);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
more = gtk_tree_model_get_iter_first (model, &iter);
@@ -63,6 +63,7 @@ clear_packet_treeview ()
}
}
+G_MODULE_EXPORT
void
on_details_activate (GtkWidget *scrolled_window, GtkCheckMenuItem *menuitem)
{
@@ -97,7 +98,7 @@ update_packet_details (char *text, unsigned int len)
GtkWidget *textview;
GtkTextBuffer *textbuffer;
- textview = glade_xml_get_widget (glade_xml, "packet-details-textview");
+ textview = GTK_WIDGET(gtk_builder_get_object (builder, "packet-details-textview"));
g_assert (textview != NULL);
textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
@@ -145,6 +146,7 @@ on_packet_selected (GtkTreeSelection *selection, gpointer user_data)
update_packet_details ("", 0);
}
+G_MODULE_EXPORT
void
on_clear_packet_capture_activate (GtkMenuItem *menuitem, gpointer user_data)
{
@@ -198,7 +200,7 @@ append_packet (const gchar *from_ip,
GtkTreeIter iter;
char **packet_data;
- treeview = glade_xml_get_widget (glade_xml, "packet-treeview");
+ treeview = GTK_WIDGET(gtk_builder_get_object (builder, "packet-treeview"));
g_assert (treeview != NULL);
liststore = GTK_LIST_STORE (
gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)));
@@ -275,7 +277,7 @@ append_device (const char *uuid,
GtkTreeModel *model;
GtkTreeIter iter;
- treeview = glade_xml_get_widget (glade_xml, "device-details-treeview");
+ treeview = GTK_WIDGET(gtk_builder_get_object (builder, "device-details-treeview"));
g_assert (treeview != NULL);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
g_assert (model != NULL);
@@ -346,7 +348,7 @@ remove_device (const char *uuid)
GtkTreeModel *model;
GtkTreeIter iter;
- treeview = glade_xml_get_widget (glade_xml, "device-details-treeview");
+ treeview = GTK_WIDGET(gtk_builder_get_object (builder, "device-details-treeview"));
g_assert (treeview != NULL);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
g_assert (model != NULL);
@@ -372,6 +374,7 @@ resource_unavailable_cb (GSSDPResourceBrowser *resource_browser,
g_strfreev (usn_tokens);
}
+G_MODULE_EXPORT
void
on_use_filter_radiobutton_toggled (GtkToggleButton *togglebutton,
gpointer user_data)
@@ -379,7 +382,7 @@ on_use_filter_radiobutton_toggled (GtkToggleButton *togglebutton,
GtkWidget *filter_hbox;
gboolean use_filter;
- filter_hbox = glade_xml_get_widget (glade_xml, "address-filter-hbox");
+ filter_hbox = GTK_WIDGET(gtk_builder_get_object (builder, "address-filter-hbox"));
g_assert (filter_hbox != NULL);
use_filter = gtk_toggle_button_get_active (togglebutton);
@@ -400,7 +403,7 @@ get_ip_filter ()
gint val;
sprintf (entry_name, "address-entry%d", i);
- entry = glade_xml_get_widget (glade_xml, entry_name);
+ entry = GTK_WIDGET(gtk_builder_get_object (builder, entry_name));
g_assert (entry != NULL);
val = atoi (gtk_entry_get_text (GTK_ENTRY (entry)));
@@ -411,6 +414,7 @@ get_ip_filter ()
return ip;
}
+G_MODULE_EXPORT
void
on_address_filter_dialog_response (GtkDialog *dialog,
gint response,
@@ -420,7 +424,7 @@ on_address_filter_dialog_response (GtkDialog *dialog,
gtk_widget_hide (GTK_WIDGET (dialog));
- use_filter_radio = glade_xml_get_widget (glade_xml, "use-filter-radiobutton");
+ use_filter_radio = GTK_WIDGET(gtk_builder_get_object (builder, "use-filter-radiobutton"));
g_assert (use_filter_radio != NULL);
if (response != GTK_RESPONSE_OK)
@@ -507,11 +511,11 @@ setup_treeviews ()
GtkTreeSelection *selection;
int i;
- treeviews[0] = glade_xml_get_widget (glade_xml,
- "packet-treeview");
+ treeviews[0] = GTK_WIDGET(gtk_builder_get_object (builder,
+ "packet-treeview"));
g_assert (treeviews[0] != NULL);
- treeviews[1] = glade_xml_get_widget (glade_xml,
- "device-details-treeview");
+ treeviews[1] = GTK_WIDGET(gtk_builder_get_object (builder,
+ "device-details-treeview"));
g_assert (treeviews[1] != NULL);
treemodels[0] = create_packet_treemodel ();
@@ -530,6 +534,7 @@ setup_treeviews ()
(gpointer *) treeviews[0]);
}
+G_MODULE_EXPORT
gboolean
on_delete_event (GtkWidget *widget,
GdkEvent *event,
@@ -544,31 +549,30 @@ init_ui (gint *argc, gchar **argv[])
{
GtkWidget *main_window;
gint window_width, window_height;
- gchar *glade_path = NULL;
+ gchar *ui_path = NULL;
gtk_init (argc, argv);
- glade_init ();
- /* Try to fetch the glade file from the CWD first */
- glade_path = GLADE_FILE;
- if (!g_file_test (glade_path, G_FILE_TEST_EXISTS)) {
+ /* Try to fetch the ui file from the CWD first */
+ ui_path = UI_FILE;
+ if (!g_file_test (ui_path, G_FILE_TEST_EXISTS)) {
/* Then Try to fetch it from the system path */
- glade_path = UI_DIR "/" GLADE_FILE;
+ ui_path = UI_DIR "/" UI_FILE;
- if (!g_file_test (glade_path, G_FILE_TEST_EXISTS))
- glade_path = NULL;
+ if (!g_file_test (ui_path, G_FILE_TEST_EXISTS))
+ ui_path = NULL;
}
- if (glade_path == NULL) {
- g_critical ("Unable to load the GUI file %s", GLADE_FILE);
+ if (ui_path == NULL) {
+ g_critical ("Unable to load the GUI file %s", UI_FILE);
return FALSE;
}
- glade_xml = glade_xml_new (glade_path, NULL, NULL);
- if (glade_xml == NULL)
+ builder = gtk_builder_new();
+ if (gtk_builder_add_from_file(builder, ui_path, NULL) == 0)
return FALSE;
- main_window = glade_xml_get_widget (glade_xml, "main-window");
+ main_window = GTK_WIDGET(gtk_builder_get_object (builder, "main-window"));
g_assert (main_window != NULL);
/* 80% of the screen but don't get bigger than 1000x800 */
@@ -578,7 +582,7 @@ init_ui (gint *argc, gchar **argv[])
window_width,
window_height);
- glade_xml_signal_autoconnect (glade_xml);
+ gtk_builder_connect_signals (builder, NULL);
setup_treeviews ();
gtk_widget_show_all (main_window);
@@ -588,7 +592,7 @@ init_ui (gint *argc, gchar **argv[])
static void
deinit_ui (void)
{
- g_object_unref (glade_xml);
+ g_object_unref (builder);
}
static gboolean
diff --git a/tools/gssdp-device-sniffer.glade b/tools/gssdp-device-sniffer.glade
deleted file mode 100644
index febba2a..0000000
--- a/tools/gssdp-device-sniffer.glade
+++ /dev/null
@@ -1,587 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="main-window">
- <property name="title" translatable="yes">GSSDP Device Sniffer</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
- <signal name="delete_event" handler="on_delete_event" last_modification_time="Fri, 11 May 2007 10:36:15 GMT"/>
-
- <child>
- <widget class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkMenuBar" id="menubar">
- <property name="visible">True</property>
- <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
- <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
-
- <child>
- <widget class="GtkMenuItem" id="file_menuitem">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_File</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="file_menuitem_menu">
-
- <child>
- <widget class="GtkImageMenuItem" id="clear_packet_capture">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Clear Packet Capture</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_clear_packet_capture_activate" last_modification_time="Tue, 08 May 2007 08:41:08 GMT"/>
-
- <child internal-child="image">
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-clear</property>
- <property name="icon_size">1</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator2">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkCheckMenuItem" id="show_packet_details">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show Packet Details</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <signal name="activate" handler="on_details_activate" object="packet-details-scrolledwindow" last_modification_time="Mon, 23 Apr 2007 21:27:46 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkCheckMenuItem" id="show_device_tracking">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show Device Tracking</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <signal name="activate" handler="on_details_activate" object="packet-details-scrolledwindow" last_modification_time="Mon, 23 Apr 2007 21:30:07 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator3">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="quit">
- <property name="visible">True</property>
- <property name="label">gtk-quit</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="gtk_main_quit" last_modification_time="Sat, 21 Apr 2007 14:46:54 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="filter_menuitem">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Filter</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="filter_menuitem_menu">
-
- <child>
- <widget class="GtkCheckMenuItem" id="enable_packet_capture">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Enable Packet Capture</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <signal name="activate" handler="on_enable_packet_capture_activate" last_modification_time="Fri, 20 Apr 2007 14:59:37 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="address_filter">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Address Filter</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="gtk_widget_show" object="address-filter-dialog" last_modification_time="Fri, 11 May 2007 10:58:14 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="help_menuitem">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="help_menuitem_menu">
-
- <child>
- <widget class="GtkImageMenuItem" id="about">
- <property name="visible">True</property>
- <property name="label">gtk-about</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="gtk_widget_show" object="about-dialog" last_modification_time="Sat, 21 Apr 2007 15:23:48 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="packet-scrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="packet-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="packet-details-scrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTextView" id="packet-details-textview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="overwrite">False</property>
- <property name="accepts_tab">True</property>
- <property name="justification">GTK_JUSTIFY_LEFT</property>
- <property name="wrap_mode">GTK_WRAP_NONE</property>
- <property name="cursor_visible">True</property>
- <property name="pixels_above_lines">0</property>
- <property name="pixels_below_lines">0</property>
- <property name="pixels_inside_wrap">0</property>
- <property name="left_margin">0</property>
- <property name="right_margin">0</property>
- <property name="indent">0</property>
- <property name="text" translatable="yes"></property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="device-details-scrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="device-details-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkAboutDialog" id="about-dialog">
- <property name="destroy_with_parent">False</property>
- <property name="name" translatable="yes">GSSDP Device Sniffer</property>
- <property name="copyright" translatable="yes">Copyright (C) 2007 Zeeshan Ali (Khattak)</property>
- <property name="comments" translatable="yes">A Device Sniffer tool based on GSSDP framework.
-Inspired by Intel Tools for UPnP.</property>
- <property name="license" translatable="yes">LGPL</property>
- <property name="wrap_license">False</property>
- <property name="authors">Zeeshan Ali (Khattak) &lt;zeeshanak@gnome.org&gt;</property>
- <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
- <signal name="response" handler="gtk_widget_hide" object="about-dialog" last_modification_time="Sat, 19 May 2007 20:52:15 GMT"/>
- <signal name="delete_event" handler="gtk_widget_hide" object="about-dialog" last_modification_time="Tue, 15 May 2007 21:17:51 GMT"/>
-</widget>
-
-<widget class="GtkDialog" id="address-filter-dialog">
- <property name="border_width">7</property>
- <property name="title" translatable="yes">Address Filter</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
- <property name="has_separator">False</property>
- <signal name="response" handler="on_address_filter_dialog_response" last_modification_time="Fri, 11 May 2007 11:00:37 GMT"/>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="closebutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">4</property>
-
- <child>
- <widget class="GtkRadioButton" id="dont-use-filter-radiobutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">No filter, capture all traffic</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="use-filter-radiobutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Use IP address filter</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">dont-use-filter-radiobutton</property>
- <signal name="toggled" handler="on_use_filter_radiobutton_toggled" last_modification_time="Fri, 11 May 2007 10:55:01 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">50</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="address-filter-hbox">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkEntry" id="address-entry0">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">3</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- <property name="width_chars">4</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="address-label0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="address-entry1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">3</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- <property name="width_chars">4</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="address-label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="address-entry2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">3</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- <property name="width_chars">4</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="address-label2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="address-entry3">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">3</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- <property name="width_chars">4</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/tools/gssdp-device-sniffer.ui b/tools/gssdp-device-sniffer.ui
new file mode 100644
index 0000000..f16b3bc
--- /dev/null
+++ b/tools/gssdp-device-sniffer.ui
@@ -0,0 +1,526 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkUIManager" id="uimanager1">
+ <child>
+ <object class="GtkActionGroup" id="actiongroup1">
+ <child>
+ <object class="GtkAction" id="file_menuitem">
+ <property name="name">file_menuitem</property>
+ <property name="label" translatable="yes">_File</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAction" id="clear_packet_capture">
+ <property name="stock_id">gtk-clear</property>
+ <property name="name">clear_packet_capture</property>
+ <property name="label" translatable="yes">Clear Packet Capture</property>
+ <signal handler="on_clear_packet_capture_activate" last_modification_time="Tue, 08 May 2007 08:41:08 GMT" name="activate"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleAction" id="show_packet_details">
+ <property name="active">True</property>
+ <property name="name">show_packet_details</property>
+ <property name="label" translatable="yes">Show Packet Details</property>
+ <signal handler="on_details_activate" last_modification_time="Mon, 23 Apr 2007 21:27:46 GMT" name="activate" object="packet-details-scrolledwindow"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleAction" id="show_device_tracking">
+ <property name="active">True</property>
+ <property name="name">show_device_tracking</property>
+ <property name="label" translatable="yes">Show Device Tracking</property>
+ <signal handler="on_details_activate" last_modification_time="Mon, 23 Apr 2007 21:30:07 GMT" name="activate" object="packet-details-scrolledwindow"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAction" id="quit">
+ <property name="stock_id">gtk-quit</property>
+ <property name="name">quit</property>
+ <signal handler="gtk_main_quit" last_modification_time="Sat, 21 Apr 2007 14:46:54 GMT" name="activate"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAction" id="filter_menuitem">
+ <property name="name">filter_menuitem</property>
+ <property name="label" translatable="yes">Filter</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleAction" id="enable_packet_capture">
+ <property name="active">True</property>
+ <property name="name">enable_packet_capture</property>
+ <property name="label" translatable="yes">Enable Packet Capture</property>
+ <signal handler="on_enable_packet_capture_activate" last_modification_time="Fri, 20 Apr 2007 14:59:37 GMT" name="activate"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAction" id="address_filter">
+ <property name="name">address_filter</property>
+ <property name="label" translatable="yes">Address Filter</property>
+ <signal handler="gtk_widget_show" last_modification_time="Fri, 11 May 2007 10:58:14 GMT" name="activate" object="address-filter-dialog"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAction" id="help_menuitem">
+ <property name="name">help_menuitem</property>
+ <property name="label" translatable="yes">_Help</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAction" id="about">
+ <property name="stock_id">gtk-about</property>
+ <property name="name">about</property>
+ <signal handler="gtk_widget_show" last_modification_time="Sat, 21 Apr 2007 15:23:48 GMT" name="activate" object="about-dialog"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <ui>
+ <menubar name="menubar">
+ <menu action="file_menuitem">
+ <menuitem action="clear_packet_capture"/>
+ <separator/>
+ <menuitem action="show_packet_details"/>
+ <menuitem action="show_device_tracking"/>
+ <separator/>
+ <menuitem action="quit"/>
+ </menu>
+ <menu action="filter_menuitem">
+ <menuitem action="enable_packet_capture"/>
+ <menuitem action="address_filter"/>
+ </menu>
+ <menu action="help_menuitem">
+ <menuitem action="about"/>
+ </menu>
+ </menubar>
+ </ui>
+ </object>
+ <object class="GtkWindow" id="main-window">
+ <property name="title" translatable="yes">GSSDP Device Sniffer</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <signal handler="on_delete_event" last_modification_time="Fri, 11 May 2007 10:36:15 GMT" name="delete_event"/>
+ <child>
+ <object class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkMenuBar" constructor="uimanager1" id="menubar">
+ <property name="visible">True</property>
+ <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+ <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="packet-scrolledwindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkTreeView" id="packet-treeview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="packet-details-scrolledwindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkTextView" id="packet-details-textview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
+ <property name="justification">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap_mode">GTK_WRAP_NONE</property>
+ <property name="cursor_visible">True</property>
+ <property name="pixels_above_lines">0</property>
+ <property name="pixels_below_lines">0</property>
+ <property name="pixels_inside_wrap">0</property>
+ <property name="left_margin">0</property>
+ <property name="right_margin">0</property>
+ <property name="indent">0</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="device-details-scrolledwindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkTreeView" id="device-details-treeview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <object class="GtkAboutDialog" id="about-dialog">
+ <property name="destroy_with_parent">False</property>
+ <property name="name" translatable="yes">GSSDP Device Sniffer</property>
+ <property name="copyright" translatable="yes">Copyright (C) 2007 Zeeshan Ali (Khattak)</property>
+ <property name="comments" translatable="yes">A Device Sniffer tool based on GSSDP framework.
+Inspired by Intel Tools for UPnP.</property>
+ <property name="license" translatable="yes">LGPL</property>
+ <property name="wrap_license">False</property>
+ <property name="authors">Zeeshan Ali (Khattak) &lt;zeeshanak@gnome.org&gt;</property>
+ <property comments="TRANSLATORS: Replace this string with your names, one name per line." name="translator_credits" translatable="yes">translator-credits</property>
+ <signal handler="gtk_widget_hide" last_modification_time="Sat, 19 May 2007 20:52:15 GMT" name="response" object="about-dialog"/>
+ <signal handler="gtk_widget_hide" last_modification_time="Tue, 15 May 2007 21:17:51 GMT" name="delete_event" object="about-dialog"/>
+ </object>
+ <object class="GtkDialog" id="address-filter-dialog">
+ <property name="border_width">7</property>
+ <property name="title" translatable="yes">Address Filter</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">False</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">False</property>
+ <signal handler="on_address_filter_dialog_response" last_modification_time="Fri, 11 May 2007 11:00:37 GMT" name="response"/>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">8</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="closebutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="border_width">5</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkRadioButton" id="dont-use-filter-radiobutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">No filter, capture all traffic</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">True</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="use-filter-radiobutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use IP address filter</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">dont-use-filter-radiobutton</property>
+ <signal handler="on_use_filter_radiobutton_toggled" last_modification_time="Fri, 11 May 2007 10:55:01 GMT" name="toggled"/>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">50</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="address-filter-hbox">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkEntry" id="address-entry0">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">3</property>
+ <property name="text" translatable="yes"/>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
+ <property name="width_chars">4</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="address-label0">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="address-entry1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">3</property>
+ <property name="text" translatable="yes"/>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
+ <property name="width_chars">4</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="address-label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="address-entry2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">3</property>
+ <property name="text" translatable="yes"/>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
+ <property name="width_chars">4</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="address-label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="address-entry3">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">3</property>
+ <property name="text" translatable="yes"/>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
+ <property name="width_chars">4</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-5">closebutton1</action-widget>
+ </action-widgets>
+ </object>
+</interface>