[dasher] * Use GtkBuilder instead of Glade, removing last vestiges of



commit e13ab499c58f4ae35fd0e79fc4b416ea8b8dd8be
Author: Patrick Welche <prlw1 cam ac uk>
Date:   Thu Aug 6 15:53:19 2009 +0200

    * Use GtkBuilder instead of Glade, removing last vestiges of
      GtkFileSelection.
    * Use GtkActions. Callbacks are in dasher_main.
    * Reduce / simplify number of creation functions of DasherEditorInternal.

 ChangeLog                                          |    7 +
 Data/GUI/Makefile.am                               |   11 +
 Data/GUI/dasher.compose.ui                         | 1078 +++++++++++++++++
 Data/GUI/dasher.direct.ui                          |  472 ++++++++
 Data/GUI/dasher.fullscreen.ui                      |  684 +++++++++++
 Data/GUI/dasher.gameWIP.ui                         | 1008 ++++++++++++++++
 .../dasher.preferences.ui}                         |  754 ++++++-------
 Data/GUI/dasher.traditional.ui                     |  452 ++++++++
 .../dashermaemo.preferences.ui}                    |  385 +++----
 Data/GUI/dashermaemo.ui                            |  651 +++++++++++
 Data/GUI/dashermaemofullscreen.ui                  |  589 ++++++++++
 Data/Makefile.am                                   |    2 +-
 Data/glade/Makefile.am                             |   21 -
 Data/glade/dasher.compose.glade                    | 1208 --------------------
 Data/glade/dasher.direct.glade                     |  499 --------
 Data/glade/dasher.fullscreen.glade                 |  735 ------------
 Data/glade/dasher.gameWIP.glade                    | 1140 ------------------
 Data/glade/dasher.traditional.glade                |  924 ---------------
 Data/glade/dashermaemo.glade                       |  703 ------------
 Data/glade/dashermaemofullscreen.glade             |  653 -----------
 INSTALL                                            |   53 +-
 Makefile.am                                        |    5 +-
 Src/Common/Makefile.am                             |    2 +-
 Src/DasherCore/Makefile.am                         |    2 +-
 Src/DasherCore/NodeCreationManager.h               |    2 +-
 Src/Gtk2/GtkDasherControl.cpp                      |    8 +-
 Src/Gtk2/GtkDasherControl.h                        |   10 +-
 Src/Gtk2/Makefile.am                               |   27 +-
 Src/Gtk2/Preferences.cpp                           |  338 +++---
 Src/Gtk2/Preferences.h                             |    6 +-
 Src/Gtk2/dasher_editor.cpp                         |    8 +-
 Src/Gtk2/dasher_editor.h                           |   25 +-
 Src/Gtk2/dasher_editor_external.cpp                |    6 +-
 Src/Gtk2/dasher_editor_internal.cpp                |  113 +-
 Src/Gtk2/dasher_editor_internal.h                  |   16 +-
 Src/Gtk2/dasher_lock_dialogue.cpp                  |   32 +-
 Src/Gtk2/dasher_lock_dialogue.h                    |    5 +-
 Src/Gtk2/dasher_main.cpp                           |  553 ++++------
 Src/Gtk2/dasher_main.h                             |   12 +-
 Src/Gtk2/game_mode_helper.cpp                      |   26 +-
 Src/Gtk2/game_mode_helper.h                        |    3 +-
 Src/Makefile.am                                    |    4 +-
 Src/main.cc                                        |   13 +-
 configure.ac                                       |   66 +-
 44 files changed, 6093 insertions(+), 7218 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 55be7f3..293c6b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-08-06  Patrick Welche <prlw1 cam ac uk>
+
+	* Use GtkBuilder instead of Glade, removing last vestiges of
+	  GtkFileSelection.
+	* Use GtkActions. Callbacks are in dasher_main.
+	* Reduce / simplify number of creation functions of DasherEditorInternal.
+
 2009-07-09  Patrick Welche <prlw1 cam ac uk>
 
 	* Make the alphabet's dtd match the parser more closely.
diff --git a/Data/GUI/Makefile.am b/Data/GUI/Makefile.am
new file mode 100644
index 0000000..9a2e312
--- /dev/null
+++ b/Data/GUI/Makefile.am
@@ -0,0 +1,11 @@
+dist_pkgdata_DATA = \
+	Makefile.am \
+	dasher.compose.ui \
+	dasher.direct.ui \
+	dasher.fullscreen.ui \
+	dasher.gameWIP.ui \
+	dasher.preferences.ui \
+	dasher.traditional.ui \
+	dashermaemo.preferences.ui \
+	dashermaemo.ui \
+	dashermaemofullscreen.ui
diff --git a/Data/GUI/dasher.compose.ui b/Data/GUI/dasher.compose.ui
new file mode 100644
index 0000000..a0256f3
--- /dev/null
+++ b/Data/GUI/dasher.compose.ui
@@ -0,0 +1,1078 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">8</property>
+    <property name="lower">0.1</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">1</property>
+  </object>
+  <object class="GtkUIManager" id="uimanager1">
+    <child>
+      <object class="GtkActionGroup" id="actiongroup1">
+        <child>
+          <object class="GtkAction" id="menuitem4">
+            <property name="name">menuitem4</property>
+            <property name="label" translatable="yes">_File</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menunew">
+            <property name="stock_id">gtk-new</property>
+            <property name="name">menunew</property>
+            <signal handler="select_new_file" last_modification_time="Tue, 23 Sep 2003 11:16:26 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuopen">
+            <property name="stock_id">gtk-open</property>
+            <property name="name">menuopen</property>
+            <signal handler="select_open_file" last_modification_time="Tue, 23 Sep 2003 11:16:40 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menusave">
+            <property name="stock_id">gtk-save</property>
+            <property name="name">menusave</property>
+            <signal handler="save_file" last_modification_time="Tue, 23 Sep 2003 11:16:59 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menusaveas">
+            <property name="stock_id">gtk-save-as</property>
+            <property name="name">menusaveas</property>
+            <signal handler="select_save_file_as" last_modification_time="Tue, 23 Sep 2003 11:17:19 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuappend">
+            <property name="name">menuappend</property>
+            <property name="label" translatable="yes">_Append to file</property>
+            <signal handler="select_append_file" last_modification_time="Tue, 23 Sep 2003 11:19:29 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuimport">
+            <property name="name">menuimport</property>
+            <property name="label" translatable="yes">_Import Training Text</property>
+            <signal handler="select_import_file" last_modification_time="Tue, 23 Sep 2003 11:19:29 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuquit">
+            <property name="stock_id">gtk-quit</property>
+            <property name="name">menuquit</property>
+            <signal handler="ask_save_before_exit" last_modification_time="Tue, 23 Sep 2003 11:17:37 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem5">
+            <property name="name">menuitem5</property>
+            <property name="label" translatable="yes">_Edit</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menucut">
+            <property name="stock_id">gtk-cut</property>
+            <property name="name">menucut</property>
+            <signal handler="clipboard_cut" last_modification_time="Tue, 23 Sep 2003 11:19:57 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menucopy">
+            <property name="stock_id">gtk-copy</property>
+            <property name="name">menucopy</property>
+            <signal handler="clipboard_copy" last_modification_time="Tue, 23 Sep 2003 11:20:12 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menucopyall">
+            <property name="name">menucopyall</property>
+            <property name="label" translatable="yes">Copy _All</property>
+            <signal handler="clipboard_copy_all" last_modification_time="Tue, 23 Sep 2003 11:21:50 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menupaste">
+            <property name="stock_id">gtk-paste</property>
+            <property name="name">menupaste</property>
+            <signal handler="clipboard_paste" last_modification_time="Tue, 23 Sep 2003 11:20:26 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menupreferences">
+            <property name="stock_id">gtk-preferences</property>
+            <property name="name">menupreferences</property>
+            <property name="label" translatable="yes">Pr_eferences</property>
+            <signal handler="preferences_display" last_modification_time="Wed, 28 Jun 2006 14:18:15 GMT" name="activate"/>
+          </object>
+          <accelerator key="S" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem7">
+            <property name="name">menuitem7</property>
+            <property name="label" translatable="yes">_Help</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menututorial">
+            <property name="name">menututorial</property>
+            <property name="label" translatable="yes">Dasher _Tutorial</property>
+            <signal handler="on_menututorial_activate" last_modification_time="Fri, 30 Jun 2006 18:06:21 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="help_contents">
+            <property name="stock_id">gtk-help</property>
+            <property name="name">help_contents</property>
+            <property name="label" translatable="yes">_Contents</property>
+            <signal handler="show_help" last_modification_time="Thu, 20 Apr 2006 18:51:53 GMT" name="activate"/>
+          </object>
+          <accelerator key="F1" modifiers="0"/>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuabout">
+            <property name="stock_id">gtk-about</property>
+            <property name="name">menuabout</property>
+            <property name="label" translatable="yes">_About</property>
+            <signal handler="about_dasher" last_modification_time="Tue, 23 Sep 2003 11:21:50 GMT" name="activate"/>
+          </object>
+        </child>
+      </object>
+    </child>
+    <ui>
+      <menubar name="dasher_menu_bar">
+        <menu action="menuitem4">
+          <menuitem action="menunew"/>
+          <menuitem action="menuopen"/>
+          <menuitem action="menusave"/>
+          <menuitem action="menusaveas"/>
+          <menuitem action="menuappend"/>
+          <separator/>
+          <menuitem action="menuimport"/>
+          <menuitem action="menuquit"/>
+        </menu>
+        <menu action="menuitem5">
+          <menuitem action="menucut"/>
+          <menuitem action="menucopy"/>
+          <menuitem action="menucopyall"/>
+          <menuitem action="menupaste"/>
+          <separator/>
+          <menuitem action="menupreferences"/>
+        </menu>
+        <menu action="menuitem7">
+          <menuitem action="menututorial"/>
+          <separator/>
+          <menuitem action="help_contents"/>
+          <menuitem action="menuabout"/>
+        </menu>
+      </menubar>
+    </ui>
+  </object>
+  <object class="GtkWindow" id="window">
+    <property name="can_focus">True</property>
+    <property name="has_focus">True</property>
+    <property name="events">GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="ask_save_before_exit" last_modification_time="Mon, 22 Sep 2003 19:53:44 GMT" name="delete_event"/>
+    <signal handler="on_window_map" last_modification_time="Sun, 05 Mar 2006 20:22:17 GMT" name="map"/>
+    <child>
+      <object class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkMenuBar" constructor="uimanager1" id="dasher_menu_bar">
+            <property name="visible">True</property>
+            <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+            <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolbar" id="toolbar">
+            <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
+            <property name="toolbar_style">GTK_TOOLBAR_ICONS</property>
+            <property name="tooltips">True</property>
+            <property name="show_arrow">True</property>
+            <child>
+              <object class="GtkToolButton" id="New">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">New file</property>
+                <property name="stock_id">gtk-new</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="select_new_file" last_modification_time="Mon, 22 Sep 2003 23:40:14 GMT" name="clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="Open">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Open file</property>
+                <property name="stock_id">gtk-open</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="select_open_file" last_modification_time="Mon, 22 Sep 2003 23:40:28 GMT" name="clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="Save">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Save file</property>
+                <property name="stock_id">gtk-save</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="save_file" last_modification_time="Mon, 22 Sep 2003 23:40:42 GMT" name="clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="SaveAs">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Save file as</property>
+                <property name="stock_id">gtk-save-as</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="select_save_file_as" last_modification_time="Mon, 22 Sep 2003 23:40:58 GMT" name="clicked"/>
+              </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>
+                <property name="draw">True</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="Cut">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Cut</property>
+                <property name="stock_id">gtk-cut</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="clipboard_cut" last_modification_time="Mon, 22 Sep 2003 23:41:37 GMT" name="clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="Copy">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Copy</property>
+                <property name="stock_id">gtk-copy</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="clipboard_copy" last_modification_time="Mon, 22 Sep 2003 23:41:29 GMT" name="clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="Paste">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Paste</property>
+                <property name="stock_id">gtk-paste</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="clipboard_paste" last_modification_time="Mon, 22 Sep 2003 23:41:50 GMT" name="clicked"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox7">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkVBox" id="SideMenu">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <signal handler="sidemenu_press" last_modification_time="Tue, 23 May 2006 16:54:50 GMT" name="button_press_event"/>
+                <signal handler="sidemenu_release" last_modification_time="Tue, 23 May 2006 16:55:21 GMT" name="button_release_event"/>
+                <child>
+                  <object class="GtkButton" id="button32">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                    <signal handler="sidemenu_press" last_modification_time="Tue, 27 Jun 2006 10:31:48 GMT" name="button_press_event"/>
+                    <signal handler="sidemenu_release" last_modification_time="Tue, 27 Jun 2006 10:31:55 GMT" name="button_release_event"/>
+                    <signal handler="sidemenu_motion" last_modification_time="Tue, 27 Jun 2006 10:29:25 GMT" name="motion_notify_event"/>
+                    <child>
+                      <object class="GtkImage" id="image9">
+                        <property name="visible">True</property>
+                        <property name="stock">gtk-preferences</property>
+                        <property name="icon_size">4</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button31">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                    <signal handler="sidemenu_press" last_modification_time="Tue, 23 May 2006 17:38:41 GMT" name="button_press_event"/>
+                    <signal handler="sidemenu_release" last_modification_time="Tue, 23 May 2006 17:38:54 GMT" name="button_release_event"/>
+                    <signal handler="sidemenu_motion" last_modification_time="Tue, 23 May 2006 17:49:14 GMT" name="motion_notify_event"/>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button33">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                    <signal handler="toggle_hidden" last_modification_time="Tue, 27 Jun 2006 09:01:43 GMT" name="clicked"/>
+                    <child>
+                      <object class="GtkArrow" id="hide_arrow">
+                        <property name="visible">True</property>
+                        <property name="arrow_type">GTK_ARROW_RIGHT</property>
+                        <property name="shadow_type">GTK_SHADOW_OUT</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">0</property>
+                        <property name="ypad">0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox45">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment42">
+                    <property name="visible">True</property>
+                    <property name="xalign">0.5</property>
+                    <property name="yalign">0.5</property>
+                    <property name="xscale">1</property>
+                    <property name="yscale">1</property>
+                    <property name="top_padding">0</property>
+                    <property name="bottom_padding">0</property>
+                    <property name="left_padding">0</property>
+                    <property name="right_padding">0</property>
+                    <child>
+                      <object class="GtkHPaned" id="hpaned1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <child>
+                          <object class="Custom" id="DasherControl">
+                            <property name="width_request">200</property>
+                            <property name="height_request">200</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="has_focus">True</property>
+                            <property name="creation_function">create_dasher_control</property>
+                            <property name="int1">0</property>
+                            <property name="int2">0</property>
+                            <property name="last_modification_time">Sun, 05 Mar 2006 19:33:03 GMT</property>
+                            <signal handler="parameter_notification" last_modification_time="Sun, 05 Mar 2006 19:45:23 GMT" name="dasher_changed"/>
+                            <signal handler="handle_start_event" last_modification_time="Sun, 05 Mar 2006 19:45:35 GMT" name="dasher_start"/>
+                            <signal handler="handle_stop_event" last_modification_time="Sun, 05 Mar 2006 19:45:43 GMT" name="dasher_stop"/>
+                            <signal handler="handle_control_event" last_modification_time="Sun, 05 Mar 2006 19:45:53 GMT" name="dasher_control"/>
+                            <signal handler="gtk2_edit_output_callback" last_modification_time="Sun, 05 Mar 2006 19:46:13 GMT" name="dasher_edit_insert"/>
+                            <signal handler="gtk2_edit_delete_callback" last_modification_time="Sun, 05 Mar 2006 19:46:32 GMT" name="dasher_edit_delete"/>
+                            <signal handler="handle_context_request" last_modification_time="Sun, 05 Mar 2006 19:46:54 GMT" name="dasher_context_request"/>
+                            <signal handler="handle_request_settings" last_modification_time="Sun, 05 Mar 2006 19:47:12 GMT" name="dasher_request_settings"/>
+                            <signal handler="focus_in_event" last_modification_time="Sun, 05 Mar 2006 19:47:28 GMT" name="focus_in_event"/>
+                            <signal handler="on_lock_info" last_modification_time="Wed, 22 Mar 2006 10:38:44 GMT" name="dasher_lock_info"/>
+                            <signal handler="on_message" last_modification_time="Wed, 22 Mar 2006 14:24:04 GMT" name="dasher_message"/>
+                            <signal handler="convert_cb" last_modification_time="Tue, 30 May 2006 14:21:15 GMT" name="dasher_edit_convert"/>
+                            <signal handler="protect_cb" last_modification_time="Tue, 30 May 2006 14:21:26 GMT" name="dasher_edit_protect"/>
+                            <signal handler="on_command" last_modification_time="Thu, 14 Sep 2006 12:13:36 GMT" name="dasher_command"/>
+                          </object>
+                          <packing>
+                            <property name="shrink">True</property>
+                            <property name="resize">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkHBox" id="vbox40">
+                            <property name="visible">True</property>
+                            <property name="homogeneous">False</property>
+                            <property name="spacing">0</property>
+                            <child>
+                              <object class="GtkScrolledWindow" id="scrolledwindow5">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="shadow_type">GTK_SHADOW_IN</property>
+                                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                                <child>
+                                  <object class="GtkTextView" id="the_text_view">
+                                    <property name="visible">True</property>
+                                    <property name="can_default">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="events">GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK</property>
+                                    <property name="editable">True</property>
+                                    <property name="overwrite">False</property>
+                                    <property name="accepts_tab">True</property>
+                                    <property name="justification">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap_mode">GTK_WRAP_WORD</property>
+                                    <property name="cursor_visible">True</property>
+                                    <property name="pixels_above_lines">0</property>
+                                    <property name="pixels_below_lines">0</property>
+                                    <property name="pixels_inside_wrap">0</property>
+                                    <property name="left_margin">0</property>
+                                    <property name="right_margin">0</property>
+                                    <property name="indent">0</property>
+                                    <signal handler="edit_focus_in_event" last_modification_time="Fri, 21 Jul 2006 10:28:42 GMT" name="focus_in_event"/>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="vbox39">
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">0</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="padding">0</property>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="shrink">True</property>
+                            <property name="resize">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox8">
+                    <property name="border_width">2</property>
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">2</property>
+                    <child>
+                      <object class="GtkLabel" id="label109">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Speed:</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">2</property>
+                        <property name="ypad">0</property>
+                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                        <property name="width_chars">-1</property>
+                        <property name="single_line_mode">False</property>
+                        <property name="angle">0</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="spinbutton1">
+                        <property name="width_request">64</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="climb_rate">0.10000000149</property>
+                        <property name="digits">1</property>
+                        <property name="numeric">True</property>
+                        <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+                        <property name="snap_to_ticks">False</property>
+                        <property name="wrap">False</property>
+                        <property name="adjustment">adjustment1</property>
+                        <signal handler="speed_changed" name="value-changed"/>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label110">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Alphabet:</property>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0.5</property>
+                        <property name="xpad">2</property>
+                        <property name="ypad">0</property>
+                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                        <property name="width_chars">-1</property>
+                        <property name="single_line_mode">False</property>
+                        <property name="angle">0</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBox" id="combobox1">
+                        <property name="width_request">32</property>
+                        <property name="visible">True</property>
+                        <property name="add_tearoffs">False</property>
+                        <property name="focus_on_click">True</property>
+                        <signal handler="alphabet_combo_changed" last_modification_time="Tue, 27 Jun 2006 07:42:21 GMT" name="changed"/>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="open_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="cancel_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="ok_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="dasher_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:16 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="dasher_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:21:14 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="dasher_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:21:38 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="dasher_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:22:03 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection1">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="edit_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:37 GMT" name="close"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="edit_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:20:27 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="edit_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:20:19 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="edit_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:19:55 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection_2">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button14">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button15">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="append_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button16">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button17">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="import_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button18">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button19">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_and_quit_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button20">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button21">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="HiddenWindow">
+    <property name="width_request">128</property>
+    <property name="height_request">64</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">False</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkButton" id="RestoreButton">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="label" translatable="yes">Dasher</property>
+        <property name="use_underline">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="lock_window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Please Wait...</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkVBox" id="vbox43">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkLabel" id="lock_message">
+            <property name="visible">True</property>
+            <property name="label"/>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+          <packing>
+            <property name="padding">8</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment38">
+            <property name="border_width">8</property>
+            <property name="visible">True</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xscale">1</property>
+            <property name="yscale">1</property>
+            <property name="top_padding">0</property>
+            <property name="bottom_padding">0</property>
+            <property name="left_padding">0</property>
+            <property name="right_padding">0</property>
+            <child>
+              <object class="GtkProgressBar" id="lock_progress">
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.10000000149</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/Data/GUI/dasher.direct.ui b/Data/GUI/dasher.direct.ui
new file mode 100644
index 0000000..d5d32e9
--- /dev/null
+++ b/Data/GUI/dasher.direct.ui
@@ -0,0 +1,472 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">8</property>
+    <property name="lower">0.1</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">1</property>
+  </object>
+  <object class="GtkWindow" id="window">
+    <property name="events">GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">False</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="dasher_main_cb_window_close" last_modification_time="Mon, 22 Sep 2003 19:53:44 GMT" name="delete_event"/>
+    <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+    <child>
+      <object class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkVPaned" id="vpaned1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <object class="Custom" id="DasherEditor">
+                <property name="visible">True</property>
+                <property name="creation_function">create_dasher_editor</property>
+                <property name="int1">0</property>
+                <property name="int2">0</property>
+                <property name="last_modification_time">Sat, 31 Mar 2007 14:56:08 GMT</property>
+                <signal handler="dasher_main_cb_filename_changed" last_modification_time="Sat, 31 Mar 2007 15:42:49 GMT" name="filename_changed"/>
+                <signal handler="dasher_main_cb_buffer_changed" last_modification_time="Sat, 31 Mar 2007 15:43:06 GMT" name="buffer_changed"/>
+                <signal handler="dasher_main_cb_context_changed" last_modification_time="Sat, 31 Mar 2007 15:43:20 GMT" name="context_changed"/>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="Custom" id="DasherControl">
+                <property name="width_request">200</property>
+                <property name="height_request">200</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
+                <property name="creation_function">create_dasher_control</property>
+                <property name="int1">0</property>
+                <property name="int2">0</property>
+                <property name="last_modification_time">Sun, 05 Mar 2006 19:33:03 GMT</property>
+                <signal handler="parameter_notification" last_modification_time="Sun, 05 Mar 2006 19:45:23 GMT" name="dasher_changed"/>
+                <signal handler="handle_start_event" last_modification_time="Sun, 05 Mar 2006 19:45:35 GMT" name="dasher_start"/>
+                <signal handler="handle_stop_event" last_modification_time="Sun, 05 Mar 2006 19:45:43 GMT" name="dasher_stop"/>
+                <signal handler="handle_control_event" last_modification_time="Sun, 05 Mar 2006 19:45:53 GMT" name="dasher_control"/>
+                <signal handler="gtk2_edit_output_callback" last_modification_time="Sun, 05 Mar 2006 19:46:13 GMT" name="dasher_edit_insert"/>
+                <signal handler="gtk2_edit_delete_callback" last_modification_time="Sun, 05 Mar 2006 19:46:32 GMT" name="dasher_edit_delete"/>
+                <signal handler="handle_context_request" last_modification_time="Sun, 05 Mar 2006 19:46:54 GMT" name="dasher_context_request"/>
+                <signal handler="handle_request_settings" last_modification_time="Sun, 05 Mar 2006 19:47:12 GMT" name="dasher_request_settings"/>
+                <signal handler="focus_in_event" last_modification_time="Sun, 05 Mar 2006 19:47:28 GMT" name="focus_in_event"/>
+                <signal handler="on_lock_info" last_modification_time="Wed, 22 Mar 2006 10:38:44 GMT" name="dasher_lock_info"/>
+                <signal handler="on_message" last_modification_time="Wed, 22 Mar 2006 14:24:04 GMT" name="dasher_message"/>
+                <signal handler="convert_cb" last_modification_time="Tue, 30 May 2006 14:21:15 GMT" name="dasher_edit_convert"/>
+                <signal handler="protect_cb" last_modification_time="Tue, 30 May 2006 14:21:26 GMT" name="dasher_edit_protect"/>
+                <signal handler="on_command" last_modification_time="Thu, 14 Sep 2006 12:13:36 GMT" name="dasher_command"/>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox8">
+            <property name="border_width">2</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">2</property>
+            <child>
+              <object class="GtkLabel" id="label109">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Speed:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">2</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSpinButton" id="spinbutton1">
+                <property name="width_request">64</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="climb_rate">0.10000000149</property>
+                <property name="digits">1</property>
+                <property name="numeric">True</property>
+                <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+                <property name="snap_to_ticks">False</property>
+                <property name="wrap">False</property>
+                <property name="adjustment">adjustment1</property>
+                <signal handler="speed_changed" name="value-changed"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label110">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Alphabet:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">2</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBox" id="combobox1">
+                <property name="width_request">32</property>
+                <property name="visible">True</property>
+                <property name="add_tearoffs">False</property>
+                <property name="focus_on_click">True</property>
+                <signal handler="alphabet_combo_changed" last_modification_time="Tue, 27 Jun 2006 07:42:21 GMT" name="changed"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="open_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="cancel_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="ok_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button14">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button15">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="append_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button16">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button17">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="import_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button18">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button19">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_and_quit_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button20">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button21">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="HiddenWindow">
+    <property name="width_request">128</property>
+    <property name="height_request">64</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">False</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkButton" id="RestoreButton">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="label" translatable="yes">Dasher</property>
+        <property name="use_underline">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="lock_window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Please Wait...</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkVBox" id="vbox43">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkLabel" id="lock_message">
+            <property name="visible">True</property>
+            <property name="label"/>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+          <packing>
+            <property name="padding">8</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment38">
+            <property name="border_width">8</property>
+            <property name="visible">True</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xscale">1</property>
+            <property name="yscale">1</property>
+            <property name="top_padding">0</property>
+            <property name="bottom_padding">0</property>
+            <property name="left_padding">0</property>
+            <property name="right_padding">0</property>
+            <child>
+              <object class="GtkProgressBar" id="lock_progress">
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.10000000149</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/Data/GUI/dasher.fullscreen.ui b/Data/GUI/dasher.fullscreen.ui
new file mode 100644
index 0000000..41513b7
--- /dev/null
+++ b/Data/GUI/dasher.fullscreen.ui
@@ -0,0 +1,684 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkWindow" id="window">
+    <property name="can_focus">True</property>
+    <property name="has_focus">True</property>
+    <property name="events">GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="ask_save_before_exit" last_modification_time="Mon, 22 Sep 2003 19:53:44 GMT" name="delete_event"/>
+    <signal handler="on_window_map" last_modification_time="Sun, 05 Mar 2006 20:22:17 GMT" name="map"/>
+    <child>
+      <object class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkAlignment" id="alignment61">
+            <property name="border_width">8</property>
+            <property name="visible">True</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xscale">1</property>
+            <property name="yscale">1</property>
+            <property name="top_padding">0</property>
+            <property name="bottom_padding">0</property>
+            <property name="left_padding">0</property>
+            <property name="right_padding">0</property>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow5">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTextView" id="the_text_view">
+                    <property name="height_request">256</property>
+                    <property name="visible">True</property>
+                    <property name="can_default">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="events">GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK</property>
+                    <property name="editable">True</property>
+                    <property name="overwrite">False</property>
+                    <property name="accepts_tab">True</property>
+                    <property name="justification">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap_mode">GTK_WRAP_WORD</property>
+                    <property name="cursor_visible">True</property>
+                    <property name="pixels_above_lines">0</property>
+                    <property name="pixels_below_lines">0</property>
+                    <property name="pixels_inside_wrap">0</property>
+                    <property name="left_margin">0</property>
+                    <property name="right_margin">0</property>
+                    <property name="indent">0</property>
+                    <signal handler="edit_focus_in_event" last_modification_time="Fri, 21 Jul 2006 10:28:42 GMT" name="focus_in_event"/>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox7">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkVBox" id="vbox59">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkButton" id="button38">
+                    <property name="border_width">8</property>
+                    <property name="width_request">128</property>
+                    <property name="height_request">128</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="no">button38</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button37">
+                    <property name="border_width">8</property>
+                    <property name="width_request">128</property>
+                    <property name="height_request">128</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="no">button37</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button36">
+                    <property name="border_width">8</property>
+                    <property name="width_request">128</property>
+                    <property name="height_request">128</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="no">button36</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkAlignment" id="alignment60">
+                <property name="border_width">10</property>
+                <property name="visible">True</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xscale">1</property>
+                <property name="yscale">1</property>
+                <property name="top_padding">0</property>
+                <property name="bottom_padding">0</property>
+                <property name="left_padding">0</property>
+                <property name="right_padding">0</property>
+                <child>
+                  <object class="Custom" id="DasherControl">
+                    <property name="width_request">200</property>
+                    <property name="height_request">200</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="has_focus">True</property>
+                    <property name="creation_function">create_dasher_control</property>
+                    <property name="int1">0</property>
+                    <property name="int2">0</property>
+                    <property name="last_modification_time">Sun, 05 Mar 2006 19:33:03 GMT</property>
+                    <signal handler="parameter_notification" last_modification_time="Sun, 05 Mar 2006 19:45:23 GMT" name="dasher_changed"/>
+                    <signal handler="handle_start_event" last_modification_time="Sun, 05 Mar 2006 19:45:35 GMT" name="dasher_start"/>
+                    <signal handler="handle_stop_event" last_modification_time="Sun, 05 Mar 2006 19:45:43 GMT" name="dasher_stop"/>
+                    <signal handler="handle_control_event" last_modification_time="Sun, 05 Mar 2006 19:45:53 GMT" name="dasher_control"/>
+                    <signal handler="gtk2_edit_output_callback" last_modification_time="Sun, 05 Mar 2006 19:46:13 GMT" name="dasher_edit_insert"/>
+                    <signal handler="gtk2_edit_delete_callback" last_modification_time="Sun, 05 Mar 2006 19:46:32 GMT" name="dasher_edit_delete"/>
+                    <signal handler="handle_context_request" last_modification_time="Sun, 05 Mar 2006 19:46:54 GMT" name="dasher_context_request"/>
+                    <signal handler="handle_request_settings" last_modification_time="Sun, 05 Mar 2006 19:47:12 GMT" name="dasher_request_settings"/>
+                    <signal handler="focus_in_event" last_modification_time="Sun, 05 Mar 2006 19:47:28 GMT" name="focus_in_event"/>
+                    <signal handler="on_lock_info" last_modification_time="Wed, 22 Mar 2006 10:38:44 GMT" name="dasher_lock_info"/>
+                    <signal handler="on_message" last_modification_time="Wed, 22 Mar 2006 14:24:04 GMT" name="dasher_message"/>
+                    <signal handler="convert_cb" last_modification_time="Tue, 30 May 2006 14:21:15 GMT" name="dasher_edit_convert"/>
+                    <signal handler="protect_cb" last_modification_time="Tue, 30 May 2006 14:21:26 GMT" name="dasher_edit_protect"/>
+                    <signal handler="on_command" last_modification_time="Thu, 14 Sep 2006 12:13:36 GMT" name="dasher_command"/>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox60">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkButton" id="button33">
+                    <property name="border_width">8</property>
+                    <property name="width_request">128</property>
+                    <property name="height_request">128</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="no">button33</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button34">
+                    <property name="border_width">8</property>
+                    <property name="width_request">128</property>
+                    <property name="height_request">128</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="no">button34</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button35">
+                    <property name="border_width">8</property>
+                    <property name="width_request">128</property>
+                    <property name="height_request">128</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="no">button35</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="open_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="cancel_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="ok_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="dasher_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:16 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="dasher_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:21:14 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="dasher_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:21:38 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="dasher_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:22:03 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection1">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="edit_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:37 GMT" name="close"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="edit_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:20:27 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="edit_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:20:19 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="edit_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:19:55 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection_2">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button14">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button15">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="append_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button16">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button17">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="import_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button18">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button19">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_and_quit_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button20">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button21">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="HiddenWindow">
+    <property name="width_request">128</property>
+    <property name="height_request">64</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">False</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkButton" id="RestoreButton">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="label" translatable="yes">Dasher</property>
+        <property name="use_underline">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="lock_window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Please Wait...</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkVBox" id="vbox43">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkLabel" id="lock_message">
+            <property name="visible">True</property>
+            <property name="label"/>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+          <packing>
+            <property name="padding">8</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment38">
+            <property name="border_width">8</property>
+            <property name="visible">True</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xscale">1</property>
+            <property name="yscale">1</property>
+            <property name="top_padding">0</property>
+            <property name="bottom_padding">0</property>
+            <property name="left_padding">0</property>
+            <property name="right_padding">0</property>
+            <child>
+              <object class="GtkProgressBar" id="lock_progress">
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.10000000149</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/Data/GUI/dasher.gameWIP.ui b/Data/GUI/dasher.gameWIP.ui
new file mode 100644
index 0000000..e9d3ba7
--- /dev/null
+++ b/Data/GUI/dasher.gameWIP.ui
@@ -0,0 +1,1008 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">8</property>
+    <property name="lower">0.1</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">1</property>
+  </object>
+  <object class="GtkUIManager" id="uimanager1">
+    <child>
+      <object class="GtkActionGroup" id="actiongroup1">
+        <child>
+          <object class="GtkAction" id="menuitem4">
+            <property name="name">menuitem4</property>
+            <property name="label" translatable="yes">_File</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_new">
+            <property name="stock_id">gtk-new</property>
+            <property name="name">menu_command_new</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_open">
+            <property name="stock_id">gtk-open</property>
+            <property name="name">menu_command_open</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_save">
+            <property name="stock_id">gtk-save</property>
+            <property name="name">menu_command_save</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_saveas">
+            <property name="stock_id">gtk-save-as</property>
+            <property name="name">menu_command_saveas</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_append">
+            <property name="name">menu_command_append</property>
+            <property name="label" translatable="yes">A_ppend to file...</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_import">
+            <property name="name">menu_command_import</property>
+            <property name="label" translatable="yes">_Import Training Text...</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_quit">
+            <property name="stock_id">gtk-quit</property>
+            <property name="name">menu_command_quit</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem5">
+            <property name="name">menuitem5</property>
+            <property name="label" translatable="yes">_Edit</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_cut">
+            <property name="stock_id">gtk-cut</property>
+            <property name="name">menu_command_cut</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_copy">
+            <property name="stock_id">gtk-copy</property>
+            <property name="name">menu_command_copy</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_copyall">
+            <property name="name">menu_command_copyall</property>
+            <property name="label" translatable="yes">Copy _All</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_paste">
+            <property name="stock_id">gtk-paste</property>
+            <property name="name">menu_command_paste</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_preferences">
+            <property name="stock_id">gtk-preferences</property>
+            <property name="name">menu_command_preferences</property>
+            <property name="label" translatable="yes">Pr_eferences...</property>
+          </object>
+          <accelerator key="S" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem7">
+            <property name="name">menuitem7</property>
+            <property name="label" translatable="yes">_Help</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_help">
+            <property name="stock_id">gtk-help</property>
+            <property name="name">menu_command_help</property>
+            <property name="label" translatable="yes">_Contents...</property>
+          </object>
+          <accelerator key="F1" modifiers="0"/>
+        </child>
+        <child>
+          <object class="GtkAction" id="menu_command_about">
+            <property name="stock_id">gtk-about</property>
+            <property name="name">menu_command_about</property>
+            <property name="label" translatable="yes">_About...</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="fulldemo">
+            <property name="name">fulldemo</property>
+            <property name="label" translatable="yes">Full Demo</property>
+          </object>
+        </child>
+      </object>
+    </child>
+    <ui>
+      <menubar name="dasher_menu_bar">
+        <menu action="menuitem4">
+          <menuitem action="menu_command_new"/>
+          <menuitem action="menu_command_open"/>
+          <menuitem action="menu_command_save"/>
+          <menuitem action="menu_command_saveas"/>
+          <menuitem action="menu_command_append"/>
+          <separator/>
+          <menuitem action="menu_command_import"/>
+          <menuitem action="menu_command_quit"/>
+        </menu>
+        <menu action="menuitem5">
+          <menuitem action="menu_command_cut"/>
+          <menuitem action="menu_command_copy"/>
+          <menuitem action="menu_command_copyall"/>
+          <menuitem action="menu_command_paste"/>
+          <separator/>
+          <menuitem action="menu_command_preferences"/>
+        </menu>
+        <menu action="menuitem7">
+          <menuitem action="menu_command_help"/>
+          <menuitem action="menu_command_about"/>
+          <menuitem action="fulldemo"/>
+        </menu>
+      </menubar>
+    </ui>
+  </object>
+  <object class="GtkWindow" id="window">
+    <property name="can_focus">True</property>
+    <property name="has_focus">True</property>
+    <property name="events">GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <signal handler="dasher_main_cb_window_close" last_modification_time="Tue, 06 Feb 2007 14:25:42 GMT" name="delete_event"/>
+    <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+    <child>
+      <object class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+        <child>
+          <object class="GtkMenuBar" constructor="uimanager1" id="dasher_menu_bar">
+            <property name="visible">True</property>
+            <property name="tooltip-text" translatable="yes">Quit</property>
+            <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolbar" id="toolbar">
+            <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
+            <property name="toolbar_style">GTK_TOOLBAR_ICONS</property>
+            <property name="tooltips">True</property>
+            <property name="show_arrow">True</property>
+            <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+            <child>
+              <object class="GtkToolButton" id="tb_command_new">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">New file</property>
+                <property name="stock_id">gtk-new</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_open">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Open file</property>
+                <property name="stock_id">gtk-open</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_save">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Save file</property>
+                <property name="stock_id">gtk-save</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_saveas">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Save file as</property>
+                <property name="stock_id">gtk-save-as</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </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>
+                <property name="draw">True</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_cut">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Cut</property>
+                <property name="stock_id">gtk-cut</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_copy">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Copy</property>
+                <property name="stock_id">gtk-copy</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_paste">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Paste</property>
+                <property name="stock_id">gtk-paste</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </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>
+                <property name="draw">True</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_preferences">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Preferences</property>
+                <property name="stock_id">gtk-preferences</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_help">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Help</property>
+                <property name="stock_id">gtk-help</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToggleToolButton" id="tb_command_game">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Launch Dasher Game &amp; Demo mode!</property>
+                <property name="label" translatable="yes"/>
+                <property name="use_underline">True</property>
+                <property name="stock_id">gtk-about</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <property name="active">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolItem" id="toolitem1">
+                <property name="visible">True</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+                <child>
+                  <object class="GtkVSeparator" id="vseparator1">
+                    <property name="visible">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="tb_command_quit">
+                <property name="visible">True</property>
+                <property name="tooltip-text" translatable="yes">Quit</property>
+                <property name="stock_id">gtk-quit</property>
+                <property name="visible_horizontal">True</property>
+                <property name="visible_vertical">True</property>
+                <property name="is_important">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVPaned" id="main_divider">
+            <property name="visible">True</property>
+            <property name="position">0</property>
+            <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+            <child>
+              <object class="GtkHBox" id="hbox13">
+                <property name="width_request">0</property>
+                <property name="height_request">65</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkVBox" id="vbox59">
+                    <property name="height_request">65</property>
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkLabel" id="game_info_label">
+                        <property name="width_request">600</property>
+                        <property name="label" translatable="yes"/>
+                        <property name="use_underline">False</property>
+                        <property name="use_markup">False</property>
+                        <property name="justify">GTK_JUSTIFY_FILL</property>
+                        <property name="wrap">False</property>
+                        <property name="selectable">False</property>
+                        <property name="xalign">0.5</property>
+                        <property name="yalign">0</property>
+                        <property name="xpad">2</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="Custom" id="DasherEditor">
+                        <property name="height_request">48</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="creation_function">create_dasher_editor</property>
+                        <property name="int1">0</property>
+                        <property name="int2">0</property>
+                        <property name="last_modification_time">Mon, 19 Mar 2007 15:25:57 GMT</property>
+                        <signal handler="dasher_main_cb_filename_changed" last_modification_time="Mon, 16 Apr 2007 10:58:09 GMT" name="filename_changed"/>
+                        <signal handler="dasher_main_cb_buffer_changed" last_modification_time="Mon, 16 Apr 2007 10:58:17 GMT" name="buffer_changed"/>
+                        <signal handler="dasher_main_cb_context_changed" last_modification_time="Mon, 16 Apr 2007 10:58:27 GMT" name="context_changed"/>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkTable" id="game_group">
+                    <property name="border_width">2</property>
+                    <property name="width_request">140</property>
+                    <property name="n_rows">2</property>
+                    <property name="n_columns">3</property>
+                    <property name="homogeneous">False</property>
+                    <property name="row_spacing">2</property>
+                    <property name="column_spacing">2</property>
+                    <child>
+                      <object class="GtkLabel" id="label130">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Level:</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"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label131">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Score:</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"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkToggleButton" id="demo_toggle">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Demo!</property>
+                        <property name="use_underline">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <property name="active">False</property>
+                        <property name="inconsistent">False</property>
+                      </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"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="level_box">
+                        <property name="width_request">32</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="editable">False</property>
+                        <property name="visibility">True</property>
+                        <property name="max_length">0</property>
+                        <property name="text" translatable="yes"/>
+                        <property name="has_frame">True</property>
+                        <property name="invisible_char">*</property>
+                        <property name="activates_default">False</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">2</property>
+                        <property name="right_attach">3</property>
+                        <property name="top_attach">0</property>
+                        <property name="bottom_attach">1</property>
+                        <property name="x_padding">2</property>
+                        <property name="y_padding">2</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="score_box">
+                        <property name="width_request">32</property>
+                        <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="text" translatable="yes"/>
+                        <property name="has_frame">True</property>
+                        <property name="invisible_char">*</property>
+                        <property name="activates_default">False</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_padding">2</property>
+                        <property name="y_padding">2</property>
+                        <property name="y_options"/>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="game_new_sentence">
+                        <property name="visible">True</property>
+                        <property name="tooltip-text" translatable="yes">New sentence</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <child>
+                          <object class="GtkImage" id="image25">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-refresh</property>
+                            <property name="icon_size">4</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xpad">0</property>
+                            <property name="ypad">0</property>
+                          </object>
+                        </child>
+                      </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"/>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">4</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="shrink">False</property>
+                <property name="resize">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="Custom" id="DasherControl">
+                <property name="width_request">200</property>
+                <property name="height_request">200</property>
+                <property name="visible">True</property>
+                <property name="creation_function">create_dasher_control</property>
+                <property name="int1">0</property>
+                <property name="int2">0</property>
+                <property name="last_modification_time">Sun, 05 Mar 2006 19:33:03 GMT</property>
+                <signal handler="parameter_notification" last_modification_time="Sun, 05 Mar 2006 19:45:23 GMT" name="dasher_changed"/>
+                <signal handler="handle_start_event" last_modification_time="Sun, 05 Mar 2006 19:45:35 GMT" name="dasher_start"/>
+                <signal handler="handle_stop_event" last_modification_time="Sun, 05 Mar 2006 19:45:43 GMT" name="dasher_stop"/>
+                <signal handler="handle_control_event" last_modification_time="Sun, 05 Mar 2006 19:45:53 GMT" name="dasher_control"/>
+                <signal handler="gtk2_edit_output_callback" last_modification_time="Sun, 05 Mar 2006 19:46:13 GMT" name="dasher_edit_insert"/>
+                <signal handler="gtk2_edit_delete_callback" last_modification_time="Sun, 05 Mar 2006 19:46:32 GMT" name="dasher_edit_delete"/>
+                <signal handler="handle_context_request" last_modification_time="Sun, 05 Mar 2006 19:46:54 GMT" name="dasher_context_request"/>
+                <signal handler="handle_request_settings" last_modification_time="Sun, 05 Mar 2006 19:47:12 GMT" name="dasher_request_settings"/>
+                <signal handler="focus_in_event" last_modification_time="Sun, 05 Mar 2006 19:47:28 GMT" name="focus_in_event"/>
+                <signal handler="on_lock_info" last_modification_time="Wed, 22 Mar 2006 10:38:44 GMT" name="dasher_lock_info"/>
+                <signal handler="on_message" last_modification_time="Wed, 22 Mar 2006 14:24:04 GMT" name="dasher_message"/>
+                <signal handler="convert_cb" last_modification_time="Tue, 30 May 2006 14:21:15 GMT" name="dasher_edit_convert"/>
+                <signal handler="protect_cb" last_modification_time="Tue, 30 May 2006 14:21:26 GMT" name="dasher_edit_protect"/>
+                <signal handler="on_command" last_modification_time="Thu, 14 Sep 2006 12:13:36 GMT" name="dasher_command"/>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox8">
+            <property name="border_width">2</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">2</property>
+            <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+            <child>
+              <object class="GtkLabel" id="label109">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Speed:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">2</property>
+                <property name="ypad">0</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSpinButton" id="spinbutton1">
+                <property name="width_request">64</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="climb_rate">0.10000000149</property>
+                <property name="digits">1</property>
+                <property name="numeric">True</property>
+                <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+                <property name="snap_to_ticks">False</property>
+                <property name="wrap">False</property>
+                <property name="adjustment">adjustment1</property>
+                <signal handler="speed_changed" name="value-changed"/>
+                <signal handler="test_focus_handler" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label110">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Alphabet:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">2</property>
+                <property name="ypad">0</property>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBox" id="combobox1">
+                <property name="width_request">32</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <signal handler="alphabet_combo_changed" last_modification_time="Tue, 27 Jun 2006 07:42:21 GMT" name="changed"/>
+                <signal handler="test_focus_handler" last_modification_time="Fri, 02 Feb 2007 14:30:40 GMT" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="open_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="cancel_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="ok_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button14">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button15">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="append_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button16">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button17">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="import_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button18">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button19">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_and_quit_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button20">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button21">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="lock_window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Please Wait...</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <child>
+      <object class="GtkVBox" id="vbox43">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkLabel" id="lock_message">
+            <property name="visible">True</property>
+            <property name="label"/>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+          </object>
+          <packing>
+            <property name="padding">8</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment38">
+            <property name="border_width">8</property>
+            <property name="visible">True</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xscale">1</property>
+            <property name="yscale">1</property>
+            <property name="top_padding">0</property>
+            <property name="bottom_padding">0</property>
+            <property name="left_padding">0</property>
+            <property name="right_padding">0</property>
+            <child>
+              <object class="GtkProgressBar" id="lock_progress">
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.10000000149</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/Data/glade/dasher.preferences.glade b/Data/GUI/dasher.preferences.ui
similarity index 76%
rename from Data/glade/dasher.preferences.glade
rename to Data/GUI/dasher.preferences.ui
index 2732123..56d9710 100644
--- a/Data/glade/dasher.preferences.glade
+++ b/Data/GUI/dasher.preferences.ui
@@ -1,46 +1,74 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<?xml version="1.0"?>
 <!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkWindow" id="preferences">
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">100</property>
+    <property name="lower">0</property>
+    <property name="page_increment">0.1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">8</property>
+    <property name="lower">0.1</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">1</property>
+  </object>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Centre circle</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Two box</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="preferences">
     <property name="title" translatable="yes">Dasher Preferences</property>
