[orca/introspection] Stop using HBox, VBox, Box*, and Table; also update the .gitignore files



commit cc5af6b3b4dd296d7f3645e85de42d731270261e
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date:   Mon Aug 29 03:25:14 2011 -0400

    Stop using HBox, VBox, Box*, and Table; also update the .gitignore files
    
    Some of the 'internal' GtkBox instances don't seem so easy to nuke.
    I'll worry about the few which remain later. Everything else is now
    a GtkGrid.

 .gitignore                                     |    2 +
 m4/.gitignore                                  |   29 ++
 po/.gitignore                                  |    8 +
 po/POTFILES.in                                 |    8 +-
 src/orca/Makefile.am                           |    9 +-
 src/orca/app_gui_prefs.py                      |    8 +-
 src/orca/chat.py                               |  128 +++----
 src/orca/orca-find.ui                          |  492 ++++++++++++------------
 src/orca/orca-mainwin.ui                       |   99 -----
 src/orca/orca-preferences-warning.ui           |  110 ------
 src/orca/orca-profile.ui                       |  109 ------
 src/orca/orca-quit.ui                          |  122 ------
 src/orca/orca-splash.ui                        |   24 --
 src/orca/orca_gui_main.py                      |  126 +++----
 src/orca/orca_gui_prefs.py                     |   69 ++--
 src/orca/orca_gui_profile.py                   |  164 ++++-----
 src/orca/orca_gui_quit.py                      |  103 +++++
 src/orca/orca_gui_splash.py                    |   56 ++--
 src/orca/orca_quit.py                          |  126 ------
 src/orca/script.py                             |    2 +-
 src/orca/scripts/apps/Instantbird/script.py    |    7 +-
 src/orca/scripts/apps/Thunderbird/script.py    |   17 +-
 src/orca/scripts/apps/empathy/script.py        |    7 +-
 src/orca/scripts/apps/gajim/script.py          |    7 +-
 src/orca/scripts/apps/packagemanager/script.py |   28 +-
 src/orca/scripts/apps/pidgin/script.py         |    7 +-
 src/orca/scripts/apps/soffice/script.py        |  109 +++---
 src/orca/scripts/apps/yelp/yelp_v2/script.py   |   14 +-
 src/orca/scripts/toolkits/Gecko/script.py      |  258 +++++--------
 src/orca/scripts/toolkits/WebKitGtk/script.py  |   20 +-
 src/orca/settings.py                           |    2 +-
 31 files changed, 817 insertions(+), 1453 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 51e519e..d89ed71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+ABOUT-NLS
 INSTALL
 Makefile
 Makefile.in
@@ -8,6 +9,7 @@ config.h
 config.h.in
 config.guess
 config.log
+config.rpath
 config.status
 config.sub
 configure
diff --git a/m4/.gitignore b/m4/.gitignore
index a8b28ea..8e2862d 100644
--- a/m4/.gitignore
+++ b/m4/.gitignore
@@ -1,2 +1,31 @@
+codeset.m4
+gettext.m4
+glibc2.m4
+glibc21.m4
 gnome-doc-utils.m4
+iconv.m4
+intdiv0.m4
+intl.m4
+intldir.m4
+intlmacosx.m4
 intltool.m4
+intmax.m4
+inttypes-pri.m4
+inttypes_h.m4
+lcmessage.m4
+lib-ld.m4
+lib-link.m4
+lib-prefix.m4
+lock.m4
+longlong.m4
+nls.m4
+po.m4
+printf-posix.m4
+progtest.m4
+size_max.m4
+stdint_h.m4
+uintmax_t.m4
+visibility.m4
+wchar_t.m4
+wint_t.m4
+xsize.m4
diff --git a/po/.gitignore b/po/.gitignore
index f41181b..c676921 100644
--- a/po/.gitignore
+++ b/po/.gitignore
@@ -14,3 +14,11 @@ po2tbl.sed.in
 stamp-cat-id
 stamp-it
 .intltool-merge-cache
+Makevars.template
+Rules-quot
+boldquot.sed
+en boldquot header
+en quot header
+insert-header.sin
+quot.sed
+remove-potcdate.sin
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8bc442b..9abfe3b 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -22,17 +22,15 @@ src/orca/mag.py
 src/orca/notification_messages.py
 src/orca/orca_console_prefs.py
 [type: gettext/glade]src/orca/orca-find.ui
+src/orca/orca_gui_splash.py
 src/orca/orca_gui_find.py
 src/orca/orca_gui_main.py
 src/orca/orca_gui_prefs.py
+src/orca/orca_gui_profile.py
+src/orca/orca_gui_quit.py
 src/orca/orca.in
-[type: gettext/glade]src/orca/orca-mainwin.ui
 src/orca/orca.py
-[type: gettext/glade]src/orca/orca-preferences-warning.ui
-[type: gettext/glade]src/orca/orca-profile.ui
-[type: gettext/glade]src/orca/orca-quit.ui
 [type: gettext/glade]src/orca/orca-setup.ui
-[type: gettext/glade]src/orca/orca-splash.ui
 src/orca/phonnames.py
 src/orca/rolenames.py
 src/orca/script_utilities.py
diff --git a/src/orca/Makefile.am b/src/orca/Makefile.am
index d950e2a..7da6186 100644
--- a/src/orca/Makefile.am
+++ b/src/orca/Makefile.am
@@ -47,10 +47,10 @@ orca_python_PYTHON = \
 	orca_gui_main.py \
 	orca_gui_prefs.py \
 	orca_gui_profile.py \
+	orca_gui_quit.py \
 	orca_gui_splash.py \
 	orca_i18n.py \
 	orca_prefs.py \
-	orca_quit.py \
 	orca_state.py \
 	outline.py \
 	outloud.py \
@@ -82,12 +82,7 @@ SUBDIRS = \
 
 ui_DATA = \
 	orca-find.ui \
-	orca-mainwin.ui \
-	orca-preferences-warning.ui \
-	orca-quit.ui \
-	orca-setup.ui \
-	orca-profile.ui \
-	orca-splash.ui
+	orca-setup.ui
 
 gfx_DATA = \
 	orca-splash.png
diff --git a/src/orca/app_gui_prefs.py b/src/orca/app_gui_prefs.py
index b4ecf16..73a469e 100644
--- a/src/orca/app_gui_prefs.py
+++ b/src/orca/app_gui_prefs.py
@@ -98,17 +98,17 @@ class OrcaSetupGUI(orca_gui_prefs.OrcaSetupGUI):
         # in gail or gtk+ (see bug #554002).  Instead, we'll just hide it.
         #
         # self.get_widget("notebook").remove_page(0)
-        self.get_widget("generalVBox").hide()
+        self.get_widget("generalGrid").hide()
 
         self.get_widget("speechSystemsLabel").set_sensitive(False)
         self.get_widget("speechSystems").set_sensitive(False)
         self.get_widget("speechServersLabel").set_sensitive(False)
         self.get_widget("speechServers").set_sensitive(False)
 
-        vbox = self.appScript.getAppPreferencesGUI()
-        if vbox:
+        appPage = self.appScript.getAppPreferencesGUI()
+        if appPage:
             label = Gtk.Label(label=orca_state.activeScript.app.name)
-            self.get_widget("notebook").append_page(vbox, label)
+            self.get_widget("notebook").append_page(appPage, label)
 
     def _createPronunciationTreeView(self, pronunciations=None):
         """Create the pronunciation dictionary tree view for this specific 
diff --git a/src/orca/chat.py b/src/orca/chat.py
index 8daa36f..0a449f8 100644
--- a/src/orca/chat.py
+++ b/src/orca/chat.py
@@ -1,6 +1,6 @@
 # Orca
 #
-# Copyright 2010 Joanmarie Diggs.
+# Copyright 2010-2011 The Orca Team
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -22,7 +22,7 @@
 __id__ = "$Id$"
 __version__   = "$Revision$"
 __date__      = "$Date$"
-__copyright__ = "Copyright (c) 2010 Joanmarie Diggs."
+__copyright__ = "Copyright (c) 2010-2011 The Orca Team"
 __license__   = "LGPL"
 
 import pyatspi
@@ -398,37 +398,31 @@ class Chat:
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application. """
 
         from gi.repository import Gtk
 
-        vbox = Gtk.VBox(False, 0)
-        vbox.set_border_width(12)
-        Gtk.Widget.show(vbox)
+        grid = Gtk.Grid()
+        grid.set_border_width(12)
 
         # Translators: If this checkbox is checked, then Orca will speak
         # the name of the chat room.
         #
         label = _("_Speak Chat Room name")
-        self.speakNameCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakNameCheckButton)
-        Gtk.Box.pack_start(vbox, self.speakNameCheckButton, False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.speakNameCheckButton,
-            _settingsManager.getSetting('chatSpeakRoomName'))
+        value = _settingsManager.getSetting('chatSpeakRoomName')
+        self.speakNameCheckButton = Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakNameCheckButton.set_active(value)
+        grid.attach(self.speakNameCheckButton, 0, 0, 1, 1)
 
         # Translators: If this checkbox is checked, then Orca will tell
         # you when one of your buddies is typing a message.
         #
         label = _("Announce when your _buddies are typing")
-        self.buddyTypingCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.buddyTypingCheckButton)
-        Gtk.Box.pack_start(vbox, self.buddyTypingCheckButton, False, False, 0)
-        Gtk.ToggleButton.set_active(
-                self.buddyTypingCheckButton,
-                _settingsManager.getSetting('chatAnnounceBuddyTyping'))
+        value = _settingsManager.getSetting('chatAnnounceBuddyTyping')
+        self.buddyTypingCheckButton = Gtk.CheckButton.new_with_mnemonic(label)
+        self.buddyTypingCheckButton.set_active(value)
+        grid.attach(self.buddyTypingCheckButton, 0, 1, 1, 1)
 
         # Translators: If this checkbox is checked, then Orca will provide
         # the user with chat room specific message histories rather than just
@@ -436,81 +430,65 @@ class Chat:
         # chat rooms that they are currently in.
         #
         label = _("Provide chat room specific _message histories")
-        self.chatRoomHistoriesCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.chatRoomHistoriesCheckButton)
-        Gtk.Box.pack_start(vbox, self.chatRoomHistoriesCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.chatRoomHistoriesCheckButton,
-            _settingsManager.getSetting('chatRoomHistories'))
-
-        # "Speak Messages" frame.
-        #
+        value = _settingsManager.getSetting('chatRoomHistories')
+        self.chatRoomHistoriesCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.chatRoomHistoriesCheckButton.set_active(value)
+        grid.attach(self.chatRoomHistoriesCheckButton, 0, 2, 1, 1)
+
         messagesFrame = Gtk.Frame()
