[regexxer] Remove dependencies libglade and gmodule. Using of GtkBuilder instead.



commit 2c626c191c2c9f75b07f66b2feba04b4c09f1ac6
Author: Fabien Parent <parent f gmail com>
Date:   Fri Jul 24 21:47:32 2009 +0200

    Remove dependencies libglade and gmodule. Using of GtkBuilder instead.

 Makefile.am          |    7 +-
 configure.ac         |    7 +-
 src/controller.cc    |   16 +-
 src/controller.h     |    8 +-
 src/exported-symbols |    7 -
 src/filetree.cc      |   19 -
 src/globalstrings.h  |    8 +-
 src/mainwindow.cc    |   57 ++-
 src/mainwindow.h     |   10 +-
 src/prefdialog.cc    |   22 +-
 src/statusline.cc    |   19 -
 ui/mainwindow.glade  | 1446 --------------------------------------------------
 ui/mainwindow.ui     | 1020 +++++++++++++++++++++++++++++++++++
 ui/prefdialog.glade  |  577 --------------------
 ui/prefdialog.ui     |  562 ++++++++++++++++++++
 15 files changed, 1664 insertions(+), 2121 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 6647adc..a291242 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -75,11 +75,9 @@ rxlocaledir = $(prefix)/$(DATADIRNAME)/locale
 global_defs = -DREGEXXER_LOCALEDIR=\""$(rxlocaledir)"\" -DREGEXXER_PKGDATADIR=\""$(pkgdatadir)"\"
 AM_CPPFLAGS = $(global_defs) -I$(top_builddir) $(REGEXXER_MODULES_CFLAGS) $(REGEXXER_WARNING_FLAGS)
 
-src_regexxer_DEPENDENCIES = src/exported-symbols
-src_regexxer_LDFLAGS      = $(REGEXXER_VERSION_SCRIPT)
 src_regexxer_LDADD        = $(REGEXXER_MODULES_LIBS) $(INTLLIBS)
 
-dist_pkgdata_DATA   = ui/mainwindow.glade ui/prefdialog.glade
+dist_pkgdata_DATA   = ui/mainwindow.ui ui/prefdialog.ui
 
 iconthemedir        = $(datadir)/icons/hicolor
 appicondir          = $(iconthemedir)/48x48/apps
@@ -96,8 +94,7 @@ desktop_DATA        = ui/regexxer.desktop
 dist_intltool       = intltool-extract.in intltool-merge.in intltool-update.in
 stockimages         = ui/stock_save_all_16.png ui/stock_save_all_24.png
 
-dist_noinst_DATA    = src/exported-symbols $(stockimages) $(dist_intltool) \
-		      $(desktop_in_files) $(schemas_in_files)
+dist_noinst_DATA    = $(stockimages) $(dist_intltool) $(desktop_in_files) $(schemas_in_files)
 dist_noinst_SCRIPTS = autogen.sh
 
 BUILT_SOURCES       = $(nodist_src_regexxer_SOURCES)
diff --git a/configure.ac b/configure.ac
index 8f46030..8af1804 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,8 +38,7 @@ AM_GLIB_GNU_GETTEXT
 # gmodule-export-2.0 adds -Wl,--export-dynamic to the linker flags
 # so that libglade can get at the custom widget creation functions.
 PKG_CHECK_MODULES([REGEXXER_MODULES],
-                  [gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0
-                   gconfmm-2.6 >= 2.6.1 libpcre >= 5.0])
+                  [gtkmm-2.4 >= 2.12.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0])
 
 DK_PKG_PATH_PROG([GDK_PIXBUF_CSOURCE], [gdk-pixbuf-2.0], [gdk-pixbuf-csource])
 DK_PKG_PATH_PROG([GTK_UPDATE_ICON_CACHE], [gtk+-2.0], [gtk-update-icon-cache])
@@ -49,10 +48,6 @@ AM_GCONF_SOURCE_2
 
 AC_LANG([C++])
 
-# If the linker supports it, use a version script to limit the effect
-# of --export-dynamic to the functions which need to be exported.
-DK_LINK_VERSION_SCRIPT([REGEXXER_VERSION_SCRIPT], [src/exported-symbols])
-
 # Disabling -Wnon-virtual-dtor is nasty, but unfortunately required due to
 # a bug in gconfmm that triggers this warning.  Not disabling this warning
 # would make --enable-warnings=fatal unusable.