-    <signal name="delete_event" handler="preferences_hide"/>
+    <signal handler="preferences_hide" name="delete_event"/>
     <child>
-      <widget class="GtkVBox" id="vbox2">
+      <object class="GtkVBox" id="vbox2">
         <property name="visible">True</property>
         <child>
-          <widget class="GtkAlignment" id="alignment15">
+          <object class="GtkAlignment" id="alignment15">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkNotebook" id="notebook1">
+              <object class="GtkNotebook" id="notebook1">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <child>
-                  <widget class="GtkHBox" id="hbox9">
+                  <object class="GtkHBox" id="hbox9">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="spacing">18</property>
                     <child>
-                      <widget class="GtkVBox" id="frame3">
+                      <object class="GtkVBox" id="frame3">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label112">
+                          <object class="GtkLabel" id="label112">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Alphabet Selection&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment44">
+                          <object class="GtkAlignment" id="alignment44">
                             <property name="visible">True</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkScrolledWindow" id="scrolledwindow13">
+                              <object class="GtkScrolledWindow" id="scrolledwindow13">
                                 <property name="width_request">256</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
@@ -48,73 +76,71 @@
                                 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                                 <property name="shadow_type">GTK_SHADOW_IN</property>
                                 <child>
-                                  <widget class="GtkTreeView" id="AlphabetTree">
+                                  <object class="GtkTreeView" id="AlphabetTree">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="headers_visible">False</property>
                                     <property name="rules_hint">True</property>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox50">
+                      <object class="GtkVBox" id="vbox50">
                         <property name="visible">True</property>
                         <property name="spacing">18</property>
                         <child>
-                          <widget class="GtkVBox" id="frame4">
+                          <object class="GtkVBox" id="frame4">
                             <child>
-                              <widget class="GtkLabel" id="label113">
+                              <object class="GtkLabel" id="label113">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Language Model&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment45">
+                              <object class="GtkAlignment" id="alignment45">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox24">
+                                  <object class="GtkVBox" id="vbox24">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton6">
+                                      <object class="GtkRadioButton" id="radiobutton6">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
-                                        <property name="label" translatable="yes" comments="PPM = Prediction by Partial Match, a statistical language model.">Standard letter-based PPM</property>
+                                        <property comments="PPM = Prediction by Partial Match, a statistical language model." name="label" translatable="yes">Standard letter-based PPM</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="languagemodel"/>
-                                      </widget>
+                                        <signal handler="languagemodel" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton7">
+                                      <object class="GtkRadioButton" id="radiobutton7">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="label" translatable="yes">Word-based model</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                         <property name="group">radiobutton6</property>
-                                        <signal name="clicked" handler="languagemodel"/>
-                                      </widget>
+                                        <signal handler="languagemodel" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -122,16 +148,15 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton8">
+                                      <object class="GtkRadioButton" id="radiobutton8">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
-                                        <property name="label" translatable="yes" comments="PPM =  Prediction by Partial Match, a styatistical language model.">Mixture model (PPM/dictionary)</property>
+                                        <property comments="PPM =  Prediction by Partial Match, a styatistical language model." name="label" translatable="yes">Mixture model (PPM/dictionary)</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                         <property name="group">radiobutton6</property>
-                                        <signal name="clicked" handler="languagemodel"/>
-                                      </widget>
+                                        <signal handler="languagemodel" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -139,109 +164,107 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton9">
+                                      <object class="GtkRadioButton" id="radiobutton9">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="label" translatable="yes">Japanese</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                         <property name="group">radiobutton6</property>
-                                        <signal name="clicked" handler="languagemodel"/>
-                                      </widget>
+                                        <signal handler="languagemodel" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                         <property name="position">3</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="frame21">
+                          <object class="GtkVBox" id="frame21">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label37">
+                              <object class="GtkLabel" id="label37">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Adaptation&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment9">
+                              <object class="GtkAlignment" id="alignment9">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox9">
+                                  <object class="GtkVBox" id="vbox9">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkCheckButton" id="cb_adaptive">
+                                      <object class="GtkCheckButton" id="cb_adaptive">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="label" translatable="yes">Language model adapts as you write.</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="active">True</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="toggled" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="toggled"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="frame23">
+                          <object class="GtkVBox" id="frame23">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label39">
+                              <object class="GtkLabel" id="label39">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Smoothing&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment11">
+                              <object class="GtkAlignment" id="alignment11">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox11">
+                                  <object class="GtkVBox" id="vbox11">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkLabel" id="label38">
+                                      <object class="GtkLabel" id="label38">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
                                         <property name="xpad">2</property>
@@ -250,88 +273,86 @@
 letter boxes. Note that selecting high values will slow
 your writing speed.</property>
                                         <property name="wrap">True</property>
-                                      </widget>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkHScale" id="uniformhscale">
+                                      <object class="GtkHScale" id="uniformhscale">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
-                                        <property name="adjustment">5 0 100 0.1 0.1 0</property>
-                                        <signal name="value-changed" handler="uniform_changed"/>
-                                      </widget>
+                                        <property name="adjustment">adjustment1</property>
+                                        <signal handler="uniform_changed" name="value-changed"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="position">1</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">2</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="frame8">
+                          <object class="GtkVBox" id="frame8">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label119">
+                              <object class="GtkLabel" id="label119">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Direction&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment50">
+                              <object class="GtkAlignment" id="alignment50">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox15">
+                                  <object class="GtkVBox" id="vbox15">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton1">
+                                      <object class="GtkRadioButton" id="radiobutton1">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
-                                        <property name="label" translatable="yes" comments="The default display orientation for the selected alphabet, ie left to right for English, right to left for Arabic, etc.">Alphabet Default</property>
+                                        <property comments="The default display orientation for the selected alphabet, ie left to right for English, right to left for Arabic, etc." name="label" translatable="yes">Alphabet Default</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="orientation"/>
-                                      </widget>
+                                        <signal handler="orientation" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton12">
+                                      <object class="GtkRadioButton" id="radiobutton12">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Custom</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                         <property name="group">radiobutton1</property>
-                                        <signal name="clicked" handler="orientation"/>
-                                      </widget>
+                                        <signal handler="orientation" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -339,40 +360,38 @@ your writing speed.</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkAlignment" id="alignment19">
+                                      <object class="GtkAlignment" id="alignment19">
                                         <property name="visible">True</property>
                                         <property name="left_padding">16</property>
                                         <child>
-                                          <widget class="GtkVBox" id="vbox27">
+                                          <object class="GtkVBox" id="vbox27">
                                             <property name="visible">True</property>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton2">
+                                              <object class="GtkRadioButton" id="radiobutton2">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Left to Right</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
                                               </packing>
                                             </child>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton3">
+                                              <object class="GtkRadioButton" id="radiobutton3">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Right to Left</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
                                                 <property name="group">radiobutton2</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
@@ -380,17 +399,16 @@ your writing speed.</property>
                                               </packing>
                                             </child>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton4">
+                                              <object class="GtkRadioButton" id="radiobutton4">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Top to Bottom</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
                                                 <property name="group">radiobutton2</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
@@ -398,89 +416,87 @@ your writing speed.</property>
                                               </packing>
                                             </child>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton5">
+                                              <object class="GtkRadioButton" id="radiobutton5">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Bottom to Top</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
                                                 <property name="group">radiobutton2</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
                                                 <property name="position">3</property>
                                               </packing>
                                             </child>
-                                          </widget>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                       <packing>
                                         <property name="position">2</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">3</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label111">
+                <child type="tab">
+                  <object class="GtkLabel" id="label111">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Language</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkHBox" id="hbox10">
+                  <object class="GtkHBox" id="hbox10">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="spacing">18</property>
                     <child>
-                      <widget class="GtkVBox" id="frame5">
+                      <object class="GtkVBox" id="frame5">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label115">
+                          <object class="GtkLabel" id="label115">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Control Style&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment46">
+                          <object class="GtkAlignment" id="alignment46">
                             <property name="visible">True</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox46">
+                              <object class="GtkVBox" id="vbox46">
                                 <property name="visible">True</property>
                                 <property name="spacing">4</property>
                                 <child>
-                                  <widget class="GtkScrolledWindow" id="scrolledwindow15">
+                                  <object class="GtkScrolledWindow" id="scrolledwindow15">
                                     <property name="height_request">192</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
@@ -488,76 +504,75 @@ your writing speed.</property>
                                     <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                                     <property name="shadow_type">GTK_SHADOW_IN</property>
                                     <child>
-                                      <widget class="GtkTreeView" id="input_filter_tree_view">
+                                      <object class="GtkTreeView" id="input_filter_tree_view">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="headers_visible">False</property>
                                         <property name="rules_hint">True</property>
-                                      </widget>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
                                 <child>
-                                  <widget class="GtkAlignment" id="alignment39">
+                                  <object class="GtkAlignment" id="alignment39">
                                     <property name="visible">True</property>
                                     <property name="xalign">1</property>
                                     <property name="xscale">0</property>
                                     <property name="yscale">0</property>
                                     <child>
-                                      <widget class="GtkButton" id="button13">
+                                      <object class="GtkButton" id="button13">
                                         <property name="width_request">96</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="label" translatable="yes">Options</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
-                                      </widget>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox47">
+                      <object class="GtkVBox" id="vbox47">
                         <property name="visible">True</property>
                         <property name="spacing">18</property>
                         <child>
-                          <widget class="GtkVBox" id="frame6">
+                          <object class="GtkVBox" id="frame6">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label116">
+                              <object class="GtkLabel" id="label116">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Input Device&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment47">
+                              <object class="GtkAlignment" id="alignment47">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox48">
+                                  <object class="GtkVBox" id="vbox48">
                                     <property name="visible">True</property>
                                     <property name="spacing">4</property>
                                     <child>
-                                      <widget class="GtkScrolledWindow" id="scrolledwindow12">
+                                      <object class="GtkScrolledWindow" id="scrolledwindow12">
                                         <property name="height_request">64</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
@@ -565,157 +580,153 @@ your writing speed.</property>
                                         <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                                         <property name="shadow_type">GTK_SHADOW_IN</property>
                                         <child>
-                                          <widget class="GtkTreeView" id="input_tree_view">
+                                          <object class="GtkTreeView" id="input_tree_view">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="headers_visible">False</property>
                                             <property name="rules_hint">True</property>
-                                          </widget>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                     </child>
                                     <child>
-                                      <widget class="GtkAlignment" id="alignment48">
+                                      <object class="GtkAlignment" id="alignment48">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
                                         <property name="xscale">0</property>
                                         <property name="yscale">0</property>
                                         <child>
-                                          <widget class="GtkButton" id="button25">
+                                          <object class="GtkButton" id="button25">
                                             <property name="width_request">96</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="label" translatable="yes">Options</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
-                                          </widget>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                         <property name="position">1</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="frame13">
+                          <object class="GtkVBox" id="frame13">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label125">
+                              <object class="GtkLabel" id="label125">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Speed&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment55">
+                              <object class="GtkAlignment" id="alignment55">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox54">
+                                  <object class="GtkVBox" id="vbox54">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkHScale" id="hscale1">
+                                      <object class="GtkHScale" id="hscale1">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
-                                        <property name="adjustment">1 0.1 8 0.1 1 0</property>
-                                        <signal name="value-changed" handler="PrefsSpeedSliderChanged"/>
-                                      </widget>
+                                        <property name="adjustment">adjustment2</property>
+                                        <signal handler="PrefsSpeedSliderChanged" name="value-changed"/>
+                                      </object>
                                     </child>
                                     <child>
-                                      <widget class="GtkCheckButton" id="adaptivebutton">
+                                      <object class="GtkCheckButton" id="adaptivebutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Adapt speed automatically</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="active">True</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                         <property name="position">1</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="frame14">
+                          <object class="GtkVBox" id="frame14">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label126">
+                              <object class="GtkLabel" id="label126">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Starting And Stopping&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment56">
+                              <object class="GtkAlignment" id="alignment56">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox12">
+                                  <object class="GtkVBox" id="vbox12">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkCheckButton" id="leftbutton">
+                                      <object class="GtkCheckButton" id="leftbutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Start on left mouse button</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkCheckButton" id="spacebutton">
+                                      <object class="GtkCheckButton" id="spacebutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Start on space bar</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -723,16 +734,15 @@ your writing speed.</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkCheckButton" id="mouseposbutton">
+                                      <object class="GtkCheckButton" id="mouseposbutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Start with mouse position:</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="startonmousepos"/>
-                                      </widget>
+                                        <signal handler="startonmousepos" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -740,23 +750,28 @@ your writing speed.</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkAlignment" id="alignment5">
+                                      <object class="GtkAlignment" id="alignment5">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
                                         <property name="left_padding">24</property>
                                         <child>
-                                          <widget class="GtkComboBoxEntry" id="MousePosStyle">
+                                          <object class="GtkComboBoxEntry" id="MousePosStyle">
                                             <property name="visible">True</property>
-                                            <property name="items" translatable="yes" comments="Centre circle = start and stop by dwelling over a circle in the centre of the window Two box = start and stop by dwelling in sequence over two boxes (both of these are methods for starting and stopping without pressing a mouse button)">Centre circle
-Two box</property>
-                                            <signal name="changed" handler="OnMousePosStyleChanged"/>
+                                            <signal handler="OnMousePosStyleChanged" name="changed"/>
                                             <child internal-child="entry">
-                                              <widget class="GtkEntry" id="comboboxentry-entry1">
-                                              </widget>
+                                              <object class="GtkEntry" id="comboboxentry-entry1">
+                                              </object>
+                                            </child>
+                                            <property name="model">model1</property>
+                                            <child>
+                                              <object class="GtkCellRendererText" id="renderer1"/>
+                                              <attributes>
+                                                <attribute name="text">0</attribute>
+                                              </attributes>
                                             </child>
-                                          </widget>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -764,100 +779,94 @@ Two box</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkCheckButton" id="winpausebutton">
+                                      <object class="GtkCheckButton" id="winpausebutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Pause outside of canvas</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                         <property name="position">4</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">2</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label114">
+                <child type="tab">
+                  <object class="GtkLabel" id="label114">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Control</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">1</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkHBox" id="hbox11">
+                  <object class="GtkHBox" id="hbox11">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="spacing">18</property>
                     <child>
-                      <widget class="GtkVBox" id="frame7">
+                      <object class="GtkVBox" id="frame7">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label118">
+                          <object class="GtkLabel" id="label118">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Colour Scheme&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment49">
+                          <object class="GtkAlignment" id="alignment49">
                             <property name="visible">True</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox26">
+                              <object class="GtkVBox" id="vbox26">
                                 <property name="visible">True</property>
                                 <child>
-                                  <widget class="GtkCheckButton" id="manual_colour">
+                                  <object class="GtkCheckButton" id="manual_colour">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="label" translatable="yes">Custom colour scheme:</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="draw_indicator">True</property>
-                                    <signal name="toggled" handler="autocolour_clicked"/>
-                                  </widget>
+                                    <signal handler="autocolour_clicked" name="toggled"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkScrolledWindow" id="scrolledwindow14">
+                                  <object class="GtkScrolledWindow" id="scrolledwindow14">
                                     <property name="height_request">128</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
@@ -865,81 +874,79 @@ Two box</property>
                                     <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                                     <property name="shadow_type">GTK_SHADOW_IN</property>
                                     <child>