-        Gtk.Widget.show(messagesFrame)
-        Gtk.Box.pack_start(vbox, messagesFrame, False, False, 5)
+        grid.attach(messagesFrame, 0, 3, 1, 1)
 
-        messagesAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
-        Gtk.Widget.show(messagesAlignment)
-        Gtk.Container.add(messagesFrame, messagesAlignment)
-        Gtk.Alignment.set_padding(messagesAlignment, 0, 0, 12, 0)
+        # Translators: this is the title of a panel holding options for
+        # how messages in this application's chat rooms should be spoken.
+        #
+        label = Gtk.Label("<b>%s</b>" % _("Speak messages from"))
+        label.set_use_markup(True)
+        messagesFrame.set_label_widget(label)
 
-        messagesVBox = Gtk.VBox(False, 0)
-        Gtk.Widget.show(messagesVBox)
-        Gtk.Container.add(messagesAlignment, messagesVBox)
+        messagesAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
+        messagesAlignment.set_padding(0, 0, 12, 0)
+        messagesFrame.add(messagesAlignment)
+        messagesGrid = Gtk.Grid()
+        messagesAlignment.add(messagesGrid)
 
-        verbosity = _settingsManager.getSetting('chatMessageVerbosity')
+        value = _settingsManager.getSetting('chatMessageVerbosity')
 
         # Translators: Orca will speak all new chat messages as they appear
         # irrespective of whether the chat application currently has focus.
         # This is the default behaviour.
         #
-        self.allMessagesRadioButton = Gtk.RadioButton(None, _("All cha_nnels"))
-        Gtk.Widget.show(self.allMessagesRadioButton)
-        Gtk.Box.pack_start(messagesVBox, self.allMessagesRadioButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.allMessagesRadioButton,
-            verbosity == settings.CHAT_SPEAK_ALL)
+        label = _("All cha_nnels")
+        rb1 = Gtk.RadioButton.new_with_mnemonic(None, label)
+        rb1.set_active(value == settings.CHAT_SPEAK_ALL)
+        self.allMessagesRadioButton = rb1
+        messagesGrid.attach(self.allMessagesRadioButton, 0, 0, 1, 1)
 
         # Translators: Orca will speak only new chat messages for the channel
         # that currently has focus, irrespective of whether the chat
         # application has focus.
         #
-        self.focusedChannelRadioButton = Gtk.RadioButton(
-            self.allMessagesRadioButton,
-            _("A channel only if its _window is active"))
-        Gtk.Widget.show(self.focusedChannelRadioButton)
-        Gtk.Box.pack_start(messagesVBox, self.focusedChannelRadioButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.focusedChannelRadioButton,
-            verbosity == settings.CHAT_SPEAK_FOCUSED_CHANNEL)
+        label = _("A channel only if its _window is active")
+        rb2 = Gtk.RadioButton.new_with_mnemonic(None, label)
+        rb2.join_group(rb1)
+        rb2.set_active(value == settings.CHAT_SPEAK_FOCUSED_CHANNEL)
+        self.focusedChannelRadioButton = rb2
+        messagesGrid.attach(self.focusedChannelRadioButton, 0, 1, 1, 1)
 
         # Translators: Orca will speak new chat messages for all channels
         # only when the chat application has focus.
         #
-        self.allChannelsRadioButton = Gtk.RadioButton(
-            self.allMessagesRadioButton,
-            _("All channels when an_y %s window is active") \
-              % self._script.app.name)
-        Gtk.Widget.show(self.allChannelsRadioButton)
-        Gtk.Box.pack_start(messagesVBox, self.allChannelsRadioButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.allChannelsRadioButton,
-            verbosity == settings.CHAT_SPEAK_ALL_IF_FOCUSED)
+        label = _("All channels when an_y %s window is active") % \
+            self._script.app.name
+        rb3 = Gtk.RadioButton.new_with_mnemonic(None, label)
+        rb3.join_group(rb1)
+        rb3.set_active(value == settings.CHAT_SPEAK_ALL_IF_FOCUSED)
+        self.allChannelsRadioButton = rb3
+        messagesGrid.attach(self.allChannelsRadioButton, 0, 2, 1, 1)
 
-        # Translators: this is the title of a panel holding options for
-        # how messages in this application's chat rooms should be spoken.
-        #
-        messagesLabel = Gtk.Label(label="<b>%s</b>" % _("Speak messages from"))
-        Gtk.Widget.show(messagesLabel)
-        Gtk.Frame.set_label_widget(messagesFrame, messagesLabel)
-        messagesFrame.set_shadow_type(Gtk.ShadowType.NONE)
-        Gtk.Label.set_use_markup(messagesLabel, True)
+        grid.show_all()
 