diff --git a/src/controller.cc b/src/controller.cc
index cfe0c46..8bef288 100644
--- a/src/controller.cc
+++ b/src/controller.cc
@@ -23,7 +23,7 @@
 #include <gtkmm/button.h>
 #include <gtkmm/menu.h>
 #include <gtkmm/toolbutton.h>
-#include <libglademm/xml.h>
+#include <gtkmm/builder.h>
 
 #include <config.h>
 
@@ -64,7 +64,7 @@ void ControlItem::add_widget(Gtk::Widget& widget)
   widget.set_sensitive(enabled_ && group_enabled_);
 }
 
-void ControlItem::add_widgets(const Glib::RefPtr<Gnome::Glade::Xml>& xml,
+void ControlItem::add_widgets(const Glib::RefPtr<Gtk::Builder>& xml,
                               const char* menuitem_name, const char* button_name)
 {
   const sigc::slot<void> slot_activate = slot();
@@ -72,13 +72,19 @@ void ControlItem::add_widgets(const Glib::RefPtr<Gnome::Glade::Xml>& xml,
   Gtk::MenuItem* menuitem = 0;
   Gtk::Widget*   widget   = 0;
 
-  if (menuitem_name && xml->get_widget(menuitem_name, menuitem))
+  if (menuitem_name)
+    xml->get_widget(menuitem_name, menuitem);
+
+  if (button_name)
+    xml->get_widget(button_name, widget);
+  
+  if (menuitem_name)
   {
     menuitem->signal_activate().connect(slot_activate);
     add_widget(*menuitem);
   }
 
-  if (button_name && xml->get_widget(button_name, widget))
+  if (button_name)
   {
     if (Gtk::ToolButton *const button = dynamic_cast<Gtk::ToolButton*>(widget))
       button->signal_clicked().connect(slot_activate);
@@ -190,7 +196,7 @@ Controller::Controller()
 Controller::~Controller()
 {}
 
-void Controller::load_xml(const Glib::RefPtr<Gnome::Glade::Xml>& xml)
+void Controller::load_xml(const Glib::RefPtr<Gtk::Builder>& xml)
 {
   save_file   .add_widgets(xml, "menuitem_save",         "button_save");
   save_all    .add_widgets(xml, "menuitem_save_all",     "button_save_all");
diff --git a/src/controller.h b/src/controller.h
index 6432f90..807808f 100644
--- a/src/controller.h
+++ b/src/controller.h
@@ -30,11 +30,9 @@ namespace Gtk
 class MenuBar;
 class Toolbar;
 class Widget;
+class Builder;
 }
 
-namespace Gnome { namespace Glade { class Xml; } }
-
-
 namespace Regexxer
 {
 
@@ -50,7 +48,7 @@ public:
   void connect(const sigc::slot<void>& slot_activated);
 
   void add_widget(Gtk::Widget& widget);
-  void add_widgets(const Glib::RefPtr<Gnome::Glade::Xml>& xml,
+  void add_widgets(const Glib::RefPtr<Gtk::Builder>& xml,
                    const char* menuitem_name, const char* button_name);
 
   void set_enabled(bool enable);
@@ -121,7 +119,7 @@ public:
   ControlItem   paste;
   ControlItem   erase;
 
-  void load_xml(const Glib::RefPtr<Gnome::Glade::Xml>& xml);
+  void load_xml(const Glib::RefPtr<Gtk::Builder>& xml);
 
 private:
   Controller(const Controller&);
diff --git a/src/filetree.cc b/src/filetree.cc
index 3fc2398..7ec05cc 100644
--- a/src/filetree.cc
+++ b/src/filetree.cc
@@ -25,31 +25,12 @@
 #include "stringutils.h"
 #include "translation.h"
 
-#include <gmodule.h>
 #include <glibmm.h>
 #include <gconfmm/client.h>
 #include <gtkmm/stock.h>
 
 #include <config.h>
 
-/*
- * Custom widget creation function for libglade.
- */
-extern "C" G_MODULE_EXPORT
-GtkWidget* regexxer_create_file_tree(char*, char*, char*, int, int)
-{
-  try
-  {
-    Gtk::Widget *const widget = new Regexxer::FileTree();
-    widget->show();
-    return Gtk::manage(widget)->gobj();
-  }
-  catch (...)
-  {
-    g_return_val_if_reached(0);
-  }
-}
-
 namespace Regexxer
 {
 
diff --git a/src/globalstrings.h b/src/globalstrings.h
index eace4b2..4a4c467 100644
--- a/src/globalstrings.h
+++ b/src/globalstrings.h
@@ -39,10 +39,10 @@ const char *const conf_key_current_match_color = "/apps/regexxer/current_match_c
 const char *const conf_key_toolbar_style       = "/apps/regexxer/toolbar_style";
 const char *const conf_key_fallback_encoding   = "/apps/regexxer/fallback_encoding";
 
-const char *const glade_mainwindow_filename    = REGEXXER_PKGDATADIR G_DIR_SEPARATOR_S
-                                                 "mainwindow.glade";
-const char *const glade_prefdialog_filename    = REGEXXER_PKGDATADIR G_DIR_SEPARATOR_S
-                                                 "prefdialog.glade";
+const char *const ui_mainwindow_filename       = REGEXXER_PKGDATADIR G_DIR_SEPARATOR_S
+                                                 "mainwindow.ui";
+const char *const ui_prefdialog_filename       = REGEXXER_PKGDATADIR G_DIR_SEPARATOR_S
+                                                 "prefdialog.ui";
 
 } // namespace Regexxer
 
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 6b5b987..cffad20 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -30,7 +30,6 @@
 #include <glib.h>
 #include <gtkmm.h>
 #include <gconfmm/client.h>
-#include <libglademm/xml.h>
 #include <algorithm>
 #include <functional>
 #include <iostream>
@@ -180,18 +179,20 @@ public:
 MainWindow::MainWindow()
 :
   toolbar_                (0),
+  table_file_             (0),
   button_folder_          (0),
-  entry_pattern_          (0),
+  combo_entry_pattern_    (Gtk::manage(new Gtk::ComboBoxEntryText())),
   button_recursive_       (0),
   button_hidden_          (0),
   entry_regex_            (0),
   entry_substitution_     (0),
   button_multiple_        (0),
   button_caseless_        (0),
-  filetree_               (0),
+  filetree_               (Gtk::manage(new FileTree())),
+  scrollwin_filetree_     (0),
   textview_               (0),
   entry_preview_          (0),
-  statusline_             (0),
+  statusline_             (Gtk::manage(new StatusLine())),
   busy_action_running_    (false),
   busy_action_cancel_     (false),
   busy_action_iteration_  (0),
@@ -202,6 +203,14 @@ MainWindow::MainWindow()
   textview_->set_buffer(FileBuffer::create());
   window_->set_title(PACKAGE_NAME);
 
+  vbox_main_->pack_start(*statusline_, Gtk::PACK_SHRINK);
+  scrollwin_filetree_->add(*filetree_);
+  table_file_->attach(*combo_entry_pattern_, 1, 2, 1, 2);
+  
+  statusline_->show_all();
+  filetree_->show_all();
+  combo_entry_pattern_->show_all();
+  
   connect_signals();
 }
 
@@ -219,10 +228,21 @@ void MainWindow::initialize(const InitState& init)
 
   const bool folder_exists = button_folder_->set_current_folder(folder);
 
-  entry_pattern_->set_text((init.pattern.empty()) ? Glib::ustring(1, '*') : init.pattern);
+  combo_entry_pattern_->get_entry()->set_text((init.pattern.empty()) ? Glib::ustring(1, '*') : init.pattern);
   entry_regex_  ->set_text(init.regex);
   entry_substitution_->set_text(init.substitution);
 
+  combo_entry_pattern_->append_text("*.[ch]");
+  combo_entry_pattern_->append_text("*.{c,cc,cpp,cxx,c++,C,h,hh,hpp,hxx,h++}");
+  combo_entry_pattern_->append_text("*.{ccg,hg}");
+  combo_entry_pattern_->append_text("*.idl");
+  combo_entry_pattern_->append_text("*.{java,jsp}");
+  combo_entry_pattern_->append_text("*.{pl,pm,cgi}");
+  combo_entry_pattern_->append_text("*.py");
+  combo_entry_pattern_->append_text("*.php[0-9]?");
+  combo_entry_pattern_->append_text("*.{html,htm,shtml,js,wml}");
+  combo_entry_pattern_->append_text("*.{xml,xsl,css,dtd,xsd}");
+
   button_recursive_->set_active(!init.no_recursive);
   button_hidden_   ->set_active(init.hidden);
   button_multiple_ ->set_active(!init.no_global);
@@ -247,12 +267,11 @@ void MainWindow::initialize(const InitState& init)
 
 void MainWindow::load_xml()
 {
-  using Gnome::Glade::Xml;
-
-  const Glib::RefPtr<Xml> xml = Xml::create(glade_mainwindow_filename);
+  const Glib::RefPtr<Gtk::Builder> xml = Gtk::Builder::create_from_file(ui_mainwindow_filename);
 
   Gtk::Window* mainwindow = 0;
-  window_.reset(xml->get_widget("mainwindow", mainwindow));
+  xml->get_widget("mainwindow", mainwindow);
+  window_.reset(mainwindow);
 
   xml->get_widget("toolbar",             toolbar_);
   xml->get_widget("button_folder",       button_folder_);
@@ -262,11 +281,11 @@ void MainWindow::load_xml()
   xml->get_widget("entry_substitution",  entry_substitution_);
   xml->get_widget("button_multiple",     button_multiple_);
   xml->get_widget("button_caseless",     button_caseless_);
-  xml->get_widget("filetree",            filetree_);
   xml->get_widget("textview",            textview_);
   xml->get_widget("entry_preview",       entry_preview_);
-  xml->get_widget("statusline",          statusline_);
-  xml->get_widget("combo_pattern_entry", entry_pattern_);
+  xml->get_widget("vbox_main",           vbox_main_);
+  xml->get_widget("scrollwin_filetree",  scrollwin_filetree_);
+  xml->get_widget("table_file",          table_file_);
 
   controller_.load_xml(xml);
 }
@@ -280,8 +299,8 @@ void MainWindow::connect_signals()
   window_->signal_style_changed().connect(mem_fun(*this, &MainWindow::on_style_changed));
   window_->signal_delete_event ().connect(mem_fun(*this, &MainWindow::on_delete_event));
 
-  entry_pattern_->signal_activate().connect(controller_.find_files.slot());
-  entry_pattern_->signal_changed ().connect(mem_fun(*this, &MainWindow::on_entry_pattern_changed));
+  combo_entry_pattern_->get_entry()->signal_activate().connect(controller_.find_files.slot());
+  combo_entry_pattern_->signal_changed ().connect(mem_fun(*this, &MainWindow::on_entry_pattern_changed));
 
   entry_regex_       ->signal_activate().connect(controller_.find_matches.slot());
   entry_substitution_->signal_activate().connect(controller_.find_matches.slot());
@@ -383,7 +402,7 @@ void MainWindow::on_cut()
   else
   {
     const int noEntries = 3;
-    Gtk::Entry *entries[noEntries] = { entry_pattern_, entry_regex_,
+    Gtk::Entry *entries[noEntries] = { combo_entry_pattern_->get_entry(), entry_regex_,
                                        entry_substitution_ };
     for (int i = 0; i < 3; i++)
     {
@@ -406,7 +425,7 @@ void MainWindow::on_copy()
   else
   {
     const int noEntries = 3;
-    Gtk::Entry *entries[noEntries] = { entry_pattern_, entry_regex_,
+    Gtk::Entry *entries[noEntries] = { combo_entry_pattern_->get_entry(), entry_regex_,
                                        entry_substitution_ };
     for (int i = 0; i < 3; i++)
     {
@@ -430,7 +449,7 @@ void MainWindow::on_paste()
   else
   {
     const int noEntries = 3;
-    Gtk::Entry *entries[noEntries] = { entry_pattern_, entry_regex_,
+    Gtk::Entry *entries[noEntries] = { combo_entry_pattern_->get_entry(), entry_regex_,
                                        entry_substitution_ };
     for (int i = 0; i < 3; i++)
     {
@@ -495,7 +514,7 @@ void MainWindow::on_find_files()
 
   try
   {
-    Pcre::Pattern pattern (Util::shell_pattern_to_regex(entry_pattern_->get_text()), Pcre::DOTALL);
+    Pcre::Pattern pattern (Util::shell_pattern_to_regex(combo_entry_pattern_->get_entry()->get_text()), Pcre::DOTALL);
 
     filetree_->find_files(folder, pattern,
                           button_recursive_->get_active(),
@@ -786,7 +805,7 @@ void MainWindow::undo_stack_clear()
 
 void MainWindow::on_entry_pattern_changed()
 {
-  controller_.find_files.set_enabled(entry_pattern_->get_text_length() > 0);
+  controller_.find_files.set_enabled(combo_entry_pattern_->get_entry()->get_text_length() > 0);
 }
 
 void MainWindow::update_preview()
diff --git a/src/mainwindow.h b/src/mainwindow.h
index f2fb3f1..315f772 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -42,6 +42,10 @@ class FileChooser;
 class TextView;
 class Toolbar;
 class Window;
+class ComboBoxEntryText;
+class VBox;
+class ScrolledWindow;
+class Table;
 }
 
 namespace Gnome { namespace Conf { class Value; } }
@@ -85,11 +89,14 @@ private:
 
   std::auto_ptr<Gtk::Window>  window_;
   Controller                  controller_;
+  
+  Gtk::VBox*                  vbox_main_;
 
   Gtk::Toolbar*               toolbar_;
 
+  Gtk::Table*                 table_file_;
   Gtk::FileChooser*           button_folder_;
-  Gtk::Entry*                 entry_pattern_;
+  Gtk::ComboBoxEntryText*     combo_entry_pattern_;
   Gtk::CheckButton*           button_recursive_;
   Gtk::CheckButton*           button_hidden_;
 
@@ -99,6 +106,7 @@ private:
   Gtk::CheckButton*           button_caseless_;
 
   FileTree*                   filetree_;
+  Gtk::ScrolledWindow*        scrollwin_filetree_;
   Gtk::TextView*              textview_;
   Gtk::Entry*                 entry_preview_;
 
diff --git a/src/prefdialog.cc b/src/prefdialog.cc
index faf3a54..15fe221 100644
--- a/src/prefdialog.cc
+++ b/src/prefdialog.cc
@@ -26,7 +26,6 @@
 #include <glib.h>
 #include <gtkmm.h>
 #include <gconfmm/client.h>
-#include <libglademm/xml.h>
 #include <list>
 
 #include <config.h>
@@ -87,12 +86,12 @@ PrefDialog::~PrefDialog()
 void PrefDialog::load_xml()
 {
   using namespace Gtk;
-  using Gnome::Glade::Xml;
-
-  const Glib::RefPtr<Xml> xml = Xml::create(glade_prefdialog_filename);
+  
+  const Glib::RefPtr<Builder> xml = Builder::create_from_file(ui_prefdialog_filename);
 
   Dialog* prefdialog = 0;
-  dialog_.reset(xml->get_widget("prefdialog", prefdialog));
+  xml->get_widget("prefdialog", prefdialog);
+  dialog_.reset(prefdialog);
 
   xml->get_widget("button_textview_font", button_textview_font_);
   xml->get_widget("button_match_color",   button_match_color_);
@@ -102,9 +101,16 @@ void PrefDialog::load_xml()
 
   const Glib::RefPtr<SizeGroup> size_group = SizeGroup::create(SIZE_GROUP_VERTICAL);
 
-  size_group->add_widget(*xml->get_widget("label_utf8"));
-  size_group->add_widget(*xml->get_widget("label_locale"));
-  size_group->add_widget(*xml->get_widget("box_fallback"));
+  Label* label_utf8 = 0, *label_locale = 0;
+  Box* box_fallback = 0;
+  
+  xml->get_widget("label_utf8",   label_utf8);
+  xml->get_widget("label_locale", label_locale);
+  xml->get_widget("box_fallback", box_fallback);
+  
+  size_group->add_widget(*label_utf8);
+  size_group->add_widget(*label_locale);
+  size_group->add_widget(*box_fallback);
 }
 
 void PrefDialog::connect_signals()
diff --git a/src/statusline.cc b/src/statusline.cc
index 362f9a3..3ac370d 100644
--- a/src/statusline.cc
+++ b/src/statusline.cc
@@ -22,31 +22,12 @@
 #include "stringutils.h"
 #include "translation.h"
 
-#include <gmodule.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtkmm.h>
 #include <locale>
 #include <sstream>
 #include <stdexcept>
 
-/*
- * Custom widget creation function for libglade.
- */
-extern "C" G_MODULE_EXPORT
-GtkWidget* regexxer_create_status_line(char*, char*, char*, int, int)
-{
-  try
-  {
-    Gtk::Widget *const widget = new Regexxer::StatusLine();
-    widget->show();
-    return Gtk::manage(widget)->gobj();
-  }
-  catch (...)
-  {
-    g_return_val_if_reached(0);
-  }
-}
-
 namespace Regexxer
 {
 
diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui
new file mode 100644
index 0000000..6bc6545
--- /dev/null
+++ b/ui/mainwindow.ui
@@ -0,0 +1,1020 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="mainwindow">
+    <property name="default_width">640</property>
+    <property name="default_height">480</property>
+    <accel-groups>
+      <group name="mainwindow_accelgroup"/>
+    </accel-groups>
+    <child>
+      <object class="GtkVBox" id="vbox_main">
+        <property name="visible">True</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <object class="GtkMenuBar" id="menubar">
+            <property name="visible">True</property>
+            <child>
+              <object class="GtkMenuItem" id="menuitem_file">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_File</property>
+                <property name="use_underline">True</property>
+                <child type="submenu">
+                  <object class="GtkMenu" id="menuitem_file_menu">
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_save">
+                        <property name="label">gtk-save</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="s" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_save_all">
+                        <property name="label">Save all</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkSeparatorMenuItem" id="menuitem_separator1">
+                        <property name="visible">True</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_quit">
+                        <property name="label">gtk-quit</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkMenuItem" id="menuitem_edit">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Edit</property>
+                <property name="use_underline">True</property>
+                <child type="submenu">
+                  <object class="GtkMenu" id="menuitem_edit_menu">
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_undo">
+                        <property name="label">gtk-undo</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="z" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkSeparatorMenuItem" id="menuitem_separator2">
+                        <property name="visible">True</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_cut">
+                        <property name="label">gtk-cut</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="x" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_copy">
+                        <property name="label">gtk-copy</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="c" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_paste">
+                        <property name="label">gtk-paste</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="v" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_delete">
+                        <property name="label">gtk-delete</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkSeparatorMenuItem" id="menuitem_separator3">
+                        <property name="visible">True</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_preferences">
+                        <property name="label">gtk-preferences</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkMenuItem" id="menuitem_match">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Match</property>
+                <property name="use_underline">True</property>
+                <child type="submenu">
+                  <object class="GtkMenu" id="menuitem_match_menu">
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_prev_file">
+                        <property name="label">_Previous file</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_prev_match">
+                        <property name="label">gtk-go-back</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="b" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_next_match">
+                        <property name="label">gtk-go-forward</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="n" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_next_file">
+                        <property name="label">_Next file</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="e" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkSeparatorMenuItem" id="menuitem_separator4">
+                        <property name="visible">True</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_replace">
+                        <property name="label">Replace _current</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                        <accelerator key="r" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_replace_file">
+                        <property name="label">Replace in _this file</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_replace_all">
+                        <property name="label">Replace in _all files</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkMenuItem" id="menuitem_help">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Help</property>
+                <property name="use_underline">True</property>
+                <child type="submenu">
+                  <object class="GtkMenu" id="menuitem_help_menu">
+                    <child>
+                      <object class="GtkImageMenuItem" id="menuitem_about">
+                        <property name="label">gtk-about</property>
+                        <property name="visible">True</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <property name="accel_group">mainwindow_accelgroup</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolbar" id="toolbar">
+            <property name="visible">True</property>
+            <property name="toolbar_style">both-horiz</property>
+            <child>
+              <object class="GtkToolButton" id="button_save">
+                <property name="visible">True</property>
+                <property name="is_important">True</property>
+                <property name="stock_id">gtk-save</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="button_save_all">
+                <property name="visible">True</property>
+                <property name="is_important">True</property>
+                <property name="stock_id">regexxer-save-all</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSeparatorToolItem" id="separatortoolitem1">
+                <property name="visible">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="button_undo">
+                <property name="visible">True</property>
+                <property name="is_important">True</property>
+                <property name="stock_id">gtk-undo</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSeparatorToolItem" id="separatortoolitem2">
+                <property name="visible">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="button_quit">
+                <property name="visible">True</property>
+                <property name="is_important">True</property>
+                <property name="stock_id">gtk-quit</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox_interior">
+            <property name="visible">True</property>
+            <property name="border_width">6</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkHPaned" id="paned">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkVBox" id="vbox_left">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="orientation">vertical</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkTable" id="table_file">
+                        <property name="visible">True</property>
+                        <property name="n_rows">3</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">6</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label_pattern">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Pattern:</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox_file">
+                            <property name="visible">True</property>
+                            <property name="spacing">9</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox_options">
+                                <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
+                                <property name="spacing">3</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="button_recursive">
+                                    <property name="label" translatable="yes">recursive</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="button_hidden">
+                                    <property name="label" translatable="yes">hidden</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment_options">
+                                <property name="visible">True</property>
+                                <property name="xalign">1</property>
+                                <property name="yalign">1</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <object class="GtkButton" id="button_find_files">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <object class="GtkAlignment" id="alignment_button_find_files">
+                                        <property name="visible">True</property>
+                                        <property name="xscale">0</property>
+                                        <property name="yscale">0</property>
+                                        <child>
+                                          <object class="GtkHBox" id="hbox_button_find_files">
+                                            <property name="visible">True</property>
+                                            <property name="spacing">2</property>
+                                            <child>
+                                              <object class="GtkImage" id="image_button_find_files">
+                                                <property name="visible">True</property>
+                                                <property name="stock">gtk-find</property>
+                                              </object>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">0</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <object class="GtkLabel" id="label_button_find_files">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">Find fi_les</property>
+                                                <property name="use_underline">True</property>
+                                              </object>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="pack_type">end</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_folder">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Fol_der:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">button_folder</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkFileChooserButton" id="button_folder">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="has_focus">True</property>
+                            <property name="action">select-folder</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame_filetree">
+                        <property name="visible">True</property>
+                        <property name="label_xalign">0</property>
+                        <child>
+                          <object class="GtkScrolledWindow" id="scrollwin_filetree">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hscrollbar_policy">automatic</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="vbox_right">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="orientation">vertical</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkTable" id="table_regex">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">3</property>
+                        <property name="column_spacing">6</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label_search">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Search:</property>
+                            <property name="mnemonic_widget">entry_regex</property>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_replace">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Replace:</property>
+                            <property name="mnemonic_widget">entry_substitution</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkEntry" id="entry_regex">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkEntry" id="entry_substitution">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="hbox_options">
+                            <property name="visible">True</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkCheckButton" id="button_multiple">
+                                <property name="label">/g</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="button_caseless">
+                                <property name="label">/i</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="button_find_matches">
+                            <property name="label">gtk-find</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_stock">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame_textview">
+                        <property name="visible">True</property>
+                        <property name="label_xalign">0</property>
+                        <child>
+                          <object class="GtkVBox" id="vbox_textview">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
+                            <property name="spacing">3</property>
+                            <child>
+                              <object class="GtkScrolledWindow" id="scrollwin_textview">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <child>
+                                  <object class="GtkTextView" id="textview">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="editable">False</property>
+                                    <property name="cursor_visible">False</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry_preview">
+                                <property name="visible">True</property>
+                                <property name="editable">False</property>
+                                <property name="has_frame">False</property>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="entry_preview-atkobject">
+                                    <property name="AtkObject::accessible-name" translatable="yes">Preview</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="action_area">
+                <property name="visible">True</property>
+                <property name="border_width">2</property>
+                <property name="spacing">10</property>
+                <child>
+                  <object class="GtkHBox" id="box_move">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <property name="homogeneous">True</property>
+                    <child>
+                      <object class="GtkButton" id="button_prev_file">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="button_prev_file-atkobject">
+                            <property name="AtkObject::accessible-name" translatable="yes">File backward</property>
+                            <property name="AtkObject::accessible-description" translatable="yes">Go to the previous matching file</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkImage" id="image_button_prev_file">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-goto-first</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="button_prev_match">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="button_prev_match-atkobject">
+                            <property name="AtkObject::accessible-name" translatable="yes">Backward</property>
+                            <property name="AtkObject::accessible-description" translatable="yes">Go to previous match</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkImage" id="image_button_prev_match">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-go-back</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="button_next_match">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="button_next_match-atkobject">
+                            <property name="AtkObject::accessible-name" translatable="yes">Forward</property>
+                            <property name="AtkObject::accessible-description" translatable="yes">Go to next match</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkImage" id="image_button_next_match">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-go-forward</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="button_next_file">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="button_next_file-atkobject">
+                            <property name="AtkObject::accessible-name" translatable="yes">File forward</property>
+                            <property name="AtkObject::accessible-description" translatable="yes">Go to the next matching file</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkImage" id="image_button_next_file">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-goto-last</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="pack_type">end</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="box_replace">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <property name="homogeneous">True</property>
+                    <child>
+                      <object class="GtkButton" id="button_replace">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="button_replace-atkobject">
+                            <property name="AtkObject::accessible-description" translatable="yes">Replace current match</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkAlignment" id="alignment_button_replace">
+                            <property name="visible">True</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox_button_replace">
+                                <property name="visible">True</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image_button_replace">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-convert</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_button_replace">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Replace</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="button_replace_file">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="button_replace_file-atkobject">
+                            <property name="AtkObject::accessible-description" translatable="yes">Replace all matches in the current file</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkAlignment" id="alignment_button_replace_file">
+                            <property name="visible">True</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox_button_replace_file">
+                                <property name="visible">True</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image_button_replace_file">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-convert</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_button_replace_file">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_This file</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="button_replace_all">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="button_replace_all-atkobject">
+                            <property name="AtkObject::accessible-description" translatable="yes">Replace all matches in all files</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkAlignment" id="alignment_button_replace_all">
+                            <property name="visible">True</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox_button_replace_all">
+                                <property name="visible">True</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image_button_replace_all">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-convert</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label_button_replace_all">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_All files</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="pack_type">end</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkAccelGroup" id="mainwindow_accelgroup"/>
+</interface>
diff --git a/ui/prefdialog.ui b/ui/prefdialog.ui
new file mode 100644
index 0000000..50d6d1a
--- /dev/null
+++ b/ui/prefdialog.ui
@@ -0,0 +1,562 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Icons only</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Text only</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Icons and text</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Both horizontal</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkDialog" id="prefdialog">
+    <property name="title" translatable="yes">Preferences</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="focus_on_map">True</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</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="has_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="GtkNotebook" id="notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="show_tabs">True</property>
+            <property name="show_border">True</property>
+            <property name="tab_pos">GTK_POS_TOP</property>
+            <property name="scrollable">False</property>
+            <property name="enable_popup">False</property>
+            <child>
+              <object class="GtkTable" id="table_look">
+                <property name="border_width">10</property>
+                <property name="visible">True</property>
+                <property name="n_rows">4</property>
+                <property name="n_columns">2</property>
+                <property name="homogeneous">False</property>
+                <property name="row_spacing">12</property>
+                <property name="column_spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label_textview_font">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Text view font:</property>
+                    <property name="use_underline">True</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</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">button_textview_font</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">0</property>
+                    <property name="bottom_attach">1</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options">expand</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_match_color">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Match color:</property>
+                    <property name="use_underline">True</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</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">button_match_color</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options">expand</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_current_color">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">C_urrent match color:</property>
+                    <property name="use_underline">True</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</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">button_current_color</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options">expand</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_toolbar_style">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Tool_bar style:</property>
+                    <property name="use_underline">True</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</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                    <property name="mnemonic_widget">combo_toolbar_style</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="right_attach">1</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options">expand</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkColorButton" id="button_current_color">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="use_alpha">False</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkColorButton" id="button_match_color">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="use_alpha">False</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFontButton" id="button_textview_font">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="show_style">True</property>
+                    <property name="show_size">True</property>
+                    <property name="use_font">True</property>
+                    <property name="use_size">False</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">0</property>
+                    <property name="bottom_attach">1</property>
+                    <property name="y_options"/>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBox" id="combo_toolbar_style">
+                    <property name="visible">True</property>
+                    <property name="model">model1</property>
+                    <child>
+                      <object class="GtkCellRendererText" id="renderer1"/>
+                      <attributes>
+                        <attribute name="text">0</attribute>
+                      </attributes>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options">fill</property>
+                    <property name="y_options">fill</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkHBox" id="hbox_look">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">2</property>
+                <child>
+                  <object class="GtkImage" id="image_look">
+                    <property name="visible">True</property>
+                    <property name="stock">gtk-preferences</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>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_look">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Look&#x2019;n&#x2019;feel</property>
+                    <property name="use_underline">True</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>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox_file">
+                <property name="border_width">10</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label_info">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">regexxer attempts to read a file in the following encodings before giving up:</property>
+                    <property name="use_underline">False</property>
+                    <property name="use_markup">False</property>
+                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap">True</property>
+                    <property name="selectable">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xpad">0</property>
+                    <property name="ypad">0</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkTable" id="table_encoding">
+                    <property name="visible">True</property>
+                    <property name="n_rows">3</property>
+                    <property name="n_columns">2</property>
+                    <property name="homogeneous">False</property>
+                    <property name="row_spacing">0</property>
+                    <property name="column_spacing">3</property>
+                    <child>
+                      <object class="GtkLabel" id="label_3rd">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">3.</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">1</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label_2nd">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">2.</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">1</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label_1st">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">1.</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">1</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="right_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="bottom_attach">1</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label_utf8">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">UTF-8</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</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">0</property>
+                        <property name="bottom_attach">1</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="box_fallback">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label_fallback">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Fallback _encoding:</property>
+                            <property name="use_underline">True</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</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                            <property name="mnemonic_widget">entry_fallback</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="entry_fallback">
+                            <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">0</property>
+                            <property name="has_frame">True</property>
+                            <property name="activates_default">False</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label_locale">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">The encoding specified by the current locale</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</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">fill</property>
+                        <property name="y_options">fill</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="tab_expand">False</property>
+                <property name="tab_fill">True</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkHBox" id="hbox_file">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">2</property>
+                <child>
+                  <object class="GtkImage" id="image_file">
+                    <property name="visible">True</property>
+                    <property name="stock">gtk-properties</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>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_file">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_File access</property>
+                    <property name="use_underline">True</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>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</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>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">closebutton1</action-widget>
+    </action-widgets>
+  </object>
+</interface>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]