-                                      <widget class="GtkTreeView" id="ColorTree">
+                                      <object class="GtkTreeView" id="ColorTree">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="headers_visible">False</property>
                                         <property name="rules_hint">True</property>
                                         <property name="enable_search">False</property>
-                                      </widget>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox55">
+                      <object class="GtkVBox" id="vbox55">
                         <property name="visible">True</property>
                         <property name="spacing">18</property>
                         <child>
-                          <widget class="GtkVBox" id="frame9">
+                          <object class="GtkVBox" id="frame9">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label120">
+                              <object class="GtkLabel" id="label120">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Appearance Options&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment51">
+                              <object class="GtkAlignment" id="alignment51">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox16">
+                                  <object class="GtkVBox" id="vbox16">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkCheckButton" id="showmousebutton">
+                                      <object class="GtkCheckButton" id="showmousebutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Show mouse position</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkCheckButton" id="showmouselinebutton">
+                                      <object class="GtkCheckButton" id="showmouselinebutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Draw line between crosshairs and mouse</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -947,22 +954,21 @@ Two box</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkAlignment" id="alignment21">
+                                      <object class="GtkAlignment" id="alignment21">
                                         <property name="visible">True</property>
                                         <property name="left_padding">18</property>
                                         <child>
-                                          <widget class="GtkCheckButton" id="thicklinebutton">
+                                          <object class="GtkCheckButton" id="thicklinebutton">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Increase line thickness</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
-                                            <signal name="clicked" handler="ThickLineClicked"/>
-                                          </widget>
+                                            <signal handler="ThickLineClicked" name="clicked"/>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -970,82 +976,79 @@ Two box</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkCheckButton" id="outlinebutton">
+                                      <object class="GtkCheckButton" id="outlinebutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Draw box outlines</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="generic_bool_changed"/>
-                                      </widget>
+                                        <signal handler="generic_bool_changed" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                         <property name="position">3</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="frame15">
+                          <object class="GtkVBox" id="frame15">
                             <property name="visible">True</property>
                             <child>
-                              <widget class="GtkLabel" id="label128">
+                              <object class="GtkLabel" id="label128">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Dasher Font&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment57">
+                              <object class="GtkAlignment" id="alignment57">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox56">
+                                  <object class="GtkVBox" id="vbox56">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkFontButton" id="dasher_fontbutton">
+                                      <object class="GtkFontButton" id="dasher_fontbutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="title" translatable="yes">Select Dasher Font</property>
                                         <property name="use_font">True</property>
                                         <property name="show_size">False</property>
-                                        <signal name="font_set" handler="on_dasher_font_changed"/>
-                                      </widget>
+                                        <signal handler="on_dasher_font_changed" name="font_set"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="fontsizenormal">
+                                      <object class="GtkRadioButton" id="fontsizenormal">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Small font</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="toggled" handler="set_dasher_fontsize"/>
-                                      </widget>
+                                        <signal handler="set_dasher_fontsize" name="toggled"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -1053,17 +1056,16 @@ Two box</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="fontsizelarge">
+                                      <object class="GtkRadioButton" id="fontsizelarge">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Large font </property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                         <property name="group">fontsizenormal</property>
-                                        <signal name="toggled" handler="set_dasher_fontsize"/>
-                                      </widget>
+                                        <signal handler="set_dasher_fontsize" name="toggled"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -1071,161 +1073,154 @@ Two box</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="fontsizevlarge">
+                                      <object class="GtkRadioButton" id="fontsizevlarge">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Very large font</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                         <property name="group">fontsizenormal</property>
-                                        <signal name="toggled" handler="set_dasher_fontsize"/>
-                                      </widget>
+                                        <signal handler="set_dasher_fontsize" name="toggled"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                         <property name="position">3</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label117">
+                <child type="tab">
+                  <object class="GtkLabel" id="label117">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Appearance</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">2</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox57">
+                  <object class="GtkVBox" id="vbox57">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="spacing">18</property>
                     <child>
-                      <widget class="GtkVBox" id="frame10">
+                      <object class="GtkVBox" id="frame10">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label122">
+                          <object class="GtkLabel" id="label122">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Actions&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment52">
+                          <object class="GtkAlignment" id="alignment52">
                             <property name="visible">True</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkScrolledWindow" id="scrolledwindow10">
+                              <object class="GtkScrolledWindow" id="scrolledwindow10">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                                 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                                 <property name="shadow_type">GTK_SHADOW_IN</property>
                                 <child>
-                                  <widget class="GtkTreeView" id="action_tree_view">
+                                  <object class="GtkTreeView" id="action_tree_view">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="rules_hint">True</property>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox12">
+                      <object class="GtkHBox" id="hbox12">
                         <property name="visible">True</property>
                         <property name="spacing">18</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox52">
+                          <object class="GtkVBox" id="vbox52">
                             <property name="visible">True</property>
                             <property name="spacing">18</property>
                             <child>
-                              <widget class="GtkVBox" id="frame12">
+                              <object class="GtkVBox" id="frame12">
                                 <property name="visible">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label124">
+                                  <object class="GtkLabel" id="label124">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">&lt;b&gt;Application Options&lt;/b&gt;</property>
                                     <property name="use_markup">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkAlignment" id="alignment54">
+                                  <object class="GtkAlignment" id="alignment54">
                                     <property name="visible">True</property>
                                     <property name="top_padding">6</property>
                                     <property name="left_padding">12</property>
                                     <child>
-                                      <widget class="GtkVBox" id="vbox53">
+                                      <object class="GtkVBox" id="vbox53">
                                         <property name="visible">True</property>
                                         <child>
-                                          <widget class="GtkCheckButton" id="timestampbutton">
+                                          <object class="GtkCheckButton" id="timestampbutton">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Timestamp new files</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
-                                            <signal name="clicked" handler="generic_bool_changed"/>
-                                          </widget>
+                                            <signal handler="generic_bool_changed" name="clicked"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkCheckButton" id="toolbarbutton">
+                                          <object class="GtkCheckButton" id="toolbarbutton">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Show toolbar</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
-                                            <signal name="clicked" handler="generic_bool_changed"/>
-                                          </widget>
+                                            <signal handler="generic_bool_changed" name="clicked"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
@@ -1233,16 +1228,15 @@ Two box</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkCheckButton" id="speedsliderbutton">
+                                          <object class="GtkCheckButton" id="speedsliderbutton">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Show speed slider</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
-                                            <signal name="clicked" handler="generic_bool_changed"/>
-                                          </widget>
+                                            <signal handler="generic_bool_changed" name="clicked"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
@@ -1250,129 +1244,125 @@ Two box</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkCheckButton" id="control_controlmode">
+                                          <object class="GtkCheckButton" id="control_controlmode">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Control mode</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
-                                            <signal name="clicked" handler="generic_bool_changed"/>
-                                          </widget>
+                                            <signal handler="generic_bool_changed" name="clicked"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
                                             <property name="position">3</property>
                                           </packing>
                                         </child>
-                                      </widget>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkVBox" id="frame16">
+                              <object class="GtkVBox" id="frame16">
                                 <property name="visible">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label129">
+                                  <object class="GtkLabel" id="label129">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">&lt;b&gt;Editor Font&lt;/b&gt;</property>
                                     <property name="use_markup">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkAlignment" id="alignment58">
+                                  <object class="GtkAlignment" id="alignment58">
                                     <property name="visible">True</property>
                                     <property name="top_padding">6</property>
                                     <property name="left_padding">12</property>
                                     <child>
-                                      <widget class="GtkFontButton" id="edit_fontbutton">
+                                      <object class="GtkFontButton" id="edit_fontbutton">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="title" translatable="yes">Select Editor Font</property>
                                         <property name="use_font">True</property>
-                                        <signal name="font_set" handler="on_edit_font_changed"/>
-                                      </widget>
+                                        <signal handler="on_edit_font_changed" name="font_set"/>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="vbox58">
+                          <object class="GtkVBox" id="vbox58">
                             <property name="visible">True</property>
                             <property name="spacing">18</property>
                             <child>
-                              <widget class="GtkVBox" id="frame11">
+                              <object class="GtkVBox" id="frame11">
                                 <child>
-                                  <widget class="GtkLabel" id="label123">
+                                  <object class="GtkLabel" id="label123">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">&lt;b&gt;Application Style&lt;/b&gt;</property>
                                     <property name="use_markup">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkAlignment" id="alignment53">
+                                  <object class="GtkAlignment" id="alignment53">
                                     <property name="visible">True</property>
                                     <property name="top_padding">6</property>
                                     <property name="left_padding">12</property>
                                     <child>
-                                      <widget class="GtkVBox" id="vbox41">
+                                      <object class="GtkVBox" id="vbox41">
                                         <property name="visible">True</property>
                                         <child>
-                                          <widget class="GtkRadioButton" id="appstyle_classic">
+                                          <object class="GtkRadioButton" id="appstyle_classic">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Stand-alone</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
-                                            <signal name="toggled" handler="on_appstyle_changed"/>
-                                          </widget>
+                                            <signal handler="on_appstyle_changed" name="toggled"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkRadioButton" id="appstyle_compose">
+                                          <object class="GtkRadioButton" id="appstyle_compose">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Composition</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
                                             <property name="group">appstyle_classic</property>
-                                            <signal name="toggled" handler="on_appstyle_changed"/>
-                                          </widget>
+                                            <signal handler="on_appstyle_changed" name="toggled"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
@@ -1380,17 +1370,16 @@ Two box</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkRadioButton" id="appstyle_direct">
+                                          <object class="GtkRadioButton" id="appstyle_direct">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Direct entry</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
                                             <property name="group">appstyle_classic</property>
-                                            <signal name="toggled" handler="on_appstyle_changed"/>
-                                          </widget>
+                                            <signal handler="on_appstyle_changed" name="toggled"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
@@ -1398,17 +1387,16 @@ Two box</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkRadioButton" id="appstyle_fullscreen">
+                                          <object class="GtkRadioButton" id="appstyle_fullscreen">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Full Screen</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
                                             <property name="group">appstyle_classic</property>
-                                            <signal name="toggled" handler="on_appstyle_changed"/>
-                                          </widget>
+                                            <signal handler="on_appstyle_changed" name="toggled"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
@@ -1416,93 +1404,87 @@ Two box</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkCheckButton" id="dockbutton">
+                                          <object class="GtkCheckButton" id="dockbutton">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="border_width">2</property>
                                             <property name="label" translatable="yes">Dock application window</property>
                                             <property name="use_underline">True</property>
-                                            <property name="response_id">0</property>
                                             <property name="draw_indicator">True</property>
-                                            <signal name="clicked" handler="generic_bool_changed"/>
-                                          </widget>
+                                            <signal handler="generic_bool_changed" name="clicked"/>
+                                          </object>
                                           <packing>
                                             <property name="expand">False</property>
                                             <property name="fill">False</property>
                                             <property name="position">4</property>
                                           </packing>
                                         </child>
-                                      </widget>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
-                  <packing>
-                    <property name="position">3</property>
-                  </packing>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label121">
+                <child type="tab">
+                  <object class="GtkLabel" id="label121">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Application</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">3</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
             </child>
-          </widget>
+          </object>
         </child>
         <child>
-          <widget class="GtkAlignment" id="alignment2">
+          <object class="GtkAlignment" id="alignment2">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkHButtonBox" id="hbuttonbox1">
+              <object class="GtkHButtonBox" id="hbuttonbox1">
                 <property name="visible">True</property>
                 <property name="layout_style">GTK_BUTTONBOX_END</property>
                 <child>
-                  <widget class="GtkButton" id="button11">
+                  <object class="GtkButton" id="button11">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="border_width">5</property>
                     <property name="label">gtk-close</property>
                     <property name="use_stock">True</property>
-                    <property name="response_id">0</property>
-                    <signal name="clicked" handler="preferences_hide"/>
-                  </widget>
+                    <signal handler="preferences_hide" name="clicked"/>
+                  </object>
                 </child>
-              </widget>
+              </object>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">1</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/Data/GUI/dasher.traditional.ui b/Data/GUI/dasher.traditional.ui
new file mode 100644
index 0000000..024081b
--- /dev/null
+++ b/Data/GUI/dasher.traditional.ui
@@ -0,0 +1,452 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">8</property>
+    <property name="lower">0.1</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">1</property>
+  </object>
+  <object class="GtkUIManager" id="uimanager1">
+    <child>
+      <object class="GtkActionGroup" id="actiongroup1">
+        <child>
+          <object class="GtkAction" id="file_menu">
+            <property name="label" translatable="yes">_File</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_new">
+            <property name="stock_id">gtk-new</property>
+            <property name="tooltip" translatable="yes">New file</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_open">
+            <property name="stock_id">gtk-open</property>
+            <property name="tooltip" translatable="yes">Open file</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_save">
+            <property name="stock_id">gtk-save</property>
+            <property name="tooltip" translatable="yes">Save file</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_saveas">
+            <property name="stock_id">gtk-save-as</property>
+            <property name="tooltip" translatable="yes">Save file as</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_append">
+            <property name="name">action_append</property>
+            <property name="label" translatable="yes">A_ppend to file...</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_import">
+            <property name="label" translatable="yes">_Import Training Text...</property>
+            <signal name="activate" handler="dasher_main_cb_import"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_quit">
+            <property name="stock_id">gtk-quit</property>
+            <property name="tooltip" translatable="yes">Quit</property>
+            <signal name="activate" handler="dasher_main_cb_quit"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="edit_menu">
+            <property name="label" translatable="yes">_Edit</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_cut">
+            <property name="stock_id">gtk-cut</property>
+            <property name="tooltip" translatable="yes">Cut</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_copy">
+            <property name="stock_id">gtk-copy</property>
+            <property name="tooltip" translatable="yes">Copy</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_copyall">
+            <property name="label" translatable="yes">Copy _All</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_paste">
+            <property name="stock_id">gtk-paste</property>
+            <property name="tooltip" translatable="yes">Paste</property>
+            <signal name="activate" handler="dasher_main_cb_editor"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_preferences">
+            <property name="stock_id">gtk-preferences</property>
+            <property name="label" translatable="yes">Pr_eferences...</property>
+            <property name="tooltip" translatable="yes">Preferences</property>
+            <signal name="activate" handler="dasher_main_cb_preferences"/>
+          </object>
+          <accelerator key="S" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
+        </child>
+        <child>
+          <object class="GtkAction" id="help_menu">
+            <property name="label" translatable="yes">_Help</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_help">
+            <property name="stock_id">gtk-help</property>
+            <property name="label"   translatable="yes">_Contents...</property>
+            <property name="tooltip" translatable="yes">Help</property>
+            <signal name="activate" handler="dasher_main_cb_help"/>
+          </object>
+          <accelerator key="F1" modifiers="0"/>
+        </child>
+        <child>
+          <object class="GtkAction" id="action_about">
+            <property name="stock_id">gtk-about</property>
+            <property name="label" translatable="yes">_About...</property>
+            <signal name="activate" handler="dasher_main_cb_about"/>
+          </object>
+        </child>
+      </object>
+    </child>
+    <ui>
+      <menubar name="dasher_menu_bar">
+        <menu action="file_menu">
+          <menuitem action="action_new"/>
+          <menuitem action="action_open"/>
+          <menuitem action="action_save"/>
+          <menuitem action="action_saveas"/>
+          <menuitem action="action_append"/>
+          <separator/>
+          <menuitem action="action_import"/>
+          <menuitem action="action_quit"/>
+        </menu>
+        <menu action="edit_menu">
+          <menuitem action="action_cut"/>
+          <menuitem action="action_copy"/>
+          <menuitem action="action_copyall"/>
+          <menuitem action="action_paste"/>
+          <separator/>
+          <menuitem action="action_preferences"/>
+        </menu>
+        <menu action="help_menu">
+          <menuitem action="action_help"/>
+          <menuitem action="action_about"/>
+        </menu>
+      </menubar>
+      <toolbar name="dasher_tool_bar">
+        <toolitem action="action_new"/>
+        <toolitem action="action_open"/>
+        <toolitem action="action_save"/>
+        <toolitem action="action_saveas"/>
+        <separator/>
+        <toolitem action="action_cut"/>
+        <toolitem action="action_copy"/>
+        <toolitem action="action_paste"/>
+        <separator/>
+        <toolitem action="action_preferences"/>
+        <toolitem action="action_help"/>
+        <separator/>
+        <toolitem action="action_quit"/>
+      </toolbar>
+    </ui>
+  </object>
+  <object class="GtkWindow" id="window">
+    <property name="can_focus">True</property>
+    <property name="has_focus">True</property>
+    <property name="events">GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="dasher_main_cb_window_close" name="delete_event"/>
+    <signal handler="test_focus_handler" name="focus-in-event"/>
+    <child>
+      <object class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <signal handler="test_focus_handler" name="focus-in-event"/>
+        <child>
+          <object class="GtkMenuBar" constructor="uimanager1" id="dasher_menu_bar">
+            <property name="visible">True</property>
+            <property name="tooltip-text" translatable="yes">Quit</property>
+            <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+            <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
+            <signal handler="test_focus_handler" name="focus-in-event"/>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolbar" constructor="uimanager1" id="dasher_tool_bar">
+            <property name="toolbar_style">GTK_TOOLBAR_ICONS</property>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVPaned" id="main_divider">
+            <property name="visible">True</property>
+            <property name="position">0</property>
+            <signal handler="test_focus_handler" name="focus-in-event"/>
+            <child>
+              <object class="DasherEditorInternal" id="DasherEditor">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <signal handler="dasher_main_cb_filename_changed" name="filename_changed"/>
+                <signal handler="dasher_main_cb_buffer_changed" name="buffer_changed"/>
+                <signal handler="dasher_main_cb_context_changed" name="context_changed"/>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkDasherControl" id="DasherControl">
+                <property name="width_request">200</property>
+                <property name="height_request">200</property>
+                <property name="visible">True</property>
+                <signal handler="parameter_notification" name="dasher_changed"/>
+                <signal handler="handle_start_event" name="dasher_start"/>
+                <signal handler="handle_stop_event" name="dasher_stop"/>
+                <signal handler="handle_control_event" name="dasher_control"/>
+                <signal handler="gtk2_edit_output_callback" name="dasher_edit_insert"/>
+                <signal handler="gtk2_edit_delete_callback" name="dasher_edit_delete"/>
+                <signal handler="handle_context_request" name="dasher_context_request"/>
+                <signal handler="handle_request_settings" name="dasher_request_settings"/>
+                <signal handler="focus_in_event" name="focus_in_event"/>
+                <signal handler="on_lock_info" name="dasher_lock_info"/>
+                <signal handler="on_message" name="dasher_message"/>
+                <signal handler="convert_cb" name="dasher_edit_convert"/>
+                <signal handler="protect_cb" name="dasher_edit_protect"/>
+                <signal handler="on_command" name="dasher_command"/>
+                <signal handler="test_focus_handler" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox8">
+            <property name="border_width">2</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">2</property>
+            <signal handler="test_focus_handler" name="focus-in-event"/>
+            <child>
+              <object class="GtkLabel" id="label109">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Speed:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">2</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+                <signal handler="test_focus_handler" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSpinButton" id="spinbutton1">
+                <property name="width_request">64</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="climb_rate">0.10000000149</property>
+                <property name="digits">1</property>
+                <property name="numeric">True</property>
+                <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+                <property name="snap_to_ticks">False</property>
+                <property name="wrap">False</property>
+                <property name="adjustment">adjustment1</property>
+                <signal handler="speed_changed" name="value-changed"/>
+                <signal handler="test_focus_handler" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label110">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Alphabet:</property>
+                <property name="use_underline">False</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0.5</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">2</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+                <signal handler="test_focus_handler" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBox" id="combobox1">
+                <property name="width_request">32</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="add_tearoffs">False</property>
+                <property name="focus_on_click">True</property>
+                <signal handler="alphabet_combo_changed" name="changed"/>
+                <signal handler="test_focus_handler" name="focus-in-event"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="lock_window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Please Wait...</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkVBox" id="vbox43">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkLabel" id="lock_message">
+            <property name="visible">True</property>
+            <property name="label"/>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+          <packing>
+            <property name="padding">8</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment38">
+            <property name="border_width">8</property>
+            <property name="visible">True</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xscale">1</property>
+            <property name="yscale">1</property>
+            <property name="top_padding">0</property>
+            <property name="bottom_padding">0</property>
+            <property name="left_padding">0</property>
+            <property name="right_padding">0</property>
+            <child>
+              <object class="GtkProgressBar" id="lock_progress">
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.10000000149</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/Data/glade/dashermaemo.preferences.glade b/Data/GUI/dashermaemo.preferences.ui
similarity index 77%
rename from Data/glade/dashermaemo.preferences.glade
rename to Data/GUI/dashermaemo.preferences.ui
index e66c1f5..941c656 100644
--- a/Data/glade/dashermaemo.preferences.glade
+++ b/Data/GUI/dashermaemo.preferences.ui
@@ -1,368 +1,373 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<?xml version="1.0"?>
 <!--Generated with glade3 3.4.1 on Mon Mar 10 11:28:32 2008 -->
-<glade-interface>
-  <widget class="GtkWindow" id="preferences">
+<interface>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">8</property>
+    <property name="lower">0.1</property>
+    <property name="page_increment">1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">1</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">100</property>
+    <property name="lower">0</property>
+    <property name="page_increment">0.1</property>
+    <property name="step_increment">0.1</property>
+    <property name="page_size">0</property>
+    <property name="value">5</property>
+  </object>
+  <object class="GtkWindow" id="preferences">
     <property name="title" translatable="yes">Dasher Preferences</property>
     <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <signal name="delete_event" handler="preferences_hide"/>
+    <signal handler="preferences_hide" name="delete_event"/>
     <child>
-      <widget class="GtkVBox" id="vbox2">
+      <object class="GtkVBox" id="vbox2">
         <property name="visible">True</property>
         <child>
-          <widget class="GtkAlignment" id="alignment15">
+          <object class="GtkAlignment" id="alignment15">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkNotebook" id="notebook1">
+              <object class="GtkNotebook" id="notebook1">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox9">
+                  <object class="GtkVBox" id="vbox9">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="spacing">18</property>
                     <child>
-                      <widget class="GtkVBox" id="frame2">
+                      <object class="GtkVBox" id="frame2">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="label2">
+                          <object class="GtkLabel" id="label2">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Alphabet Selection&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment1">
+                          <object class="GtkAlignment" id="alignment1">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox6">
+                              <object class="GtkVBox" id="vbox6">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <child>
-                                  <widget class="GtkScrolledWindow" id="scrolledwindow8">
+                                  <object class="GtkScrolledWindow" id="scrolledwindow8">
                                     <property name="height_request">360</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <child>
-                                      <widget class="GtkViewport" id="viewport6">
+                                      <object class="GtkViewport" id="viewport6">
                                         <property name="visible">True</property>
                                         <child>
-                                          <widget class="GtkTreeView" id="AlphabetTree">
+                                          <object class="GtkTreeView" id="AlphabetTree">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="headers_visible">False</property>
                                             <property name="rules_hint">True</property>
                                             <property name="enable_search">False</property>
-                                          </widget>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox17">
+                      <object class="GtkVBox" id="vbox17">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="label8">
+                          <object class="GtkLabel" id="label8">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Color Scheme&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment10">
+                          <object class="GtkAlignment" id="alignment10">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox18">
+                              <object class="GtkVBox" id="vbox18">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <child>
-                                  <widget class="GtkCheckButton" id="manual_colour">
+                                  <object class="GtkCheckButton" id="manual_colour">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="label" translatable="yes">Custom colour scheme:</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="draw_indicator">True</property>
-                                    <signal name="toggled" handler="autocolour_clicked"/>
-                                  </widget>
+                                    <signal handler="autocolour_clicked" name="toggled"/>
+                                  </object>
                                 </child>
                                 <child>
-                                  <widget class="GtkScrolledWindow" id="scrolledwindow9">
+                                  <object class="GtkScrolledWindow" id="scrolledwindow9">
                                     <property name="height_request">110</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <child>
-                                      <widget class="GtkViewport" id="viewport7">
+                                      <object class="GtkViewport" id="viewport7">
                                         <property name="visible">True</property>
                                         <child>
-                                          <widget class="GtkTreeView" id="ColorTree">
+                                          <object class="GtkTreeView" id="ColorTree">
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="headers_visible">False</property>
                                             <property name="rules_hint">True</property>
                                             <property name="enable_search">False</property>
-                                          </widget>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                     </child>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="labelalpha">
+                <child type="tab">
+                  <object class="GtkLabel" id="labelalpha">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Alphabet</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox1">
+                  <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="spacing">18</property>
                     <child>
-                      <widget class="GtkVBox" id="frame1">
+                      <object class="GtkVBox" id="frame1">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="label1">
+                          <object class="GtkLabel" id="label1">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Speed&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment4">
+                          <object class="GtkAlignment" id="alignment4">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox5">
+                              <object class="GtkVBox" id="vbox5">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <child>
-                                  <widget class="GtkCheckButton" id="adaptivebutton">
+                                  <object class="GtkCheckButton" id="adaptivebutton">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="border_width">2</property>
                                     <property name="label" translatable="yes">Adapt speed automatically</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="active">True</property>
                                     <property name="draw_indicator">True</property>
-                                    <signal name="clicked" handler="adaptive"/>
-                                  </widget>
+                                    <signal handler="adaptive" name="clicked"/>
+                                  </object>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale1">
+                                  <object class="GtkHScale" id="hscale1">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">1 0.1 8 0.1 1 0</property>
-                                    <signal name="value-changed" handler="PrefsSpeedSliderChanged"/>
-                                  </widget>
+                                    <property name="adjustment">adjustment1</property>
+                                    <signal handler="PrefsSpeedSliderChanged" name="value-changed"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                       </packing>
                     </child>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label17">
+                <child type="tab">
+                  <object class="GtkLabel" id="label17">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Control</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">1</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkAlignment" id="alignment36">
+                  <object class="GtkAlignment" id="alignment36">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkVBox" id="vbox14">
+                      <object class="GtkVBox" id="vbox14">
                         <property name="visible">True</property>
                         <property name="border_width">12</property>
                         <property name="spacing">18</property>
                         <child>
-                          <widget class="GtkVBox" id="displaysizebox">
+                          <object class="GtkVBox" id="displaysizebox">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <child>
-                              <widget class="GtkLabel" id="label3">
+                              <object class="GtkLabel" id="label3">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Display Size&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment3">
+                              <object class="GtkAlignment" id="alignment3">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox3">
+                                  <object class="GtkVBox" id="vbox3">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkCheckButton" id="enlargewindow">
+                                      <object class="GtkCheckButton" id="enlargewindow">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Enlarge input window</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="toggled" handler="on_window_size_changed"/>
-                                      </widget>
+                                        <signal handler="on_window_size_changed" name="toggled"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVBox" id="frame4">
+                          <object class="GtkVBox" id="frame4">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <child>
-                              <widget class="GtkLabel" id="label4">
+                              <object class="GtkLabel" id="label4">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">&lt;b&gt;Orientation&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkAlignment" id="alignment5">
+                              <object class="GtkAlignment" id="alignment5">
                                 <property name="visible">True</property>
                                 <property name="top_padding">6</property>
                                 <property name="left_padding">12</property>
                                 <child>
-                                  <widget class="GtkVBox" id="vbox4">
+                                  <object class="GtkVBox" id="vbox4">
                                     <property name="visible">True</property>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton1">
+                                      <object class="GtkRadioButton" id="radiobutton1">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Alphabet Default</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
-                                        <signal name="clicked" handler="orientation"/>
-                                      </widget>
+                                        <signal handler="orientation" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkRadioButton" id="radiobutton12">
+                                      <object class="GtkRadioButton" id="radiobutton12">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="border_width">2</property>
                                         <property name="label" translatable="yes">Custom</property>
                                         <property name="use_underline">True</property>
-                                        <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                         <property name="group">radiobutton1</property>
-                                        <signal name="clicked" handler="orientation"/>
-                                      </widget>
+                                        <signal handler="orientation" name="clicked"/>
+                                      </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
@@ -370,40 +375,38 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkAlignment" id="alignment6">
+                                      <object class="GtkAlignment" id="alignment6">
                                         <property name="visible">True</property>
                                         <property name="left_padding">12</property>
                                         <child>
-                                          <widget class="GtkVBox" id="vbox7">
+                                          <object class="GtkVBox" id="vbox7">
                                             <property name="visible">True</property>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton2">
+                                              <object class="GtkRadioButton" id="radiobutton2">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Left to Right</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
                                               </packing>
                                             </child>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton3">
+                                              <object class="GtkRadioButton" id="radiobutton3">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Right to Left</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
                                                 <property name="group">radiobutton2</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
@@ -411,17 +414,16 @@
                                               </packing>
                                             </child>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton4">
+                                              <object class="GtkRadioButton" id="radiobutton4">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Top to Bottom</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
                                                 <property name="group">radiobutton2</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
@@ -429,117 +431,110 @@
                                               </packing>
                                             </child>
                                             <child>
-                                              <widget class="GtkRadioButton" id="radiobutton5">
+                                              <object class="GtkRadioButton" id="radiobutton5">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">True</property>
                                                 <property name="border_width">2</property>
                                                 <property name="label" translatable="yes">Bottom to Top</property>
                                                 <property name="use_underline">True</property>
-                                                <property name="response_id">0</property>
                                                 <property name="draw_indicator">True</property>
                                                 <property name="group">radiobutton2</property>
-                                                <signal name="clicked" handler="orientation"/>
-                                              </widget>
+                                                <signal handler="orientation" name="clicked"/>
+                                              </object>
                                               <packing>
                                                 <property name="expand">False</property>
                                                 <property name="fill">False</property>
                                                 <property name="position">3</property>
                                               </packing>
                                             </child>
-                                          </widget>
+                                          </object>
                                         </child>
-                                      </widget>
+                                      </object>
                                       <packing>
                                         <property name="position">2</property>
                                       </packing>
                                     </child>
-                                  </widget>
+                                  </object>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label20">
+                <child type="tab">
+                  <object class="GtkLabel" id="label20">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">View</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">2</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox8">
+                  <object class="GtkVBox" id="vbox8">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="spacing">18</property>
                     <child>
-                      <widget class="GtkVBox" id="vbox10">
+                      <object class="GtkVBox" id="vbox10">
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="label5">
+                          <object class="GtkLabel" id="label5">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Language Model&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment7">
+                          <object class="GtkAlignment" id="alignment7">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox11">
+                              <object class="GtkVBox" id="vbox11">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <child>
-                                  <widget class="GtkRadioButton" id="radiobutton6">
+                                  <object class="GtkRadioButton" id="radiobutton6">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="label" translatable="yes">Standard letter-based PPM</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="draw_indicator">True</property>
-                                    <signal name="clicked" handler="languagemodel"/>
-                                  </widget>
+                                    <signal handler="languagemodel" name="clicked"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkRadioButton" id="radiobutton7">
+                                  <object class="GtkRadioButton" id="radiobutton7">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="label" translatable="yes">Word-based model</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="draw_indicator">True</property>
                                     <property name="group">radiobutton6</property>
-                                    <signal name="clicked" handler="languagemodel"/>
-                                  </widget>
+                                    <signal handler="languagemodel" name="clicked"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
@@ -547,16 +542,15 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkRadioButton" id="radiobutton8">
+                                  <object class="GtkRadioButton" id="radiobutton8">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="label" translatable="yes">Mixture model (PPM/dictionary)</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="draw_indicator">True</property>
                                     <property name="group">radiobutton6</property>