-        return vbox
+        return grid
 
     def setAppPreferences(self, prefs):
         """Write out the application specific preferences lines and set the
diff --git a/src/orca/orca-find.ui b/src/orca/orca-find.ui
index 6ac746b..1b2c1ed 100644
--- a/src/orca/orca-find.ui
+++ b/src/orca/orca-find.ui
@@ -1,229 +1,215 @@
-<?xml version="1.0"?>
-<!--*- mode: xml -*-->
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
+  <!-- interface-requires gtk+ 2.12 -->
   <object class="GtkDialog" id="findDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">12</property>
     <property name="title" translatable="yes">Find</property>
-    <property name="type">GTK_WINDOW_TOPLEVEL</property>
-    <property name="window_position">GTK_WIN_POS_NONE</property>
-    <property name="modal">True</property>
     <property name="resizable">False</property>
-    <property name="destroy_with_parent">False</property>
-    <property name="decorated">True</property>
-    <property name="skip_taskbar_hint">False</property>
-    <property name="skip_pager_hint">False</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-    <property name="focus_on_map">True</property>
-    <property name="urgency_hint">False</property>
-    <accessibility>
-    
-  </accessibility>
-    <signal handler="findDialogDestroyed" last_modification_time="Mon, 09 Oct 2006 20:29:07 GMT" name="destroy"/>
+    <property name="modal">True</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="accessible">
+      <object class="AtkObject" id="findDialog-atkobject">
+        <property name="AtkObject::accessible-name" translatable="yes">Orca Find Dialog</property>
+      </object>
+    </child>
+    <signal name="destroy" handler="findDialogDestroyed" swapped="no"/>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkBox" id="dialogInternalBox">
         <property name="visible">True</property>
-        <property name="homogeneous">False</property>
-        <property name="spacing">0</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
         <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="closeButton">
+                <property name="label">gtk-close</property>
                 <property name="visible">True</property>
-                <property name="can_default">True</property>
                 <property name="can_focus">True</property>
-                <property name="label">gtk-close</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="use_stock">True</property>
-                <property name="relief">GTK_RELIEF_NORMAL</property>
-                <property name="focus_on_click">True</property>
-                <accessibility>
-		
-	      </accessibility>
-                <signal handler="closeButtonClicked" last_modification_time="Wed, 11 Oct 2006 01:35:54 GMT" name="clicked"/>
-                <accelerator key="c" modifiers="GDK_MOD1_MASK" signal="activate"/>
+                <accelerator key="c" signal="activate" modifiers="GDK_MOD1_MASK"/>
                 <child internal-child="accessible">
-                  <object class="AtkObject" id="a11y-closeButton1">
-                    <property name="AtkObject::accessible_name" translatable="yes">Close</property>
+                  <object class="AtkObject" id="closeButton-atkobject">
+                    <property name="AtkObject::accessible-name" translatable="yes">Close</property>
                   </object>
                 </child>
+                <signal name="clicked" handler="closeButtonClicked" swapped="no"/>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
             </child>
             <child>
               <object class="GtkButton" id="findButton">
+                <property name="label">gtk-find</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
+                <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="has_default">True</property>
-                <property name="can_focus">True</property>
-                <property name="label">gtk-find</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="use_stock">True</property>
-                <property name="relief">GTK_RELIEF_NORMAL</property>
-                <property name="focus_on_click">True</property>
-                <signal handler="findButtonClicked" last_modification_time="Tue, 10 Oct 2006 02:21:36 GMT" name="clicked"/>
-                <accelerator key="f" modifiers="GDK_MOD1_MASK" signal="activate"/>
+                <accelerator key="f" signal="activate" modifiers="GDK_MOD1_MASK"/>
+                <signal name="clicked" handler="findButtonClicked" swapped="no"/>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
             </child>
           </object>
           <packing>
-            <property name="padding">0</property>
             <property name="expand">False</property>
             <property name="fill">True</property>
-            <property name="pack_type">GTK_PACK_END</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
           </packing>
         </child>
         <child>
-          <object class="GtkVBox" id="vbox1">
-            <property name="border_width">6</property>
+          <object class="GtkGrid" id="findGrid">
             <property name="visible">True</property>
-            <property name="homogeneous">False</property>
-            <property name="spacing">12</property>
+            <property name="can_focus">False</property>
+            <property name="row_spacing">20</property>
+            <property name="column_spacing">20</property>
             <child>
-              <object class="GtkHBox" id="hbox1">
-                <property name="border_width">6</property>
+              <object class="GtkGrid" id="searchForGrid">
                 <property name="visible">True</property>
-                <property name="homogeneous">False</property>
-                <property name="spacing">0</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">5</property>
                 <child>
                   <object class="GtkLabel" id="searchForLabel">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
                     <property name="label" translatable="yes">_Search for:</property>
-                    <property name="use_underline">True</property>
                     <property name="use_markup">True</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="use_underline">True</property>
                     <property name="mnemonic_widget">searchForEntry</property>
-                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
                     <property name="width_chars">12</property>
-                    <property name="single_line_mode">False</property>
-                    <property name="angle">0</property>
-                    <accessibility>
-		    
-		  </accessibility>
                     <child internal-child="accessible">
-                      <object class="AtkObject" id="a11y-searchForLabel1">
-                        <property name="AtkObject::accessible_name" translatable="yes">Search for:</property>
+                      <object class="AtkObject" id="searchForLabel-atkobject">
+                        <property name="AtkObject::accessible-name" translatable="yes">Search for:</property>
                       </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="padding">0</property>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkEntry" id="searchForEntry">
                     <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">&#x25CF;</property>
+                    <property name="hexpand">True</property>
+                    <property name="invisible_char">â</property>
                     <property name="activates_default">True</property>
-                    <accessibility>
-		    
-		  </accessibility>
-                    <signal handler="searchForEntryChanged" last_modification_time="Wed, 11 Oct 2006 02:59:44 GMT" name="changed"/>
+                    <property name="invisible_char_set">True</property>
                     <child internal-child="accessible">
-                      <object class="AtkObject" id="a11y-searchForEntry1">
-                        <property name="AtkObject::accessible_name" translatable="yes">Search for:</property>
+                      <object class="AtkObject" id="searchForEntry-atkobject">
+                        <property name="AtkObject::accessible-name" translatable="yes">Search for:</property>
                       </object>
                     </child>
+                    <signal name="changed" handler="searchForEntryChanged" swapped="no"/>
                   </object>
                   <packing>
-                    <property name="padding">0</property>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">2</property>
+                    <property name="height">1</property>
                   </packing>
                 </child>
+                <child>
+                  <placeholder/>
+                </child>
               </object>
               <packing>
-                <property name="padding">0</property>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
               </packing>
             </child>
             <child>
-              <object class="GtkHBox" id="hbox2">
-                <property name="border_width">6</property>
+              <object class="GtkGrid" id="searchOptionsGrid">
                 <property name="visible">True</property>
-                <property name="homogeneous">False</property>
-                <property name="spacing">0</property>
+                <property name="can_focus">False</property>
+                <property name="valign">end</property>
+                <property name="row_spacing">20</property>
+                <property name="column_spacing">20</property>
                 <child>
-                  <object class="GtkFrame" id="startingPointFrame">
+                  <object class="GtkFrame" id="startFromFrame">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="label_xalign">0</property>
-                    <property name="label_yalign">0.5</property>
-                    <property name="shadow_type">GTK_SHADOW_NONE</property>
+                    <property name="shadow_type">none</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment1">
+                      <object class="GtkAlignment" id="startFromAlignment">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">1</property>
                         <property name="yalign">0</property>
-                        <property name="xscale">1</property>
                         <property name="yscale">0</property>
-                        <property name="top_padding">0</property>
-                        <property name="bottom_padding">0</property>
                         <property name="left_padding">12</property>
-                        <property name="right_padding">0</property>
                         <child>
-                          <object class="GtkVBox" id="vbox2">
+                          <object class="GtkGrid" id="startFromGrid">
                             <property name="visible">True</property>
-                            <property name="homogeneous">False</property>
-                            <property name="spacing">0</property>
+                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkRadioButton" id="currentLocationRadioButton">
+                                <property name="label" translatable="yes">C_urrent location</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">C_urrent location</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="focus_on_click">True</property>
+                                <property name="xalign">0</property>
                                 <property name="active">True</property>
-                                <property name="inconsistent">False</property>
                                 <property name="draw_indicator">True</property>
-                                <signal handler="startingPointChanged" last_modification_time="Tue, 10 Oct 2006 02:43:13 GMT" name="toggled"/>
+                                <signal name="toggled" handler="startingPointChanged" swapped="no"/>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkRadioButton" id="topRadioButton">
+                                <property name="label" translatable="yes">_Top of window</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">_Top of window</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="focus_on_click">True</property>
-                                <property name="active">False</property>
-                                <property name="inconsistent">False</property>
+                                <property name="xalign">0</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">currentLocationRadioButton</property>
-                                <accessibility>
-				
-			      </accessibility>
-                                <signal handler="startingPointChanged" last_modification_time="Tue, 10 Oct 2006 02:43:31 GMT" name="toggled"/>
                                 <child internal-child="accessible">
-                                  <object class="AtkObject" id="a11y-topRadioButton1">
-                                    <property name="AtkObject::accessible_name" translatable="yes">Top of window</property>
+                                  <object class="AtkObject" id="topRadioButton-atkobject">
+                                    <property name="AtkObject::accessible-name" translatable="yes">Top of window</property>
                                   </object>
                                 </child>
+                                <signal name="toggled" handler="startingPointChanged" swapped="no"/>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                           </object>
@@ -231,177 +217,186 @@
                       </object>
                     </child>
                     <child type="label">
-                      <object class="GtkLabel" id="startFromFrame">
+                      <object class="GtkLabel" id="startFromLabel">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="label" translatable="yes">&lt;b&gt;Start from:&lt;/b&gt;</property>
-                        <property name="use_underline">False</property>
                         <property name="use_markup">True</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>
-                        <accessibility>
-			
-		      </accessibility>
                         <child internal-child="accessible">
-                          <object class="AtkObject" id="a11y-startFromFrame1">
-                            <property name="AtkObject::accessible_name" translatable="yes">Start from:</property>
+                          <object class="AtkObject" id="startFromLabel-atkobject">
+                            <property name="AtkObject::accessible-name" translatable="yes">Start from:</property>
                           </object>
                         </child>
                       </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="padding">6</property>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkAlignment" id="alignment3">
+                  <object class="GtkFrame" id="searchDirectionFrame">
                     <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">15</property>
-                    <property name="bottom_padding">0</property>
-                    <property name="left_padding">0</property>
-                    <property name="right_padding">0</property>
+                    <property name="can_focus">False</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
                     <child>
-                      <object class="GtkVBox" id="vbox3">
+                      <object class="GtkAlignment" id="alignment3">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
-                        <child>
-                          <object class="GtkCheckButton" id="matchCaseCheckbox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">_Match case</property>
-                            <property name="use_underline">True</property>
-                            <property name="relief">GTK_RELIEF_NORMAL</property>
-                            <property name="focus_on_click">True</property>
-                            <property name="active">False</property>
-                            <property name="inconsistent">False</property>
-                            <property name="draw_indicator">True</property>
-                            <signal handler="matchCaseChecked" last_modification_time="Wed, 11 Oct 2006 00:19:48 GMT" name="toggled"/>
-                          </object>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
-                        </child>
+                        <property name="can_focus">False</property>
+                        <property name="left_padding">12</property>
                         <child>
-                          <object class="GtkCheckButton" id="matchEntireWordCheckbox">
+                          <object class="GtkGrid" id="grid3">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Match _entire word only</property>
-                            <property name="use_underline">True</property>
-                            <property name="relief">GTK_RELIEF_NORMAL</property>
-                            <property name="focus_on_click">True</property>
-                            <property name="active">False</property>
-                            <property name="inconsistent">False</property>
-                            <property name="draw_indicator">True</property>
-                            <signal handler="matchEntireWordChecked" last_modification_time="Wed, 11 Oct 2006 00:23:23 GMT" name="toggled"/>
+                            <property name="can_focus">False</property>
+                            <child>
+                              <object class="GtkCheckButton" id="wrapAroundCheckbox">
+                                <property name="label" translatable="yes">_Wrap around</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="wrapAroundChecked" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="searchBackwardsCheckbox">
+                                <property name="label" translatable="yes">Search _backwards</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="searchBackwardsChecked" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
                           </object>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
                         </child>
                       </object>
                     </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="searchDirectionLabel">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Search direction:&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                    </child>
                   </object>
                   <packing>
-                    <property name="padding">15</property>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkAlignment" id="alignment4">
+                  <object class="GtkFrame" id="resultsMustFrame">
                     <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">15</property>
-                    <property name="bottom_padding">0</property>
-                    <property name="left_padding">0</property>
-                    <property name="right_padding">5</property>
+                    <property name="can_focus">False</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
                     <child>
-                      <object class="GtkVBox" id="vbox4">
+                      <object class="GtkAlignment" id="alignment2">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
-                        <child>
-                          <object class="GtkCheckButton" id="searchBackwardsCheckbox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Search _backwards</property>
-                            <property name="use_underline">True</property>
-                            <property name="relief">GTK_RELIEF_NORMAL</property>
-                            <property name="focus_on_click">True</property>
-                            <property name="active">False</property>
-                            <property name="inconsistent">False</property>
-                            <property name="draw_indicator">True</property>
-                            <signal handler="searchBackwardsChecked" last_modification_time="Wed, 11 Oct 2006 01:00:47 GMT" name="toggled"/>
-                          </object>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
-                        </child>
+                        <property name="can_focus">False</property>
+                        <property name="left_padding">12</property>
                         <child>
-                          <object class="GtkCheckButton" id="wrapAroundCheckbox">
+                          <object class="GtkGrid" id="grid2">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">_Wrap around</property>
-                            <property name="use_underline">True</property>
-                            <property name="relief">GTK_RELIEF_NORMAL</property>
-                            <property name="focus_on_click">True</property>
-                            <property name="active">True</property>
-                            <property name="inconsistent">False</property>
-                            <property name="draw_indicator">True</property>
-                            <signal handler="wrapAroundChecked" last_modification_time="Tue, 10 Oct 2006 02:44:45 GMT" name="toggled"/>
+                            <property name="can_focus">False</property>
+                            <child>
+                              <object class="GtkCheckButton" id="matchCaseCheckbox">
+                                <property name="label" translatable="yes">_Match case</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="matchCaseChecked" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="matchEntireWordCheckbox">
+                                <property name="label" translatable="yes">Match _entire word only</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="matchEntireWordChecked" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
                           </object>
-                          <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
                         </child>
                       </object>
                     </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="resultsMustLabel">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Results must:&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                    </child>
                   </object>
                   <packing>
-                    <property name="padding">0</property>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
                   </packing>
                 </child>
               </object>
               <packing>
-                <property name="padding">10</property>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="padding">5</property>
             <property name="expand">True</property>
             <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
@@ -410,10 +405,5 @@
       <action-widget response="-7">closeButton</action-widget>
       <action-widget response="0">findButton</action-widget>
     </action-widgets>
-    <child internal-child="accessible">
-      <object class="AtkObject" id="a11y-findDialog1">
-        <property name="AtkObject::accessible_name" translatable="yes">Orca Find Dialog</property>
-      </object>
-    </child>
   </object>
 </interface>
diff --git a/src/orca/orca_gui_main.py b/src/orca/orca_gui_main.py
index dc2ee45..98b26a8 100644
--- a/src/orca/orca_gui_main.py
+++ b/src/orca/orca_gui_main.py
@@ -25,66 +25,72 @@ __date__      = "$Date$"
 __copyright__ = "Copyright (c) 2005-2009 Sun Microsystems Inc."
 __license__   = "LGPL"
 
-import os
+import locale
 import sys
 from gi.repository import Gtk
-import locale
 
 import orca
-import orca_gtkbuilder
 import orca_platform
 import orca_state
 
-from orca_i18n import _           # for gettext support
+from orca_i18n import _
 
 OS = None
 
-class OrcaMainGUI(orca_gtkbuilder.GtkBuilderWrapper):
+class OrcaMainGUI(Gtk.Window):
+
+    def __init__(self):
+        Gtk.Window.__init__(self)
+        self.set_title(_('Orca Screen Reader'))
+        self.set_has_resize_grip(False)
+
+        grid = Gtk.Grid()
+        grid.set_border_width(5)
+        self.add(grid)
+
+        preferencesButton = Gtk.Button.new_from_stock('gtk-preferences')
+        preferencesButton.connect('clicked', orca.showPreferencesGUI)
+        grid.attach(preferencesButton, 0, 0, 1, 1)
+
+        quitButton = Gtk.Button.new_from_stock('gtk-quit')
+        quitButton.connect('clicked', orca.quitOrca)
+        grid.attach(quitButton, 1, 0, 1, 1)
 
-    def __init__(self, fileName, windowName):
-        orca_gtkbuilder.GtkBuilderWrapper.__init__(self, fileName, windowName)
         self.aboutDialog = None
+        aboutButton = Gtk.Button.new_from_stock('gtk-about')
+        aboutButton.connect('clicked', self.aboutButtonClicked)
+        grid.attach(aboutButton, 2, 0, 1, 1)
+
+        helpButton = Gtk.Button.new_from_stock('gtk-help')
+        helpButton.connect('clicked', orca.helpForOrca)
+        grid.attach(helpButton, 3, 0, 1, 1)
+
+        accelGroup = Gtk.AccelGroup()
+        (keyVal, modMask) = Gtk.accelerator_parse('F1')
+        helpButton.add_accelerator('clicked', accelGroup, keyVal, modMask, 0)
+        self.add_accel_group(accelGroup)
+
+        self.connect('destroy', self.onDestroy)
 
     def init(self):
         pass
 
     def showGUI(self):
-        """Show the Orca main window GUI. This assumes that the GUI has 
-        already been created.
-        """
-
-        mainWindow = self.get_widget("mainWindow")
-
-        accelGroup = Gtk.AccelGroup()
-        mainWindow.add_accel_group(accelGroup)
-        helpButton = self.get_widget("helpButton")
-        (keyVal, modifierMask) = Gtk.accelerator_parse("F1")
-        helpButton.add_accelerator("clicked",
-                                   accelGroup,
-                                   keyVal,
-                                   modifierMask,
-                                   0)
+        """Show the Orca main window GUI."""
 
+        self.show_all()
         ts = orca_state.lastInputEventTimestamp
         if ts == 0:
             ts = Gtk.get_current_event_time()
-        mainWindow.present_with_time(ts)
+        self.present_with_time(ts)
 
     def hideGUI(self):
-        """Hide the Orca main window GUI. This assumes that the GUI has
-        already been created.
-        """
+        """Hide the Orca main window GUI."""
 
-        self.get_widget("mainWindow").hide()
+        self.hide()
 
     def aboutButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the aboutButton
-        GtkButton widget. The user has clicked the About button.
-        Call the method to bring up the About dialog.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+        """Handler for the 'clicked' signal of the aboutButton GtkButton."""
 
         if self.aboutDialog:
             return
@@ -154,52 +160,13 @@ class OrcaMainGUI(orca_gtkbuilder.GtkBuilderWrapper):
         self.aboutDialog.show()
 
     def aboutDialogOnResponse(self, dialog, responseID):
-        """Signal handler for the About Dialog's "response" signal."""
+        """Signal handler for the About Dialog's 'response' signal."""
 
         dialog.destroy()
         self.aboutDialog = None
 
