-if USE_LIBGLADE
+if USE_LIBGTK
TOOLS_DIR = tools
else
TOOLS_DIR =
gobject-2.0 >= 2.18 \
libsoup-2.4)
-LIBGLADE_REQUIRED=2.6.0
+LIBGTK_REQUIRED=2.12.0
-AC_ARG_WITH( libglade,
- AC_HELP_STRING([--without-libglade],[compile without libglade support]),
- try_libglade=$withval, try_libglade=yes )
+AC_ARG_WITH( gtk,
+ AC_HELP_STRING([--without-gtk],[compile without gtk+ support]),
+ try_gtk=$withval, try_gtk=yes )
-HAVE_LIBGLADE=no
-if test x$try_libglade = xyes ; then
- dnl check for libglade
- PKG_CHECK_MODULES(LIBGLADE, libglade-2.0 >= $LIBGLADE_REQUIRED ,
+HAVE_LIBGGTK=no
+if test x$try_gtk = xyes ; then
+ dnl check for gtk+
+ PKG_CHECK_MODULES(LIBGTK, gtk+-2.0 >= $LIBGTK_REQUIRED ,
[
- HAVE_LIBGLADE=yes
- AC_SUBST(LIBGLADE_CFLAGS)
- AC_SUBST(LIBGLADE_LIBS)
+ HAVE_LIBGTK=yes
+ AC_SUBST(LIBGTK_CFLAGS)
+ AC_SUBST(LIBGTK_LIBS)
],
[
- HAVE_LIBGLADE=no
- AC_MSG_WARN([libglade $LIBGLADE_REQUIRED or greater not found, some tools will not build.])
+ HAVE_LIBGTK=no
+ AC_MSG_WARN([gtk+ $LIBGTK_REQUIRED or greater not found, some tools will not build.])
])
else
- AC_MSG_NOTICE([libglade usage disabled, some tools may not build.])
+ AC_MSG_NOTICE([gtk+ usage disabled, some tools may not build.])
fi
-if test x$HAVE_LIBGLADE = xno; then
- USE_LIBGLADE=no
+if test x$HAVE_LIBGTK = xno; then
+ USE_LIBGTK=no
else
- USE_LIBGLADE=yes
- AC_DEFINE(HAVE_LIBGLADE, , [Use libglade])
+ USE_LIBGTK=yes
+ AC_DEFINE(HAVE_LIBGTK, , [Use gtk+])
fi
-AC_SUBST(HAVE_LIBGLADE)
-AM_CONDITIONAL(USE_LIBGLADE, test x$USE_LIBGLADE = xyes)
+AC_SUBST(HAVE_LIBGTK)
+AM_CONDITIONAL(USE_LIBGTK, test x$USE_LIBGTK = xyes)
# glib-genmarshal
GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0`
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
#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)
{
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);
}
}
+G_MODULE_EXPORT
void
on_details_activate (GtkWidget *scrolled_window, GtkCheckMenuItem *menuitem)
{
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));
update_packet_details ("", 0);
}
+G_MODULE_EXPORT
void
on_clear_packet_capture_activate (GtkMenuItem *menuitem, gpointer user_data)
{
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)));
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);
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);
g_strfreev (usn_tokens);
}
+G_MODULE_EXPORT
void
on_use_filter_radiobutton_toggled (GtkToggleButton *togglebutton,
gpointer user_data)
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);
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)));
return ip;
}
+G_MODULE_EXPORT
void
on_address_filter_dialog_response (GtkDialog *dialog,
gint response,
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)
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 ();
(gpointer *) treeviews[0]);
}
+G_MODULE_EXPORT
gboolean
on_delete_event (GtkWidget *widget,
GdkEvent *event,
{
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 */
window_width,
window_height);
- glade_xml_signal_autoconnect (glade_xml);
+ gtk_builder_connect_signals (builder, NULL);
setup_treeviews ();
gtk_widget_show_all (main_window);
static void
deinit_ui (void)
{
- g_object_unref (glade_xml);
+ g_object_unref (builder);
}
static gboolean
+++ /dev/null
-<?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) <zeeshanak@gnome.org></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>
--- /dev/null
+<?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) <zeeshanak@gnome.org></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>