-                                    <signal name="clicked" handler="languagemodel"/>
-                                  </widget>
+                                    <signal handler="languagemodel" name="clicked"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
@@ -564,46 +558,45 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkRadioButton" id="radiobutton9">
+                                  <object class="GtkRadioButton" id="radiobutton9">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="label" translatable="yes">Japanese</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="draw_indicator">True</property>
                                     <property name="group">radiobutton6</property>
-                                    <signal name="clicked" handler="languagemodel"/>
-                                  </widget>
+                                    <signal handler="languagemodel" name="clicked"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                     <property name="position">3</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox12">
+                      <object class="GtkVBox" id="vbox12">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="label6">
+                          <object class="GtkLabel" id="label6">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Adaptation&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -611,38 +604,37 @@
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment8">
+                          <object class="GtkAlignment" id="alignment8">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox13">
+                              <object class="GtkVBox" id="vbox13">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <child>
-                                  <widget class="GtkCheckButton" id="cb_adaptive">
+                                  <object class="GtkCheckButton" id="cb_adaptive">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="label" translatable="yes">Language model adapts as you write.</property>
                                     <property name="use_underline">True</property>
-                                    <property name="response_id">0</property>
                                     <property name="active">True</property>
                                     <property name="draw_indicator">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -650,105 +642,100 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox15">
+                      <object class="GtkVBox" id="vbox15">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <child>
-                          <widget class="GtkLabel" id="label7">
+                          <object class="GtkLabel" id="label7">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Smoothing&lt;/b&gt;</property>
                             <property name="use_markup">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment9">
+                          <object class="GtkAlignment" id="alignment9">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="top_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox16">
+                              <object class="GtkVBox" id="vbox16">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <child>
-                                  <widget class="GtkHScale" id="uniformhscale">
+                                  <object class="GtkHScale" id="uniformhscale">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
-                                    <property name="adjustment">5 0 100 0.1 0.1 0</property>
-                                    <signal name="value-changed" handler="uniform_changed"/>
-                                  </widget>
+                                    <property name="adjustment">adjustment2</property>
+                                    <signal handler="uniform_changed" name="value-changed"/>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
-                  </widget>
-                  <packing>
-                    <property name="position">3</property>
-                  </packing>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label47">
+                <child type="tab">
+                  <object class="GtkLabel" id="label47">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Prediction</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">3</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
             </child>
-          </widget>
+          </object>
         </child>
         <child>
-          <widget class="GtkAlignment" id="alignment2">
+          <object class="GtkAlignment" id="alignment2">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkHButtonBox" id="hbuttonbox1">
+              <object class="GtkHButtonBox" id="hbuttonbox1">
                 <property name="visible">True</property>
                 <property name="layout_style">GTK_BUTTONBOX_END</property>
                 <child>
-                  <widget class="GtkButton" id="button11">
+                  <object class="GtkButton" id="button11">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="border_width">5</property>
                     <property name="label">gtk-close</property>
                     <property name="use_stock">True</property>
-                    <property name="response_id">0</property>
-                    <signal name="clicked" handler="preferences_hide"/>
-                  </widget>
+                    <signal handler="preferences_hide" name="clicked"/>
+                  </object>
                 </child>
-              </widget>
+              </object>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">1</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/Data/GUI/dashermaemo.ui b/Data/GUI/dashermaemo.ui
new file mode 100644
index 0000000..3494017
--- /dev/null
+++ b/Data/GUI/dashermaemo.ui
@@ -0,0 +1,651 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkWindow" id="window">
+    <property name="width_request">500</property>
+    <property name="height_request">150</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="ask_save_before_exit" last_modification_time="Mon, 22 Sep 2003 19:53:44 GMT" name="delete_event"/>
+    <signal handler="on_window_map" last_modification_time="Mon, 22 Sep 2003 19:53:44 GMT" name="realize"/>
+    <child>
+      <object class="GtkHBox" id="hbox1">
+        <property name="border_width">32</property>
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkVBox" id="vbox3">
+            <property name="width_request">50</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkButton" id="button21">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes"/>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button20">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes"/>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button17">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">P</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+                <signal handler="preferences_display" last_modification_time="Tue, 23 Sep 2003 00:29:06 GMT" name="clicked"/>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="Custom" id="DasherControl">
+            <property name="width_request">175</property>
+            <property name="visible">True</property>
+            <property name="creation_function">create_dasher_control</property>
+            <property name="int1">0</property>
+            <property name="int2">0</property>
+            <property name="last_modification_time">Wed, 29 Mar 2006 17:31:58 GMT</property>
+            <signal handler="parameter_notification" last_modification_time="Sun, 05 Mar 2006 19:45:23 GMT" name="dasher_changed"/>
+            <signal handler="handle_start_event" last_modification_time="Sun, 05 Mar 2006 19:45:35 GMT" name="dasher_start"/>
+            <signal handler="handle_stop_event" last_modification_time="Sun, 05 Mar 2006 19:45:43 GMT" name="dasher_stop"/>
+            <signal handler="handle_control_event" last_modification_time="Sun, 05 Mar 2006 19:45:53 GMT" name="dasher_control"/>
+            <signal handler="gtk2_edit_output_callback" last_modification_time="Sun, 05 Mar 2006 19:46:13 GMT" name="dasher_edit_insert"/>
+            <signal handler="gtk2_edit_delete_callback" last_modification_time="Sun, 05 Mar 2006 19:46:32 GMT" name="dasher_edit_delete"/>
+            <signal handler="handle_context_request" last_modification_time="Sun, 05 Mar 2006 19:46:54 GMT" name="dasher_context_request"/>
+            <signal handler="handle_request_settings" last_modification_time="Sun, 05 Mar 2006 19:47:12 GMT" name="dasher_request_settings"/>
+            <signal handler="focus_in_event" last_modification_time="Sun, 05 Mar 2006 19:47:28 GMT" name="focus_in_event"/>
+            <signal handler="on_lock_info" last_modification_time="Wed, 22 Mar 2006 10:38:44 GMT" name="dasher_lock_info"/>
+            <signal handler="on_message" last_modification_time="Wed, 22 Mar 2006 14:24:04 GMT" name="dasher_message"/>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox4">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkHBox" id="hbox3">
+                <property name="height_request">50</property>
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkButton" id="button22">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes"/>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button23">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes"/>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button24">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes">
+</property>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button25">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes"/>
+                    <property name="use_underline">True</property>
+                    <property name="relief">GTK_RELIEF_NORMAL</property>
+                    <property name="focus_on_click">True</property>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox2">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">0</property>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow5">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                    <child>
+                      <object class="GtkTextView" id="the_text_view">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="editable">True</property>
+                        <property name="overwrite">False</property>
+                        <property name="accepts_tab">True</property>
+                        <property name="justification">GTK_JUSTIFY_LEFT</property>
+                        <property name="wrap_mode">GTK_WRAP_NONE</property>
+                        <property name="cursor_visible">True</property>
+                        <property name="pixels_above_lines">0</property>
+                        <property name="pixels_below_lines">0</property>
+                        <property name="pixels_inside_wrap">0</property>
+                        <property name="left_margin">0</property>
+                        <property name="right_margin">0</property>
+                        <property name="indent">0</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="vbox39">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="open_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="cancel_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="ok_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="dasher_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:16 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="dasher_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:21:14 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="dasher_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:21:38 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="dasher_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:22:03 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection1">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="edit_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:37 GMT" name="close"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="edit_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:20:27 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="edit_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:20:19 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="edit_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:19:55 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection_2">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button14">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button15">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="append_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button16">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button17">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="import_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button18">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button19">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_and_quit_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button20">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button21">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="lock_window">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Please Wait...</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <child>
+      <object class="GtkVBox" id="vbox43">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkLabel" id="lock_message">
+            <property name="visible">True</property>
+            <property name="label" translatable="no">(Message Placeholder - no need to translate)</property>
+            <property name="use_underline">False</property>
+            <property name="use_markup">False</property>
+            <property name="justify">GTK_JUSTIFY_LEFT</property>
+            <property name="wrap">False</property>
+            <property name="selectable">False</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xpad">0</property>
+            <property name="ypad">0</property>
+            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+            <property name="width_chars">-1</property>
+            <property name="single_line_mode">False</property>
+            <property name="angle">0</property>
+          </object>
+          <packing>
+            <property name="padding">8</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment38">
+            <property name="border_width">8</property>
+            <property name="visible">True</property>
+            <property name="xalign">0.5</property>
+            <property name="yalign">0.5</property>
+            <property name="xscale">1</property>
+            <property name="yscale">1</property>
+            <property name="top_padding">0</property>
+            <property name="bottom_padding">0</property>
+            <property name="left_padding">0</property>
+            <property name="right_padding">0</property>
+            <child>
+              <object class="GtkProgressBar" id="lock_progress">
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.10000000149</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/Data/GUI/dashermaemofullscreen.ui b/Data/GUI/dashermaemofullscreen.ui
new file mode 100644
index 0000000..b12fc51
--- /dev/null
+++ b/Data/GUI/dashermaemofullscreen.ui
@@ -0,0 +1,589 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkUIManager" id="uimanager1">
+    <child>
+      <object class="GtkActionGroup" id="actiongroup1">
+        <child>
+          <object class="GtkAction" id="menuitem4">
+            <property name="name">menuitem4</property>
+            <property name="label" translatable="yes">_File</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menunew">
+            <property name="stock_id">gtk-new</property>
+            <property name="name">menunew</property>
+            <signal handler="select_new_file" last_modification_time="Tue, 23 Sep 2003 11:16:26 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuquit">
+            <property name="stock_id">gtk-quit</property>
+            <property name="name">menuquit</property>
+            <signal handler="ask_save_before_exit" last_modification_time="Tue, 23 Sep 2003 11:17:37 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem5">
+            <property name="name">menuitem5</property>
+            <property name="label" translatable="yes">_Edit</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menucut">
+            <property name="stock_id">gtk-cut</property>
+            <property name="name">menucut</property>
+            <signal handler="clipboard_cut" last_modification_time="Tue, 23 Sep 2003 11:19:57 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menucopy">
+            <property name="stock_id">gtk-copy</property>
+            <property name="name">menucopy</property>
+            <signal handler="clipboard_copy" last_modification_time="Tue, 23 Sep 2003 11:20:12 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menupaste">
+            <property name="stock_id">gtk-paste</property>
+            <property name="name">menupaste</property>
+            <signal handler="clipboard_paste" last_modification_time="Tue, 23 Sep 2003 11:20:26 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menucopyall">
+            <property name="name">menucopyall</property>
+            <property name="label" translatable="yes">Copy _All</property>
+            <signal handler="clipboard_copy_all" last_modification_time="Tue, 23 Sep 2003 11:21:50 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="options1">
+            <property name="name">options1</property>
+            <property name="label" translatable="yes">_Options</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menupreferences">
+            <property name="stock_id">gtk-preferences</property>
+            <property name="name">menupreferences</property>
+            <signal handler="preferences_display" last_modification_time="Tue, 23 Sep 2003 00:29:06 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="edit_font1">
+            <property name="name">edit_font1</property>
+            <property name="label" translatable="yes">_Edit Font</property>
+            <signal handler="set_edit_font" last_modification_time="Tue, 23 Sep 2003 17:57:37 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="dasher_font1">
+            <property name="name">dasher_font1</property>
+            <property name="label" translatable="yes">_Dasher Font</property>
+            <signal handler="set_dasher_font" last_modification_time="Tue, 23 Sep 2003 17:57:37 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="dasher_font_size1">
+            <property name="name">dasher_font_size1</property>
+            <property name="label" translatable="yes">_Dasher Font Size</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkRadioAction" id="fontsizenormal">
+            <property name="active">True</property>
+            <property name="name">fontsizenormal</property>
+            <property name="label" translatable="yes">Normal</property>
+            <signal handler="set_dasher_fontsize" last_modification_time="Wed, 24 Sep 2003 12:21:00 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkRadioAction" id="fontsizelarge">
+            <property name="active">True</property>
+            <property name="group">fontsizenormal</property>
+            <property name="name">fontsizelarge</property>
+            <property name="label" translatable="yes">Large</property>
+            <signal handler="set_dasher_fontsize" last_modification_time="Wed, 24 Sep 2003 12:21:00 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkRadioAction" id="fontsizevlarge">
+            <property name="active">True</property>
+            <property name="group">fontsizenormal</property>
+            <property name="name">fontsizevlarge</property>
+            <property name="label" translatable="yes">Very Large</property>
+            <signal handler="set_dasher_fontsize" last_modification_time="Wed, 24 Sep 2003 12:21:00 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="reset_fonts1">
+            <property name="name">reset_fonts1</property>
+            <property name="label" translatable="yes">_Reset fonts</property>
+            <signal handler="reset_fonts" last_modification_time="Tue, 23 Sep 2003 17:57:37 GMT" name="activate"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem7">
+            <property name="name">menuitem7</property>
+            <property name="label" translatable="yes">_Help</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuabout">
+            <property name="name">menuabout</property>
+            <property name="label" translatable="yes">_About</property>
+            <signal handler="about_dasher" last_modification_time="Tue, 23 Sep 2003 11:21:50 GMT" name="activate"/>
+          </object>
+        </child>
+      </object>
+    </child>
+    <ui>
+      <menubar name="dasher_menu_bar">
+        <menu action="menuitem4">
+          <menuitem action="menunew"/>
+          <menuitem action="menuquit"/>
+        </menu>
+        <menu action="menuitem5">
+          <menuitem action="menucut"/>
+          <menuitem action="menucopy"/>
+          <menuitem action="menupaste"/>
+          <menuitem action="menucopyall"/>
+        </menu>
+        <menu action="options1">
+          <menuitem action="menupreferences"/>
+          <menuitem action="edit_font1"/>
+          <menuitem action="dasher_font1"/>
+          <menu action="dasher_font_size1">
+            <menuitem action="fontsizenormal"/>
+            <menuitem action="fontsizelarge"/>
+            <menuitem action="fontsizevlarge"/>
+          </menu>
+          <menuitem action="reset_fonts1"/>
+        </menu>
+        <menu action="menuitem7">
+          <menuitem action="menuabout"/>
+        </menu>
+      </menubar>
+    </ui>
+  </object>
+  <object class="GtkWindow" id="window">
+    <property name="width_request">500</property>
+    <property name="height_request">150</property>
+    <property name="title" translatable="yes">Dasher</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="ask_save_before_exit" last_modification_time="Mon, 22 Sep 2003 19:53:44 GMT" name="delete_event"/>
+    <signal handler="on_window_map" last_modification_time="Mon, 22 Sep 2003 19:53:44 GMT" name="realize"/>
+    <child>
+      <object class="GtkVBox" id="vbox45">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkMenuBar" constructor="uimanager1" id="dasher_menu_bar">
+            <property name="visible">True</property>
+            <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+            <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHPaned" id="hpaned1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <object class="Custom" id="DasherControl">
+                <property name="width_request">175</property>
+                <property name="visible">True</property>
+                <property name="creation_function">create_dasher_control</property>
+                <property name="int1">0</property>
+                <property name="int2">0</property>
+                <property name="last_modification_time">Wed, 29 Mar 2006 17:31:58 GMT</property>
+                <signal handler="parameter_notification" last_modification_time="Sun, 05 Mar 2006 19:45:23 GMT" name="dasher_changed"/>
+                <signal handler="handle_start_event" last_modification_time="Sun, 05 Mar 2006 19:45:35 GMT" name="dasher_start"/>
+                <signal handler="handle_stop_event" last_modification_time="Sun, 05 Mar 2006 19:45:43 GMT" name="dasher_stop"/>
+                <signal handler="handle_control_event" last_modification_time="Sun, 05 Mar 2006 19:45:53 GMT" name="dasher_control"/>
+                <signal handler="gtk2_edit_output_callback" last_modification_time="Sun, 05 Mar 2006 19:46:13 GMT" name="dasher_edit_insert"/>
+                <signal handler="gtk2_edit_delete_callback" last_modification_time="Sun, 05 Mar 2006 19:46:32 GMT" name="dasher_edit_delete"/>
+                <signal handler="handle_context_request" last_modification_time="Sun, 05 Mar 2006 19:46:54 GMT" name="dasher_context_request"/>
+                <signal handler="handle_request_settings" last_modification_time="Sun, 05 Mar 2006 19:47:12 GMT" name="dasher_request_settings"/>
+                <signal handler="focus_in_event" last_modification_time="Sun, 05 Mar 2006 19:47:28 GMT" name="focus_in_event"/>
+                <signal handler="on_lock_info" last_modification_time="Wed, 22 Mar 2006 10:38:44 GMT" name="dasher_lock_info"/>
+                <signal handler="on_message" last_modification_time="Wed, 22 Mar 2006 14:24:04 GMT" name="dasher_message"/>
+                <signal handler="convert_cb" last_modification_time="Tue, 30 May 2006 14:21:15 GMT" name="dasher_edit_convert"/>
+                <signal handler="protect_cb" last_modification_time="Tue, 30 May 2006 14:21:26 GMT" name="dasher_edit_protect"/>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow5">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTextView" id="the_text_view">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="editable">True</property>
+                    <property name="overwrite">False</property>
+                    <property name="accepts_tab">True</property>
+                    <property name="justification">GTK_JUSTIFY_LEFT</property>
+                    <property name="wrap_mode">GTK_WRAP_WORD</property>
+                    <property name="cursor_visible">True</property>
+                    <property name="pixels_above_lines">0</property>
+                    <property name="pixels_below_lines">0</property>
+                    <property name="pixels_inside_wrap">0</property>
+                    <property name="left_margin">0</property>
+                    <property name="right_margin">0</property>
+                    <property name="indent">0</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="shrink">True</property>
+                <property name="resize">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="open_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="cancel_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="ok_button1">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="dasher_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:16 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="dasher_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:21:14 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="dasher_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:21:38 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="dasher_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="dasher_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:22:03 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection1">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFontSelectionDialog" id="edit_fontselector">
+    <property name="border_width">4</property>
+    <property name="title" translatable="yes">Select Font</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:22:37 GMT" name="close"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="edit_font_cancel">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-cancel</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_cancel_cb" last_modification_time="Thu, 11 May 2006 15:20:27 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="apply_button">
+      <object class="GtkButton" id="edit_font_apply">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-apply</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_apply_cb" last_modification_time="Thu, 11 May 2006 15:20:19 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="edit_font_ok">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="label">gtk-ok</property>
+        <property name="use_stock">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+        <signal handler="edit_font_ok_cb" last_modification_time="Thu, 11 May 2006 15:19:55 GMT" name="clicked"/>
+      </object>
+    </child>
+    <child internal-child="font_selection">
+      <object class="GtkFontSelection" id="font_selection_2">
+        <property name="border_width">4</property>
+        <property name="visible">True</property>
+        <property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
+      </object>
+      <packing>
+        <property name="padding">0</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button14">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button15">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="append_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button16">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button17">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="import_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button18">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button19">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkFileSelection" id="save_and_quit_fileselector">
+    <property name="border_width">10</property>
+    <property name="title" translatable="yes">Select File</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="show_fileops">True</property>
+    <signal handler="gtk_widget_hide_on_delete" last_modification_time="Tue, 23 Sep 2003 13:19:39 GMT" name="delete_event"/>
+    <child internal-child="cancel_button">
+      <object class="GtkButton" id="button20">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+    <child internal-child="ok_button">
+      <object class="GtkButton" id="button21">
+        <property name="visible">True</property>
+        <property name="can_default">True</property>
+        <property name="can_focus">True</property>
+        <property name="relief">GTK_RELIEF_NORMAL</property>
+        <property name="focus_on_click">True</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/Data/Makefile.am b/Data/Makefile.am
index 055d579..91b1a90 100644
--- a/Data/Makefile.am
+++ b/Data/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS =  training alphabets colours controllabels glade Help
+SUBDIRS =  training alphabets colours controllabels GUI Help
 
 desktopdir = $(datadir)/applications
 desktop_in_files = dasher.desktop.in
diff --git a/INSTALL b/INSTALL
index 23e5f25..d3c5b40 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,8 +1,8 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007 Free Software Foundation, Inc.
 
 This file is free documentation; the Free Software Foundation gives
 unlimited permission to copy, distribute and modify it.
@@ -10,7 +10,10 @@ unlimited permission to copy, distribute and modify it.
 Basic Installation
 ==================
 
-These are generic installation instructions.
+Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -23,9 +26,9 @@ debugging `configure').
 
    It can also use an optional file (typically called `config.cache'
 and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
+the results of its tests to speed up reconfiguring.  Caching is
 disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
 
    If you need to do unusual things to compile the package, please try
 to figure out how `configure' could check whether to do them, and mail
@@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you
 may remove or edit it.
 
    The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
 
 The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
+     `./configure' to configure the package for your system.
 
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
 
@@ -67,6 +67,9 @@ The simplest way to compile this package is:
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
+  6. Often, you can also type `make uninstall' to remove the installed
+     files again.
+
 Compilers and Options
 =====================
 
@@ -78,7 +81,7 @@ details on some of the pertinent environment variables.
 by setting variables in the command line or in the environment.  Here
 is an example:
 
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
    *Note Defining Variables::, for more details.
 
@@ -87,17 +90,15 @@ Compiling For Multiple Architectures
 
 You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
 source code in the directory that `configure' is in and in `..'.
 
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
 
 Installation Names
 ==================
@@ -190,12 +191,12 @@ them in the `configure' command line, using `VAR=value'.  For example:
      ./configure CC=/usr/local2/bin/gcc
 
 causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
+overridden in the site shell script).
 
-     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
 
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
diff --git a/Makefile.am b/Makefile.am
index 10f9db0..b2ca966 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,7 +19,6 @@ EXTRA_DIST = \
 		intltool-update.in
 
 DISTCLEANFILES = \
-		m4 \
 		intltool-merge \
 		intltool-extract \
 		intltool-update \
@@ -54,8 +53,8 @@ maemo-install: all
 	cp -a Data/maemo/* tmp_build
 	cp Src/dasher tmp_build/usr/bin/dasher
 	strip tmp_build/usr/bin/dasher
-	cp Src/Gtk2/dashermaemo.glade Src/Gtk2/dashermaemofullscreen.glade tmp_build/usr/share/dasher
-	cp Data/system.rc/training_english_GB.txt Data/system.rc/alphabet.english.xml Data/system.rc/colour.xml tmp_build/usr/share/dasher
+	cp Data/GUI/dashermaemo.ui Data/GUI/dashermaemofullscreen.ui tmp_build/usr/share/dasher
+	cp Data/training/training_english_GB.txt Data/alphabets/alphabet.english.xml Data/colours/colour.xml tmp_build/usr/share/dasher
 	ln -sf /usr/share/applications/hildon/dasher.desktop tmp_build/etc/others-menu/extra_applications/0301_dasher.desktop
 	- find tmp_build -name .git -exec rm -rf \{\} \;
 	dpkg-deb -b tmp_build dasher_4.10.1.0inferencemaemo1_armel.deb 
diff --git a/Src/Common/Makefile.am b/Src/Common/Makefile.am
index 4ec7318..8333a96 100644
--- a/Src/Common/Makefile.am
+++ b/Src/Common/Makefile.am
@@ -24,6 +24,6 @@ libdashermisc_a_SOURCES = \
 #		IOstreamDasherEdit.cc   I have no idea what this does, but it's broken now
 #		IOstreamDasherEdit.h 
 
-AM_CXXFLAGS = -I$(srcdir)/../DasherCore -DPROGDATA=\"$(pkgdatadir)\" -I../../intl -I$(top_srcdir)/intl $(GTK2_CFLAGS) $(SETTINGS_CFLAGS) $(gnome_speech_CFLAGS) $(gnome_a11y_CFLAGS) $(glade_CFLAGS) $(gnome_CFLAGS) $(wnck_CFLAGS) -DWNCK_I_KNOW_THIS_IS_UNSTABLE
+AM_CXXFLAGS = -I$(srcdir)/../DasherCore -DPROGDATA=\"$(pkgdatadir)\" -I../../intl -I$(top_srcdir)/intl $(GTK2_CFLAGS) $(SETTINGS_CFLAGS) $(gnome_speech_CFLAGS) $(gnome_a11y_CFLAGS) $(gnome_CFLAGS) $(wnck_CFLAGS) -DWNCK_I_KNOW_THIS_IS_UNSTABLE
 
 EXTRA_DIST = Common.vcproj Common_vc70.vcproj Common_vc71.vcproj Common_vc80.vcproj
diff --git a/Src/DasherCore/Makefile.am b/Src/DasherCore/Makefile.am
index 47cf62f..6ae670f 100644
--- a/Src/DasherCore/Makefile.am
+++ b/Src/DasherCore/Makefile.am
@@ -144,7 +144,7 @@ EXTRA_libdashercore_a_SOURCES = \
 		PinyinParser.cpp \
 		PinyinParser.h
 
-AM_CXXFLAGS = -I$(srcdir)/../DasherCore -DPROGDATA=\"$(pkgdatadir)\" -I../../intl -I$(top_srcdir)/intl $(GTK2_CFLAGS) $(SETTINGS_CFLAGS) $(gnome_speech_CFLAGS) $(gnome_a11y_CFLAGS) $(glade_CFLAGS) $(gnome_CFLAGS) $(wnck_CFLAGS) -DWNCK_I_KNOW_THIS_IS_UNSTABLE
+AM_CXXFLAGS = -I$(srcdir)/../DasherCore -DPROGDATA=\"$(pkgdatadir)\" -I../../intl -I$(top_srcdir)/intl $(GTK2_CFLAGS) $(SETTINGS_CFLAGS) $(gnome_speech_CFLAGS) $(gnome_a11y_CFLAGS) $(gnome_CFLAGS) $(wnck_CFLAGS) -DWNCK_I_KNOW_THIS_IS_UNSTABLE
 
 EXTRA_DIST = \
 		LanguageModelling/BigramLanguageModel.cpp \
diff --git a/Src/DasherCore/NodeCreationManager.h b/Src/DasherCore/NodeCreationManager.h
index 3ad0a0b..8bed6fb 100644
--- a/Src/DasherCore/NodeCreationManager.h
+++ b/Src/DasherCore/NodeCreationManager.h
@@ -35,7 +35,7 @@ class CNodeCreationManager : public Dasher::CDasherComponent {
   Dasher::CDasherNode *GetRoot(int iType, Dasher::CDasherNode *pParent, int iLower, int iUpper, void *pUserData);
 
   ///
-  /// Register a control node 
+  /// Register a control node
   ///
 
   void RegisterNode( int iID, const std::string &strLabel, int iColour );
diff --git a/Src/Gtk2/GtkDasherControl.cpp b/Src/Gtk2/GtkDasherControl.cpp
index c48a871..fa0c503 100644
--- a/Src/Gtk2/GtkDasherControl.cpp
+++ b/Src/Gtk2/GtkDasherControl.cpp
@@ -53,7 +53,7 @@ enum {
   SIGNAL_NUM
 };
 
-#define GTK_DASHER_CONTROL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), TYPE_GTK_DASHER_CONTROL, GtkDasherControlPrivate));
+#define GTK_DASHER_CONTROL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), GTK_DASHER_TYPE_CONTROL, GtkDasherControlPrivate));
 
 /* TODO: is it still sensible to derive from VBox, given that its just a cnavas now*/
 G_DEFINE_TYPE(GtkDasherControl, gtk_dasher_control, GTK_TYPE_VBOX);