-    def helpButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the helpButton
-           GtkButton widget. The user has clicked the Help button.
-           Call the method to bring up the Orca help window.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        orca.helpForOrca()
-
-    def quitButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the quitButton
-           GtkButton widget. The user has clicked the Quit button.
-           Call the method to bring up the Quit dialog.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        orca.quitOrca()
-
-    def preferencesButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the preferencesButton
-           GtkButton widget. The user has clicked the Preferences button.
-           Call the method to bring up the Preferences dialog.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        orca.showPreferencesGUI()
-
-    def mainWindowDestroyed(self, widget):
-        """Signal handler for the "destroyed" signal for the mainWindow
-           GtkWindow widget. Reset OS to None, then call the method to 
-           bring up the quit dialog.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+    def onDestroy(self, widget):
+        """Signal handler for the 'destroy' signal for this window."""
 
         global OS
 
@@ -210,12 +177,7 @@ def showMainUI():
     global OS
 
     if not OS:
-        uiFile = os.path.join(orca_platform.prefix,
-                              orca_platform.datadirname,
-                              orca_platform.package,
-                              "ui",
-                              "orca-mainwin.ui")
-        OS = OrcaMainGUI(uiFile, "mainWindow")
+        OS = OrcaMainGUI()
         OS.init()
 
     OS.showGUI()
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index f122c19..677f897 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -3475,39 +3475,40 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
 
         self.__initProfileCombo()
 
-class WarningDialogGUI(orca_gtkbuilder.GtkBuilderWrapper):
+class WarningDialogGUI(Gtk.MessageDialog):
 
-    def getPrefsWarningDialog(self):
-        """Return a handle to the Orca Preferences warning dialog.
-        """
+    def __init__(self):
+        Gtk.MessageDialog.__init__(self)
+        self.set_property('message-type', Gtk.MessageType.INFO)
+        msg = _('You already have an instance of an Orca preferences dialog ' \
+                'open.\nPlease close it before opening a new one.')
+        self.set_property('text', msg)
 
-        return self.orcaPrefsWarningDialog
+        self.add_button('gtk-ok', Gtk.ResponseType.OK)
+        self.connect('response', self.onResponse)
+        self.connect('destroy', self.onDestroy)
 
-    def orcaPrefsWarningDialogDestroyed(self, widget):
-        """Signal handler for the "destroyed" signal for the 
-        orcaPrefsWarningDialog GtkWindow widget. Reset orca_state.orcaWD
-        to None, so that the GUI can be rebuilt from the GtkBuilder file the
-        next time that this warning dialog has to be displayed.
+    def init(self):
+        pass
 
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+    def showGUI(self):
+        """Show the Warning dialog."""
 
-        orca_state.orcaWD = None
+        ts = orca_state.lastInputEventTimestamp
+        if ts == 0:
+            ts = Gtk.get_current_event_time()
+        self.present_with_time(ts)
 
-    def orcaPrefsWarningDialogOKButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the
-        orcaPrefsWarningDialogOKButton GtkButton widget. The user has clicked
-        the OK button in the Orca Application Preferences warning dialog.
-        This dialog informs the user that they already have an instance
-        of an Orca preferences dialog open, and that they will need to 
-        close it before opening a new one.
+    def onResponse(self, widget, response):
+        """Signal handler for the responses emitted by the dialog."""
 
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+        if response == Gtk.ResponseType.OK:
+            self.destroy()
 
-        self.orcaPrefsWarningDialog.destroy()
+    def onDestroy(self, widget):
+        """Signal handler for the 'destroy' signal of the Warning dialog."""
+
+        orca_state.orcaWD = None
 
 def showPreferencesUI():
     if not orca_state.appOS and not orca_state.orcaOS:
@@ -3534,23 +3535,11 @@ def showPreferencesUI():
         orca_state.orcaOS = OrcaSetupGUI(orca_state.prefsUIFile,
                                          "orcaSetupWindow", prefsDict)
         orca_state.orcaOS.init()
+        orca_state.orcaOS.showGUI()
     else:
         if not orca_state.orcaWD:
-            orca_state.orcaWarningDialogUIFile = \
-                os.path.join(orca_platform.prefix,
-                             orca_platform.datadirname,
-                             orca_platform.package,
-                             "ui",
-                             "orca-preferences-warning.ui")
-            orca_state.orcaWD = \
-                WarningDialogGUI(orca_state.orcaWarningDialogUIFile,
-                                 "orcaPrefsWarningDialog")
-            warningDialog = orca_state.orcaWD.getPrefsWarningDialog()
-            warningDialog.realize()
-            warningDialog.show()
-        return
-
-    orca_state.orcaOS.showGUI()
+            orca_state.orcaWD = WarningDialogGUI()
+        orca_state.orcaWD.showGUI()
 
 def main():
     locale.setlocale(locale.LC_ALL, '')
diff --git a/src/orca/orca_gui_profile.py b/src/orca/orca_gui_profile.py
index c1bdcab..17db9e7 100644
--- a/src/orca/orca_gui_profile.py
+++ b/src/orca/orca_gui_profile.py
@@ -19,7 +19,7 @@
 # Free Software Foundation, Inc., Franklin Street, Fifth Floor,
 # Boston MA  02110-1301 USA.
 
-"""Displays a GUI for the Orca profiles window"""
+"""Displays the Save Profile As dialog."""
 
 __id__        = "$Id$"
 __version__   = "$Revision$"
@@ -27,123 +27,115 @@ __date__      = "$Date$"
 __copyright__ = "Copyright (c) 2010 Consorcio Fernando de los Rios."
 __license__   = "LGPL"
 
-import os
+import locale
 import sys
 from gi.repository import Gtk
-import locale
 
-import orca_gtkbuilder
 import orca_state
-import orca_platform
+from orca_i18n import _
 
 OS = None
 newProfile = None
 
+class OrcaProfileGUI(Gtk.Dialog):
 
-class OrcaProfileGUI(orca_gtkbuilder.GtkBuilderWrapper):
+    def __init__(self):
+        """Initialize the Orca profile configuration GUI."""
 
