[regexxer] Remove dependencies libglade and gmodule. Using of GtkBuilder instead.
- From: Fabien Parent <fparent src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [regexxer] Remove dependencies libglade and gmodule. Using of GtkBuilder instead.
- Date: Mon, 21 Sep 2009 20:17:19 +0000 (UTC)
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’n’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]