@@ -144,11 +144,7 @@ gtk_dasher_control_finalize(GObject *pObject) {
 
 GtkWidget *
 gtk_dasher_control_new() {
-  GtkDasherControl *pDasherControl;
-
-  pDasherControl = GTK_DASHER_CONTROL(g_object_new(gtk_dasher_control_get_type(), NULL));
-
-  return GTK_WIDGET(pDasherControl);
+  return GTK_WIDGET(g_object_new(GTK_DASHER_TYPE_CONTROL, NULL));
 }
 
 void 
diff --git a/Src/Gtk2/GtkDasherControl.h b/Src/Gtk2/GtkDasherControl.h
index 1d0716c..0a22c87 100644
--- a/Src/Gtk2/GtkDasherControl.h
+++ b/Src/Gtk2/GtkDasherControl.h
@@ -24,11 +24,11 @@ struct _DasherMessageInfo {
 };
 
 G_BEGIN_DECLS
-#define TYPE_GTK_DASHER_CONTROL         (gtk_dasher_control_get_type())
-#define GTK_DASHER_CONTROL(obj)         (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_GTK_DASHER_CONTROL, GtkDasherControl ))
-#define GTK_DASHER_CONTROL_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GTK_DASHER_CONTROL, GtkDasherControlClass ))
-#define IS_GTK_DASHER_CONTROL(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GTK_DASHER_CONTROL))
-#define IS_GTK_DASHER_CONTROL_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GTK_DASHER_CONTROL))
+#define GTK_DASHER_TYPE_CONTROL         (gtk_dasher_control_get_type())
+#define GTK_DASHER_CONTROL(obj)         (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_DASHER_TYPE_CONTROL, GtkDasherControl ))
+#define GTK_DASHER_CONTROL_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST ((klass), GTK_DASHER_TYPE_CONTROL, GtkDasherControlClass ))
+#define GTK_DASHER_IS_CONTROL(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_DASHER_TYPE_CONTROL))
+#define GTK_DASHER_IS_CONTROL_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_DASHER_TYPE_CONTROL))
 
 typedef struct _GtkDasherControl GtkDasherControl;
 typedef struct _GtkDasherControlClass GtkDasherControlClass;
diff --git a/Src/Gtk2/Makefile.am b/Src/Gtk2/Makefile.am
index 9900858..2852c38 100644
--- a/Src/Gtk2/Makefile.am
+++ b/Src/Gtk2/Makefile.am
@@ -1,28 +1,13 @@
 LIBS = @INTLLIBS@ @LIBS@
 
-noinst_LIBRARIES = libdashergtk.a libdashercontrol.a
+noinst_LTLIBRARIES = libdashergtk.la libdashercontrol.la
 noinst_PROGRAMS = generate-schema
 
 #bin_PROGRAMS = dasher-config
 
 if WITH_GPE
-gladefile = dashergpe.glade
 settings_store = gpesettings_store.cc gpesettings_store.h
-
 else
-
-if WITH_MAEMO
-
-if WITH_MAEMOFULLSCREEN
-gladefile = dashermaemofullscreen.glade
-else
-gladefile = dashermaemo.glade
-endif
-
-else
-gladefile = dasher.glade
-endif
-
 settings_store = 
 endif
 
@@ -40,7 +25,7 @@ generate_schema_SOURCES = GenerateSchema.cpp
 #dasher_config_LDADD = \
 #	$(GTK2BUILD_LIBS)
 
-libdashercontrol_a_SOURCES = \
+libdashercontrol_la_SOURCES = \
 		Canvas.cpp \
 		Canvas.h \
 		DasherControl.cpp \
@@ -61,7 +46,7 @@ libdashercontrol_a_SOURCES = \
 		mouse_input.h \
 		$(settings_store)
 
-libdashergtk_a_SOURCES = \
+libdashergtk_la_SOURCES = \
 		DasherAppSettings.cpp \
 		DasherAppSettings.h \
 		GtkDasherControl.h \
@@ -97,10 +82,10 @@ libdashergtk_a_SOURCES = \
 		dasher_main.cpp \
 		dasher_main.h \
 		module_settings_window.cpp \
-		module_settings_window.h 
+		module_settings_window.h
 
-libdashergtk_a_LIBADD = @SPEECH_SOURCES@
-libdashergtk_a_DEPENDENCIES = @SPEECH_SOURCES@
+libdashergtk_la_LIBADD = @SPEECH_SOURCES@
+libdashergtk_la_DEPENDENCIES = @SPEECH_SOURCES@
 
 AM_CXXFLAGS = -I$(srcdir)/../DasherCore -DPROGDATA=\"$(pkgdatadir)\" -I../../intl -I$(top_srcdir)/intl $(GTK2BUILD_CFLAGS) 
 
diff --git a/Src/Gtk2/Preferences.cpp b/Src/Gtk2/Preferences.cpp
index ad1d0a8..27eea06 100644
--- a/Src/Gtk2/Preferences.cpp
+++ b/Src/Gtk2/Preferences.cpp
@@ -96,25 +96,25 @@ enum {
 /// Newer, object based stuff
 
 struct _DasherPreferencesDialoguePrivate {
-  GtkWidget *pPreferencesWindow;
+  GtkWindow *pPreferencesWindow;
   DasherEditor *pEditor;
   DasherAppSettings *pAppSettings;
   GtkWindow *pMainWindow;
 
   // TODO: it really would be nice not to have to keep this arround
-  GladeXML *pGladeXML;
+  GtkBuilder *pXML;
 
   // TODO: check all of these are really needed
   GtkListStore *pListStore;
-  GtkWidget *pLRButton;
-  GtkWidget *pRLButton;
-  GtkWidget *pTBButton;
-  GtkWidget *pBTButton;
-  GtkWidget *pSpeedSlider;
-  GtkWidget *pMousePosButton;
-  GtkWidget *pMousePosStyle;
-  GtkWidget *pActionTreeView;
-  GtkWidget *pNotebook;
+  GtkToggleButton *pLRButton;
+  GtkToggleButton *pRLButton;
+  GtkToggleButton *pTBButton;
+  GtkToggleButton *pBTButton;
+  GtkRange *pSpeedSlider;
+  GtkToggleButton *pMousePosButton;
+  GtkComboBox *pMousePosStyle;
+  GtkTreeView *pActionTreeView;
+  GtkNotebook *pNotebook;
 
   // Set this to ignore signals (ie loops coming back from setting widgets in response to parameters having changed)
   bool bIgnoreSignals;
@@ -221,7 +221,7 @@ static void dasher_preferences_dialogue_destroy(GObject *pObject) {
   DasherPreferencesDialogue *pSelf = (DasherPreferencesDialogue *)pObject;
   DasherPreferencesDialoguePrivate *pPrivate = (DasherPreferencesDialoguePrivate *)(pSelf->private_data);
 
-  g_object_unref(pPrivate->pGladeXML);
+  g_object_unref(pPrivate->pXML);
 
   // FIXME - I think we need to chain up through the finalize methods
   // of the parent classes here...
@@ -230,7 +230,7 @@ static void dasher_preferences_dialogue_destroy(GObject *pObject) {
 
 // Public methods
 
-DasherPreferencesDialogue *dasher_preferences_dialogue_new(GladeXML *pGladeWidgets, DasherEditor *pEditor, DasherAppSettings *pAppSettings, GtkWindow *pMainWindow) {
+DasherPreferencesDialogue *dasher_preferences_dialogue_new(GtkBuilder *pXML, DasherEditor *pEditor, DasherAppSettings *pAppSettings, GtkWindow *pMainWindow) {
   DasherPreferencesDialogue *pDasherControl;
   pDasherControl = (DasherPreferencesDialogue *)(g_object_new(dasher_preferences_dialogue_get_type(), NULL));
 
@@ -243,35 +243,35 @@ DasherPreferencesDialogue *dasher_preferences_dialogue_new(GladeXML *pGladeWidge
   pPrivate->pEditor = pEditor;
   pPrivate->pAppSettings = pAppSettings;
 
-  pPrivate->pGladeXML = (GladeXML *)g_object_ref(pGladeWidgets);
+  pPrivate->pXML = (GtkBuilder *)g_object_ref(pXML);
 
-  pPrivate->pPreferencesWindow = glade_xml_get_widget(pGladeWidgets, "preferences");
+  pPrivate->pPreferencesWindow = GTK_WINDOW(gtk_builder_get_object(pXML, "preferences"));
 
-  pPrivate->pActionTreeView =glade_xml_get_widget(pGladeWidgets, "action_tree_view");
-  pPrivate->pNotebook = glade_xml_get_widget(pGladeWidgets, "notebook1");
+  pPrivate->pActionTreeView = GTK_TREE_VIEW(gtk_builder_get_object(pXML, "action_tree_view"));
+  pPrivate->pNotebook = GTK_NOTEBOOK(gtk_builder_get_object(pXML, "notebook1"));
 
-  gtk_window_set_transient_for(GTK_WINDOW(pPrivate->pPreferencesWindow), pMainWindow);
+  gtk_window_set_transient_for(pPrivate->pPreferencesWindow, pMainWindow);
 
   pPrivate->pMainWindow = pMainWindow;
 
-  pPrivate->pSpeedSlider = glade_xml_get_widget(pGladeWidgets, "hscale1");
+  pPrivate->pSpeedSlider = GTK_RANGE(gtk_builder_get_object(pXML, "hscale1"));
   dasher_preferences_dialogue_initialise_tables(pDasherControl);
   dasher_preferences_dialogue_refresh_widget(pDasherControl, -1);
   dasher_preferences_dialogue_update_special(pDasherControl, -1);
 
 #ifdef WITH_MAEMO
 #ifndef WITH_MAEMOFULLSCREEN
-  gtk_widget_hide(glade_xml_get_widget(pGladeWidgets, "displaysizebox"));
+  gtk_widget_hide(gtk_builder_get_object(pXML, "displaysizebox"));
 #endif
 #endif
 
 #ifndef JAPANESE
-  gtk_widget_hide(glade_xml_get_widget(pGladeWidgets, "radiobutton9"));
+  gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pXML, "radiobutton9")));
 #endif
 
   dasher_preferences_dialogue_populate_actions(pDasherControl);
 
-  //  InitialiseFontDialogues(pGladeWidgets, pAppSettings);
+  //  InitialiseFontDialogues(pXML, pAppSettings);
 
   return pDasherControl;
 }
@@ -283,20 +283,20 @@ void dasher_preferences_dialogue_show(DasherPreferencesDialogue *pSelf, gint iPa
   // Keep the preferences window in the correct position relative to the
   // main Dasher window
   
-  //  gtk_window_set_transient_for(GTK_WINDOW(pPrivate->pPreferencesWindow),pPrivate->pMainWindow);
+  //  gtk_window_set_transient_for(pPrivate->pPreferencesWindow,pPrivate->pMainWindow);
 #ifdef WITH_MAEMO
 #ifndef WITH_MAEMOFULLSCREEN
-  // gtk_window_set_keep_above((pPrivate->pPreferencesWindow), true);
+  // gtk_window_set_keep_above(pPrivate->pPreferencesWindow, true);
 #endif
 #endif
   // TODO: reimplement
-  //  gtk_window_set_keep_above(GTK_WINDOW(pPrivate->pPreferencesWindow), dasher_main_topmost(g_pDasherMain));
+  //  gtk_window_set_keep_above(pPrivate->pPreferencesWindow, dasher_main_topmost(g_pDasherMain));
 
   if(iPage > 0) {
-    gtk_notebook_set_current_page(GTK_NOTEBOOK(pPrivate->pNotebook), iPage - 1);
+    gtk_notebook_set_current_page(pPrivate->pNotebook, iPage - 1);
   }
 
-  gtk_window_present(GTK_WINDOW(pPrivate->pPreferencesWindow));
+  gtk_window_present(pPrivate->pPreferencesWindow);
 }
 
 
@@ -315,15 +315,15 @@ void dasher_preferences_dialogue_initialise_tables(DasherPreferencesDialogue *pS
 #ifndef WITH_MAEMO
   int iNumBoolEntries = sizeof(sBoolTranslationTable) / sizeof(BoolTranslation);
   for(int i(0); i < iNumBoolEntries; ++i) {
-    sBoolTranslationTable[i].pWidget = glade_xml_get_widget(pPrivate->pGladeXML, sBoolTranslationTable[i].szWidgetName);
+    sBoolTranslationTable[i].pWidget = GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, sBoolTranslationTable[i].szWidgetName));
   }
 #endif
 
   int iNumStringEntries = sizeof(sStringTranslationTable) / sizeof(StringTranslation);
   for(int i(0); i < iNumStringEntries; ++i) {
-    sStringTranslationTable[i].pWidget = glade_xml_get_widget(pPrivate->pGladeXML, sStringTranslationTable[i].szWidgetName);
+    sStringTranslationTable[i].pWidget = GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, sStringTranslationTable[i].szWidgetName));
     if(sStringTranslationTable[i].szHelperName)
-      sStringTranslationTable[i].pHelper = glade_xml_get_widget(pPrivate->pGladeXML, sStringTranslationTable[i].szHelperName);
+      sStringTranslationTable[i].pHelper = GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, sStringTranslationTable[i].szHelperName));
 
     dasher_preferences_dialogue_populate_list(pSelf, GTK_TREE_VIEW(sStringTranslationTable[i].pWidget), sStringTranslationTable[i].iParameter, sStringTranslationTable[i].pHelper);
     g_signal_connect(sStringTranslationTable[i].pWidget, "realize", (GCallback)on_widget_realize, &sStringTranslationTable[i].iParameter);
@@ -381,7 +381,7 @@ void dasher_preferences_dialogue_refresh_widget(DasherPreferencesDialogue *pSelf
       pUserData[2] = pSelf;
       
       if(sStringTranslationTable[i].pWidget && GTK_WIDGET_REALIZED(sStringTranslationTable[i].pWidget))
-	gtk_tree_model_foreach(pModel, dasher_preferences_refresh_foreach_function, pUserData);
+        gtk_tree_model_foreach(pModel, dasher_preferences_refresh_foreach_function, pUserData);
     }
   }
 }
@@ -396,8 +396,8 @@ static void dasher_preferences_dialogue_refresh_parameter(DasherPreferencesDialo
     if((pWidget == NULL) || (sBoolTranslationTable[i].pWidget == pWidget)) {
 
       if(GTK_TOGGLE_BUTTON(sBoolTranslationTable[i].pWidget)->active != dasher_app_settings_get_bool(pPrivate->pAppSettings, sBoolTranslationTable[i].iParameter)) {
-	
-	dasher_app_settings_set_bool(pPrivate->pAppSettings, sBoolTranslationTable[i].iParameter, GTK_TOGGLE_BUTTON(sBoolTranslationTable[i].pWidget)->active);
+        
+        dasher_app_settings_set_bool(pPrivate->pAppSettings, sBoolTranslationTable[i].iParameter, GTK_TOGGLE_BUTTON(sBoolTranslationTable[i].pWidget)->active);
       }
     }
   }
@@ -466,8 +466,8 @@ void dasher_preferences_dialogue_populate_list(DasherPreferencesDialogue *pSelf,
     if(!strcmp(szCurrentFilter, szCurrentValue)) {
       gtk_tree_selection_select_iter(pSelection, &oIter);
       if(pHelper) {
-	gtk_widget_set_sensitive(GTK_WIDGET(pHelper), pHelperWindow != NULL);
-	*pHelperWindowRef = pHelperWindow;
+        gtk_widget_set_sensitive(GTK_WIDGET(pHelper), pHelperWindow != NULL);
+        *pHelperWindowRef = pHelperWindow;
       }
     }
   }
@@ -519,26 +519,26 @@ static void dasher_preferences_dialogue_populate_special_speed(DasherPreferences
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
   double dNewValue = dasher_app_settings_get_long(pPrivate->pAppSettings, LP_MAX_BITRATE) / 100.0;
-  gtk_range_set_value(GTK_RANGE(pPrivate->pSpeedSlider), dNewValue); 
+  gtk_range_set_value(pPrivate->pSpeedSlider, dNewValue); 
 }
 
 static void dasher_preferences_dialogue_populate_special_mouse_start(DasherPreferencesDialogue *pSelf) {
 #ifndef WITH_MAEMO
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
-  pPrivate->pMousePosButton = glade_xml_get_widget(pPrivate->pGladeXML, "mouseposbutton");
-  pPrivate->pMousePosStyle = glade_xml_get_widget(pPrivate->pGladeXML, "MousePosStyle");
+  pPrivate->pMousePosButton = GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "mouseposbutton"));
+  pPrivate->pMousePosStyle = GTK_COMBO_BOX(gtk_builder_get_object(pPrivate->pXML, "MousePosStyle"));
 
   if(dasher_app_settings_get_bool(pPrivate->pAppSettings, BP_MOUSEPOS_MODE)) {
-    gtk_combo_box_set_active(GTK_COMBO_BOX(pPrivate->pMousePosStyle), 1);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "mouseposbutton")), true);
+    gtk_combo_box_set_active(pPrivate->pMousePosStyle, 1);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "mouseposbutton")), true);
   }
   else if(dasher_app_settings_get_bool(pPrivate->pAppSettings, BP_CIRCLE_START)) {
-    gtk_combo_box_set_active(GTK_COMBO_BOX(pPrivate->pMousePosStyle), 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "mouseposbutton")), true);
+    gtk_combo_box_set_active(pPrivate->pMousePosStyle, 0);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "mouseposbutton")), true);
   }
   else {
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "mouseposbutton")), false);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "mouseposbutton")), false);
   }
 #endif 
 }
@@ -546,89 +546,91 @@ static void dasher_preferences_dialogue_populate_special_mouse_start(DasherPrefe
 static void dasher_preferences_dialogue_populate_special_orientation(DasherPreferencesDialogue *pSelf) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
-  pPrivate->pLRButton = glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton2");
-  pPrivate->pRLButton = glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton3");
-  pPrivate->pTBButton = glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton4");
-  pPrivate->pBTButton = glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton5");
+  pPrivate->pLRButton = GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton2"));
+  pPrivate->pRLButton = GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton3"));
+  pPrivate->pTBButton = GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton4"));
+  pPrivate->pBTButton = GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton5"));
 
   switch (dasher_app_settings_get_long(pPrivate->pAppSettings, LP_ORIENTATION)) {
   case Dasher::Opts::Alphabet:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton1"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton1")), TRUE); 
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton1"))) != TRUE)
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton1")), TRUE); 
     
     pPrivate->bIgnoreSignals = true;
 
     switch (dasher_app_settings_get_long(pPrivate->pAppSettings, LP_REAL_ORIENTATION)) {
     case Dasher::Opts::LeftToRight:
-      if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pLRButton)) != TRUE)
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pLRButton), TRUE);
+      if(gtk_toggle_button_get_active(pPrivate->pLRButton) != TRUE)
+         gtk_toggle_button_set_active(pPrivate->pLRButton, TRUE);
       break;
     case Dasher::Opts::RightToLeft:
-      if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pRLButton)) != TRUE)
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pRLButton), TRUE);
+      if(gtk_toggle_button_get_active(pPrivate->pRLButton) != TRUE)
+         gtk_toggle_button_set_active(pPrivate->pRLButton, TRUE);
       break;
     case Dasher::Opts::TopToBottom:
-      if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton)) != TRUE)
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton), TRUE);
+      if(gtk_toggle_button_get_active(pPrivate->pTBButton) != TRUE)
+         gtk_toggle_button_set_active(pPrivate->pTBButton, TRUE);
       break;
     case Dasher::Opts::BottomToTop:
-      if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton)) != TRUE)
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton), TRUE);
+      if(gtk_toggle_button_get_active(pPrivate->pTBButton) != TRUE)
+         gtk_toggle_button_set_active(pPrivate->pTBButton, TRUE);
       break;
     }
 
     pPrivate->bIgnoreSignals = false;
 
-    gtk_widget_set_sensitive(pPrivate->pLRButton, FALSE);
-    gtk_widget_set_sensitive(pPrivate->pRLButton, FALSE);
-    gtk_widget_set_sensitive(pPrivate->pTBButton, FALSE);
-    gtk_widget_set_sensitive(pPrivate->pBTButton, FALSE);
-
-
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pLRButton), FALSE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pRLButton), FALSE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pTBButton), FALSE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pBTButton), FALSE);
     break;
+
   case Dasher::Opts::LeftToRight:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton2"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton2")), TRUE); 
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12")), TRUE); 
-
-    gtk_widget_set_sensitive(pPrivate->pLRButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pRLButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pTBButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pBTButton, TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton2"))) != TRUE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton2")), TRUE); 
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12"))) != TRUE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12")), TRUE); 
+
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pLRButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pRLButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pTBButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pBTButton), TRUE);
     break;
+
   case Dasher::Opts::RightToLeft:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton3"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton3")), TRUE); 
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12")), TRUE); 
-
-    gtk_widget_set_sensitive(pPrivate->pLRButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pRLButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pTBButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pBTButton, TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton3"))) != TRUE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton3")), TRUE); 
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12"))) != TRUE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12")), TRUE); 
+
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pLRButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pRLButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pTBButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pBTButton), TRUE);
     break;
+
   case Dasher::Opts::TopToBottom:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton4"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton4")), TRUE);  
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12")), TRUE); 
-
-    gtk_widget_set_sensitive(pPrivate->pLRButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pRLButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pTBButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pBTButton, TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton4"))) != TRUE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton4")), TRUE);  
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12"))) != TRUE)
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12")), TRUE); 
+
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pLRButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pRLButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pTBButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pBTButton), TRUE);
     break;
+
   case Dasher::Opts::BottomToTop:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton5"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton5")), TRUE); 
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton12")), TRUE); 
-
-    gtk_widget_set_sensitive(pPrivate->pLRButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pRLButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pTBButton, TRUE);
-    gtk_widget_set_sensitive(pPrivate->pBTButton, TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton5"))) != TRUE)
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton5")), TRUE); 
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12"))) != TRUE)
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton12")), TRUE); 
+
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pLRButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pRLButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pTBButton), TRUE);
+    gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pBTButton), TRUE);
     break;
   }
 }
@@ -639,16 +641,16 @@ static void dasher_preferences_dialogue_populate_special_appstyle(DasherPreferen
 
   switch(dasher_app_settings_get_long(pPrivate->pAppSettings, APP_LP_STYLE)) {
   case 0:
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "appstyle_classic")), TRUE);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "appstyle_classic")), TRUE);
     break;
   case 1: 
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "appstyle_compose")), TRUE);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "appstyle_compose")), TRUE);
     break;
   case 2:
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "appstyle_direct")), TRUE);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "appstyle_direct")), TRUE);
     break;   
   case 3:
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "appstyle_fullscreen")), TRUE);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "appstyle_fullscreen")), TRUE);
     break;
   }
 #endif
@@ -659,9 +661,9 @@ static void dasher_preferences_dialogue_populate_special_linewidth(DasherPrefere
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
   if(dasher_app_settings_get_long(pPrivate->pAppSettings, LP_LINE_WIDTH) > 1)
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "thicklinebutton")), true);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "thicklinebutton")), true);
   else
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "thicklinebutton")), false);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "thicklinebutton")), false);
 #endif
 }
 
@@ -671,20 +673,20 @@ static void dasher_preferences_dialogue_populate_special_lm(DasherPreferencesDia
 
   switch( dasher_app_settings_get_long(pPrivate->pAppSettings, LP_LANGUAGE_MODEL_ID )) {
   case 0:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton6"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton6")), TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton6"))) != TRUE)
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton6")), TRUE);
     break;
   case 2: 
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton7"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton7")), TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton7"))) != TRUE)
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton7")), TRUE);
     break;
   case 3:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton8"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton8")), TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton8"))) != TRUE)
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton8")), TRUE);
     break;
   case 4:
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton9"))) != TRUE)
-      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "radiobutton9")), TRUE);
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton9"))) != TRUE)
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "radiobutton9")), TRUE);
     break;
   default:
     break;
@@ -694,41 +696,41 @@ static void dasher_preferences_dialogue_populate_special_lm(DasherPreferencesDia
 static void dasher_preferences_dialogue_populate_special_uniform(DasherPreferencesDialogue *pSelf) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
-  gtk_range_set_value( GTK_RANGE(glade_xml_get_widget(pPrivate->pGladeXML, "uniformhscale")), dasher_app_settings_get_long(pPrivate->pAppSettings, LP_UNIFORM)/10.0);
+  gtk_range_set_value( GTK_RANGE(gtk_builder_get_object(pPrivate->pXML, "uniformhscale")), dasher_app_settings_get_long(pPrivate->pAppSettings, LP_UNIFORM)/10.0);
 }
 
 static void dasher_preferences_dialogue_populate_special_colour(DasherPreferencesDialogue *pSelf) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "manual_colour")), !dasher_app_settings_get_bool(pPrivate->pAppSettings, BP_PALETTE_CHANGE)); 
-  gtk_widget_set_sensitive(glade_xml_get_widget(pPrivate->pGladeXML, "ColorTree"), !dasher_app_settings_get_bool(pPrivate->pAppSettings, BP_PALETTE_CHANGE));
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "manual_colour")), !dasher_app_settings_get_bool(pPrivate->pAppSettings, BP_PALETTE_CHANGE)); 
+  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "ColorTree")), !dasher_app_settings_get_bool(pPrivate->pAppSettings, BP_PALETTE_CHANGE));
 }
 
 static void dasher_preferences_dialogue_populate_special_dasher_font(DasherPreferencesDialogue *pSelf) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
-  GtkWidget *pDasherFontButton = glade_xml_get_widget(pPrivate->pGladeXML, "dasher_fontbutton");
+  GObject *pDasherFontButton = gtk_builder_get_object(pPrivate->pXML, "dasher_fontbutton");
 
   gtk_font_button_set_font_name(GTK_FONT_BUTTON(pDasherFontButton), 
-				dasher_app_settings_get_string(pPrivate->pAppSettings, SP_DASHER_FONT));
+                                dasher_app_settings_get_string(pPrivate->pAppSettings, SP_DASHER_FONT));
 }
 
 static void dasher_preferences_dialogue_populate_special_edit_font(DasherPreferencesDialogue *pSelf) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
-  GtkWidget *pEditFontButton = glade_xml_get_widget(pPrivate->pGladeXML, "edit_fontbutton");
+  GObject *pEditFontButton = gtk_builder_get_object(pPrivate->pXML, "edit_fontbutton");
 
   gtk_font_button_set_font_name(GTK_FONT_BUTTON(pEditFontButton), 
-				dasher_app_settings_get_string(pPrivate->pAppSettings, APP_SP_EDIT_FONT));
+                                dasher_app_settings_get_string(pPrivate->pAppSettings, APP_SP_EDIT_FONT));
 }
  
 static void dasher_preferences_dialogue_populate_special_fontsize(DasherPreferencesDialogue *pSelf) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
 
   int iValue = dasher_app_settings_get_long(pPrivate->pAppSettings, LP_DASHER_FONTSIZE);
-  gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "fontsizenormal")), iValue == Opts::Normal);
-  gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "fontsizelarge")), iValue == Opts::Big);
-  gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "fontsizevlarge")), iValue == Opts::VBig);
+  gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "fontsizenormal")), iValue == Opts::Normal);
+  gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "fontsizelarge")), iValue == Opts::Big);
+  gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "fontsizevlarge")), iValue == Opts::VBig);
 }
 
 static void dasher_preferences_dialogue_update_special(DasherPreferencesDialogue *pSelf, int iID) {
@@ -749,9 +751,9 @@ extern "C" void OnMousePosStyleChanged(GtkWidget *widget, gpointer user_data) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(g_pPreferencesDialogue); // TODO: Fix NULL
 
   // FIXME - duplicate code from extern "C" void startonmousepos
-  if(GTK_TOGGLE_BUTTON(pPrivate->pMousePosButton)->active) {
+  if((pPrivate->pMousePosButton)->active) {
     int iIndex;
-    iIndex = gtk_combo_box_get_active(GTK_COMBO_BOX(pPrivate->pMousePosStyle));
+    iIndex = gtk_combo_box_get_active(pPrivate->pMousePosStyle);
     
     if(iIndex == 1) {
       dasher_app_settings_set_bool(pPrivate->pAppSettings, BP_MOUSEPOS_MODE, true);
@@ -770,7 +772,7 @@ extern "C" void startonmousepos(GtkWidget *widget, gpointer user_data) {
 
   if(GTK_TOGGLE_BUTTON(widget)->active) {
     int iIndex;
-    iIndex = gtk_combo_box_get_active(GTK_COMBO_BOX(pPrivate->pMousePosStyle));
+    iIndex = gtk_combo_box_get_active(pPrivate->pMousePosStyle);
 
     if(iIndex == 1) {
       dasher_app_settings_set_bool(pPrivate->pAppSettings, BP_MOUSEPOS_MODE, true);
@@ -809,42 +811,42 @@ extern "C" void orientation(GtkRadioButton *widget, gpointer user_data) {
       
       // FIXME - get rid of global variables here.
 
-      gtk_widget_set_sensitive(pPrivate->pLRButton, FALSE);
-      gtk_widget_set_sensitive(pPrivate->pRLButton, FALSE);
-      gtk_widget_set_sensitive(pPrivate->pTBButton, FALSE);
-      gtk_widget_set_sensitive(pPrivate->pBTButton, FALSE);
-
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pLRButton), FALSE);
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pRLButton), FALSE);
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pTBButton), FALSE);
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pBTButton), FALSE);
 
       pPrivate->bIgnoreSignals = true;
       
       switch (dasher_app_settings_get_long(pPrivate->pAppSettings, LP_REAL_ORIENTATION)) {
       case Dasher::Opts::LeftToRight:
-	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pLRButton)) != TRUE)
-	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pLRButton), TRUE);
-	break;
+        if(gtk_toggle_button_get_active(pPrivate->pLRButton) != TRUE)
+           gtk_toggle_button_set_active(pPrivate->pLRButton, TRUE);
+        break;
       case Dasher::Opts::RightToLeft:
-	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pRLButton)) != TRUE)
-	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pRLButton), TRUE);
-	break;
+        if(gtk_toggle_button_get_active(pPrivate->pRLButton) != TRUE)
+           gtk_toggle_button_set_active(pPrivate->pRLButton, TRUE);
+        break;
       case Dasher::Opts::TopToBottom:
-	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton)) != TRUE)
-	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton), TRUE);
-	break;
+        if(gtk_toggle_button_get_active(pPrivate->pTBButton) != TRUE)
+           gtk_toggle_button_set_active(pPrivate->pTBButton, TRUE);
+        break;
       case Dasher::Opts::BottomToTop:
-	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton)) != TRUE)
-	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pPrivate->pTBButton), TRUE);
-	break;
+        if(gtk_toggle_button_get_active(pPrivate->pTBButton) != TRUE)
+           gtk_toggle_button_set_active(pPrivate->pTBButton, TRUE);
+        break;
       }
 
       pPrivate->bIgnoreSignals = false;
     }
     else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(widget)), "radiobutton12")) {
-      gtk_widget_set_sensitive(pPrivate->pLRButton, TRUE);
-      gtk_widget_set_sensitive(pPrivate->pRLButton, TRUE);
-      gtk_widget_set_sensitive(pPrivate->pTBButton, TRUE);
-      gtk_widget_set_sensitive(pPrivate->pBTButton, TRUE);
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pLRButton), TRUE);
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pRLButton), TRUE);
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pTBButton), TRUE);
+      gtk_widget_set_sensitive(GTK_WIDGET(pPrivate->pBTButton), TRUE);
 
-      dasher_app_settings_set_long(pPrivate->pAppSettings, LP_ORIENTATION,  dasher_app_settings_get_long(pPrivate->pAppSettings, LP_REAL_ORIENTATION));
+      dasher_app_settings_set_long(pPrivate->pAppSettings, LP_ORIENTATION,
+          dasher_app_settings_get_long(pPrivate->pAppSettings, LP_REAL_ORIENTATION));
     }
     else if(!strcmp(gtk_widget_get_name(GTK_WIDGET(widget)), "radiobutton2")) {
       dasher_app_settings_set_long(pPrivate->pAppSettings, LP_ORIENTATION, Dasher::Opts::LeftToRight);
@@ -912,7 +914,7 @@ extern "C" void uniform_changed(GtkHScale *hscale) {
 
   if(iValue < 50) {
     iValue = 50;
-    gtk_range_set_value(GTK_RANGE(glade_xml_get_widget(pPrivate->pGladeXML, "uniformhscale")), 5.0);
+    gtk_range_set_value(GTK_RANGE(gtk_builder_get_object(pPrivate->pXML, "uniformhscale")), 5.0);
   }
   
   dasher_app_settings_set_long(pPrivate->pAppSettings, LP_UNIFORM, iValue);
@@ -943,16 +945,16 @@ extern "C" void on_dasher_font_changed(GtkFontButton *pButton, gpointer pUserDat
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(g_pPreferencesDialogue);
 
   dasher_app_settings_set_string(pPrivate->pAppSettings, 
-				 SP_DASHER_FONT, 
-				 gtk_font_button_get_font_name(pButton));
+                                 SP_DASHER_FONT, 
+                                 gtk_font_button_get_font_name(pButton));
 }
 
 extern "C" void on_edit_font_changed(GtkFontButton *pButton, gpointer pUserData) {
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(g_pPreferencesDialogue);
 
   dasher_app_settings_set_string(pPrivate->pAppSettings, 
-				 APP_SP_EDIT_FONT, 
-				 gtk_font_button_get_font_name(pButton));
+                                 APP_SP_EDIT_FONT, 
+                                 gtk_font_button_get_font_name(pButton));
 }
 
 // --- Actions Selection ---