-    def __init__(self, fileName, windowName):
-        """Initialize the Orca profile configuration GUI.
+        Gtk.Dialog.__init__(self)
 
-        Arguments:
-        - fileName: name of the GtkBuilder file.
-        - windowName: name of the component to get from the GtkBuilder file.
-        """
+        # Translators: Profiles in Orca make it possible for users to
+        # quickly switch amongst a group of pre-defined settings (e.g.
+        # an 'English' profile for reading text written in English using
+        # an English-language speech synthesizer and braille rules, and
+        # a similar 'Spanish' profile for reading Spanish text. The
+        # following string is the title of a dialog in which users can
+        # save a newly-defined profile.
+        #
+        self.set_title(_('Save Profile As'))
+        self.set_has_resize_grip(False)
+
+        self.add_button('gtk-cancel', Gtk.ResponseType.CANCEL)
+        self.add_button('gtk-save', Gtk.ResponseType.ACCEPT)
+
+        grid = Gtk.Grid()
+        grid.set_property('margin', 12)
+        grid.set_row_spacing(10)
+        grid.set_column_spacing(10)
+
+        # Right now the content area is a GtkBox. We'll need to update
+        # this once GtkBox is fully deprecated.
+        contentArea = self.get_content_area()
+        contentArea.pack_start(grid, True, True, 0)
+
+        self.profileEntry = Gtk.Entry()
+        self.profileEntry.set_property('hexpand', True)
+        self.profileEntry.set_activates_default(True)
+        grid.attach(self.profileEntry, 1, 0, 1, 1)
+
+        # Translators: Profiles in Orca make it possible for users to
+        # quickly switch amongst a group of pre-defined settings (e.g.
+        # an 'English' profile for reading text written in English using
+        # an English-language speech synthesizer and braille rules, and
+        # a similar 'Spanish' profile for reading Spanish text. The
+        # following string is the label for a text entry in which the user
+        # enters the name of a new settings profile being saved via the
+        # 'Save Profile As' dialog.
+        #
+        label = Gtk.Label(_('_Profile Name:'))
+        label.set_use_underline(True)
+        label.set_mnemonic_widget(self.profileEntry)
+        grid.attach(label, 0, 0, 1, 1)
 
-        orca_gtkbuilder.GtkBuilderWrapper.__init__(self, fileName, windowName)
+        defaultButton = self.get_widget_for_response(Gtk.ResponseType.ACCEPT)
+        defaultButton.set_property('can-default', True)
+        defaultButton.set_property('has-default', True)
+
+        self.connect('response', self.onResponse)
+        self.connect('destroy', self.onDestroy)
 
-        # Initialize variables to None to keep pylint happy.
-        #
         self.searchString = None
         self.profileString = None
         self.prefsDialog = None
 
     def init(self):
-        # Initialize the dialog box controls.
-        self.profileString = ""
+        self.profileString = ''
 
     def showGUI(self, prefsDialog):
-        """Show the Orca profile dialog. This assumes that the GUI has
-        already been created.
-        """
+        """Show the Save Profile As dialog."""
 
+        self.show_all()
         self.prefsDialog = prefsDialog
-        profileDialog = self.get_widget("profileDialog")
-
-        try:
-            profileEntry = self.get_widget("profileEntry")
-            profileEntry.set_text(self.profileString)
-        except:
-            pass
+        self.profileEntry.set_text(self.profileString)
 
         ts = orca_state.lastInputEventTimestamp
         if ts == 0:
             ts = Gtk.get_current_event_time()
-        profileDialog.present_with_time(ts)
-
-    def cancelButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the cancelButton
-           GtkButton widget. The user has clicked the Cancel button.
-           Hide the dialog.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        self.get_widget("profileDialog").hide()
+        self.present_with_time(ts)
 
-    def on_saveProfileButton_clicked(self, widget):
-        """Signal handler for the "clicked" signal for the findButton
-           GtkButton widget. The user has clicked the Find button.
-           Call the method to begin the search.
+    def onResponse(self, widget, response):
+        """Signal handler for the responses emitted by the dialog."""
 
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+        if response in [Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT]:
+            self.hide()
+            return
 
-        # Merely hiding the dialog causes the find to take place before
-        # the original window has fully regained focus.
-        global newProfile
+        if response == Gtk.ResponseType.ACCEPT:
+            global newProfile
 
-        if self.get_widget("profileEntry").get_text() != '':
-            newProfile = self.get_widget("profileEntry").get_text()
-            self.get_widget("profileDialog").destroy()
+            newProfile = self.profileEntry.get_text()
+            if newProfile:
+                self.destroy()
+            if self.prefsDialog:
+                self.prefsDialog.saveProfile(newProfile)
 
-        if self.prefsDialog:
-            self.prefsDialog.saveProfile(newProfile)
-
-    # From now, this method can't have sense ...
-    def onProfileEntryChanged(self, widget, data=None):
-        """Signal handler for the "changed" signal for the ProfileEntry
-           GtkEntry widget."""
-
-        if self.get_widget("profileEntry").get_text() != '':
-            self.get_widget('availableProfilesCombo').set_sensitive(False)
-        else:
-            self.get_widget('availableProfilesCombo').set_sensitive(True)
-
-
-    def profileDialogDestroyed(self, widget):
-        """Signal handler for the "destroyed" signal for the findDialog
-           GtkWindow widget. Reset OS to None.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+    def onDestroy(self, widget):
+        """Signal handler for the 'destroy' signal of the dialog."""
 
         global OS
 
         OS = None
 
-    def __getAvailableProfiles(self):
-        """Get available user profiles"""
-
-        import orca
-
-        _settingsManager = getattr(orca, '_settingsManager')
-
-        return _settingsManager.availableProfiles()
-
 def showProfileUI(prefsDialog=None):
     global OS
     global newProfile
@@ -151,17 +143,11 @@ def showProfileUI(prefsDialog=None):
     newProfile = None
 
     if not OS:
-        uiFile = os.path.join(orca_platform.prefix,
-                              orca_platform.datadirname,
-                              orca_platform.package,
-                              "ui",
-                              "orca-profile.ui")
-        OS = OrcaProfileGUI(uiFile, "profileDialog")
+        OS = OrcaProfileGUI()
         OS.init()
 
     OS.showGUI(prefsDialog)
 
-
 def main():
     locale.setlocale(locale.LC_ALL, '')
 
diff --git a/src/orca/orca_gui_quit.py b/src/orca/orca_gui_quit.py
new file mode 100644
index 0000000..fb69cf5
--- /dev/null
+++ b/src/orca/orca_gui_quit.py
@@ -0,0 +1,103 @@
+# Orca
+#
+# Copyright 2006-2008 Sun Microsystems Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., Franklin Street, Fifth Floor,
+# Boston MA  02110-1301 USA.
+
+"""Displays a GUI for the user to quit Orca."""
+
+__id__        = "$Id$"
+__version__   = "$Revision$"
+__date__      = "$Date$"
+__copyright__ = "Copyright (c) 2005-2008 Sun Microsystems Inc."
+__license__   = "LGPL"
+
+import locale
+import sys
+from gi.repository import Gtk
+
+import orca
+import orca_state
+import settings
+from orca_i18n import _
+
+OS = None
+
+class OrcaQuitGUI(Gtk.MessageDialog):
+
+    def __init__(self):
+        Gtk.MessageDialog.__init__(self)
+        self.set_property('message-type', Gtk.MessageType.QUESTION)
+
+        self.set_property('text', _('Quit Orca?'))
+        self.format_secondary_text(
+            _('This will stop all speech and braille output.'))
+
+        self.add_button('gtk-cancel', Gtk.ResponseType.CANCEL)
+        self.add_button('gtk-quit', Gtk.ResponseType.ACCEPT)
+
+        self.connect('response', self.onResponse)
+        self.connect('destroy', self.onDestroy)
+
+    def init(self):
+        pass
+
+    def showGUI(self):
+        """Show the Quit dialog."""
+
+        ts = orca_state.lastInputEventTimestamp
+        if ts == 0:
+            ts = Gtk.get_current_event_time()
+        self.present_with_time(ts)
+
+    def onResponse(self, widget, response):
+        """Signal handler for the responses emitted by the dialog."""
+
+        if response == Gtk.ResponseType.ACCEPT:
+            orca.shutdown()
+            return
+
+        if response in [Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT]:
+            self.hide()
+            if settings.showMainWindow:
+                orca.showMainWindowGUI()
+
+    def onDestroy(self, widget):
+        """Signal handler for the 'destroy' signal of the dialog."""
+
+        global OS
+
+        OS = None
+
+def showQuitUI():
+    global OS
+
+    if not OS:
+        OS = OrcaQuitGUI()
+        OS.init()
+
+    OS.showGUI()
+
+def main():
+    locale.setlocale(locale.LC_ALL, '')
+
+    showQuitUI()
+
+    Gtk.main()
+    sys.exit(0)
+
+if __name__ == "__main__":
+    main()
diff --git a/src/orca/orca_gui_splash.py b/src/orca/orca_gui_splash.py
index 85ba04a..0cb859d 100644
--- a/src/orca/orca_gui_splash.py
+++ b/src/orca/orca_gui_splash.py
@@ -28,37 +28,39 @@ __license__   = "LGPL"
 import os
 import sys
 import debug
+from gi.repository import Gdk
 from gi.repository import Gtk
 from gi.repository import GObject
 import locale
 
-import orca_gtkbuilder
 import orca_state
 import orca_platform
+from orca_i18n import _
 
 OS = None
 
-class OrcaSplashGUI(orca_gtkbuilder.GtkBuilderWrapper):
+class OrcaSplashGUI(Gtk.Window):
 
-    def __init__(self, fileName, windowName):
-        """
-        Initialize the Orca splash GUI.
-
-        Arguments:
-        - fileName: name of the GtkBuilder file.
-        - windowName: name of the component to get from the GtkBuilder file.
-        """
+    def __init__(self):
+        """Initialize the Orca splash GUI."""
 
-        orca_gtkbuilder.GtkBuilderWrapper.__init__(self, fileName, windowName)
+        Gtk.Window.__init__(self)
         self.activeScript = None
+        self.set_title(_('Orca'))
+        self.set_skip_taskbar_hint(True)
+        self.set_skip_pager_hint(True)
+        self.set_modal(True)
+        self.set_decorated(False)
+        self.set_type_hint(Gdk.WindowTypeHint.SPLASHSCREEN)
+        self.set_position(Gtk.WindowPosition.CENTER)
 
     def init(self):
-        """ Initialize the splash screen dialog. """
+        """Initialize the splash screen."""
 
         self.activeScript = orca_state.activeScript
 
     def showGUI(self):
-        """ Show the splash screen dialog. """
+        """Show the splash screen dialog."""
 
         imageFile = os.path.join(orca_platform.prefix,
                     orca_platform.datadirname,
@@ -69,45 +71,36 @@ class OrcaSplashGUI(orca_gtkbuilder.GtkBuilderWrapper):
         image = Gtk.Image()
         image.set_from_file(imageFile)
 
-        splashScreen = self.get_widget("splashWindow")
-        box = self.get_widget("splash_vbox")
-        box.pack_start(image, True, True, 0)
+        self.add(image)
 
         try:
-            splashScreen.realize()
+            self.realize()
         except:
             debug.printException(debug.LEVEL_FINEST)
 
-        splashScreen.set_transient_for(None)
-        box.grab_focus()
-        splashScreen.show_all()
+        self.set_transient_for(None)
+        self.grab_focus()
+        self.show_all()
 
-        GObject.timeout_add(3000, splashScreen.hide)
+        GObject.timeout_add(3000, self.hideGUI)
 
         while Gtk.events_pending():
             Gtk.main_iteration()
 
-        return splashScreen
+        return self
 
     def hideGUI(self):
         """Hide the Orca splash screen GUI. This assumes that the GUI has
         already been created.
         """
 
-        self.get_widget("splashWindow").hide()
-
+        self.hide()
 
 def showSplashUI():
     global OS
 
     if not OS:
-        uiFile = os.path.join(orca_platform.prefix,
-                orca_platform.datadirname,
-                orca_platform.package,
-                "ui",
-                "orca-splash.ui")
-
-        OS = OrcaSplashGUI(uiFile, "splashScreen")
+        OS = OrcaSplashGUI()
         OS.init()
 
     OS.showGUI()
@@ -116,7 +109,6 @@ def hideSplashUI():
     if OS:
         OS.hideGUI()
 
-
 def main():
     locale.setlocale(locale.LC_ALL, '')
 
diff --git a/src/orca/script.py b/src/orca/script.py
index d6b25c0..e8a86a7 100644
--- a/src/orca/script.py
+++ b/src/orca/script.py
@@ -262,7 +262,7 @@ class Script:
             return self.bookmarks
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
+        """Return a GtkGrid containing the application unique configuration
         GUI items for the current application.
         """
         return None
diff --git a/src/orca/scripts/apps/Instantbird/script.py b/src/orca/scripts/apps/Instantbird/script.py
index 141c68e..6f13e6b 100644
--- a/src/orca/scripts/apps/Instantbird/script.py
+++ b/src/orca/scripts/apps/Instantbird/script.py
@@ -111,10 +111,9 @@ class Script(Gecko.Script):
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application. The chat-related options
-        get created by the chat module.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application. The chat-related options get
+        created by the chat module."""
 
         return self.chat.getAppPreferencesGUI()
 
diff --git a/src/orca/scripts/apps/Thunderbird/script.py b/src/orca/scripts/apps/Thunderbird/script.py
index 5a729a9..f933250 100644
--- a/src/orca/scripts/apps/Thunderbird/script.py
+++ b/src/orca/scripts/apps/Thunderbird/script.py
@@ -25,7 +25,6 @@ __date__      = "$Date$"
 __copyright__ = "Copyright (c) 2004-2008 Sun Microsystems Inc."
 __license__   = "LGPL"
 
-from gi.repository import Gtk
 import pyatspi
 
 import orca.orca as orca
@@ -101,25 +100,23 @@ class Script(Gecko.Script):
         return Utilities(self)
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application."""
 
-        vbox = Gecko.Script.getAppPreferencesGUI(self)
+        grid = Gecko.Script.getAppPreferencesGUI(self)
 
         # Reapply "say all on load" using the Thunderbird specific setting.
         #
-        Gtk.ToggleButton.set_active(self.sayAllOnLoadCheckButton,
-                                    script_settings.sayAllOnLoad)
+        self.sayAllOnLoadCheckButton.set_active(script_settings.sayAllOnLoad)
 
         # We need to maintain a separate setting for grabFocusOnAncestor
         # because the version of Gecko used by the Thunderbird might be
         # different from that used by Firefox. See bug 608149.
         #
-        Gtk.ToggleButton.set_active(self.grabFocusOnAncestorCheckButton,
-                                    script_settings.grabFocusOnAncestor)
+        self.grabFocusOnAncestorCheckButton.set_active(
+            script_settings.grabFocusOnAncestor)
 
-        return vbox
+        return grid
 
     def setAppPreferences(self, prefs):
         """Write out the application specific preferences lines and set the
diff --git a/src/orca/scripts/apps/empathy/script.py b/src/orca/scripts/apps/empathy/script.py
index 141f795..8b7a363 100644
--- a/src/orca/scripts/apps/empathy/script.py
+++ b/src/orca/scripts/apps/empathy/script.py
@@ -87,10 +87,9 @@ class Script(default.Script):
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application. The chat-related options
-        get created by the chat module.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application. The chat-related options get
+        created by the chat module."""
 
         return self.chat.getAppPreferencesGUI()
 
diff --git a/src/orca/scripts/apps/gajim/script.py b/src/orca/scripts/apps/gajim/script.py
index 6643b3e..4f9d13d 100644
--- a/src/orca/scripts/apps/gajim/script.py
+++ b/src/orca/scripts/apps/gajim/script.py
@@ -82,10 +82,9 @@ class Script(default.Script):
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application. The chat-related options
-        get created by the chat module.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application. The chat-related options get
+        created by the chat module."""
 
         return self.chat.getAppPreferencesGUI()
 
diff --git a/src/orca/scripts/apps/packagemanager/script.py b/src/orca/scripts/apps/packagemanager/script.py
index a22bdd3..2098bae 100644
--- a/src/orca/scripts/apps/packagemanager/script.py
+++ b/src/orca/scripts/apps/packagemanager/script.py
@@ -98,13 +98,11 @@ class Script(default.Script):
         return Utilities(self)
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application."""
 
-        vbox = Gtk.VBox(False, 0)
-        vbox.set_border_width(12)
-        Gtk.Widget.show(vbox)
+        grid = Gtk.Grid()
+        grid.set_border_width(12)
 
         # Translators: The Package Manager application notifies the
         # user of minor errors by displaying an icon in the status
@@ -114,15 +112,15 @@ class Script(default.Script):
         # the notification icon has appeared.
         #
         label = _("Notify me when errors have been logged.")
-        self.presentLoggedErrorsCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.presentLoggedErrorsCheckButton)
-        Gtk.Box.pack_start(vbox, self.presentLoggedErrorsCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.presentLoggedErrorsCheckButton,
-            script_settings.presentLoggedErrors)
-
-        return vbox
+        value = script_settings.presentLoggedErrors
+        self.presentLoggedErrorsCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.presentLoggedErrorsCheckButton.set_active(value)
+        grid.attach(self.presentLoggedErrorsCheckButton, 0, 0, 1, 1)
+
+        grid.show_all()
+
+        return grid
 
     def setAppPreferences(self, prefs):
         """Write out the application specific preferences lines and set the
diff --git a/src/orca/scripts/apps/pidgin/script.py b/src/orca/scripts/apps/pidgin/script.py
index d5c0a0b..0ee1e0d 100644
--- a/src/orca/scripts/apps/pidgin/script.py
+++ b/src/orca/scripts/apps/pidgin/script.py
@@ -104,10 +104,9 @@ class Script(default.Script):
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application. The chat-related options
-        get created by the chat module.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application. The chat-related options get
+        created by the chat module."""
 
         return self.chat.getAppPreferencesGUI()
 
diff --git a/src/orca/scripts/apps/soffice/script.py b/src/orca/scripts/apps/soffice/script.py
index bc1d9ca..78e5909 100644
--- a/src/orca/scripts/apps/soffice/script.py
+++ b/src/orca/scripts/apps/soffice/script.py
@@ -294,102 +294,83 @@ class Script(default.Script):
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application."""
 
-        vbox = Gtk.VBox(False, 0)
-        vbox.set_border_width(12)
-        Gtk.Widget.show(vbox)
+        grid = Gtk.Grid()
+        grid.set_border_width(12)
 
-        # Checkbox for "Speak spread sheet cell coordinates".
-        #
         # Translators: If checked, then Orca will speak the coordinates
         # of the current spread sheet cell. Coordinates are the row and
         # column position within the spread sheet (i.e. A1, B1, C2 ...)
         #
         label = _("Speak spread sheet cell coordinates")
-        self.speakSpreadsheetCoordinatesCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakSpreadsheetCoordinatesCheckButton)
-        Gtk.Box.pack_start(vbox, self.speakSpreadsheetCoordinatesCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(\
-            self.speakSpreadsheetCoordinatesCheckButton,
-            script_settings.speakSpreadsheetCoordinates)
-
-        # Table Navigation frame.
-        #
+        value = script_settings.speakSpreadsheetCoordinates
+        self.speakSpreadsheetCoordinatesCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakSpreadsheetCoordinatesCheckButton.set_active(value)
+        grid.attach(self.speakSpreadsheetCoordinatesCheckButton, 0, 0, 1, 1)
+
         tableFrame = Gtk.Frame()
-        Gtk.Widget.show(tableFrame)
-        Gtk.Box.pack_start(vbox, tableFrame, False, False, 5)
+        grid.attach(tableFrame, 0, 1, 1, 1)
 
-        tableAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
-        Gtk.Widget.show(tableAlignment)
-        Gtk.Container.add(tableFrame, tableAlignment)
-        Gtk.Alignment.set_padding(tableAlignment, 0, 0, 12, 0)
+        # Translators: this is the title of a panel containing options
+        # for specifying how to navigate tables in document content.
+        #
+        label = Gtk.Label(label="<b>%s</b>" % _("Table Navigation"))
+        label.set_use_markup(True)
+        tableFrame.set_label_widget(label)
 
-        tableVBox = Gtk.VBox(False, 0)
-        Gtk.Widget.show(tableVBox)
-        Gtk.Container.add(tableAlignment, tableVBox)
+        tableAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
+        tableAlignment.set_padding(0, 0, 12, 0)
+        tableFrame.add(tableAlignment)
+        tableGrid = Gtk.Grid()
+        tableAlignment.add(tableGrid)
 
         # Translators: this is an option to tell Orca whether or not it
         # should speak table cell coordinates in document content.
         #
         label = _("Speak _cell coordinates")
-        self.speakCellCoordinatesCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakCellCoordinatesCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.speakCellCoordinatesCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.speakCellCoordinatesCheckButton,
-            _settingsManager.getSetting('speakCellCoordinates'))
+        value = _settingsManager.getSetting('speakCellCoordinates')
+        self.speakCellCoordinatesCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakCellCoordinatesCheckButton.set_active(value)
+        tableGrid.attach(self.speakCellCoordinatesCheckButton, 0, 0, 1, 1)
 
         # Translators: this is an option to tell Orca whether or not it
         # should speak the span size of a table cell (e.g., how many
         # rows and columns a particular table cell spans in a table).
         #
         label = _("Speak _multiple cell spans")
-        self.speakCellSpanCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakCellSpanCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.speakCellSpanCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.speakCellSpanCheckButton,
-            _settingsManager.getSetting('speakCellSpan'))
+        value = _settingsManager.getSetting('speakCellSpan')
+        self.speakCellSpanCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakCellSpanCheckButton.set_active(value)
+        tableGrid.attach(self.speakCellSpanCheckButton, 0, 1, 1, 1)
 
         # Translators: this is an option for whether or not to speak
         # the header of a table cell in document content.
         #
         label = _("Announce cell _header")
-        self.speakCellHeadersCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakCellHeadersCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.speakCellHeadersCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.speakCellHeadersCheckButton,
-            _settingsManager.getSetting('speakCellHeaders'))
-
+        value = _settingsManager.getSetting('speakCellHeaders')
+        self.speakCellHeadersCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakCellHeadersCheckButton.set_active(value)
+        tableGrid.attach(self.speakCellHeadersCheckButton, 0, 2, 1, 1)
+           
         # Translators: this is an option to allow users to skip over
         # empty/blank cells when navigating tables in document content.
         #
         label = _("Skip _blank cells")
-        self.skipBlankCellsCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.skipBlankCellsCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.skipBlankCellsCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-                self.skipBlankCellsCheckButton,
-                _settingsManager.getSetting('skipBlankCells'))
+        value = _settingsManager.getSetting('skipBlankCells')
+        self.skipBlankCellsCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.skipBlankCellsCheckButton.set_active(value)
+        tableGrid.attach(self.skipBlankCellsCheckButton, 0, 3, 1, 1)
 
-        # Translators: this is the title of a panel containing options
-        # for specifying how to navigate tables in document content.
-        #
-        tableLabel = Gtk.Label(label="<b>%s</b>" % _("Table Navigation"))
-        Gtk.Widget.show(tableLabel)
-        Gtk.Frame.set_label_widget(tableFrame, tableLabel)
-        Gtk.Label.set_use_markup(tableLabel, True)
+        grid.show_all()
 
-        return vbox
+        return grid
 
     def setAppPreferences(self, prefs):
         """Write out the application specific preferences lines and set the