@@ -985,12 +987,12 @@ void dasher_preferences_dialogue_populate_actions(DasherPreferencesDialogue *pSe
 //     dasher_editor_actions_get_next(pPrivate->pEditor, &szName, &iID, &bShow, &bControl, &bAuto),
 
 //     gtk_list_store_set(pPrivate->pListStore, &oIter, 
-// 		       ACTIONS_ID_COLUMN, iID,
-// 		       ACTIONS_NAME_COLUMN, szName,
-// 		       ACTIONS_SHOW_COLUMN, bShow,
-// 		       ACTIONS_CONTROL_COLUMN, bControl,
-// 		       ACTIONS_AUTO_COLUMN, bAuto,
-// 		       -1);
+//                        ACTIONS_ID_COLUMN, iID,
+//                        ACTIONS_NAME_COLUMN, szName,
+//                        ACTIONS_SHOW_COLUMN, bShow,
+//                        ACTIONS_CONTROL_COLUMN, bControl,
+//                        ACTIONS_AUTO_COLUMN, bAuto,
+//                        -1);
 //   }
   
   GtkCellRenderer *pRenderer;
@@ -1005,26 +1007,26 @@ void dasher_preferences_dialogue_populate_actions(DasherPreferencesDialogue *pSe
   pRenderer = gtk_cell_renderer_text_new();
   pColumn = gtk_tree_view_column_new_with_attributes(_("Action"), pRenderer, "text", ACTIONS_NAME_COLUMN, NULL);
   g_object_set(G_OBJECT(pColumn), "expand", true, NULL);
-  gtk_tree_view_append_column(GTK_TREE_VIEW(pPrivate->pActionTreeView), pColumn);
+  gtk_tree_view_append_column(pPrivate->pActionTreeView, pColumn);
 
   pRenderer = gtk_cell_renderer_toggle_new();
   g_signal_connect(pRenderer, "toggled", (GCallback)on_action_toggle, pColumnIndex);
   /* TRANSLATORS: Show a button for the selected action in the Dasher window. */
   pColumn = gtk_tree_view_column_new_with_attributes(_("Show Button"), pRenderer, "active", ACTIONS_SHOW_COLUMN, NULL);
-  gtk_tree_view_append_column(GTK_TREE_VIEW(pPrivate->pActionTreeView), pColumn);
+  gtk_tree_view_append_column(pPrivate->pActionTreeView, pColumn);
 
   pRenderer = gtk_cell_renderer_toggle_new();
   g_signal_connect(pRenderer, "toggled", (GCallback)on_action_toggle, pColumnIndex + 1);
   pColumn = gtk_tree_view_column_new_with_attributes(_("Control Mode"), pRenderer, "active", ACTIONS_CONTROL_COLUMN, NULL);
-  gtk_tree_view_append_column(GTK_TREE_VIEW(pPrivate->pActionTreeView), pColumn);
+  gtk_tree_view_append_column(pPrivate->pActionTreeView, pColumn);
 
   pRenderer = gtk_cell_renderer_toggle_new();
   g_signal_connect(pRenderer, "toggled", (GCallback)on_action_toggle, pColumnIndex + 2);
   /* TRANSLATORS: Automatically perform the selected action when Dasher is stopped. */
   pColumn = gtk_tree_view_column_new_with_attributes(_("Auto On Stop"), pRenderer, "active", ACTIONS_AUTO_COLUMN, NULL);
-  gtk_tree_view_append_column(GTK_TREE_VIEW(pPrivate->pActionTreeView), pColumn);
+  gtk_tree_view_append_column(pPrivate->pActionTreeView, pColumn);
 
-  gtk_tree_view_set_model(GTK_TREE_VIEW(pPrivate->pActionTreeView), GTK_TREE_MODEL(pPrivate->pListStore));
+  gtk_tree_view_set_model(pPrivate->pActionTreeView, GTK_TREE_MODEL(pPrivate->pListStore));
 #endif
 }
 
@@ -1063,11 +1065,11 @@ extern "C" void set_dasher_fontsize(GtkWidget *pWidget, gboolean pUserData) {
 
   int iValue = dasher_app_settings_get_long(pPrivate->pAppSettings, LP_DASHER_FONTSIZE);
 
-  if((iValue != Opts::Normal) && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "fontsizenormal"))))
+  if((iValue != Opts::Normal) && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "fontsizenormal"))))
     dasher_app_settings_set_long(pPrivate->pAppSettings, LP_DASHER_FONTSIZE, Opts::Normal);
-  else if((iValue != Opts::Big) && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "fontsizelarge"))))
+  else if((iValue != Opts::Big) && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "fontsizelarge"))))
     dasher_app_settings_set_long(pPrivate->pAppSettings, LP_DASHER_FONTSIZE, Opts::Big);
-  else if((iValue != Opts::VBig) && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(glade_xml_get_widget(pPrivate->pGladeXML, "fontsizevlarge"))))
+  else if((iValue != Opts::VBig) && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(gtk_builder_get_object(pPrivate->pXML, "fontsizevlarge"))))
     dasher_app_settings_set_long(pPrivate->pAppSettings, LP_DASHER_FONTSIZE, Opts::VBig);
 }
 
@@ -1081,7 +1083,7 @@ extern "C" gboolean preferences_hide(GtkWidget *widget, gpointer user_data) {
   //  DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(pSelf);
   DasherPreferencesDialoguePrivate *pPrivate = DASHER_PREFERENCES_DIALOGUE_PRIVATE(g_pPreferencesDialogue); // TODO: Fix NULL
 
-  gtk_widget_hide(pPrivate->pPreferencesWindow);
+  gtk_widget_hide(GTK_WIDGET(pPrivate->pPreferencesWindow));
   return TRUE;
 }
 
diff --git a/Src/Gtk2/Preferences.h b/Src/Gtk2/Preferences.h
index 13410e4..c552f04 100644
--- a/Src/Gtk2/Preferences.h
+++ b/Src/Gtk2/Preferences.h
@@ -1,10 +1,6 @@
 #ifndef __dasher_preferences_dialogue_h__
 #define __dasher_preferences_dialogue_h__
 
-//#include <gdk/gdk.h>
-#include <glade/glade.h>
-//#include <glib.h>
-//#include <glib-object.h>
 #include <gtk/gtk.h>
 
 #include "DasherAppSettings.h"
@@ -31,7 +27,7 @@ struct _DasherPreferencesDialogueClass {
   GObjectClass parent_class;
 };
 
-DasherPreferencesDialogue *dasher_preferences_dialogue_new(GladeXML *pGladeWidgets, DasherEditor *pEditor, DasherAppSettings *pAppSettings, GtkWindow *pMainWindow);
+DasherPreferencesDialogue *dasher_preferences_dialogue_new(GtkBuilder *, DasherEditor *, DasherAppSettings *, GtkWindow *);
 GType dasher_preferences_dialogue_get_type();
 void dasher_preferences_dialogue_show(DasherPreferencesDialogue *pSelf, gint iPage);
 void dasher_preferences_dialogue_handle_parameter_change(DasherPreferencesDialogue *pSelf, int iParameter);
diff --git a/Src/Gtk2/dasher_editor.cpp b/Src/Gtk2/dasher_editor.cpp
index d9d55f2..2b250f3 100644
--- a/Src/Gtk2/dasher_editor.cpp
+++ b/Src/Gtk2/dasher_editor.cpp
@@ -82,7 +82,7 @@ struct _DasherEditorPrivate {
   gboolean bFileModified; // TODO: Make this work properly, export to main for quit etc
 };
 
-#define DASHER_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), TYPE_DASHER_EDITOR, DasherEditorPrivate))
+#define DASHER_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), DASHER_TYPE_EDITOR, DasherEditorPrivate))
 
 /* Signals */
 enum {
@@ -107,7 +107,7 @@ static void
 dasher_editor_class_init(DasherEditorClass *pClass) {
   g_type_class_add_private(pClass, sizeof(DasherEditorPrivate));
 
-  GObjectClass *pObjectClass = (GObjectClass *) pClass;
+  GObjectClass *pObjectClass = G_OBJECT_CLASS(pClass);
   pObjectClass->finalize = dasher_editor_finalize;
 
   /* Setup signals */
@@ -202,9 +202,9 @@ dasher_editor_finalize(GObject *pObject) {
 }
 
 void
-dasher_editor_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GladeXML *pGladeXML, const gchar *szFullPath) {
+dasher_editor_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GtkBuilder *pXML, const gchar *szFullPath) {
   if(DASHER_EDITOR_GET_CLASS(pSelf)->initialise)
-    DASHER_EDITOR_GET_CLASS(pSelf)->initialise(pSelf, pAppSettings, pDasherMain, pGladeXML, szFullPath);
+    DASHER_EDITOR_GET_CLASS(pSelf)->initialise(pSelf, pAppSettings, pDasherMain, pXML, szFullPath);
 }
 
 void 
diff --git a/Src/Gtk2/dasher_editor.h b/Src/Gtk2/dasher_editor.h
index fb6845e..a86eefa 100644
--- a/Src/Gtk2/dasher_editor.h
+++ b/Src/Gtk2/dasher_editor.h
@@ -1,7 +1,6 @@
 #ifndef __dasher_editor_h__
 #define __dasher_editor_h__
 
-#include <glade/glade.h>
 #include <glib.h>
 #include <glib-object.h>
 #include <gtk/gtk.h>
@@ -15,12 +14,12 @@ typedef struct _DasherMain DasherMain;
 struct _DasherMain;
 
 G_BEGIN_DECLS
-#define TYPE_DASHER_EDITOR            (dasher_editor_get_type())
-#define DASHER_EDITOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_DASHER_EDITOR, DasherEditor ))
-#define DASHER_EDITOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DASHER_EDITOR, DasherEditorClass ))
-#define IS_DASHER_EDITOR(obj)	      (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_DASHER_EDITOR))
-#define IS_DASHER_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DASHER_EDITOR))
-#define DASHER_EDITOR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DASHER_EDITOR, DasherEditorClass))
+#define DASHER_TYPE_EDITOR            (dasher_editor_get_type())
+#define DASHER_EDITOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), DASHER_TYPE_EDITOR, DasherEditor ))
+#define DASHER_EDITOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), DASHER_TYPE_EDITOR, DasherEditorClass ))
+#define DASHER_IS_EDITOR(obj)	      (G_TYPE_CHECK_INSTANCE_TYPE((obj), DASHER_TYPE_EDITOR))
+#define DASHER_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DASHER_TYPE_EDITOR))
+#define DASHER_EDITOR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), DASHER_TYPE_EDITOR, DasherEditorClass))
 
 typedef struct _DasherEditor DasherEditor;
 typedef struct _DasherEditorClass DasherEditorClass;
@@ -33,7 +32,7 @@ struct _DasherEditorClass {
   GtkVBoxClass parent_class;
 
   /* VTable */
-  void (*initialise)(DasherEditor *, DasherAppSettings *, DasherMain *, GladeXML *, const gchar *);
+  void (*initialise)(DasherEditor *, DasherAppSettings *, DasherMain *, GtkBuilder *, const gchar *);
   gboolean (*command)(DasherEditor *, const gchar *);
   void (*action_button)(DasherEditor *, DasherAction *);
   void (*actions_start)(DasherEditor *);
@@ -68,11 +67,12 @@ struct _DasherEditorClass {
 GType dasher_editor_get_type();
 
 /* Functions for initialisation and takedown */
-void dasher_editor_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, 
-			      DasherMain *pDasherMain, GladeXML *pGladeXML, 
-			      const gchar *szFullPath);
+void dasher_editor_initialise(DasherEditor *pSelf,
+                              DasherAppSettings *pAppSettings, 
+                              DasherMain *pDasherMain, GtkBuilder *pXML, 
+                              const gchar *szFullPath);
 
-/* Abstract commadn handler */
+/* Abstract command handler */
 gboolean dasher_editor_command(DasherEditor *pSelf, const gchar *szCommand);
 
 /* Action related methods */
@@ -113,4 +113,3 @@ const gchar *dasher_editor_get_filename(DasherEditor *pSelf);
 G_END_DECLS
 
 #endif
-
diff --git a/Src/Gtk2/dasher_editor_external.cpp b/Src/Gtk2/dasher_editor_external.cpp
index 639f9be..26857b8 100644
--- a/Src/Gtk2/dasher_editor_external.cpp
+++ b/Src/Gtk2/dasher_editor_external.cpp
@@ -23,7 +23,7 @@ struct _DasherEditorExternalPrivate {
 
 static DasherEditorExternal *g_pEditor;
 
-G_DEFINE_TYPE(DasherEditorExternal, dasher_editor_external, TYPE_DASHER_EDITOR);
+G_DEFINE_TYPE(DasherEditorExternal, dasher_editor_external, DASHER_TYPE_EDITOR);
 
 
 static void dasher_editor_external_finalize(GObject *pObject);
@@ -32,7 +32,7 @@ static void dasher_editor_external_finalize(GObject *pObject);
 
 static gboolean dasher_editor_external_command(DasherEditor *pSelf, const gchar *szCommand);
 static void dasher_editor_external_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, 
-					      DasherMain *pDasherMain, GladeXML *pGladeXML, 
+					      DasherMain *pDasherMain, GtkBuilder *pXML, 
 					      const gchar *szFullPath);
 static void dasher_editor_external_convert(DasherEditor *pSelf);
 static void dasher_editor_external_protect(DasherEditor *pSelf);
@@ -110,7 +110,7 @@ dasher_editor_external_new() {
 }
 
 static void
-dasher_editor_external_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GladeXML *pGladeXML, const gchar *szFullPath) {
+dasher_editor_external_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GtkBuilder *pXML, const gchar *szFullPath) {
 
   DasherEditorExternalPrivate *pPrivate = DASHER_EDITOR_EXTERNAL_GET_PRIVATE(pSelf);
 
diff --git a/Src/Gtk2/dasher_editor_internal.cpp b/Src/Gtk2/dasher_editor_internal.cpp
index 36a6694..3d576ac 100644
--- a/Src/Gtk2/dasher_editor_internal.cpp
+++ b/Src/Gtk2/dasher_editor_internal.cpp
@@ -96,7 +96,7 @@ struct _DasherEditorInternalPrivate {
   gboolean bFileModified; // TODO: Make this work properly, export to main for quit etc
 };
 
-#define DASHER_EDITOR_INTERNAL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), TYPE_DASHER_EDITOR_INTERNAL, DasherEditorInternalPrivate))
+#define DASHER_EDITOR_INTERNAL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), DASHER_TYPE_EDITOR_INTERNAL, DasherEditorInternalPrivate))
 
 /* Signals */
 enum {
@@ -110,7 +110,7 @@ enum {
 
 static DasherEditorInternal *g_pEditor;
 
-G_DEFINE_TYPE(DasherEditorInternal, dasher_editor_internal, TYPE_DASHER_EDITOR);
+G_DEFINE_TYPE(DasherEditorInternal, dasher_editor_internal, DASHER_TYPE_EDITOR);
 
 static void dasher_editor_internal_finalize(GObject *pObject);
 
@@ -118,7 +118,7 @@ static void dasher_editor_internal_finalize(GObject *pObject);
 static void dasher_editor_internal_handle_font(DasherEditor *pSelf, const gchar *szFont);
 
 gboolean dasher_editor_internal_command(DasherEditor *pSelf, const gchar *szCommand);
-void dasher_editor_internal_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GladeXML *pGladeXML, const gchar *szFullPath);
+void dasher_editor_internal_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GtkBuilder *pXML, const gchar *szFullPath);
 
 /* Private methods */
 static void dasher_editor_internal_select_all(DasherEditor *pSelf);
@@ -170,7 +170,7 @@ void dasher_editor_internal_handle_stop(DasherEditor *pSelf);
 void dasher_editor_internal_handle_start(DasherEditor *pSelf);
 void dasher_editor_internal_handle_control(DasherEditor *pSelf, int iNodeID);
 
-/* Action related methods - TODO: a lot of this should be moved to dasher_main (eg action on stop etc) - that way we get a better level of abstraction, and can incorporate commands from otehr modules too. Actions should only be externally visible as a list of string commands*/
+/* Action related methods - TODO: a lot of this should be moved to dasher_main (eg action on stop etc) - that way we get a better level of abstraction, and can incorporate commands from other modules too. Actions should only be externally visible as a list of string commands*/
 void dasher_editor_internal_action_button(DasherEditor *pSelf, DasherAction *pAction);
 void dasher_editor_internal_actions_start(DasherEditor *pSelf);
 bool dasher_editor_internal_actions_more(DasherEditor *pSelf);
@@ -217,7 +217,6 @@ dasher_editor_internal_class_init(DasherEditorInternalClass *pClass) {
   pObjectClass->finalize = dasher_editor_internal_finalize;
 
   DasherEditorClass *pParentClass = (DasherEditorClass *)pClass;
-
   pParentClass->initialise = dasher_editor_internal_initialise;
   pParentClass->command = dasher_editor_internal_command;
   pParentClass->output = dasher_editor_internal_output;
@@ -243,9 +242,13 @@ dasher_editor_internal_class_init(DasherEditorInternalClass *pClass) {
 }
 
 static void 
-dasher_editor_internal_init(DasherEditorInternal *pDasherControl) {
-  DasherEditorInternalPrivate *pPrivate = DASHER_EDITOR_INTERNAL_GET_PRIVATE(pDasherControl);
+dasher_editor_internal_init(DasherEditorInternal *pSelf) {
+  DasherEditorInternalPrivate *pPrivate =
+                                   DASHER_EDITOR_INTERNAL_GET_PRIVATE(pSelf);
 
+  pPrivate->pTextView = GTK_TEXT_VIEW(gtk_text_view_new());
+    gtk_text_view_set_wrap_mode(pPrivate->pTextView, GTK_WRAP_WORD);
+  pPrivate->pBuffer = gtk_text_view_get_buffer(pPrivate->pTextView);
   pPrivate->pBufferSet = NULL;
   pPrivate->pExternalBuffer = NULL;
   pPrivate->szFilename = NULL;
@@ -254,7 +257,28 @@ dasher_editor_internal_init(DasherEditorInternal *pDasherControl) {
   pPrivate->pActionRing = NULL;
   pPrivate->iNextActionID = 0;
   //  pPrivate->pGameModeHelper = NULL;
+  GtkTextIter oStartIter;
+  gtk_text_buffer_get_start_iter(pPrivate->pBuffer, &oStartIter);
+  pPrivate->pNewMark =
+       gtk_text_buffer_create_mark(pPrivate->pBuffer, NULL, &oStartIter, TRUE);
   pPrivate->bFileModified = FALSE;
+
+  GtkWidget *pScrolledWindow = gtk_scrolled_window_new(NULL, NULL);
+
+  gtk_container_add(GTK_CONTAINER(pScrolledWindow),
+                    GTK_WIDGET(pPrivate->pTextView));
+
+  gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pScrolledWindow),
+                                 GTK_POLICY_AUTOMATIC,
+                                 GTK_POLICY_AUTOMATIC);
+
+  gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(pScrolledWindow),
+                                      GTK_SHADOW_IN);
+
+  gtk_box_pack_start(GTK_BOX(&(pSelf->parent.box)),
+                     pScrolledWindow, true, true, 0);
+
+  gtk_widget_show_all(GTK_WIDGET(&(pSelf->parent.box)));
 }
 
 static void 
@@ -282,46 +306,15 @@ dasher_editor_internal_finalize(GObject *pObject) {
 }
 
 /* Public methods */
-DasherEditorInternal *
-dasher_editor_internal_new() {
-  DasherEditorInternal *pDasherEditor;
-  pDasherEditor = (DasherEditorInternal *)(g_object_new(dasher_editor_internal_get_type(), NULL));
-
-  g_pEditor = pDasherEditor;
-
-  DasherEditorInternalPrivate *pPrivate = DASHER_EDITOR_INTERNAL_GET_PRIVATE(pDasherEditor);
-  
-  GtkWidget *pScrolledWindow = gtk_scrolled_window_new(NULL, NULL);
-
-  GtkWidget *pTextView = gtk_text_view_new();
-  gtk_widget_grab_focus(pTextView);
-  
-
-  pPrivate->pTextView = GTK_TEXT_VIEW(pTextView);
-
-  gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(pTextView),
-			      GTK_WRAP_WORD);
-
-  gtk_container_add(GTK_CONTAINER(pScrolledWindow), pTextView);
-
-  gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pScrolledWindow),
-				 GTK_POLICY_AUTOMATIC,
-				 GTK_POLICY_AUTOMATIC);
-
-  gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(pScrolledWindow),
-				      GTK_SHADOW_IN);
-
-  gtk_box_pack_start(GTK_BOX(&(pDasherEditor->parent.box)), pScrolledWindow, true, true, 0);
-  
-  
-  gtk_widget_show_all(GTK_WIDGET(&(pDasherEditor->parent.box)));
-
-  return pDasherEditor;
+DasherEditorInternal*
+dasher_editor_internal_new(void)
+{
+  return
+    DASHER_EDITOR_INTERNAL(g_object_new(DASHER_TYPE_EDITOR_INTERNAL, NULL));
 }
 
 void
-dasher_editor_internal_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GladeXML *pGladeXML, const gchar *szFullPath) {
-
+dasher_editor_internal_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GtkBuilder *pXML, const gchar *szFullPath) {
   DasherEditorInternalPrivate *pPrivate = DASHER_EDITOR_INTERNAL_GET_PRIVATE(pSelf);
 
   pPrivate->pAppSettings = pAppSettings;
@@ -331,14 +324,8 @@ dasher_editor_internal_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSe
 				     dasher_app_settings_get_string(pPrivate->pAppSettings, 
 								    APP_SP_EDIT_FONT));
   
-  GtkVBox *pActionPane = GTK_VBOX(glade_xml_get_widget(pGladeXML, "vbox39"));
-  pPrivate->pBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pPrivate->pTextView));
+  GtkVBox *pActionPane = GTK_VBOX(gtk_builder_get_object(pXML, "vbox39"));
 
-  gtk_widget_show_all(GTK_WIDGET(pPrivate->pTextView));
-
-  GtkTextIter oStartIter;
-  gtk_text_buffer_get_start_iter(pPrivate->pBuffer, &oStartIter);
-  pPrivate->pNewMark = gtk_text_buffer_create_mark(pPrivate->pBuffer, NULL, &oStartIter, TRUE);
 
   pPrivate->pActionPane = pActionPane;
 
@@ -355,7 +342,7 @@ dasher_editor_internal_initialise(DasherEditor *pSelf, DasherAppSettings *pAppSe
     dasher_editor_internal_clear(pSelf, false);
   }
   
-//  pPrivate->pGameModeHelper = GAME_MODE_HELPER(game_mode_helper_new(pGladeXML, (void*)pSelf));
+//  pPrivate->pGameModeHelper = GAME_MODE_HELPER(game_mode_helper_new(pXML, (void*)pSelf));
 }
 
 static void 