diff --git a/src/orca/scripts/apps/yelp/yelp_v2/script.py b/src/orca/scripts/apps/yelp/yelp_v2/script.py
index 767b52a..5d204a9 100644
--- a/src/orca/scripts/apps/yelp/yelp_v2/script.py
+++ b/src/orca/scripts/apps/yelp/yelp_v2/script.py
@@ -25,7 +25,6 @@ __date__      = "$Date$"
 __copyright__ = "Copyright (c) 2005-2010 Sun Microsystems Inc."
 __license__   = "LGPL"
 
-from gi.repository import Gtk
 import pyatspi
 
 import orca.orca as orca
@@ -68,20 +67,19 @@ class Script(Gecko.Script):
         return Utilities(self)
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application."""
 
-        vbox = Gecko.Script.getAppPreferencesGUI(self)
+        grid = Gecko.Script.getAppPreferencesGUI(self)
 
         # We need to maintain a separate setting for grabFocusOnAncestor
         # because the version of Gecko used by Yelp might be different
         # from that used by Firefox. See bug 608149.
         #
-        Gtk.ToggleButton.set_active(self.grabFocusOnAncestorCheckButton,
-                                    script_settings.grabFocusOnAncestor)
+        self.grabFocusOnAncestorCheckButton.set_active(
+            script_settings.grabFocusOnAncestor)
 
-        return vbox
+        return grid
 
     def setAppPreferences(self, prefs):
         """Write out the application specific preferences lines and set the
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 1f37179..454656c 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -660,28 +660,28 @@ class Script(default.Script):
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application."""
 
-        vbox = Gtk.VBox(False, 0)
-        vbox.set_border_width(12)
-        Gtk.Widget.show(vbox)
+        grid = Gtk.Grid()
+        grid.set_border_width(12)
 
-        # General ("Page") Navigation frame.
-        #
         generalFrame = Gtk.Frame()
-        Gtk.Widget.show(generalFrame)
-        Gtk.Box.pack_start(vbox, generalFrame, False, False, 5)
+        grid.attach(generalFrame, 0, 0, 1, 1)
 
-        generalAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
-        Gtk.Widget.show(generalAlignment)
-        Gtk.Container.add(generalFrame, generalAlignment)
-        Gtk.Alignment.set_padding(generalAlignment, 0, 0, 12, 0)
+        # Translators: this is the title of a panel holding options for
+        # how to navigate HTML content (e.g., Orca caret navigation,
+        # positioning of caret, etc.).
+        #
+        label = Gtk.Label(label="<b>%s</b>" % _("Page Navigation"))
+        label.set_use_markup(True)
+        generalFrame.set_label_widget(label)
 
-        generalVBox = Gtk.VBox(False, 0)
-        Gtk.Widget.show(generalVBox)
-        Gtk.Container.add(generalAlignment, generalVBox)
+        generalAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
+        generalAlignment.set_padding(0, 0, 12, 0)
+        generalFrame.add(generalAlignment)
+        generalGrid = Gtk.Grid()
+        generalAlignment.add(generalGrid)
 
         # Translators: Gecko native caret navigation is where
         # Firefox itself controls how the arrow keys move the caret
@@ -691,25 +691,22 @@ class Script(default.Script):
         # Orca mode.
         #
         label = _("Use _Orca Caret Navigation")
-        self.controlCaretNavigationCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.controlCaretNavigationCheckButton)
-        Gtk.Box.pack_start(generalVBox,
-                           self.controlCaretNavigationCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(self.controlCaretNavigationCheckButton,
-                                    script_settings.controlCaretNavigation)
+        value = script_settings.controlCaretNavigation
+        self.controlCaretNavigationCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.controlCaretNavigationCheckButton.set_active(value) 
+        generalGrid.attach(self.controlCaretNavigationCheckButton, 0, 0, 1, 1)
 
         # Translators: Orca provides keystrokes to navigate HTML content
         # in a structural manner: go to previous/next header, list item,
         # table, etc.
         #
         label = _("Use Orca _Structural Navigation")
-        self.structuralNavigationCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.structuralNavigationCheckButton)
-        Gtk.Box.pack_start(generalVBox, self.structuralNavigationCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(self.structuralNavigationCheckButton,
-                                    self.structuralNavigation.enabled)
+        value = self.structuralNavigation.enabled
+        self.structuralNavigationCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.structuralNavigationCheckButton.set_active(value)
+        generalGrid.attach(self.structuralNavigationCheckButton, 0, 1, 1, 1)
 
         # Translators: Orca has had to implement its own caret navigation
         # model to work around issues in Gecko/Firefox. In certain versions
@@ -721,12 +718,11 @@ class Script(default.Script):
         # within Orca.
         #
         label = _("_Grab focus on objects when navigating")
-        self.grabFocusOnAncestorCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.grabFocusOnAncestorCheckButton)
-        Gtk.Box.pack_start(generalVBox, self.grabFocusOnAncestorCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(self.grabFocusOnAncestorCheckButton,
-                                    script_settings.grabFocusOnAncestor)
+        value = script_settings.grabFocusOnAncestor
+        self.grabFocusOnAncestorCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.grabFocusOnAncestorCheckButton.set_active(value)
+        generalGrid.attach(self.grabFocusOnAncestorCheckButton, 0, 2, 1, 1)
 
         # Translators: when the user arrows up and down in HTML content,
         # it is some times beneficial to always position the cursor at the
@@ -736,12 +732,11 @@ class Script(default.Script):
         #
         label = \
             _("_Position cursor at start of line when navigating vertically")
-        self.arrowToLineBeginningCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.arrowToLineBeginningCheckButton)
-        Gtk.Box.pack_start(generalVBox, self.arrowToLineBeginningCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(self.arrowToLineBeginningCheckButton,
-                                    script_settings.arrowToLineBeginning)
+        value = script_settings.arrowToLineBeginning
+        self.arrowToLineBeginningCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.arrowToLineBeginningCheckButton.set_active(value)
+        generalGrid.attach(self.arrowToLineBeginningCheckButton, 0, 3, 1, 1)
 
         # Translators: when the user loads a new page in Firefox, they
         # can optionally tell Orca to automatically start reading a
@@ -749,120 +744,94 @@ class Script(default.Script):
         #
         label = \
             _("Automatically start speaking a page when it is first _loaded")
-        self.sayAllOnLoadCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.sayAllOnLoadCheckButton)
-        Gtk.Box.pack_start(generalVBox, self.sayAllOnLoadCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(self.sayAllOnLoadCheckButton,
-                                    script_settings.sayAllOnLoad)
+        value = script_settings.sayAllOnLoad
+        self.sayAllOnLoadCheckButton = Gtk.CheckButton.new_with_mnemonic(label)
+        self.sayAllOnLoadCheckButton.set_active(value)
+        generalGrid.attach(self.sayAllOnLoadCheckButton, 0, 4, 1, 1)
 
-        # Translators: this is the title of a panel holding options for
-        # how to navigate HTML content (e.g., Orca caret navigation,
-        # positioning of caret, etc.).
-        #
-        generalLabel = Gtk.Label(label="<b>%s</b>" % _("Page Navigation"))
-        Gtk.Widget.show(generalLabel)
-        Gtk.Frame.set_label_widget(generalFrame, generalLabel)
-        Gtk.Label.set_use_markup(generalLabel, True)
+        tableFrame = Gtk.Frame()
+        grid.attach(tableFrame, 0, 1, 1, 1)
 
-        # Table Navigation frame.
+        # Translators: this is the title of a panel containing options
+        # for specifying how to navigate tables in document content.
         #
-        tableFrame = Gtk.Frame()
-        Gtk.Widget.show(tableFrame)
-        Gtk.Box.pack_start(vbox, tableFrame, False, False, 5)
+        label = Gtk.Label(label="<b>%s</b>" % _("Table Navigation"))
+        label.set_use_markup(True)
+        tableFrame.set_label_widget(label)
 
         tableAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
-        Gtk.Widget.show(tableAlignment)
-        Gtk.Container.add(tableFrame, tableAlignment)
-        Gtk.Alignment.set_padding(tableAlignment, 0, 0, 12, 0)
-
-        tableVBox = Gtk.VBox(False, 0)
-        Gtk.Widget.show(tableVBox)
-        Gtk.Container.add(tableAlignment, tableVBox)
+        tableAlignment.set_padding(0, 0, 12, 0)
+        tableFrame.add(tableAlignment)
+        tableGrid = Gtk.Grid()
+        tableAlignment.add(tableGrid)
 
         # Translators: this is an option to tell Orca whether or not it
         # should speak table cell coordinates in document content.
         #
         label = _("Speak _cell coordinates")
-        self.speakCellCoordinatesCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakCellCoordinatesCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.speakCellCoordinatesCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.speakCellCoordinatesCheckButton,
-            _settingsManager.getSetting('speakCellCoordinates'))
+        value = _settingsManager.getSetting('speakCellCoordinates')
+        self.speakCellCoordinatesCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakCellCoordinatesCheckButton.set_active(value)
+        tableGrid.attach(self.speakCellCoordinatesCheckButton, 0, 0, 1, 1)
 
         # Translators: this is an option to tell Orca whether or not it
         # should speak the span size of a table cell (e.g., how many
         # rows and columns a particular table cell spans in a table).
         #
         label = _("Speak _multiple cell spans")
-        self.speakCellSpanCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakCellSpanCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.speakCellSpanCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.speakCellSpanCheckButton,
-            _settingsManager.getSetting('speakCellSpan'))
+        value = _settingsManager.getSetting('speakCellSpan')
+        self.speakCellSpanCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakCellSpanCheckButton.set_active(value)
+        tableGrid.attach(self.speakCellSpanCheckButton, 0, 1, 1, 1)
 
         # Translators: this is an option for whether or not to speak
         # the header of a table cell in document content.
         #
         label = _("Announce cell _header")
-        self.speakCellHeadersCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakCellHeadersCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.speakCellHeadersCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.speakCellHeadersCheckButton,
-            _settingsManager.getSetting('speakCellHeaders'))
-
+        value = _settingsManager.getSetting('speakCellHeaders')
+        self.speakCellHeadersCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakCellHeadersCheckButton.set_active(value)
+        tableGrid.attach(self.speakCellHeadersCheckButton, 0, 2, 1, 1)
+           
         # Translators: this is an option to allow users to skip over
         # empty/blank cells when navigating tables in document content.
         #
         label = _("Skip _blank cells")
-        self.skipBlankCellsCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.skipBlankCellsCheckButton)
-        Gtk.Box.pack_start(tableVBox, self.skipBlankCellsCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(
-            self.skipBlankCellsCheckButton,
-            _settingsManager.getSetting('skipBlankCells'))
+        value = _settingsManager.getSetting('skipBlankCells')
+        self.skipBlankCellsCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.skipBlankCellsCheckButton.set_active(value)
+        tableGrid.attach(self.skipBlankCellsCheckButton, 0, 3, 1, 1)
 
-        # Translators: this is the title of a panel containing options
-        # for specifying how to navigate tables in document content.
-        #
-        tableLabel = Gtk.Label(label="<b>%s</b>" % _("Table Navigation"))
-        Gtk.Widget.show(tableLabel)
-        Gtk.Frame.set_label_widget(tableFrame, tableLabel)
-        Gtk.Label.set_use_markup(tableLabel, True)
+        findFrame = Gtk.Frame()
+        grid.attach(findFrame, 0, 2, 1, 1)
 
-        # Find Options frame.
+        # Translators: this is the title of a panel containing options
+        # for using Firefox's Find toolbar.
         #
-        findFrame = Gtk.Frame()
-        Gtk.Widget.show(findFrame)
-        Gtk.Box.pack_start(vbox, findFrame, False, False, 5)
+        label = Gtk.Label(label="<b>%s</b>" % _("Find Options"))
+        label.set_use_markup(True)
+        findFrame.set_label_widget(label)
 
         findAlignment = Gtk.Alignment.new(0.5, 0.5, 1, 1)
-        Gtk.Widget.show(findAlignment)
-        Gtk.Container.add(findFrame, findAlignment)
-        Gtk.Alignment.set_padding(findAlignment, 0, 0, 12, 0)
-
-        findVBox = Gtk.VBox(False, 0)
-        Gtk.Widget.show(findVBox)
-        Gtk.Container.add(findAlignment, findVBox)
+        findAlignment.set_padding(0, 0, 12, 0)
+        findFrame.add(findAlignment)
+        findGrid = Gtk.Grid()
+        findAlignment.add(findGrid)
 
         # Translators: this is an option to allow users to have Orca
         # automatically speak the line that contains the match while
         # the user is still in Firefox's Find toolbar.
         #
         label = _("Speak results during _find")
-        self.speakResultsDuringFindCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.speakResultsDuringFindCheckButton)
-        Gtk.Box.pack_start(findVBox, self.speakResultsDuringFindCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(self.speakResultsDuringFindCheckButton,
-                                    script_settings.speakResultsDuringFind)
+        value = script_settings.speakResultsDuringFind
+        self.speakResultsDuringFindCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.speakResultsDuringFindCheckButton.set_active(value)
+        findGrid.attach(self.speakResultsDuringFindCheckButton, 0, 0, 1, 1)
 
         # Translators: this is an option which dictates whether the line
         # that contains the match from the Find toolbar should always
@@ -870,16 +839,14 @@ class Script(default.Script):
         # line which contained the last match.
         #
         label = _("Onl_y speak changed lines during find")
-        self.changedLinesOnlyCheckButton = Gtk.CheckButton(label)
-        Gtk.Widget.show(self.changedLinesOnlyCheckButton)
-        Gtk.Box.pack_start(findVBox, self.changedLinesOnlyCheckButton,
-                           False, False, 0)
-        Gtk.ToggleButton.set_active(self.changedLinesOnlyCheckButton,
-                              script_settings.onlySpeakChangedLinesDuringFind)
+        value = script_settings.onlySpeakChangedLinesDuringFind
+        self.changedLinesOnlyCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
+        self.changedLinesOnlyCheckButton.set_active(value)
+        findGrid.attach(self.changedLinesOnlyCheckButton, 0, 1, 1, 1)
 
-        hbox = Gtk.HBox(False, 0)
-        Gtk.Widget.show(hbox)
-        Gtk.Box.pack_start(findVBox, hbox, False, False, 0)
+        hgrid = Gtk.Grid()
+        findGrid.attach(hgrid, 0, 2, 1, 1)
 
         # Translators: this option allows the user to specify the number
         # of matched characters that must be present before Orca speaks
@@ -888,35 +855,20 @@ class Script(default.Script):
         self.minimumFindLengthLabel = \
               Gtk.Label(label=_("Minimum length of matched text:"))
         self.minimumFindLengthLabel.set_alignment(0, 0.5)
-        Gtk.Widget.show(self.minimumFindLengthLabel)
-        Gtk.Box.pack_start(hbox, self.minimumFindLengthLabel, False, False, 5)
+        hgrid.attach(self.minimumFindLengthLabel, 0, 0, 1, 1)
 
         self.minimumFindLengthAdjustment = \
                    Gtk.Adjustment(script_settings.minimumFindLength, 0, 20, 1)
-        self.minimumFindLengthSpinButton = \
-                       Gtk.SpinButton(self.minimumFindLengthAdjustment, 0.0, 0)
-        Gtk.Widget.show(self.minimumFindLengthSpinButton)
-        Gtk.Box.pack_start(hbox, self.minimumFindLengthSpinButton,
-                           False, False, 5)
-
-        acc_targets = []
-        acc_src = self.minimumFindLengthLabel.get_accessible()
-        relation_set = acc_src.ref_relation_set()
-        acc_targ = self.minimumFindLengthSpinButton.get_accessible()
-        acc_targets.append(acc_targ)
-        relation = Atk.Relation(acc_targets, 1)
-        relation.set_property('relation-type', Atk.RelationType.LABEL_FOR)
-        relation_set.add(relation)
+        self.minimumFindLengthSpinButton = Gtk.SpinButton()
+        self.minimumFindLengthSpinButton.set_adjustment(
+            self.minimumFindLengthAdjustment)
+        hgrid.attach(self.minimumFindLengthSpinButton, 1, 0, 1, 1)
+        self.minimumFindLengthLabel.set_mnemonic_widget(
+            self.minimumFindLengthSpinButton)
 
-        # Translators: this is the title of a panel containing options
-        # for using Firefox's Find toolbar.
-        #
-        findLabel = Gtk.Label(label="<b>%s</b>" % _("Find Options"))
-        Gtk.Widget.show(findLabel)
-        Gtk.Frame.set_label_widget(findFrame, findLabel)
-        Gtk.Label.set_use_markup(findLabel, True)
+        grid.show_all()
 
-        return vbox
+        return grid
 
     def setAppPreferences(self, prefs):
         """Write out the application specific preferences lines and set the
diff --git a/src/orca/scripts/toolkits/WebKitGtk/script.py b/src/orca/scripts/toolkits/WebKitGtk/script.py
index e38334a..572bbc9 100644
--- a/src/orca/scripts/toolkits/WebKitGtk/script.py
+++ b/src/orca/scripts/toolkits/WebKitGtk/script.py
@@ -120,15 +120,13 @@ class Script(default.Script):
         return keyBindings
 
     def getAppPreferencesGUI(self):
-        """Return a GtkVBox contain the application unique configuration
-        GUI items for the current application.
-        """
+        """Return a GtkGrid containing the application unique configuration
+        GUI items for the current application."""
 
         from gi.repository import Gtk
 
-        vbox = Gtk.VBox(False, 0)
-        vbox.set_border_width(12)
-        vbox.show()
+        grid = Gtk.Grid()
+        grid.set_border_width(12)
 
         # Translators: when the user loads a new page in WebKit, they
         # can optionally tell Orca to automatically start reading a
@@ -136,12 +134,14 @@ class Script(default.Script):
         #
         label = \
             _("Automatically start speaking a page when it is first _loaded")
-        self.sayAllOnLoadCheckButton = Gtk.CheckButton(label)
-        self.sayAllOnLoadCheckButton.show()
-        vbox.pack_start(self.sayAllOnLoadCheckButton, False, False, 0)
+        self.sayAllOnLoadCheckButton = \
+            Gtk.CheckButton.new_with_mnemonic(label)
         self.sayAllOnLoadCheckButton.set_active(script_settings.sayAllOnLoad)
+        grid.attach(self.sayAllOnLoadCheckButton, 0, 0, 1, 1)
+
+        grid.show_all()
 
-        return vbox
+        return grid
 
     def setAppPreferences(self, prefs):
         """Write out the application specific preferences lines and set the
diff --git a/src/orca/settings.py b/src/orca/settings.py
index c3a04b5..68d6610 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -162,7 +162,7 @@ appGuiPreferencesModule  = "app_gui_prefs"
 # This module is expected to have the method, showQuitUI, which will
 # display the quit GUI.
 #
-quitModule = "orca_quit"
+quitModule = "orca_gui_quit"
 
 # The name of the module that holds the user interface for performing a
 # flat review find.



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