@@ -401,7 +388,6 @@ dasher_editor_internal_clipboard(DasherEditor *pSelf, clipboard_action act) {
 void dasher_editor_internal_cleartext(DasherEditorInternal *pSelf)
 {
   dasher_editor_internal_clear((DasherEditor *)pSelf, true);
-
 }
 
 void 
@@ -885,53 +871,53 @@ gboolean
 dasher_editor_internal_command(DasherEditor *pSelf, const gchar *szCommand) {
   DasherEditorInternalPrivate *pPrivate = DASHER_EDITOR_INTERNAL_GET_PRIVATE(pSelf);
 
-  if(!strcmp(szCommand, "new")) { //select_new_file
+  if(!strcmp(szCommand, "action_new")) { //select_new_file
     dasher_editor_internal_command_new(pSelf);
     return TRUE;
   }
   
-  if(!strcmp(szCommand, "open")) { //select open file
+  if(!strcmp(szCommand, "action_open")) { //select open file
     dasher_editor_internal_command_open(pSelf);
     return TRUE;
   }
   
-  if(!strcmp(szCommand, "save")) { //save_file
+  if(!strcmp(szCommand, "action_save")) { //save_file
     dasher_editor_internal_command_save(pSelf, FALSE, FALSE);
     return TRUE;
   }
 
-  if(!strcmp(szCommand, "saveas")) { // select_save_file_as
+  if(!strcmp(szCommand, "action_saveas")) { // select_save_file_as
     dasher_editor_internal_command_save(pSelf, TRUE, FALSE);
     return TRUE;
   }
 
-  if(!strcmp(szCommand, "append")) { // select_append_file
+  if(!strcmp(szCommand, "action_append")) { // select_append_file
     dasher_editor_internal_command_save(pSelf, TRUE, TRUE);
     return TRUE;
   }
 
-  if(!strcmp(szCommand, "cut")) { // clipboard_cut
+  if(!strcmp(szCommand, "action_cut")) { // clipboard_cut
     dasher_editor_internal_clipboard(pSelf, CLIPBOARD_CUT);
     return TRUE;
   }
 
-  if(!strcmp(szCommand, "copy")) { // clipboard_copy
+  if(!strcmp(szCommand, "action_copy")) { // clipboard_copy
     dasher_editor_internal_clipboard(pSelf, CLIPBOARD_COPY);
     return TRUE;
   }
 
-  if(!strcmp(szCommand, "copyall")) { // clipboard_copyall 
+  if(!strcmp(szCommand, "action_copyall")) { // clipboard_copyall 
     dasher_editor_internal_clipboard(pSelf, CLIPBOARD_COPYALL);
     return TRUE;
   }
 
-  if(!strcmp(szCommand, "paste")) { // clipboard_paste
+  if(!strcmp(szCommand, "action_paste")) { // clipboard_paste
     dasher_editor_internal_clipboard(pSelf, CLIPBOARD_PASTE);
     return TRUE;
   }
  
   // TODO: This isn't actually accessible from anywhere
-  if(!strcmp(szCommand, "selectall")) { // clipboard_paste
+  if(!strcmp(szCommand, "action_selectall")) { // clipboard_paste
     dasher_editor_internal_clipboard(pSelf, CLIPBOARD_SELECTALL);
     return TRUE;
   }
@@ -1659,7 +1645,6 @@ dasher_editor_internal_new_buffer(DasherEditor *pSelf, const gchar *szFilename)
 static void
 dasher_editor_internal_handle_parameter_change(DasherEditor *pSelf, gint iParameter) {
   DasherEditorInternalPrivate *pPrivate = DASHER_EDITOR_INTERNAL_GET_PRIVATE(pSelf);
-
   switch(iParameter) {
   case APP_SP_EDIT_FONT:
     dasher_editor_internal_handle_font(pSelf,
diff --git a/Src/Gtk2/dasher_editor_internal.h b/Src/Gtk2/dasher_editor_internal.h
index 9a44437..4e610c6 100644
--- a/Src/Gtk2/dasher_editor_internal.h
+++ b/Src/Gtk2/dasher_editor_internal.h
@@ -1,7 +1,6 @@
 #ifndef __dasher_editor_internal_h__
 #define __dasher_editor_internal_h__
 
-#include <glade/glade.h>
 #include <glib.h>
 #include <glib-object.h>
 #include <gtk/gtk.h>
@@ -25,12 +24,12 @@ typedef enum {
 } clipboard_action;
 
 G_BEGIN_DECLS
-#define TYPE_DASHER_EDITOR_INTERNAL            (dasher_editor_internal_get_type())
-#define DASHER_EDITOR_INTERNAL(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_DASHER_EDITOR_INTERNAL, DasherEditorInternal ))
-#define DASHER_EDITOR_INTERNAL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DASHER_EDITOR_INTERNAL, DasherEditorInternalClass ))
-#define IS_DASHER_EDITOR_INTERNAL(obj)	      (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_DASHER_EDITOR_INTERNAL))
-#define IS_DASHER_EDITOR_INTERNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DASHER_EDITOR_INTERNAL))
-#define DASHER_EDITOR_INTERNAL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DASHER_EDITOR_INTERNAL, DasherEditorInternalClass))
+#define DASHER_TYPE_EDITOR_INTERNAL            (dasher_editor_internal_get_type())
+#define DASHER_EDITOR_INTERNAL(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), DASHER_TYPE_EDITOR_INTERNAL, DasherEditorInternal ))
+#define DASHER_EDITOR_INTERNAL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), DASHER_TYPE_EDITOR_INTERNAL, DasherEditorInternalClass ))
+#define DASHER_IS_EDITOR_INTERNAL(obj)	      (G_TYPE_CHECK_INSTANCE_TYPE((obj), DASHER_TYPE_EDITOR_INTERNAL))
+#define DASHER_IS_EDITOR_INTERNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DASHER_TYPE_EDITOR_INTERNAL))
+#define DASHER_EDITOR_INTERNAL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), DASHER_TYPE_EDITOR_INTERNAL, DasherEditorInternalClass))
 
 typedef struct _DasherEditorInternal DasherEditorInternal;
 typedef struct _DasherEditorInternalClass DasherEditorInternalClass;
@@ -48,7 +47,7 @@ struct _DasherEditorInternalClass {
 };
 
 DasherEditorInternal *dasher_editor_internal_new();
-void dasher_editor_internal_initialise(DasherEditorInternal *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GladeXML *pGladeXML, const gchar *szFullPath);
+void dasher_editor_internal_initialise(DasherEditorInternal *pSelf, DasherAppSettings *pAppSettings, DasherMain *pDasherMain, GtkBuilder *pXML, const gchar *szFullPath);
 
 void dasher_editor_internal_cleartext(DasherEditorInternal *pSelf);
 GType dasher_editor_internal_get_type();
@@ -95,4 +94,3 @@ GType dasher_editor_internal_get_type();
 G_END_DECLS
 
 #endif
-
diff --git a/Src/Gtk2/dasher_lock_dialogue.cpp b/Src/Gtk2/dasher_lock_dialogue.cpp
index a7ff61a..ae49619 100644
--- a/Src/Gtk2/dasher_lock_dialogue.cpp
+++ b/Src/Gtk2/dasher_lock_dialogue.cpp
@@ -13,28 +13,24 @@
 
 // TODO: Make this a real class
 
-GtkWidget *m_pLockWindow;
-GtkWidget *m_pLockProgress;
-GtkWidget *m_pLockMessage;
+GtkWindow *m_pLockWindow;
+GtkProgressBar *m_pLockProgress;
+GtkLabel *m_pLockMessage;
 
-void dasher_lock_dialogue_new(GladeXML *pGladeXML, GtkWindow *pMainWindow) {
+void dasher_lock_dialogue_new(GtkBuilder *pXML, GtkWindow *pMainWindow) {
 #ifndef WITH_MAEMO
-  m_pLockWindow = glade_xml_get_widget(pGladeXML, "lock_window");
-  m_pLockProgress = glade_xml_get_widget(pGladeXML, "lock_progress");
-  m_pLockMessage = glade_xml_get_widget(pGladeXML, "lock_message");
+  m_pLockWindow = GTK_WINDOW(gtk_builder_get_object(pXML, "lock_window"));
+  m_pLockProgress = GTK_PROGRESS_BAR(gtk_builder_get_object(pXML, "lock_progress"));
+  m_pLockMessage = GTK_LABEL(gtk_builder_get_object(pXML, "lock_message"));
 
-  gtk_widget_hide(m_pLockWindow);
+  gtk_widget_hide(GTK_WIDGET(m_pLockWindow));
   
-  dasher_lock_dialogue_set_transient(pMainWindow);
+  gtk_window_set_transient_for(m_pLockWindow, pMainWindow);
 #else
   m_pLockWindow = 0;
 #endif
 }
 
-void dasher_lock_dialogue_set_transient(GtkWindow *pMainWindow) {
-  gtk_window_set_transient_for(GTK_WINDOW(m_pLockWindow), pMainWindow);
-}
-
 extern "C" void on_lock_info(GtkDasherControl *pDasherControl, gpointer pLockInfo, gpointer pUserData) {
   // TODO: signals are connected after the Dasher control is created,
   // which is too late to receive notification about intial training
@@ -43,13 +39,13 @@ extern "C" void on_lock_info(GtkDasherControl *pDasherControl, gpointer pLockInf
   DasherLockInfo *pInfo = (DasherLockInfo *)pLockInfo;
 
 #ifndef WITH_MAEMO
-  gtk_label_set_text(GTK_LABEL(m_pLockMessage), pInfo->szMessage);
-  gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(m_pLockProgress), pInfo->iPercent / 100.0);
+  gtk_label_set_text(m_pLockMessage, pInfo->szMessage);
+  gtk_progress_bar_set_fraction(m_pLockProgress, pInfo->iPercent / 100.0);
 
   if(pInfo->bLock)
-    gtk_widget_show(m_pLockWindow);
+    gtk_widget_show(GTK_WIDGET(m_pLockWindow));
   else
-    gtk_widget_hide(m_pLockWindow);
+    gtk_widget_hide(GTK_WIDGET(m_pLockWindow));
 #else
   if(pInfo->bLock) {
     if(!m_pLockWindow)
@@ -59,7 +55,7 @@ extern "C" void on_lock_info(GtkDasherControl *pDasherControl, gpointer pLockInf
   }
   else {
     if(m_pLockWindow)
-      gtk_widget_destroy(m_pLockWindow);
+      gtk_widget_destroy(GTK_WIDGET(m_pLockWindow));
     m_pLockWindow = 0;
   }
 #endif
diff --git a/Src/Gtk2/dasher_lock_dialogue.h b/Src/Gtk2/dasher_lock_dialogue.h
index a1b79de..d28ca0a 100644
--- a/Src/Gtk2/dasher_lock_dialogue.h
+++ b/Src/Gtk2/dasher_lock_dialogue.h
@@ -1,4 +1 @@
-#include <glade/glade.h>
-
-void dasher_lock_dialogue_new(GladeXML *pGladeXML, GtkWindow *pMainWindow);
-void dasher_lock_dialogue_set_transient(GtkWindow *pMainWindow);
+void dasher_lock_dialogue_new(GtkBuilder *pXML, GtkWindow *pMainWindow);
diff --git a/Src/Gtk2/dasher_main.cpp b/Src/Gtk2/dasher_main.cpp
index 9a86270..1e8f53e 100644
--- a/Src/Gtk2/dasher_main.cpp
+++ b/Src/Gtk2/dasher_main.cpp
@@ -6,7 +6,6 @@
 
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h>
-#include <glade/glade.h>
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #ifdef WITH_MAEMOFULLSCREEN
@@ -35,8 +34,8 @@ static DasherMain *g_pDasherMain = NULL;
 static gboolean g_bSend = true;
 
 struct _DasherMainPrivate {
-  GladeXML *pGladeXML;
-  GladeXML *pPrefXML;
+  GtkBuilder *pXML;
+  GtkBuilder *pPrefXML;
 
   // Child objects owned here
   DasherAppSettings *pAppSettings;
@@ -46,11 +45,11 @@ struct _DasherMainPrivate {
   CKeyboardHelper *pKeyboardHelper;
 
   // Various widgets which need to be cached:
-  GtkWidget *pBufferView;
-  GtkWidget *pDivider;
-  GtkWidget *pMainWindow;
+  // GtkWidget *pBufferView;
+  GtkPaned  *pDivider;
+  GtkWindow *pMainWindow;
   GtkWidget *pToolbar;
-  GtkWidget *pSpeedBox;
+  GtkSpinButton *pSpeedBox;
   GtkWidget *pAlphabetCombo;
   GtkWidget *pStatusControl;
   GtkWidget *pDasherWidget;
@@ -77,7 +76,7 @@ struct _DasherMainPrivate {
 typedef struct _DasherMainPrivate DasherMainPrivate;
 
 // TODO: Make sure this is actually used
-#define DASHER_MAIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), TYPE_DASHER_MAIN, DasherMainPrivate))
+#define DASHER_MAIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), DASHER_TYPE_MAIN, DasherMainPrivate))
 
 enum {
   REALIZED,
@@ -86,47 +85,6 @@ enum {
 
 static guint dasher_main_signals[SIGNAL_NUM] = { 0 };
 
-/* Automatic command hookups */
-
-typedef struct _DasherMenuCommand DasherMenuCommand;
-
-struct _DasherMenuCommand {
-  GtkWidget *pWidget;
-  const gchar *szWidgetName;
-  const gchar *szCommand;
-};
-
-static DasherMenuCommand MenuCommands[] = {
-  /* Menus */
-  {NULL, "menu_command_new", "new"}, 
-  {NULL, "menu_command_open", "open"},
-  {NULL, "menu_command_save", "save"},
-  {NULL, "menu_command_saveas", "saveas"},
-  {NULL, "menu_command_append", "append"},
-  {NULL, "menu_command_import", "import"},
-  {NULL, "menu_command_quit", "quit"},
-  {NULL, "menu_command_cut", "cut"},
-  {NULL, "menu_command_copy", "copy"},
-  {NULL, "menu_command_copyall", "copyall"},
-  {NULL, "menu_command_paste", "paste"},
-  {NULL, "menu_command_preferences", "preferences"},
-  {NULL, "menu_command_tutorial", "tutorial"},
-  {NULL, "menu_command_help", "help"},
-  {NULL, "menu_command_about", "about"},
-
-  /* Toolbar */
-  {NULL, "tb_command_new", "new"},
-  {NULL, "tb_command_open", "open"},
-  {NULL, "tb_command_save", "save"},
-  {NULL, "tb_command_saveas", "saveas"},
-  {NULL, "tb_command_cut", "cut"},
-  {NULL, "tb_command_copy", "copy"},
-  {NULL, "tb_command_paste", "paste"},
-  {NULL, "tb_command_preferences", "preferences"},
-  {NULL, "tb_command_help", "help"},
-  {NULL, "tb_command_quit", "quit"}
-};
-
 G_DEFINE_TYPE(DasherMain, dasher_main, G_TYPE_OBJECT);
 
 static void dasher_main_finalize(GObject *pObject);
@@ -135,20 +93,24 @@ static void dasher_main_finalize(GObject *pObject);
 static void dasher_main_setup_window_state(DasherMain *pSelf);
 static void dasher_main_setup_window_style(DasherMain *pSelf);
 static void dasher_main_setup_internal_layout(DasherMain *pSelf);
-//static void dasher_main_refresh_font(DasherMain *pSelf);
 static void dasher_main_set_window_title(DasherMain *pSelf);
 
 /* ... Table based menu/toolbar commands */
-static void dasher_main_connect_menus(DasherMain *pSelf);
-static void dasher_main_menu_command(DasherMain *pSelf, GtkWidget *pWidget);
-
 static void dasher_main_command_import(DasherMain *pSelf);
 static void dasher_main_command_quit(DasherMain *pSelf);
 static void dasher_main_command_preferences(DasherMain *pSelf);
 static void dasher_main_command_preferences_alphabet(DasherMain *pSelf);
 static void dasher_main_command_tutorial(DasherMain *pSelf);
 static void dasher_main_command_help(DasherMain *pSelf);
-static void dasher_main_command_about(DasherMain *pself);
+static void dasher_main_command_about(DasherMain *pSelf);
+
+/* c.f. WRAP_CPP_CB below */
+extern "C" void dasher_main_cb_import(GtkAction*, DasherMain*);
+extern "C" void dasher_main_cb_quit(GtkAction*, DasherMain*);
+extern "C" void dasher_main_cb_preferences(GtkAction*, DasherMain*);
+extern "C" void dasher_main_cb_help(GtkAction*, DasherMain*);
+extern "C" void dasher_main_cb_about(GtkAction*, DasherMain*);
+extern "C" void dasher_main_cb_editor(GtkAction*, DasherMain*);
 
 static gboolean dasher_main_speed_changed(DasherMain *pSelf);
 static void dasher_main_alphabet_combo_changed(DasherMain *pSelf);
@@ -156,7 +118,7 @@ static void dasher_main_alphabet_combo_changed(DasherMain *pSelf);
 static void dasher_main_populate_alphabet_combo(DasherMain *pSelf);
 
 /* TODO: order these in file */
-static GladeXML *dasher_main_open_glade_xml(const char *szGladeFilename);
+static GtkBuilder *dasher_main_open_gui_xml(DasherMain *, const char *);
 static void dasher_main_load_interface(DasherMain *pSelf);
 static void dasher_main_create_preferences(DasherMain *pSelf);
 static void dasher_main_handle_parameter_change(DasherMain *pSelf, int iParameter);
@@ -171,14 +133,7 @@ static gint dasher_main_lookup_key(DasherMain *pSelf, guint iKeyVal);
 /* TODO: Various functions which haven't yet been rationalised */
 gboolean grab_focus();
 
-// TODO: Sort out callbacks - 1 rename, 2 check return values
-
-/* Callback functions */
-extern "C" GtkWidget *create_dasher_control(gchar *szName, gchar *szString1, gchar *szString2, gint iInt1, gint iInt2);
-extern "C" GtkWidget *create_dasher_editor(gchar *szName, gchar *szString1, gchar *szString2, gint iInt1, gint iInt2);
-
 /* ... Message handling from main window widgets */
-extern "C" gboolean dasher_main_cb_menu_command(GtkWidget *pWidget, gpointer pUserData);
 extern "C" void speed_changed(GtkWidget *pWidget, gpointer user_data);
 extern "C" void alphabet_combo_changed(GtkWidget *pWidget, gpointer pUserData);
 extern "C" void dasher_main_cb_filename_changed(DasherEditor *pEditor, gpointer pUserData);
@@ -208,11 +163,12 @@ static void
 dasher_main_class_init(DasherMainClass *pClass) {
   g_type_class_add_private(pClass, sizeof(DasherMainPrivate));
 
-  dasher_main_signals[REALIZED] = g_signal_new("realized", G_TYPE_FROM_CLASS(pClass), 
-					       (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION), 
-					       G_STRUCT_OFFSET(DasherMainClass, realized), 
-					       NULL, NULL, g_cclosure_marshal_VOID__VOID, 
-					       G_TYPE_NONE, 0);
+  dasher_main_signals[REALIZED] =
+      g_signal_new("realized", G_TYPE_FROM_CLASS(pClass), 
+                   (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION), 
+                   G_STRUCT_OFFSET(DasherMainClass, realized), 
+                   NULL, NULL, g_cclosure_marshal_VOID__VOID, 
+                   G_TYPE_NONE, 0);
 
   GObjectClass *pObjectClass = (GObjectClass *)pClass;
   pObjectClass->finalize = dasher_main_finalize;
@@ -249,7 +205,7 @@ dasher_main_finalize(GObject *pObject) {
   if(pPrivate->pAppSettings)
     g_object_unref(pPrivate->pAppSettings);
 
-  gtk_widget_destroy(pPrivate->pMainWindow);
+  gtk_widget_destroy(GTK_WIDGET(pPrivate->pMainWindow));
 
   /* TODO: Do we need to take down anything else? */
 }
@@ -268,19 +224,19 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
     /* Create the app settings object */
     pPrivate->pAppSettings = dasher_app_settings_new(*argc, *argv);
     
-    /* Load the user interface from the glade file */
+    /* Load the user interface from the GUI file */
     if(pCommandLine && pCommandLine->szAppStyle) {
       if(!strcmp(pCommandLine->szAppStyle, "traditional")) {
-	dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_TRAD);
+        dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_TRAD);
       }
       else if(!strcmp(pCommandLine->szAppStyle, "compose")) {
-	dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_COMPOSE);
+        dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_COMPOSE);
       }
       else if(!strcmp(pCommandLine->szAppStyle, "direct")) {
-	dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_DIRECT);
+        dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_DIRECT);
       }
       else if(!strcmp(pCommandLine->szAppStyle, "fullscreen")) {
-	dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_FULLSCREEN);
+        dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_FULLSCREEN);
       }
       else {
         g_critical("Application style %s is not supported", pCommandLine->szAppStyle);
@@ -305,29 +261,29 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
       gchar **pszCurrent = pszOptionTerms;
 
       while(*pszCurrent) {
-	gchar *szJoin = g_strrstr(*pszCurrent, "=");
+        gchar *szJoin = g_strrstr(*pszCurrent, "=");
         // Note to translators: This message will be output for command line errors when the "=" in --options=foo is missing.
         const gchar *errorMessage = _("option setting is missing \"=\".");
 
-	if(szJoin) {
-	  int iLength = szJoin - *pszCurrent;
-	  
-	  gchar *szKey = g_new(gchar, iLength + 1);
-	  memcpy(szKey, *pszCurrent, iLength);
-	  szKey[iLength] = '\0';
-	  
-	  errorMessage = dasher_app_settings_cl_set(pPrivate->pAppSettings, szKey, szJoin + 1);
-	  
-	  g_free(szKey);
-	}
+        if(szJoin) {
+          int iLength = szJoin - *pszCurrent;
+          
+          gchar *szKey = g_new(gchar, iLength + 1);
+          memcpy(szKey, *pszCurrent, iLength);
+          szKey[iLength] = '\0';
+          
+          errorMessage = dasher_app_settings_cl_set(pPrivate->pAppSettings, szKey, szJoin + 1);
+          
+          g_free(szKey);
+        }
         
-	if (errorMessage) {
+        if (errorMessage) {
           // Note to translators: This string will be output when --options= specifies an unknown option.
-	  g_critical("%s: '%s', %s", _("Invalid option string specified"), *pszCurrent, errorMessage);
+          g_critical("%s: '%s', %s", _("Invalid option string specified"), *pszCurrent, errorMessage);
           return 0;
-	}
+        }
 
-	++pszCurrent;
+        ++pszCurrent;
       }
 
       g_strfreev(pszOptionTerms);
@@ -335,8 +291,7 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
     /* --- */
 
 
-
-    dasher_editor_initialise(pPrivate->pEditor, pPrivate->pAppSettings, pDasherMain, pPrivate->pGladeXML, NULL);
+    dasher_editor_initialise(pPrivate->pEditor, pPrivate->pAppSettings, pDasherMain, pPrivate->pXML, NULL);
 
 
     dasher_main_setup_window(pDasherMain);
@@ -346,15 +301,15 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
 
     if(pCommandLine) {
       if(pCommandLine->szFilename) {
-	if(!g_path_is_absolute(pCommandLine->szFilename)) {
-	  char *cwd;
-	  cwd = (char *)malloc(1024 * sizeof(char));
-	  getcwd(cwd, 1024);
-	  szFullPath = g_build_path("/", cwd, pCommandLine->szFilename, NULL);
-	}
-	else {
-	  szFullPath = g_strdup(pCommandLine->szFilename);
-	}
+        if(!g_path_is_absolute(pCommandLine->szFilename)) {
+          char *cwd;
+          cwd = (char *)malloc(1024 * sizeof(char));
+          getcwd(cwd, 1024);
+          szFullPath = g_build_path("/", cwd, pCommandLine->szFilename, NULL);
+        }
+        else {
+          szFullPath = g_strdup(pCommandLine->szFilename);
+        }
       }
     }
 
@@ -362,7 +317,7 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
 //     pPrivate->pEditor = GTK_EDITOR(
 
 
-// dasher_editor_initialise(pPrivate->pAppSettings, pDasherMain, pPrivate->pGladeXML, szFullPath);
+// dasher_editor_initialise(pPrivate->pAppSettings, pDasherMain, pPrivate->pXML, szFullPath);
 
     g_free(szFullPath);
 
@@ -376,13 +331,13 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
 
     /* Create the lock dialogue (to be removed in future versions) */
 #ifndef WITH_MAEMO
-    dasher_lock_dialogue_new(pPrivate->pGladeXML, GTK_WINDOW(pPrivate->pMainWindow));
+    dasher_lock_dialogue_new(pPrivate->pXML, pPrivate->pMainWindow);
 #else
-    dasher_lock_dialogue_new(pPrivate->pGladeXML, 0);
+    dasher_lock_dialogue_new(pPrivate->pXML, 0);
 #endif
 
-    g_object_unref(pPrivate->pGladeXML);
-    pPrivate->pGladeXML = 0;
+    g_object_unref(pPrivate->pXML);
+    pPrivate->pXML = 0;
 
     g_object_unref(pPrivate->pPrefXML);
     pPrivate->pPrefXML = 0;
@@ -398,96 +353,117 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
   }
 }
 
-static GladeXML *
-dasher_main_open_glade_xml(const char *szGladeFilename) {
-  g_message("Opening Glade file: %s", szGladeFilename);
+static GtkBuilder *
+dasher_main_open_gui_xml(DasherMain *pSelf, const char *szGUIFilename) {
+  GError *e = NULL;
+  GtkBuilder *xml = gtk_builder_new();
 
-  GladeXML *xml = glade_xml_new(szGladeFilename, NULL, NULL);
+  g_message("Opening GUI file: %s", szGUIFilename);
 
-  if (!xml) {
-    g_error("Can't find Glade file: %s. Dasher is unlikely to be correctly installed.", szGladeFilename);
+  if (!gtk_builder_add_from_file(xml, szGUIFilename, &e)) {
+    g_message("Can't find GUI file: %s. Dasher is unlikely to be correctly "
+              "installed. (%s)", szGUIFilename, e->message);
+    exit(1);
   }
 
-  glade_xml_signal_autoconnect(xml);
+  gtk_builder_connect_signals(xml, pSelf);
   
   return xml;
 }
 
-/* Load the window interface from the glade file, and do various initialisation bits and pieces */
+
+#define WRAP_CPP_CB(item) \
+extern "C" void \
+dasher_main_cb_##item(GtkAction *obj, DasherMain *p)\
+{\
+  dasher_main_command_##item(p);\
+}
+
+/* XXX PRLW: There is mention of "tutorial", but no function, (and
+ * preferences_alphabet isn't called externally.)
+ * editor passes on the action strings to dasher_editor_command which
+ * land in dasher_editor_internal.
+ */
+WRAP_CPP_CB(import)
+WRAP_CPP_CB(quit)
+WRAP_CPP_CB(preferences)
+WRAP_CPP_CB(help)
+WRAP_CPP_CB(about)
+
+extern "C" void
+dasher_main_cb_editor(GtkAction *obj, DasherMain *pSelf)
+{
+  DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
+  DASHER_ASSERT(pPrivate->pEditor != NULL);
+  const gchar *action = gtk_action_get_name(obj);
+  dasher_editor_command(pPrivate->pEditor, action);
+}
+
 static void 
 dasher_main_load_interface(DasherMain *pSelf) {
   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
-  
-  const char *szGladeFilename = NULL;
-  const char *szPrefGladeFilename = NULL;
+  const char *szGUIFilename = NULL;
+  const char *szPrefGUIFilename = NULL;
 
-#ifdef WITH_GPE
-  szGladeFilename = PROGDATA "/dashergpe.glade";
-#elif WITH_MAEMO
+#if WITH_MAEMO
 #ifdef WITH_MAEMOFULLSCREEN
-  //  szGladeFilename = "/var/lib/install" PROGDATA "/dashermaemofullscreen.glade";
-  szGladeFilename = PROGDATA "/dashermaemofullscreen.glade";
+  szGUIFilename = PROGDATA "/dashermaemofullscreen.ui";
 #else
-  //szGladeFilename = "/var/lib/install" PROGDATA "/dashermaemo.glade";
-  szGladeFilename = PROGDATA "/dashermaemo.glade";
+  szGUIFilename = PROGDATA "/dashermaemo.ui";
 #endif
-  szPrefGladeFilename = PROGDATA "/dashermaemo.preferences.glade";
+  szPrefGUIFilename = PROGDATA "/dashermaemo.preferences.ui";
 #else
   switch(dasher_app_settings_get_long(pPrivate->pAppSettings, APP_LP_STYLE)) {
   case APP_STYLE_TRAD:
-    szGladeFilename = PROGDATA "/dasher.traditional.glade";
+    szGUIFilename = PROGDATA "/dasher.traditional.ui";
     break;
   case APP_STYLE_COMPOSE:
-    szGladeFilename = PROGDATA "/dasher.compose.glade";
+    szGUIFilename = PROGDATA "/dasher.compose.ui";
     break;
   case APP_STYLE_DIRECT:
-    szGladeFilename = PROGDATA "/dasher.direct.glade";
+    szGUIFilename = PROGDATA "/dasher.direct.ui";
     break;
   case APP_STYLE_FULLSCREEN:
-    szGladeFilename = PROGDATA "/dasher.fullscreen.glade";
+    szGUIFilename = PROGDATA "/dasher.fullscreen.ui";
     break;
   default:
     g_error("Inconsistent application style specified.");
   }
-  szPrefGladeFilename = PROGDATA "/dasher.preferences.glade";
+  szPrefGUIFilename = PROGDATA "/dasher.preferences.ui";
 #endif
 
-  if(!szGladeFilename) {
-    g_error("Failure to determine glade filename");
+  if(!szGUIFilename) {
+    g_error("Failure to determine GUI filename");
   }
 
-  pPrivate->pGladeXML = dasher_main_open_glade_xml(szGladeFilename);
-
-  if (szPrefGladeFilename) {
-    pPrivate->pPrefXML = dasher_main_open_glade_xml(szPrefGladeFilename);
-  }
-  else {
-    // If no separate preference file, preferences widget is in main glade xml
-    pPrivate->pPrefXML = (GladeXML *) g_object_ref(pPrivate->pGladeXML);
-  }
+  pPrivate->pXML     = dasher_main_open_gui_xml(pSelf, szGUIFilename);
+  pPrivate->pPrefXML = dasher_main_open_gui_xml(pSelf, szPrefGUIFilename);
 
 #ifndef HAVE_GTK_SHOW_URI
-  gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "menu_command_help"));
+  GtkAction *helpact =
+           GTK_ACTION(gtk_builder_get_object(pPrivate->pXML, "action_help"));
+  gtk_action_set_sensitive(helpact, false);
+  gtk_action_set_visible(helpact, false);
 #endif
 
   // Save the details of some of the widgets for later
-  //  pPrivate->pActionPane = glade_xml_get_widget(pPrivate->pGladeXML, "vbox39");
-  pPrivate->pBufferView = glade_xml_get_widget(pPrivate->pGladeXML, "the_text_view");
-  pPrivate->pDivider = glade_xml_get_widget(pPrivate->pGladeXML, "main_divider");
-  //  pPrivate->pEditPane = glade_xml_get_widget(pPrivate->pGladeXML, "vbox40");
-  pPrivate->pMainWindow = glade_xml_get_widget(pPrivate->pGladeXML, "window");
-  pPrivate->pToolbar = glade_xml_get_widget(pPrivate->pGladeXML, "toolbar");
-  //  pPrivate->pMenuBar = glade_xml_get_widget(pPrivate->pGladeXML, "dasher_menu_bar");
-  pPrivate->pDasherWidget = glade_xml_get_widget(pPrivate->pGladeXML, "DasherControl");
+  //  pPrivate->pActionPane = gtk_builder_get_object(pPrivate->pXML, "vbox39");
+  // pPrivate->pBufferView = gtk_builder_get_object(pPrivate->pXML, "the_text_view");
+  pPrivate->pDivider = GTK_PANED(gtk_builder_get_object(pPrivate->pXML, "main_divider"));
+  //  pPrivate->pEditPane = gtk_builder_get_object(pPrivate->pXML, "vbox40");
+  pPrivate->pMainWindow = GTK_WINDOW(gtk_builder_get_object(pPrivate->pXML, "window"));
+  pPrivate->pToolbar = GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "toolbar"));
+  //  pPrivate->pMenuBar = gtk_builder_get_object(pPrivate->pXML, "dasher_menu_bar");
+  pPrivate->pDasherWidget = GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "DasherControl"));
 
 #ifndef WITH_MAEMO
-  pPrivate->pSpeedBox = glade_xml_get_widget(pPrivate->pGladeXML, "spinbutton1");
-  pPrivate->pAlphabetCombo = glade_xml_get_widget(pPrivate->pGladeXML, "combobox1");
-  pPrivate->pStatusControl = glade_xml_get_widget(pPrivate->pGladeXML, "hbox8"); 
+  pPrivate->pSpeedBox = GTK_SPIN_BUTTON(gtk_builder_get_object(pPrivate->pXML, "spinbutton1"));
+  pPrivate->pAlphabetCombo = GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "combobox1"));
+  pPrivate->pStatusControl = GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "hbox8"));
 
   pPrivate->pAlphabetList = gtk_list_store_new(1, G_TYPE_STRING);
   gtk_combo_box_set_model(GTK_COMBO_BOX(pPrivate->pAlphabetCombo), 
-			  GTK_TREE_MODEL(pPrivate->pAlphabetList));
+                          GTK_TREE_MODEL(pPrivate->pAlphabetList));
 
   GtkCellRenderer *pRenderer;
   pRenderer = gtk_cell_renderer_text_new();
@@ -524,9 +500,9 @@ dasher_main_load_interface(DasherMain *pSelf) {
 //   main_menu = hildon_appview_get_menu(appview);
 
   main_menu = GTK_MENU(gtk_menu_new());
-  file_menu = glade_xml_get_widget(pPrivate->pGladeXML, "menuitem4_menu");
-  options_menu = glade_xml_get_widget(pPrivate->pGladeXML, "options1_menu");
-  help_menu = glade_xml_get_widget(pPrivate->pGladeXML, "menuitem7_menu");
+  file_menu = gtk_builder_get_object(pPrivate->pXML, "file_menu");
+  options_menu = gtk_builder_get_object(pPrivate->pXML, "options1_menu");
+  help_menu = gtk_builder_get_object(pPrivate->pXML, "help_menu");
   file_menu_item = gtk_menu_item_new_with_label ("File");
   options_menu_item = gtk_menu_item_new_with_label ("Options");
   help_menu_item = gtk_menu_item_new_with_label ("Help");
@@ -535,9 +511,9 @@ dasher_main_load_interface(DasherMain *pSelf) {
   g_object_ref(options_menu);
   g_object_ref(help_menu);
 
-  gtk_menu_item_set_submenu(GTK_MENU_ITEM(glade_xml_get_widget(pPrivate->pGladeXML, "menuitem4")), NULL);
-  gtk_menu_item_set_submenu(GTK_MENU_ITEM(glade_xml_get_widget(pPrivate->pGladeXML, "options1")), NULL);
-  gtk_menu_item_set_submenu(GTK_MENU_ITEM(glade_xml_get_widget(pPrivate->pGladeXML, "menuitem7")), NULL);
+  gtk_menu_item_set_submenu(GTK_MENU_ITEM(gtk_builder_get_object(pPrivate->pXML, "file_menu")), NULL);
+  gtk_menu_item_set_submenu(GTK_MENU_ITEM(gtk_builder_get_object(pPrivate->pXML, "options1")), NULL);
+  gtk_menu_item_set_submenu(GTK_MENU_ITEM(gtk_builder_get_object(pPrivate->pXML, "help_menu")), NULL);
 
   gtk_menu_item_set_submenu(GTK_MENU_ITEM(file_menu_item),file_menu);
   gtk_menu_item_set_submenu(GTK_MENU_ITEM(options_menu_item),options_menu); 
@@ -556,14 +532,14 @@ dasher_main_load_interface(DasherMain *pSelf) {
 
 //   /* And toolbar */
 //   GtkWidget *toolbar;
-//   toolbar = glade_xml_get_widget(pPrivate->pGladeXML, "toolbar");
+//   toolbar = gtk_builder_get_object(pPrivate->pXML, "toolbar");
 //   g_print("Got %p\n",toolbar);
 //   gtk_widget_reparent (toolbar, appview->vbox);
 
   gtk_widget_show_all(GTK_WIDGET(pPrivate->pHWindow));
 
-  gtk_widget_destroy(pPrivate->pMainWindow);
-  pPrivate->pMainWindow = GTK_WIDGET(pPrivate->pHWindow);
+  gtk_widget_destroy(GTK_WIDGET(pPrivate->pMainWindow));
+  pPrivate->pMainWindow = pPrivate->pHWindow;
 
   g_signal_connect(G_OBJECT(pPrivate->pHWindow), "delete_event", G_CALLBACK(ask_save_before_exit), NULL);
 
@@ -587,35 +563,33 @@ dasher_main_load_interface(DasherMain *pSelf) {
 
   // Create a Maemo helper if necessary
 #if defined WITH_MAEMO && !defined WITH_MAEMOFULLSCREEN
-  pPrivate->pMaemoHelper = dasher_maemo_helper_new(GTK_WINDOW(pPrivate->pMainWindow));
+  pPrivate->pMaemoHelper = dasher_maemo_helper_new(pPrivate->pMainWindow);
 #endif
 
   // Set up any non-registry-dependent options
 #ifdef WITH_GPE
-  gtk_window_set_decorated(GTK_WINDOW(pPrivate->pMainWindow), false);
+  gtk_window_set_decorated(pPrivate->pMainWindow, false);
 #endif
   
   // Hide any widgets which aren't appropriate for this mode
+  // XXX PRLW: chances are these aren't defined in direct.ui anyway => we are
+  // hiding non-existent widgets.
   
   if(dasher_app_settings_get_long(pPrivate->pAppSettings, APP_LP_STYLE) == APP_STYLE_DIRECT) {
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "dasher_menu_bar"));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "dasher_menu_bar")));
       
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "tb_command_new"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "tb_command_open"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "tb_command_save"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "tb_command_saveas"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "separatortoolitem1"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "tb_command_cut"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "tb_command_copy"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "tb_command_paste"));
-    gtk_widget_hide(glade_xml_get_widget(pPrivate->pGladeXML, "separatortoolitem2"));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "tb_command_new")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "tb_command_open")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "tb_command_save")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "tb_command_saveas")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "separatortoolitem1")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "tb_command_cut")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "tb_command_copy")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "tb_command_paste")));
+    gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "separatortoolitem2")));
   }
     
-  
-  dasher_main_connect_menus(pSelf);
-
-
-  pPrivate->pEditor = DASHER_EDITOR(glade_xml_get_widget(pPrivate->pGladeXML, "DasherEditor"));
+  pPrivate->pEditor = DASHER_EDITOR(gtk_builder_get_object(pPrivate->pXML, "DasherEditor"));
   // TODO: szFullPath
   pPrivate->bWidgetsInitialised = true;
 }
@@ -623,7 +597,7 @@ dasher_main_load_interface(DasherMain *pSelf) {
 static void 
 dasher_main_create_preferences(DasherMain *pSelf) {
   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
-  pPrivate->pPreferencesDialogue = dasher_preferences_dialogue_new(pPrivate->pPrefXML, pPrivate->pEditor, pPrivate->pAppSettings, GTK_WINDOW(pPrivate->pMainWindow));
+  pPrivate->pPreferencesDialogue = dasher_preferences_dialogue_new(pPrivate->pPrefXML, pPrivate->pEditor, pPrivate->pAppSettings, pPrivate->pMainWindow);
 }
 
 // DasherEditor *
@@ -649,13 +623,9 @@ dasher_main_handle_parameter_change(DasherMain *pSelf, int iParameter) {
     else
       gtk_widget_hide(pPrivate->pStatusControl);
     break;
-    //  case APP_SP_EDIT_FONT:
-    // TODO: Editor should handle this directly
-    //    dasher_main_refresh_font(pSelf);
-    //    break;
 #ifndef WITH_MAEMO
   case LP_MAX_BITRATE:
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(pPrivate->pSpeedBox), dasher_app_settings_get_long(pPrivate->pAppSettings, LP_MAX_BITRATE) / 100.0);
+    gtk_spin_button_set_value(pPrivate->pSpeedBox, dasher_app_settings_get_long(pPrivate->pAppSettings, LP_MAX_BITRATE) / 100.0);
     break;
 #endif
   case SP_ALPHABET_ID:
@@ -721,7 +691,7 @@ dasher_main_load_state(DasherMain *pSelf) {
   gtk_window_resize(GTK_WINDOW(pPrivate->pMainWindow), iWindowWidth, iWindowHeight);
 #endif
 
-  gtk_paned_set_position(GTK_PANED(pPrivate->pDivider), iEditHeight);
+  gtk_paned_set_position(pPrivate->pDivider, iEditHeight);
 
   pPrivate->iWidth = iWindowWidth;
   pPrivate->iHeight = iWindowHeight;
@@ -751,7 +721,7 @@ dasher_main_save_state(DasherMain *pSelf) {
   int iEditHeight;
   
    gtk_window_get_size(GTK_WINDOW(pPrivate->pMainWindow), &iWindowWidth, &iWindowHeight);
-   iEditHeight = gtk_paned_get_position(GTK_PANED(pPrivate->pDivider));
+   iEditHeight = gtk_paned_get_position(pPrivate->pDivider);
 
    if(dasher_app_settings_get_long(pPrivate->pAppSettings, APP_LP_STYLE) != APP_STYLE_COMPOSE) {
      // APP_STYLE_DIRECT doesn't have an edit window.
@@ -779,7 +749,7 @@ dasher_main_save_state(DasherMain *pSelf) {
 void 
 dasher_main_show(DasherMain *pSelf) {
   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
-  gtk_widget_show(pPrivate->pMainWindow);
+  gtk_widget_show(GTK_WIDGET(pPrivate->pMainWindow));
 }
 
 static void 
@@ -804,8 +774,8 @@ dasher_main_populate_controls(DasherMain *pSelf) {
   dasher_main_populate_alphabet_combo(pSelf);
   
   // Set the value of the speed spinner
-  gtk_spin_button_set_value(GTK_SPIN_BUTTON(pPrivate->pSpeedBox), 
-			    dasher_app_settings_get_long(pPrivate->pAppSettings, LP_MAX_BITRATE) / 100.0);
+  gtk_spin_button_set_value(pPrivate->pSpeedBox, 
+                            dasher_app_settings_get_long(pPrivate->pAppSettings, LP_MAX_BITRATE) / 100.0);
 }
 
 static void 
@@ -816,49 +786,49 @@ dasher_main_connect_control(DasherMain *pSelf) {
   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
 
   gtk_dasher_control_register_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				    Dasher::CControlManager::CTL_USER,
-				    "Speak", -1 );
+                                    Dasher::CControlManager::CTL_USER,
+                                    "Speak", -1 );
 
   gtk_dasher_control_connect_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				   Dasher::CControlManager::CTL_USER, 
-				   Dasher::CControlManager::CTL_ROOT, -2);
+                                   Dasher::CControlManager::CTL_USER, 
+                                   Dasher::CControlManager::CTL_ROOT, -2);
 
 
   gtk_dasher_control_register_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				    Dasher::CControlManager::CTL_USER + 1, 
-				    "All", -1 );
+                                    Dasher::CControlManager::CTL_USER + 1, 
+                                    "All", -1 );
 
   gtk_dasher_control_register_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				    Dasher::CControlManager::CTL_USER + 2, 
-				    "Last", -1 );
+                                    Dasher::CControlManager::CTL_USER + 2, 
+                                    "Last", -1 );
 
   gtk_dasher_control_register_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				    Dasher::CControlManager::CTL_USER + 3, 
-				    "Repeat", -1 );
+                                    Dasher::CControlManager::CTL_USER + 3, 
+                                    "Repeat", -1 );
 
   gtk_dasher_control_connect_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				   Dasher::CControlManager::CTL_USER + 1, 
-				   Dasher::CControlManager::CTL_USER, -2);
+                                   Dasher::CControlManager::CTL_USER + 1, 
+                                   Dasher::CControlManager::CTL_USER, -2);
 
   gtk_dasher_control_connect_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				   -1, 
-				   Dasher::CControlManager::CTL_USER + 1, -2);
+                                   -1, 
+                                   Dasher::CControlManager::CTL_USER + 1, -2);
 
   gtk_dasher_control_connect_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				   Dasher::CControlManager::CTL_USER + 2, 
-				   Dasher::CControlManager::CTL_USER, -2);
+                                   Dasher::CControlManager::CTL_USER + 2, 
+                                   Dasher::CControlManager::CTL_USER, -2);
 
   gtk_dasher_control_connect_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				   -1,
-				   Dasher::CControlManager::CTL_USER + 2, -2);
+                                   -1,
+                                   Dasher::CControlManager::CTL_USER + 2, -2);
 
   gtk_dasher_control_connect_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				   Dasher::CControlManager::CTL_USER + 3, 
-				   Dasher::CControlManager::CTL_USER, -2);
+                                   Dasher::CControlManager::CTL_USER + 3, 
+                                   Dasher::CControlManager::CTL_USER, -2);
 
   gtk_dasher_control_connect_node( GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-				   -1,
-				   Dasher::CControlManager::CTL_USER + 3, -2);
+                                   -1,
+                                   Dasher::CControlManager::CTL_USER + 3, -2);
 
 #endif
 
@@ -969,18 +939,8 @@ dasher_main_setup_internal_layout(DasherMain *pSelf) {
     else
       gtk_widget_hide(pPrivate->pStatusControl);
   }
-
-  //  dasher_main_refresh_font(pSelf);
 }
 
-// static void 
-// dasher_main_refresh_font(DasherMain *pSelf) {
-//   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
-
-//   dasher_editor_handle_font(pPrivate->pEditor, 
-// 			    dasher_app_settings_get_string(pPrivate->pAppSettings, APP_SP_EDIT_FONT));
-// }
-
 // TODO: Fold into setup controls?
 static void 
 dasher_main_set_window_title(DasherMain *pSelf) {
@@ -1002,50 +962,15 @@ dasher_main_set_window_title(DasherMain *pSelf) {
 }
 
 static void 
-dasher_main_connect_menus(DasherMain *pSelf) {
-  DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
-
-  int iNumItems = sizeof(MenuCommands) / sizeof(DasherMenuCommand);
-  
-  for(int i(0); i < iNumItems; ++i) {
-    GtkWidget *pWidget;
-
-    pWidget = glade_xml_get_widget(pPrivate->pGladeXML, MenuCommands[i].szWidgetName);
-
-    MenuCommands[i].pWidget = pWidget;
-
-    // TODO: Check that these are the right signals to connect to
-    if(pWidget)
-      if(GTK_IS_MENU_ITEM(pWidget))
-	g_signal_connect(G_OBJECT(pWidget), "activate", G_CALLBACK(dasher_main_cb_menu_command), pSelf);
-      else
-	g_signal_connect(G_OBJECT(pWidget), "clicked", G_CALLBACK(dasher_main_cb_menu_command), pSelf);
-  }
-  
-}
-
-static void 
-dasher_main_menu_command(DasherMain *pSelf, GtkWidget *pWidget) {
-  int iNumItems = sizeof(MenuCommands) / sizeof(DasherMenuCommand);
-
-  for(int i(0); i < iNumItems; ++i) {
-    if(MenuCommands[i].pWidget == pWidget) {
-      dasher_main_command(pSelf, MenuCommands[i].szCommand);
-      return;
-    }
-  }
-}
-
-static void 
 dasher_main_command_import(DasherMain *pSelf) {
   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
 
   GtkWidget *pFileSel = gtk_file_chooser_dialog_new(_("Select File"), 
-						    GTK_WINDOW(pPrivate->pMainWindow), 
-						    GTK_FILE_CHOOSER_ACTION_OPEN, 
-						    GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, 
-						    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, 
-						    NULL);
+                                                    GTK_WINDOW(pPrivate->pMainWindow), 
+                                                    GTK_FILE_CHOOSER_ACTION_OPEN, 
+                                                    GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, 
+                                                    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, 
+                                                    NULL);
 
 #ifdef TEACH_TRAINING_HELPER_LOAD_FILE_ABOUT_URI
   gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(pFileSel), FALSE);
@@ -1079,24 +1004,24 @@ static void dasher_main_command_quit(DasherMain *pSelf) {
 
     if(szFilename) {
       pDialogue = gtk_message_dialog_new(GTK_WINDOW(pPrivate->pMainWindow), GTK_DIALOG_MODAL, 
-					 GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
-					 _("Do you want to save your changes to %s?\n\nYour changes will be lost if you don't save them."),
-					 szFilename);
+                                         GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
+                                         _("Do you want to save your changes to %s?\n\nYour changes will be lost if you don't save them."),
+                                         szFilename);
     }
     else {
 #endif
       pDialogue = gtk_message_dialog_new(GTK_WINDOW(pPrivate->pMainWindow), GTK_DIALOG_MODAL, 
-					 GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
-					 _("Do you want to save your changes?\n\nYour changes will be lost if you don't save them."));
+                                         GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
+                                         _("Do you want to save your changes?\n\nYour changes will be lost if you don't save them."));
 #if 0
     }
 #endif
 
     gtk_dialog_add_buttons(GTK_DIALOG(pDialogue), 
-			   _("Don't save"), GTK_RESPONSE_REJECT,
-			   _("Don't quit"), GTK_RESPONSE_CANCEL, 
-			   _("Save and quit"), GTK_RESPONSE_ACCEPT, 
-			   NULL);
+                           _("Don't save"), GTK_RESPONSE_REJECT,
+                           _("Don't quit"), GTK_RESPONSE_CANCEL, 
+                           _("Save and quit"), GTK_RESPONSE_ACCEPT, 
+                           NULL);
 
     switch (gtk_dialog_run(GTK_DIALOG(pDialogue))) {
     case GTK_RESPONSE_REJECT:
@@ -1112,18 +1037,18 @@ static void dasher_main_command_quit(DasherMain *pSelf) {
     }
   }
   else {
-	pDialogue = gtk_message_dialog_new(GTK_WINDOW(pPrivate->pMainWindow), GTK_DIALOG_MODAL, 
-					 GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
-					 _("Are you sure you wish to quit?"));
+        pDialogue = gtk_message_dialog_new(GTK_WINDOW(pPrivate->pMainWindow), GTK_DIALOG_MODAL, 
+                                         GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
+                                         _("Are you sure you wish to quit?"));
 
-    	gtk_dialog_add_buttons(GTK_DIALOG(pDialogue), 
-			   _("Don't quit"), GTK_RESPONSE_REJECT,
-			   _("Quit"), GTK_RESPONSE_ACCEPT, 
-			   NULL);
+            gtk_dialog_add_buttons(GTK_DIALOG(pDialogue), 
+                           _("Don't quit"), GTK_RESPONSE_REJECT,
+                           _("Quit"), GTK_RESPONSE_ACCEPT, 
+                           NULL);
 
     switch (gtk_dialog_run(GTK_DIALOG(pDialogue))) {
     case GTK_RESPONSE_REJECT:
-	gtk_widget_destroy(GTK_WIDGET(pDialogue));
+        gtk_widget_destroy(GTK_WIDGET(pDialogue));
       break;
     case GTK_RESPONSE_ACCEPT:
       gtk_main_quit();
@@ -1155,7 +1080,7 @@ dasher_main_command_help(DasherMain *pSelf) {
   GdkScreen *scr;
   GError *err = NULL;
 
-  scr = gtk_widget_get_screen(pPrivate->pMainWindow);
+  scr = gtk_widget_get_screen(GTK_WIDGET(pPrivate->pMainWindow));
   if (!gtk_show_uri(scr, "ghelp:dasher", gtk_get_current_event_time(), &err)) {
     GtkWidget *d;
     d = gtk_message_dialog_new(GTK_WINDOW(pPrivate->pMainWindow),
@@ -1212,24 +1137,24 @@ dasher_main_command_about(DasherMain *pSelf) {
   };
 
   gtk_show_about_dialog(GTK_WINDOW(pPrivate->pMainWindow),
-			"authors", authors,
-			"comments", _("Dasher is a predictive text entry application"), 
-			"copyright", "Copyright \xC2\xA9 1998-2009 The Dasher Project", 
-			"documenters", documenters,
-			"license", "GPL 2+",
-			"logo-icon-name", "dasher",
-			"translator-credits", _("translator-credits"),
-			"version", VERSION,
-			"website", "http://www.dasher.org.uk/";,
-			"wrap-license", true,
-			NULL);
+                        "authors", authors,
+                        "comments", _("Dasher is a predictive text entry application"), 
+                        "copyright", "Copyright \xC2\xA9 1998-2009 The Dasher Project", 
+                        "documenters", documenters,
+                        "license", "GPL 2+",
+                        "logo-icon-name", "dasher",
+                        "translator-credits", _("translator-credits"),
+                        "version", VERSION,
+                        "website", "http://www.dasher.org.uk/";,
+                        "wrap-license", true,
+                        NULL);
 }
 
 static gboolean 
 dasher_main_speed_changed(DasherMain *pSelf) {
   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
   
-  int iNewValue( static_cast<int>(round(gtk_spin_button_get_value(GTK_SPIN_BUTTON(pPrivate->pSpeedBox)) * 100)));
+  int iNewValue( static_cast<int>(round(gtk_spin_button_get_value(pPrivate->pSpeedBox) * 100)));
   
   if(dasher_app_settings_get_long(pPrivate->pAppSettings, LP_MAX_BITRATE) != iNewValue)
     dasher_app_settings_set_long(pPrivate->pAppSettings, LP_MAX_BITRATE, iNewValue);
@@ -1337,38 +1262,6 @@ grab_focus() {
 
 /* Callbacks */
 
-extern "C" GtkWidget *
-create_dasher_control(gchar *szName, gchar *szString1, gchar *szString2, gint iInt1, gint iInt2) {
-  GtkWidget *pDasherControl = gtk_dasher_control_new();
-
-#ifdef WITH_MAEMO
-  // TODO: Do this in glade file?
-  gtk_widget_set_size_request(pDasherControl, 175, -1);  
-#endif
-
-  return pDasherControl;
-}
-
-extern "C" GtkWidget *
-create_dasher_editor(gchar *szName, gchar *szString1, gchar *szString2, gint iInt1, gint iInt2) {
-  g_return_val_if_fail(g_pDasherMain != NULL, NULL);
-
-  DasherMain *pDasherMain = DASHER_MAIN(g_pDasherMain);
-  DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pDasherMain);
-
-  if(dasher_app_settings_get_long(pPrivate->pAppSettings, APP_LP_STYLE) == APP_STYLE_DIRECT)
-    return GTK_WIDGET(dasher_editor_external_new());
-  else
-    return GTK_WIDGET(dasher_editor_internal_new());
-}
-
-extern "C" gboolean 
-dasher_main_cb_menu_command(GtkWidget *pWidget, gpointer pUserData) {
-  dasher_main_menu_command((DasherMain *)pUserData, pWidget);
-
-  return FALSE; // TODO: Scheck semantics of return value
-}
-
 extern "C" void 
 speed_changed(GtkWidget *pWidget, gpointer user_data) {
   if(g_pDasherMain)
@@ -1524,7 +1417,7 @@ handle_control_event(GtkDasherControl *pDasherControl, gint iEvent, gpointer dat
   dasher_editor_handle_control(pPrivate->pEditor, iEvent);
 
   gtk_dasher_control_set_control_offset(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), 
-					dasher_editor_get_offset(pPrivate->pEditor));
+                                        dasher_editor_get_offset(pPrivate->pEditor));
 
   g_bSend = true;
   // ---
@@ -1552,12 +1445,12 @@ dasher_main_key_snooper(GtkWidget *pWidget, GdkEventKey *pEvent, gpointer pUserD
   if(iButton != -1) {
     DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
 
-    if(gdk_window_get_toplevel(pEvent->window) == pPrivate->pMainWindow->window) {
+    if(gtk_widget_is_ancestor(pWidget, GTK_WIDGET(pPrivate->pMainWindow))) {
       if(pPrivate->pDasherWidget) {
-	if(pEvent->type == GDK_KEY_PRESS)
-	  gtk_dasher_control_external_key_down(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), iButton);
-	else
-	  gtk_dasher_control_external_key_up(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), iButton);
+        if(pEvent->type == GDK_KEY_PRESS)
+          gtk_dasher_control_external_key_down(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), iButton);
+        else
+          gtk_dasher_control_external_key_up(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), iButton);
       }
       
       return TRUE;
diff --git a/Src/Gtk2/dasher_main.h b/Src/Gtk2/dasher_main.h
index fbb14c9..29927f8 100644
--- a/Src/Gtk2/dasher_main.h
+++ b/Src/Gtk2/dasher_main.h
@@ -5,12 +5,12 @@
 #include <glib-object.h>
 
 G_BEGIN_DECLS
-#define TYPE_DASHER_MAIN            (dasher_main_get_type())
-#define DASHER_MAIN(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_DASHER_MAIN, DasherMain ))
-#define DASHER_MAIN_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DASHER_MAIN, DasherMainClass ))
-#define IS_DASHER_MAIN(obj)	    (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_DASHER_MAIN))
-#define IS_DASHER_MAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DASHER_MAIN))
-#define DASHER_MAIN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DASHER_MAIN, DasherMainClass))
+#define DASHER_TYPE_MAIN            (dasher_main_get_type())
+#define DASHER_MAIN(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), DASHER_TYPE_MAIN, DasherMain ))
+#define DASHER_MAIN_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), DASHER_TYPE_MAIN, DasherMainClass ))
+#define DASHER_IS_MAIN(obj)	    (G_TYPE_CHECK_INSTANCE_TYPE((obj), DASHER_TYPE_MAIN))
+#define DASHER_IS_MAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DASHER_TYPE_MAIN))
+#define DASHER_MAIN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), DASHER_TYPE_MAIN, DasherMainClass))
 
 typedef struct _DasherMain DasherMain;
 typedef struct _DasherMainClass DasherMainClass;
diff --git a/Src/Gtk2/game_mode_helper.cpp b/Src/Gtk2/game_mode_helper.cpp
index 62b2f1d..d7f8be6 100644
--- a/Src/Gtk2/game_mode_helper.cpp
+++ b/Src/Gtk2/game_mode_helper.cpp
@@ -80,24 +80,24 @@ static void game_mode_helper_destroy(GObject *pObject) {
   // of the parent classes here...
 }
 
-GObject *game_mode_helper_new(GladeXML *pGladeXML, void* pDasherEditor) {
+GObject *game_mode_helper_new(GtkBuilder *pXML, void* pDasherEditor) {
   GameModeHelper *pHelper;
   pHelper = GAME_MODE_HELPER(g_object_new(game_mode_helper_get_type(), NULL));
   
   GameModeHelperPrivate *pPrivate((GameModeHelperPrivate *)(pHelper->private_data));
 
-  pPrivate->pControl = GTK_DASHER_CONTROL(glade_xml_get_widget(pGladeXML, "DasherControl"));
+  pPrivate->pControl = GTK_DASHER_CONTROL(gtk_builder_get_object(pXML, "DasherControl"));
   //  pPrivate->szOutput = 0;
 
   pPrivate->pEditor = (DasherEditorInternal *)pDasherEditor;
-  pPrivate->pGameGroup = glade_xml_get_widget(pGladeXML, "game_group");
-  pPrivate->pGameInfoLabel = GTK_LABEL(glade_xml_get_widget(pGladeXML, "game_info_label"));
-  pPrivate->pGameToggleButton = glade_xml_get_widget(pGladeXML, "tb_command_game");
-  pPrivate->pNewSentence = glade_xml_get_widget(pGladeXML, "game_new_sentence");
-  pPrivate->pDemoToggleButton = glade_xml_get_widget(pGladeXML, "demo_toggle");
-  pPrivate->pFullDemo = glade_xml_get_widget(pGladeXML, "fulldemo");
-  pPrivate->pScore = GTK_ENTRY(glade_xml_get_widget(pGladeXML, "score_box"));
-  pPrivate->pLevel = GTK_ENTRY(glade_xml_get_widget(pGladeXML, "level_box"));
+  pPrivate->pGameGroup = GTK_WIDGET(gtk_builder_get_object(pXML, "game_group"));
+  pPrivate->pGameInfoLabel = GTK_LABEL(gtk_builder_get_object(pXML, "game_info_label"));
+  pPrivate->pGameToggleButton = GTK_WIDGET(gtk_builder_get_object(pXML, "tb_command_game"));
+  pPrivate->pNewSentence = GTK_WIDGET(gtk_builder_get_object(pXML, "game_new_sentence"));
+  pPrivate->pDemoToggleButton = GTK_WIDGET(gtk_builder_get_object(pXML, "demo_toggle"));
+  pPrivate->pFullDemo = GTK_WIDGET(gtk_builder_get_object(pXML, "fulldemo"));
+  pPrivate->pScore = GTK_ENTRY(gtk_builder_get_object(pXML, "score_box"));
+  pPrivate->pLevel = GTK_ENTRY(gtk_builder_get_object(pXML, "level_box"));
   pPrivate->pstrTarget = new std::string;
   pPrivate->pstrOutput = new std::string;
   
@@ -165,7 +165,8 @@ game_mode_helper_cb_gametoggle(GtkWidget *pWidget, gpointer pUserData) {
       gtk_dasher_control_game_messagein(pPrivate->pControl, Dasher::GameMode::GAME_MESSAGE_GAME_ON, NULL);
     }
 
-  dasher_editor_internal_cleartext(pPrivate->pEditor);
+  // XXX PRLW: something like pPrivate->pEditor->clear() may be more apt
+  // dasher_editor_internal_cleartext(pPrivate->pEditor);
   return FALSE; // TODO: Scheck semantics of return value
 }
 
@@ -254,7 +255,8 @@ void game_mode_helper_message(GameModeHelper *pSelf, int message, const void * m
     gtk_entry_set_text(pPrivate->pLevel, reinterpret_cast<const std::string*>(messagedata)->c_str());
     break;
   case GAME_MESSAGE_CLEAR_BUFFER:
-    dasher_editor_internal_cleartext(pPrivate->pEditor);
+  // XXX PRLW: something like pPrivate->pEditor->clear() may be more apt
+  //  dasher_editor_internal_cleartext(pPrivate->pEditor);
     pPrivate->pstrOutput->clear();
     break;
   case GAME_MESSAGE_HELP_MESSAGE:
diff --git a/Src/Gtk2/game_mode_helper.h b/Src/Gtk2/game_mode_helper.h
index d9c2ff8..b37e598 100644
--- a/Src/Gtk2/game_mode_helper.h
+++ b/Src/Gtk2/game_mode_helper.h
@@ -5,7 +5,6 @@
 #include "GameMessages.h"
 
 #include <gdk/gdk.h>
-#include <glade/glade.h>
 #include <glib.h>
 #include <gtk/gtk.h>
 
@@ -28,7 +27,7 @@ struct _GameModeHelperClass {
   GtkDialogClass parent_class;
 };
 
-GObject *game_mode_helper_new(GladeXML *pGladeXML, void* pEditor);
+GObject *game_mode_helper_new(GtkBuilder *pXML, void* pEditor);
 GType game_mode_helper_get_type();
 
 void game_mode_helper_message(GameModeHelper *pSelf, int message, const void *messagedata);
diff --git a/Src/Makefile.am b/Src/Makefile.am
index 13f0b8a..860ed18 100644
--- a/Src/Makefile.am
+++ b/Src/Makefile.am
@@ -25,8 +25,8 @@ AM_CXXFLAGS = \
 
 dasher_LDADD = \
 	Common/libdashermisc.a \
-	Gtk2/libdashergtk.a \
-	Gtk2/libdashercontrol.a \
+	Gtk2/libdashergtk.la \
+	Gtk2/libdashercontrol.la \
 	DasherCore/libdashercore.a \
 	DasherCore/libdasherprefs.a \
 	DasherCore/LanguageModelling/libdasherlm.a \
diff --git a/Src/main.cc b/Src/main.cc
index 0b8482c..06bdf95 100644
--- a/Src/main.cc
+++ b/Src/main.cc
@@ -8,9 +8,9 @@
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkx.h>
-#include <glade/glade.h>
 #include <signal.h>
 #include <Gtk2/DasherAppSettings.h>
+#include <Gtk2/dasher_editor_internal.h>
 
 #ifdef WITH_MAEMO
 #include <libosso.h>
@@ -25,15 +25,7 @@
 #include <gpe/init.h>
 #endif
 
-// #include <libintl.h>
-// #include <locale.h>
-// #include <stdio.h>
-// #include <stdlib.h>
-// #include <iostream>
-
 #include "dasher.h"
-//#include "DasherControl.h"
-#include "dasher_lock_dialogue.h"
 #include "dasher_main.h"
 
 #ifdef WITH_GPE
@@ -238,6 +230,9 @@ int main(int argc, char *argv[]) {
 
   dasher_main_show(g_pDasherMain);
 
+  // This call is just to force the linker to export the following symbol.
+  dasher_editor_internal_get_type();
+
   // 10.
   gtk_main();
 
diff --git a/configure.ac b/configure.ac
index 01d79c2..b0610b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -189,17 +189,6 @@ AC_ARG_WITH([cairo],
 if test x"$WITHGTK2" = xtrue
 then 
 	PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.6.0,[GTK2HERE=true],[GTK2HERE=false]) 
-	PKG_CHECK_MODULES(GCONF, gconf-2.0,[GCONF2HERE=true],[GCONF2HERE=false])
-	if test x$GCONF2HERE = xfalse; then
-		AC_MSG_WARN([GConf was not detected - user preferences will not be stored.])
-	fi
-	save_CFLAGS="$CFLAGS"
-	save_LIBS="$LIBS"
-	CFLAGS="$CFLAGS $GTK2_CFLAGS"
-	LIBS="$LIBS $GTK2_LIBS"
-	AC_CHECK_FUNCS([gtk_show_uri]) dnl which appeared in Gtk 2.13.1
-	CFLAGS="$save_CFLAGS"
-	LIBS="$save_LIBS"
 fi
 
 if test x"$GTK2HERE" = xtrue -a x"$WITHGTK2" = xtrue -a x"$WITHQTE" != xtrue
@@ -212,10 +201,34 @@ else
 	BUILDGTK2=false
 fi
 
-if test x$BUILDGTK2 = xfalse -a x"$WITHQTE" != xtrue
+if test x$BUILDGTK2 = xtrue
 then
-	echo $WITHGTK2
-	AC_ERROR("Unable to find GTK2 or another necessary library. See the previous line for more useful data.")
+# GtkBuilder's autoconnect feature requires dasher to be linked with
+# the --export-dynamic flag. pkg-config does not provide it, and libtool
+# knows what to do with -export-dynamic.
+# (We need this e.g., for <object class="DasherEditor">)
+	GTK2_LIBS="$GTK2_LIBS -export-dynamic"
+
+	PKG_CHECK_MODULES(GCONF, gconf-2.0,[GCONF2HERE=true],[GCONF2HERE=false])
+	if test x$GCONF2HERE = xfalse; then
+		AC_MSG_WARN([GConf was not detected - user preferences will not be stored.])
+	fi
+	save_CFLAGS="$CFLAGS"
+	save_LIBS="$LIBS"
+	CFLAGS="$CFLAGS $GTK2_CFLAGS"
+	LIBS="$LIBS $GTK2_LIBS"
+	AC_CHECK_FUNCS([gtk_builder_new gtk_show_uri], [],
+		[if test "x$ac_cv_func_gtk_builder_new" = "xno"; then
+			AC_MSG_ERROR([A version of GTK+ providing GtkBuilder is necessary.])
+		fi
+		if test "x$ac_cv_func_gtk_show_uri" = "xno"; then
+			AC_MSG_WARN([This version of GTK+ doesn't provide gtk_show_uri - help will not be displayed from within dasher.])
+		fi]
+	)
+	CFLAGS="$save_CFLAGS"
+	LIBS="$save_LIBS"
+else
+	AC_MSG_ERROR("Unable to find GTK2 or another necessary library.")
 fi
 
 if test x"$DEBUG" = xtrue; then
@@ -299,8 +312,6 @@ dnl fi
 
 if test x"$WITHMAEMO" = xtrue; then
       AC_DEFINE([WITH_MAEMO], 1, [Maemo is present])
-      dnl Yes, this sucks
-      glade_LIBS="/usr/lib/libglade-2.0.a"
       PKG_CHECK_MODULES(hildon, hildon-libs)
       AC_CHECK_LIB(osso, osso_initialize,, AC_MSG_ERROR([Osso library not found.]))
 fi			
@@ -315,13 +326,6 @@ if test x"$WITHCAIRO" = xtrue; then
 fi
 
 if test x"$BUILDGTK2" = xtrue; then 
-	PKG_CHECK_MODULES(glade, libglade-2.0)
-	if test x"$WITHMAEMO" = xtrue; then
-	        dnl Yes, this sucks
-		glade_LIBS=`echo $glade_LIBS | sed s/-lglade-2.0//`
-		glade_LIBS="$glade_LIBS /usr/lib/libglade-2.0.a"
-	fi
-
 	PKG_CHECK_MODULES(gthread, gthread-2.0)
 
 
@@ -331,13 +335,6 @@ dnl	        AC_DEFINE([HAVE_WNCK], 1, [wnck is present])
 dnl	fi
 fi
 
-# libglade's autoconnect feature requires dasher to be linked with
-# the --export-dynamic flag. pkg-config does not provide it, and libtool
-# knows what to do with -export-dynamic.
-if test x"$glade_LIBS" != x ; then
-	glade_LIBS="$glade_LIBS -export-dynamic"
-fi
-
 if test x"$GCONF2HERE" = xtrue ; then
         AM_GCONF_SOURCE_2
         AC_DEFINE([WITH_GCONF], 1, [Use GConf])
@@ -354,9 +351,6 @@ AC_SUBST([A11Y_SOURCES])
 AC_SUBST(gnome_LIBS)
 AC_SUBST(gnome_CFLAGS)
 
-AC_SUBST(glade_LIBS)
-AC_SUBST(glade_CFLAGS)
-
 AC_SUBST(gthread_LIBS)
 AC_SUBST(gthread_CFLAGS)
 
@@ -396,9 +390,9 @@ fi
 AC_SUBST(SETTINGS_CFLAGS)
 AC_SUBST(SETTINGS_LIBS)
 
-GTK2BUILD_CFLAGS="$GTK2_CFLAGS $GIO_CFLAGS $SETTINGS_CFLAGS $gthread_CFLAGS $gnome_speech_CFLAGS $gnome_a11y_CFLAGS $glade_CFLAGS $gnome_CFLAGS $wnck_CFLAGS $hildon_CFLAGS"
+GTK2BUILD_CFLAGS="$GTK2_CFLAGS $GIO_CFLAGS $SETTINGS_CFLAGS $gthread_CFLAGS $gnome_speech_CFLAGS $gnome_a11y_CFLAGS $gnome_CFLAGS $wnck_CFLAGS $hildon_CFLAGS"
 
-GTK2BUILD_LIBS="$X_LIBS $GTK2_LIBS $GIO_LIBS $SETTINGS_LIBS $gthread_LIBS $gnome_speech_LIBS $gnome_a11y_LIBS $glade_LIBS $gnome_LIBS $wnck_LIBS $hildon_LIBS"
+GTK2BUILD_LIBS="$X_LIBS $GTK2_LIBS $GIO_LIBS $SETTINGS_LIBS $gthread_LIBS $gnome_speech_LIBS $gnome_a11y_LIBS $gnome_LIBS $wnck_LIBS $hildon_LIBS"
 
 AC_SUBST(GTK2BUILD_CFLAGS)
 AC_SUBST(GTK2BUILD_LIBS)
@@ -420,9 +414,9 @@ AC_CONFIG_FILES([Data/dasher.desktop.in
 		 Data/Makefile
 		 Data/training/Makefile
 		 Data/alphabets/Makefile
-		 Data/glade/Makefile
 		 Data/colours/Makefile
 		 Data/controllabels/Makefile
+		 Data/GUI/Makefile
 		 Data/Help/Makefile
 		 Data/Help/Gnome/Makefile
 		 Doc/Makefile



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