[gnome-power-manager] Convert from libglade to GtkBuilder



commit faf7ae1ba8656ce6c1bd362a9eb16ef329c24ba9
Author: Richard Hughes <richard hughsie com>
Date:   Mon May 11 12:00:50 2009 +0100

    Convert from libglade to GtkBuilder
---
 configure.ac                                       |    3 -
 data/Makefile.am                                   |    8 +-
 data/gpm-feedback-widget.glade                     |   69 --
 data/gpm-feedback-widget.ui                        |   44 ++
 ...{gpm-inhibit-test.glade => gpm-inhibit-test.ui} |  119 ++--
 data/{gpm-prefs.glade => gpm-prefs.ui}             |  656 +++++++++++---------
 data/{gpm-statistics.glade => gpm-statistics.ui}   |  316 +++++-----
 docs/dbus-interface.html                           |    2 +-
 po/POTFILES.in                                     |    8 +-
 src/gpm-feedback-widget.c                          |   28 +-
 src/gpm-main.c                                     |    1 -
 src/gpm-prefs-core.c                               |  157 +++---
 src/gpm-statistics.c                               |  182 +++---
 13 files changed, 854 insertions(+), 739 deletions(-)

diff --git a/configure.ac b/configure.ac
index 194230e..da81b6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -93,7 +93,6 @@ GDK_REQUIRED=2.11.0
 GNOME_KEYRING_REQUIRED=0.6.0
 HAL_REQUIRED=0.5.8
 DBUS_REQUIRED=0.70
-LIBGLADE_REQUIRED=2.5.0
 LIBNOTIFY_REQUIRED=0.4.3
 LIBWNCK_REQUIRED=2.10.0
 CAIRO_REQUIRED=1.0.0
@@ -113,7 +112,6 @@ AC_SUBST(GTK_REQUIRED)
 AC_SUBST(GDK_REQUIRED)
 AC_SUBST(HAL_REQUIRED)
 AC_SUBST(DBUS_REQUIRED)
-AC_SUBST(LIBGLADE_REQUIRED)
 AC_SUBST(LIBNOTIFY_REQUIRED)
 AC_SUBST(LIBWNCK_REQUIRED)
 AC_SUBST(CAIRO_REQUIRED)
@@ -145,7 +143,6 @@ AC_SUBST(DBUS_CFLAGS)
 AC_SUBST(DBUS_LIBS)
 
 PKG_CHECK_MODULES(GNOME, [
- libglade-2.0 >= $LIBGLADE_REQUIRED
  libwnck-1.0 >= $LIBWNCK_REQUIRED
  gtk+-2.0 >= $GTK_REQUIRED
  gnome-keyring-1 >= $GNOME_KEYRING_REQUIRED
diff --git a/data/Makefile.am b/data/Makefile.am
index eccf7e7..9ca0c8a 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -24,10 +24,10 @@ $(service_DATA): $(service_in_files) Makefile
 	@sed -e "s|\ servicedir\@|$(bindir)|" $< > $@
 
 pkgdata_DATA =						\
-	gpm-statistics.glade				\
-	gpm-feedback-widget.glade			\
-	gpm-inhibit-test.glade				\
-	gpm-prefs.glade
+	gpm-statistics.ui				\
+	gpm-feedback-widget.ui				\
+	gpm-inhibit-test.ui				\
+	gpm-prefs.ui
 
 EXTRA_DIST =						\
 	gnome-power-manager.schemas.in			\
diff --git a/data/gpm-feedback-widget.glade b/data/gpm-feedback-widget.glade
deleted file mode 100644
index dc1161b..0000000
--- a/data/gpm-feedback-widget.glade
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
-<glade-interface>
-
-<widget class="GtkWindow" id="main_window">
-  <property name="title" translatable="yes">Brightness</property>
-  <property name="type">GTK_WINDOW_POPUP</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NOTIFICATION</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkFrame" id="frame1">
-      <property name="visible">True</property>
-      <property name="shadow_type">GTK_SHADOW_OUT</property>
-
-      <child>
-	<widget class="GtkVBox" id="vbox2">
-	  <property name="border_width">12</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">6</property>
-
-	  <child>
-	    <widget class="GtkImage" id="image">
-	      <property name="visible">True</property>
-	      <property name="icon_size">6</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkProgressBar" id="progressbar">
-	      <property name="visible">True</property>
-	      <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-	      <property name="fraction">0</property>
-	      <property name="pulse_step">0.10000000149</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/data/gpm-feedback-widget.ui b/data/gpm-feedback-widget.ui
new file mode 100644
index 0000000..0400adf
--- /dev/null
+++ b/data/gpm-feedback-widget.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkWindow" id="main_window">
+    <property name="type">popup</property>
+    <property name="title" translatable="yes">Brightness</property>
+    <property name="type_hint">notification</property>
+    <child>
+      <object class="GtkFrame" id="frame1">
+        <property name="visible">True</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">out</property>
+        <child>
+          <object class="GtkVBox" id="vbox2">
+            <property name="visible">True</property>
+            <property name="border_width">12</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkImage" id="image">
+                <property name="visible">True</property>
+                <property name="icon-size">6</property>
+              </object>
+              <packing>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkProgressBar" id="progressbar">
+                <property name="visible">True</property>
+                <property name="pulse_step">0.10000000149</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/data/gpm-inhibit-test.glade b/data/gpm-inhibit-test.ui
similarity index 69%
rename from data/gpm-inhibit-test.glade
rename to data/gpm-inhibit-test.ui
index 43f06df..022592f 100644
--- a/data/gpm-inhibit-test.glade
+++ b/data/gpm-inhibit-test.ui
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkDialog" id="dialog_inhibit">
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkDialog" id="dialog_inhibit">
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Inhibit Tester</property>
     <property name="resizable">False</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="window_position">center-on-parent</property>
+    <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkTable" id="table_info">
+          <object class="GtkTable" id="table_info">
             <property name="visible">True</property>
             <property name="border_width">6</property>
             <property name="n_rows">2</property>
@@ -22,11 +22,11 @@
             <property name="column_spacing">5</property>
             <property name="row_spacing">5</property>
             <child>
-              <widget class="GtkEntry" id="entry_reason">
+              <object class="GtkEntry" id="entry_reason">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="text" translatable="yes">Burning DVD, titled "My Photos"</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -36,11 +36,11 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="entry_app">
+              <object class="GtkEntry" id="entry_app">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="text" translatable="yes">Vendor Acme Foo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -48,11 +48,11 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label_reason">
+              <object class="GtkLabel" id="label_reason">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Reason:</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
@@ -61,135 +61,152 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label_app">
+              <object class="GtkLabel" id="label_app">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Application:</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options"></property>
                 <property name="y_options"></property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="button_inhibit">
+              <object class="GtkButton" id="button_inhibit">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="response_id">0</property>
+                <property name="receives_default">False</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment1">
+                  <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox1">
+                      <object class="GtkHBox" id="hbox1">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image1">
+                          <object class="GtkImage" id="image1">
                             <property name="visible">True</property>
                             <property name="stock">gtk-connect</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label1">
+                          <object class="GtkLabel" id="label1">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">Inhibit</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="button_uninhibit">
+              <object class="GtkButton" id="button_uninhibit">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="response_id">0</property>
+                <property name="receives_default">False</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment2">
+                  <object class="GtkAlignment" id="alignment2">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox2">
+                      <object class="GtkHBox" id="hbox2">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image2">
+                          <object class="GtkImage" id="image2">
                             <property name="visible">True</property>
                             <property name="stock">gtk-disconnect</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label2">
+                          <object class="GtkLabel" id="label2">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">UnInhibit</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="button_close">
+              <object class="GtkButton" id="button_close">
+                <property name="label">gtk-close</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label">gtk-close</property>
+                <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
                 <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="0">button_inhibit</action-widget>
+      <action-widget response="0">button_uninhibit</action-widget>
+      <action-widget response="0">button_close</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/gpm-prefs.glade b/data/gpm-prefs.ui
similarity index 73%
rename from data/gpm-prefs.glade
rename to data/gpm-prefs.ui
index a4da521..d9cc83e 100644
--- a/data/gpm-prefs.glade
+++ b/data/gpm-prefs.ui
@@ -1,462 +1,528 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkDialog" id="dialog_preferences">
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="value">1</property>
+    <property name="lower">1</property>
+    <property name="upper">61</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="value">23</property>
+    <property name="lower">1</property>
+    <property name="upper">61</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment3">
+    <property name="value">41</property>
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment4">
+    <property name="value">1</property>
+    <property name="lower">1</property>
+    <property name="upper">61</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment5">
+    <property name="value">23</property>
+    <property name="lower">1</property>
+    <property name="upper">61</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment6">
+    <property name="value">1</property>
+    <property name="lower">1</property>
+    <property name="upper">61</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment7">
+    <property name="value">23</property>
+    <property name="lower">1</property>
+    <property name="upper">61</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkDialog" id="dialog_preferences">
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Power Management Preferences</property>
     <property name="resizable">False</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="window_position">center-on-parent</property>
+    <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkNotebook" id="notebook_preferences">
+          <object class="GtkNotebook" id="notebook_preferences">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="border_width">6</property>
             <child>
-              <widget class="GtkVBox" id="vbox_ac">
+              <object class="GtkVBox" id="vbox_ac">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox_ac_actions">
+                  <object class="GtkVBox" id="vbox_ac_actions">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_ac_actions_sect">
+                      <object class="GtkLabel" id="label_ac_actions_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Actions&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment45">
+                      <object class="GtkAlignment" id="alignment45">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox79">
+                          <object class="GtkVBox" id="vbox79">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox_ac_computer">
+                              <object class="GtkHBox" id="hbox_ac_computer">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ac_computer">
+                                  <object class="GtkLabel" id="label_ac_computer">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Put computer to _sleep when inactive for:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">hscale_ac_computer</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale_ac_computer">
+                                  <object class="GtkHScale" id="hscale_ac_computer">
                                     <property name="width_request">200</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">1 1 61 1 5 0</property>
+                                    <property name="adjustment">adjustment1</property>
                                     <property name="digits">0</property>
-                                    <property name="value_pos">GTK_POS_BOTTOM</property>
-                                  </widget>
+                                    <property name="value_pos">bottom</property>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox_ac_lid">
+                              <object class="GtkHBox" id="hbox_ac_lid">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ac_lid">
+                                  <object class="GtkLabel" id="label_ac_lid">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">When laptop lid is cl_osed:</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkComboBox" id="combobox_ac_lid">
+                                  <object class="GtkComboBox" id="combobox_ac_lid">
                                     <property name="visible">True</property>
-                                    <property name="items" translatable="yes"></property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox_ac_display">
+                  <object class="GtkVBox" id="vbox_ac_display">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_ac_display_sect">
+                      <object class="GtkLabel" id="label_ac_display_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Display&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment46">
+                      <object class="GtkAlignment" id="alignment46">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox83">
+                          <object class="GtkVBox" id="vbox83">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox_ac_display">
+                              <object class="GtkHBox" id="hbox_ac_display">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ac_display">
+                                  <object class="GtkLabel" id="label_ac_display">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Put _display to sleep when inactive for:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">hscale_ac_display</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale_ac_display">
+                                  <object class="GtkHScale" id="hscale_ac_display">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">23 1 61 1 5 0</property>
+                                    <property name="adjustment">adjustment2</property>
                                     <property name="digits">0</property>
-                                    <property name="value_pos">GTK_POS_BOTTOM</property>
-                                  </widget>
+                                    <property name="value_pos">bottom</property>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox_ac_brightness">
+                              <object class="GtkHBox" id="hbox_ac_brightness">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ac_brightness">
+                                  <object class="GtkLabel" id="label_ac_brightness">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Set display _brightness to:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">hscale_ac_brightness</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale_ac_brightness">
+                                  <object class="GtkHScale" id="hscale_ac_brightness">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">41 0 100 1 5 0</property>
+                                    <property name="adjustment">adjustment3</property>
                                     <property name="digits">0</property>
-                                    <property name="value_pos">GTK_POS_BOTTOM</property>
-                                  </widget>
+                                    <property name="value_pos">bottom</property>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_ac_display_dim">
+                              <object class="GtkCheckButton" id="checkbutton_ac_display_dim">
+                                <property name="label" translatable="yes">Di_m display when idle</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">Di_m display when idle</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="label_tab_ac">
+            <child type="tab">
+              <object class="GtkLabel" id="label_tab_ac">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">On AC Power</property>
-              </widget>
+              </object>
               <packing>
-                <property name="type">tab</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox_battery">
+              <object class="GtkVBox" id="vbox_battery">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox_battery_actions">
+                  <object class="GtkVBox" id="vbox_battery_actions">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_battery_actions_sect">
+                      <object class="GtkLabel" id="label_battery_actions_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Actions&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment47">
+                      <object class="GtkAlignment" id="alignment47">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox86">
+                          <object class="GtkVBox" id="vbox86">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox_battery_computer">
+                              <object class="GtkHBox" id="hbox_battery_computer">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_battery_computer">
+                                  <object class="GtkLabel" id="label_battery_computer">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Put computer to _sleep when inactive for:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">hscale_battery_computer</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale_battery_computer">
+                                  <object class="GtkHScale" id="hscale_battery_computer">
                                     <property name="width_request">200</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">1 1 61 1 5 0</property>
+                                    <property name="adjustment">adjustment4</property>
                                     <property name="digits">0</property>
-                                    <property name="value_pos">GTK_POS_BOTTOM</property>
-                                  </widget>
+                                    <property name="value_pos">bottom</property>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox_battery_lid">
+                              <object class="GtkHBox" id="hbox_battery_lid">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_battery_lid">
+                                  <object class="GtkLabel" id="label_battery_lid">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">When laptop lid is cl_osed:</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkComboBox" id="combobox_battery_lid">
+                                  <object class="GtkComboBox" id="combobox_battery_lid">
                                     <property name="visible">True</property>
-                                    <property name="items" translatable="yes"></property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox20">
+                              <object class="GtkHBox" id="hbox20">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label121">
+                                  <object class="GtkLabel" id="label121">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">When battery po_wer is critically low:</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkComboBox" id="combobox_battery_critical">
+                                  <object class="GtkComboBox" id="combobox_battery_critical">
                                     <property name="visible">True</property>
-                                    <property name="items" translatable="yes"></property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">2</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox_battery_display">
+                  <object class="GtkVBox" id="vbox_battery_display">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_battery_display_sect">
+                      <object class="GtkLabel" id="label_battery_display_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Display&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment48">
+                      <object class="GtkAlignment" id="alignment48">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox88">
+                          <object class="GtkVBox" id="vbox88">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox_battery_display">
+                              <object class="GtkHBox" id="hbox_battery_display">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_battery_display">
+                                  <object class="GtkLabel" id="label_battery_display">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Put _display to sleep when inactive for:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">hscale_battery_display</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale_battery_display">
+                                  <object class="GtkHScale" id="hscale_battery_display">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">23 1 61 1 5 0</property>
+                                    <property name="adjustment">adjustment5</property>
                                     <property name="digits">0</property>
-                                    <property name="value_pos">GTK_POS_BOTTOM</property>
-                                  </widget>
+                                    <property name="value_pos">bottom</property>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_battery_display_reduce">
+                              <object class="GtkCheckButton" id="checkbutton_battery_display_reduce">
+                                <property name="label" translatable="yes">_Reduce backlight brightness</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">_Reduce backlight brightness</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -464,437 +530,449 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_battery_display_dim">
+                              <object class="GtkCheckButton" id="checkbutton_battery_display_dim">
+                                <property name="label" translatable="yes">Di_m display when idle</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">Di_m display when idle</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="label_tab_battery">
+            <child type="tab">
+              <object class="GtkLabel" id="label_tab_battery">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">On Battery Power</property>
-              </widget>
+              </object>
               <packing>
-                <property name="type">tab</property>
                 <property name="position">1</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox_ups">
+              <object class="GtkVBox" id="vbox_ups">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox_ups_actions">
+                  <object class="GtkVBox" id="vbox_ups_actions">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_ups_actions_sect">
+                      <object class="GtkLabel" id="label_ups_actions_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Actions&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment49">
+                      <object class="GtkAlignment" id="alignment49">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox91">
+                          <object class="GtkVBox" id="vbox91">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox_ups_computer">
+                              <object class="GtkHBox" id="hbox_ups_computer">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ups_computer">
+                                  <object class="GtkLabel" id="label_ups_computer">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Put computer to _sleep when inactive for:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">hscale_ups_computer</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale_ups_computer">
+                                  <object class="GtkHScale" id="hscale_ups_computer">
                                     <property name="width_request">200</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">1 1 61 1 5 0</property>
+                                    <property name="adjustment">adjustment6</property>
                                     <property name="digits">0</property>
-                                    <property name="value_pos">GTK_POS_BOTTOM</property>
-                                  </widget>
+                                    <property name="value_pos">bottom</property>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox18">
+                              <object class="GtkHBox" id="hbox18">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ups_low">
+                                  <object class="GtkLabel" id="label_ups_low">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">When UPS power is l_ow:</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkComboBox" id="combobox_ups_low">
+                                  <object class="GtkComboBox" id="combobox_ups_low">
                                     <property name="visible">True</property>
-                                    <property name="items" translatable="yes"></property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox19">
+                              <object class="GtkHBox" id="hbox19">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ups_critical">
+                                  <object class="GtkLabel" id="label_ups_critical">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">When UPS power is _critically low:</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkComboBox" id="combobox_ups_critical">
+                                  <object class="GtkComboBox" id="combobox_ups_critical">
                                     <property name="visible">True</property>
-                                    <property name="items" translatable="yes"></property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">2</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_actions_ups_alarm">
+                              <object class="GtkCheckButton" id="checkbutton_actions_ups_alarm">
+                                <property name="label" translatable="yes">Enable UPS discharge _alarm</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">Enable UPS discharge _alarm</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">3</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox_ups_display">
+                  <object class="GtkVBox" id="vbox_ups_display">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_ups_display_sect">
+                      <object class="GtkLabel" id="label_ups_display_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Display&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment50">
+                      <object class="GtkAlignment" id="alignment50">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox93">
+                          <object class="GtkVBox" id="vbox93">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox_ups_display">
+                              <object class="GtkHBox" id="hbox_ups_display">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_ups_display">
+                                  <object class="GtkLabel" id="label_ups_display">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">Put _display to sleep when inactive for:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">hscale_ups_display</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkHScale" id="hscale_ups_display">
+                                  <object class="GtkHScale" id="hscale_ups_display">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="adjustment">23 1 61 1 5 0</property>
+                                    <property name="adjustment">adjustment7</property>
                                     <property name="digits">0</property>
-                                    <property name="value_pos">GTK_POS_BOTTOM</property>
-                                  </widget>
+                                    <property name="value_pos">bottom</property>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="label_tab_ups">
+            <child type="tab">
+              <object class="GtkLabel" id="label_tab_ups">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">On UPS Power</property>
-              </widget>
+              </object>
               <packing>
-                <property name="type">tab</property>
                 <property name="position">2</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox_general">
+              <object class="GtkVBox" id="vbox_general">
                 <property name="visible">True</property>
                 <property name="border_width">12</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox75">
+                  <object class="GtkVBox" id="vbox75">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label122">
+                      <object class="GtkLabel" id="label122">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Actions&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment44">
+                      <object class="GtkAlignment" id="alignment44">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox76">
+                          <object class="GtkVBox" id="vbox76">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox_general_power">
+                              <object class="GtkHBox" id="hbox_general_power">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_general_power">
+                                  <object class="GtkLabel" id="label_general_power">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">When the power _button is pressed:</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkComboBox" id="combobox_general_power">
+                                  <object class="GtkComboBox" id="combobox_general_power">
                                     <property name="visible">True</property>
-                                    <property name="items" translatable="yes"></property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkHBox" id="hbox_general_suspend">
+                              <object class="GtkHBox" id="hbox_general_suspend">
                                 <property name="visible">True</property>
                                 <property name="spacing">12</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <widget class="GtkLabel" id="label_general_suspend">
+                                  <object class="GtkLabel" id="label_general_suspend">
                                     <property name="visible">True</property>
                                     <property name="xalign">0</property>
                                     <property name="label" translatable="yes">When the _suspend button is pressed:</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkComboBox" id="combobox_general_suspend">
+                                  <object class="GtkComboBox" id="combobox_general_suspend">
                                     <property name="visible">True</property>
-                                    <property name="items" translatable="yes"></property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox_notification">
+                  <object class="GtkVBox" id="vbox_notification">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_notification_area_sect">
+                      <object class="GtkLabel" id="label_notification_area_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Notification Area&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment37">
+                      <object class="GtkAlignment" id="alignment37">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox62">
+                          <object class="GtkVBox" id="vbox62">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkRadioButton" id="radiobutton_notification_never">
+                              <object class="GtkRadioButton" id="radiobutton_notification_never">
+                                <property name="label" translatable="yes">_Never display an icon</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">_Never display an icon</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkRadioButton" id="radiobutton_notification_critical">
+                              <object class="GtkRadioButton" id="radiobutton_notification_critical">
+                                <property name="label" translatable="yes">_Only display an icon when battery power is critically low</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">_Only display an icon when battery power is critically low</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">radiobutton_notification_never</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -902,15 +980,15 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkRadioButton" id="radiobutton_notification_charge">
+                              <object class="GtkRadioButton" id="radiobutton_notification_charge">
+                                <property name="label" translatable="yes">Only display an icon when charging or _discharging</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">Only display an icon when charging or _discharging</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">radiobutton_notification_never</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -918,15 +996,15 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkRadioButton" id="radiobutton_notification_present">
+                              <object class="GtkRadioButton" id="radiobutton_notification_present">
+                                <property name="label" translatable="yes">Only display an icon when a battery is p_resent</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">Only display an icon when a battery is p_resent</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">radiobutton_notification_never</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -934,81 +1012,83 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkRadioButton" id="radiobutton_notification_always">
+                              <object class="GtkRadioButton" id="radiobutton_notification_always">
+                                <property name="label" translatable="yes">_Always display an icon</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">_Always display an icon</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">radiobutton_notification_never</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">4</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox_notification_sounds">
+                  <object class="GtkVBox" id="vbox_notification_sounds">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label_notification_sound_sect">
+                      <object class="GtkLabel" id="label_notification_sound_sect">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Extras&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkAlignment" id="alignment40">
+                      <object class="GtkAlignment" id="alignment40">
                         <property name="visible">True</property>
                         <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkVBox" id="vbox74">
+                          <object class="GtkVBox" id="vbox74">
                             <property name="visible">True</property>
                             <property name="spacing">5</property>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_notification_sound">
+                              <object class="GtkCheckButton" id="checkbutton_notification_sound">
+                                <property name="label" translatable="yes">Use _sound to notify in event of an error</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">Use _sound to notify in event of an error</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_general_ambient">
+                              <object class="GtkCheckButton" id="checkbutton_general_ambient">
+                                <property name="label" translatable="yes">Use _ambient light to adjust LCD brightness</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">Use _ambient light to adjust LCD brightness</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -1016,13 +1096,13 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_general_always_sleep">
-                                <property name="can_focus">True</property>
+                              <object class="GtkCheckButton" id="checkbutton_general_always_sleep">
                                 <property name="label" translatable="yes">Always sleep when the lid is _closed</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -1030,101 +1110,103 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkCheckButton" id="checkbutton_light_keyboard">
-                                <property name="can_focus">True</property>
+                              <object class="GtkCheckButton" id="checkbutton_light_keyboard">
                                 <property name="label" translatable="yes">Turn on keyboard light when light level is low</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="response_id">0</property>
                                 <property name="draw_indicator">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">3</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">3</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="label_tab_general">
+            <child type="tab">
+              <object class="GtkLabel" id="label_tab_general">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">General</property>
-              </widget>
+              </object>
               <packing>
-                <property name="type">tab</property>
                 <property name="position">3</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="fill">False</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="button_help">
+              <object class="GtkButton" id="button_help">
+                <property name="label">gtk-help</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label">gtk-help</property>
+                <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
                 <property name="secondary">True</property>
               </packing>
             </child>
             <child>
-              <widget class="Custom" id="button_default">
-                <property name="visible">True</property>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="button_close">
+              <object class="GtkButton" id="button_close">
+                <property name="label">gtk-close</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label">gtk-close</property>
+                <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
-                <property name="position">2</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="0">button_help</action-widget>
+      <action-widget response="0">button_close</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/data/gpm-statistics.glade b/data/gpm-statistics.ui
similarity index 67%
rename from data/gpm-statistics.glade
rename to data/gpm-statistics.ui
index 4add100..21f7b80 100644
--- a/data/gpm-statistics.glade
+++ b/data/gpm-statistics.ui
@@ -1,475 +1,481 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkDialog" id="dialog_stats">
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkDialog" id="dialog_stats">
     <property name="border_width">6</property>
     <property name="title" translatable="yes">Power Statistics</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="window_position">center-on-parent</property>
+    <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <property name="border_width">6</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkScrolledWindow" id="scrolledwindow2">
+              <object class="GtkScrolledWindow" id="scrolledwindow2">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <property name="hscrollbar_policy">never</property>
+                <property name="vscrollbar_policy">automatic</property>
+                <property name="shadow_type">in</property>
                 <child>
-                  <widget class="GtkTreeView" id="treeview_devices">
+                  <object class="GtkTreeView" id="treeview_devices">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="headers_visible">False</property>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
+                <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkNotebook" id="notebook1">
+              <object class="GtkNotebook" id="notebook1">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow1">
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="border_width">9</property>
-                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="vscrollbar_policy">automatic</property>
+                    <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="treeview_info">
+                      <object class="GtkTreeView" id="treeview_info">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label1">
+                <child type="tab">
+                  <object class="GtkLabel" id="label1">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Details</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox4">
+                  <object class="GtkVBox" id="vbox4">
                     <property name="visible">True</property>
-                    <property name="extension_events">GDK_EXTENSION_EVENTS_CURSOR</property>
+                    <property name="extension_events">cursor</property>
                     <property name="border_width">9</property>
                     <property name="spacing">9</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox4">
+                      <object class="GtkHBox" id="hbox4">
                         <property name="visible">True</property>
                         <property name="spacing">12</property>
                         <child>
-                          <widget class="GtkHBox" id="hbox2">
+                          <object class="GtkHBox" id="hbox2">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkLabel" id="label5">
+                              <object class="GtkLabel" id="label5">
                                 <property name="visible">True</property>
                                 <property name="label" translatable="yes">Graph type:</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkComboBox" id="combobox_history_type">
+                              <object class="GtkComboBox" id="combobox_history_type">
                                 <property name="visible">True</property>
-                                <property name="items"></property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
                         <child>
-                          <widget class="GtkHBox" id="hbox5">
+                          <object class="GtkHBox" id="hbox5">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkLabel" id="label4">
+                              <object class="GtkLabel" id="label4">
                                 <property name="visible">True</property>
                                 <property name="label" translatable="yes">Data length:</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkComboBox" id="combobox_history_time">
+                              <object class="GtkComboBox" id="combobox_history_time">
                                 <property name="visible">True</property>
-                                <property name="items" translatable="yes"></property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox3">
+                      <object class="GtkVBox" id="vbox3">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkHBox" id="hbox7">
+                          <object class="GtkHBox" id="hbox_history">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkLabel" id="label_axis_history_y">
+                              <object class="GtkLabel" id="label_axis_history_y">
                                 <property name="visible">True</property>
                                 <property name="label">y-axis</property>
                                 <property name="angle">90</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
-                            <child>
-                              <widget class="Custom" id="custom_graph_history">
-                                <property name="visible">True</property>
-                                <property name="creation_function">gpm_graph_widget_new</property>
-                              </widget>
-                              <packing>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </widget>
+                          </object>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label_axis_history_x">
+                          <object class="GtkLabel" id="label_axis_history_x">
                             <property name="visible">True</property>
                             <property name="label">x-axis</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox9">
+                      <object class="GtkHBox" id="hbox9">
                         <property name="visible">True</property>
                         <property name="spacing">6</property>
                         <property name="homogeneous">True</property>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbutton_smooth_history">
+                          <object class="GtkCheckButton" id="checkbutton_smooth_history">
+                            <property name="label" translatable="yes">Use smoothed line</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Use smoothed line</property>
-                            <property name="response_id">0</property>
+                            <property name="receives_default">False</property>
                             <property name="draw_indicator">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbutton_points_history">
+                          <object class="GtkCheckButton" id="checkbutton_points_history">
+                            <property name="label" translatable="yes">Show data points</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Show data points</property>
-                            <property name="response_id">0</property>
+                            <property name="receives_default">False</property>
                             <property name="draw_indicator">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">1</property>
                   </packing>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label2">
+                <child type="tab">
+                  <object class="GtkLabel" id="label2">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">History</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">1</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox2">
+                  <object class="GtkVBox" id="vbox2">
                     <property name="visible">True</property>
-                    <property name="extension_events">GDK_EXTENSION_EVENTS_CURSOR</property>
+                    <property name="extension_events">cursor</property>
                     <property name="border_width">9</property>
                     <property name="spacing">9</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox6">
+                      <object class="GtkHBox" id="hbox6">
                         <property name="visible">True</property>
                         <property name="spacing">6</property>
                         <child>
-                          <widget class="GtkLabel" id="label6">
+                          <object class="GtkLabel" id="label6">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">Graph type:</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkComboBox" id="combobox_stats_type">
+                          <object class="GtkComboBox" id="combobox_stats_type">
                             <property name="visible">True</property>
-                            <property name="items"></property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkVBox" id="vbox5">
+                      <object class="GtkVBox" id="vbox5">
                         <property name="visible">True</property>
                         <child>
-                          <widget class="GtkHBox" id="hbox8">
+                          <object class="GtkHBox" id="hbox_statistics">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkLabel" id="label_axis_stats_y">
+                              <object class="GtkLabel" id="label_axis_stats_y">
                                 <property name="visible">True</property>
                                 <property name="label">y-axis</property>
                                 <property name="angle">90</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
-                            <child>
-                              <widget class="Custom" id="custom_graph_stats">
-                                <property name="visible">True</property>
-                                <property name="creation_function">gpm_graph_widget_new</property>
-                              </widget>
-                              <packing>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </widget>
+                          </object>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label_axis_stats_x">
+                          <object class="GtkLabel" id="label_axis_stats_x">
                             <property name="visible">True</property>
                             <property name="label">x-axis</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="padding">3</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox10">
+                      <object class="GtkHBox" id="hbox10">
                         <property name="visible">True</property>
                         <property name="spacing">6</property>
                         <property name="homogeneous">True</property>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbutton_smooth_stats">
+                          <object class="GtkCheckButton" id="checkbutton_smooth_stats">
+                            <property name="label" translatable="yes">Use smoothed line</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Use smoothed line</property>
-                            <property name="response_id">0</property>
+                            <property name="receives_default">False</property>
                             <property name="draw_indicator">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="checkbutton_points_stats">
+                          <object class="GtkCheckButton" id="checkbutton_points_stats">
+                            <property name="label" translatable="yes">Show data points</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Show data points</property>
-                            <property name="response_id">0</property>
+                            <property name="receives_default">False</property>
                             <property name="draw_indicator">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">2</property>
                   </packing>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label3">
+                <child type="tab">
+                  <object class="GtkLabel" id="label3">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Statistics</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">2</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox1">
+                  <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
                     <property name="border_width">9</property>
                     <property name="spacing">9</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox3">
+                      <object class="GtkHBox" id="hbox3">
                         <property name="visible">True</property>
                         <property name="spacing">3</property>
                         <child>
-                          <widget class="GtkLabel" id="label8">
+                          <object class="GtkLabel" id="label8">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">Processor wakeups per second:</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label_total_wakeups">
+                          <object class="GtkLabel" id="label_total_wakeups">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">0</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkScrolledWindow" id="scrolledwindow3">
+                      <object class="GtkScrolledWindow" id="scrolledwindow3">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <property name="hscrollbar_policy">automatic</property>
+                        <property name="vscrollbar_policy">automatic</property>
+                        <property name="shadow_type">in</property>
                         <child>
-                          <widget class="GtkTreeView" id="treeview_wakeups">
+                          <object class="GtkTreeView" id="treeview_wakeups">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                          </widget>
+                          </object>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">3</property>
                   </packing>
                 </child>
-                <child>
-                  <widget class="GtkLabel" id="label7">
+                <child type="tab">
+                  <object class="GtkLabel" id="label7">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Wakeups</property>
-                  </widget>
+                  </object>
                   <packing>
-                    <property name="type">tab</property>
                     <property name="position">3</property>
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="button_help">
+              <object class="GtkButton" id="button_help">
+                <property name="label">gtk-help</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label">gtk-help</property>
+                <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
                 <property name="secondary">True</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="button_close">
+              <object class="GtkButton" id="button_close">
+                <property name="label">gtk-close</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="label">gtk-close</property>
+                <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-                <property name="response_id">0</property>
-              </widget>
+              </object>
               <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="0">button_help</action-widget>
+      <action-widget response="0">button_close</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/docs/dbus-interface.html b/docs/dbus-interface.html
index 43bb8a8..9ae244f 100644
--- a/docs/dbus-interface.html
+++ b/docs/dbus-interface.html
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>GNOME Power Management Specification (with additions)</title><link rel="stylesheet" href="docbook.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="index"></a>GNOME Power Management Specification (with additions)</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Richard</span> <span class="surname">Hughes</span></h3><div class="affiliation"><div class="address"><p><br>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>GNOME Power Management Specification (with additions)</title><link rel="stylesheet" href="docbook.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.3"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="index"></a>GNOME Power Management Specification (with additions)</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Richard</span> <span class="surname">Hughes</span></h3><div class="affiliation"><div class="address"><p><br>
             <code class="email">&lt;<a class="email" href="mailto:richard hughsie com">richard hughsie com</a>&gt;</code><br>
           </p></div></div></div></div></div><div><p class="releaseinfo">Version 2.19.x</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#overview">Overview</a></span></dt><dt><span class="sect1"><a href="#dbus">DBUS API</a></span></dt><dd><dl><dt><span class="sect2"><a href="#dbus-core">Compulsory Basic Interface</a></span></dt><dt><span class="sect2"><a href="#dbus-backlight">Optional Backlight Interface</a></span></dt><dt><span class="sect2"><a href="#dbus-widget">Optional Widget Interface</a></span></dt><dt><span class="sect2"><a href="#dbus-inhibit">Optional Inhibit Interface</a></span></dt><dt><span class="sect2"><a href="#dbus-statistics">Optional Statistics Interface</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="overview"></a>Overview</h2></div></div></div><p>
       A Power Management specification has been in used informally used for
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 4881478..21969d6 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -9,10 +9,10 @@ data/gnome-power-manager.desktop.in.in
 data/gnome-power-manager.schemas.in
 data/gnome-power-preferences.desktop.in.in
 data/gnome-power-statistics.desktop.in.in
-data/gpm-feedback-widget.glade
-data/gpm-statistics.glade
-data/gpm-inhibit-test.glade
-data/gpm-prefs.glade
+data/gpm-feedback-widget.ui
+data/gpm-statistics.ui
+data/gpm-inhibit-test.ui
+data/gpm-prefs.ui
 src/gpm-backlight.c
 src/gpm-brightness-kbd.c
 src/gpm-brightness-hal.c
diff --git a/src/gpm-feedback-widget.c b/src/gpm-feedback-widget.c
index abaf567..72fbf65 100644
--- a/src/gpm-feedback-widget.c
+++ b/src/gpm-feedback-widget.c
@@ -23,7 +23,6 @@
 
 #include <glib.h>
 
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkx.h>
 
@@ -40,7 +39,7 @@ static void	gpm_feedback_show	(GtkWidget 	  *widget);
 
 struct GpmFeedbackPrivate
 {
-	GladeXML		*xml;
+	GtkBuilder		*builder;
 	GtkWidget		*main_window;
 	GtkWidget		*progress;
 	guint			 timer_id;
@@ -153,7 +152,7 @@ gpm_feedback_display_value (GpmFeedback *feedback, gfloat value)
 gboolean
 gpm_feedback_set_icon_name (GpmFeedback *feedback, const gchar *icon_name)
 {
-	GtkWidget *image;
+	GtkImage *image;
 
 	g_return_val_if_fail (feedback != NULL, FALSE);
 	g_return_val_if_fail (GPM_IS_FEEDBACK (feedback), FALSE);
@@ -166,8 +165,8 @@ gpm_feedback_set_icon_name (GpmFeedback *feedback, const gchar *icon_name)
 	egg_debug ("Using icon name '%s'", icon_name);
 	feedback->priv->icon_name = g_strdup (icon_name);
 
-	image = glade_xml_get_widget (feedback->priv->xml, "image");
-	gtk_image_set_from_icon_name  (GTK_IMAGE (image), feedback->priv->icon_name, GTK_ICON_SIZE_DIALOG);
+	image = GTK_IMAGE (gtk_builder_get_object (feedback->priv->builder, "image"));
+	gtk_image_set_from_icon_name  (image, feedback->priv->icon_name, GTK_ICON_SIZE_DIALOG);
 
 	return TRUE;
 }
@@ -179,17 +178,24 @@ gpm_feedback_set_icon_name (GpmFeedback *feedback, const gchar *icon_name)
 static void
 gpm_feedback_init (GpmFeedback *feedback)
 {
+	guint retval;
+	GError *error = NULL;
+
 	feedback->priv = GPM_FEEDBACK_GET_PRIVATE (feedback);
 	feedback->priv->timer_id = 0;
 	feedback->priv->icon_name = NULL;
 
-	/* initialise the window */
-	feedback->priv->xml = glade_xml_new (GPM_DATA "/gpm-feedback-widget.glade", NULL, NULL);
-	if (feedback->priv->xml == NULL)
-		egg_error ("Can't find gpm-feedback-widget.glade");
-	feedback->priv->main_window = glade_xml_get_widget (feedback->priv->xml, "main_window");
+	/* get UI */
+	feedback->priv->builder = gtk_builder_new ();
+	retval = gtk_builder_add_from_file (feedback->priv->builder, GPM_DATA "/gpm-feedback-widget.ui", &error);
+	if (error != NULL) {
+		egg_warning ("failed to load ui: %s", error->message);
+		g_error_free (error);
+	}
 
-	feedback->priv->progress = glade_xml_get_widget (feedback->priv->xml, "progressbar");
+	/* initialise the window */
+	feedback->priv->main_window = GTK_WIDGET (gtk_builder_get_object (feedback->priv->builder, "main_window"));
+	feedback->priv->progress = GTK_WIDGET (gtk_builder_get_object (feedback->priv->builder, "progressbar"));
 	gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (feedback->priv->progress), 0.0f);
 	gtk_widget_set_sensitive (feedback->priv->progress, FALSE);
 
diff --git a/src/gpm-main.c b/src/gpm-main.c
index fa4126a..37215e9 100644
--- a/src/gpm-main.c
+++ b/src/gpm-main.c
@@ -35,7 +35,6 @@
 #include <gtk/gtk.h>
 #include <dbus/dbus-glib.h>
 #include <dbus/dbus-glib-lowlevel.h>
-#include <glade/glade.h>
 
 #include "gpm-stock-icons.h"
 #include "gpm-common.h"
diff --git a/src/gpm-prefs-core.c b/src/gpm-prefs-core.c
index b37ae3e..8b845c1 100644
--- a/src/gpm-prefs-core.c
+++ b/src/gpm-prefs-core.c
@@ -26,7 +26,6 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <dbus/dbus-glib.h>
 #include <math.h>
@@ -53,7 +52,7 @@ static void     gpm_prefs_finalize   (GObject	    *object);
 
 struct GpmPrefsPrivate
 {
-	GladeXML		*glade_xml;
+	GtkBuilder		*builder;
 	gboolean		 has_batteries;
 	gboolean		 has_lcd;
 	gboolean		 has_ups;
@@ -134,9 +133,9 @@ gpm_prefs_class_init (GpmPrefsClass *klass)
 void
 gpm_prefs_activate_window (GpmPrefs *prefs)
 {
-	GtkWidget *widget;
-	widget = glade_xml_get_widget (prefs->priv->glade_xml, "dialog_preferences");
-	gtk_window_present (GTK_WINDOW (widget));
+	GtkWindow *window;
+	window = GTK_WINDOW (gtk_builder_get_object (prefs->priv->builder, "dialog_preferences"));
+	gtk_window_present (window);
 }
 
 /**
@@ -338,7 +337,7 @@ gpm_prefs_setup_sleep_slider (GpmPrefs *prefs, const gchar *widget_name, const g
 	gboolean is_writable;
 	GtkAdjustment *adjustment;
 
-	widget = glade_xml_get_widget (prefs->priv->glade_xml, widget_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
 	g_signal_connect (G_OBJECT (widget), "format-value",
 			  G_CALLBACK (gpm_prefs_format_time_cb), prefs);
 
@@ -403,12 +402,12 @@ gpm_prefs_setup_brightness_slider (GpmPrefs    *prefs,
 				   const gchar *widget_name,
 				   const gchar *gpm_pref_key)
 {
-	GladeXML    *xml = prefs->priv->glade_xml;
+	GtkBuilder    *xml = prefs->priv->builder;
 	GtkWidget *widget;
 	int value;
 	gboolean is_writable;
 
-	widget = glade_xml_get_widget (xml, widget_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (xml, widget_name));
 
 	g_signal_connect (G_OBJECT (widget), "format-value",
 			  G_CALLBACK (gpm_prefs_format_percentage_cb), NULL);
@@ -466,6 +465,26 @@ gpm_prefs_action_combo_changed_cb (GtkWidget *widget,
 }
 
 /**
+ * gpm_prefs_set_combo_simple_text:
+ **/
+static void
+gpm_prefs_set_combo_simple_text (GtkWidget *combo_box)
+{
+	GtkCellRenderer *cell;
+	GtkListStore *store;
+
+	store = gtk_list_store_new (1, G_TYPE_STRING);
+	gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box), GTK_TREE_MODEL (store));
+	g_object_unref (store);
+
+	cell = gtk_cell_renderer_text_new ();
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), cell, TRUE);
+	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), cell,
+					"text", 0,
+					NULL);
+}
+
+/**
  * gpm_prefs_setup_action_combo:
  * @prefs: This prefs class instance
  * @widget_name: The GtkWidget name
@@ -478,14 +497,15 @@ gpm_prefs_setup_action_combo (GpmPrefs     *prefs,
 			      const gchar  *gpm_pref_key,
 			      const gchar **actions)
 {
-	GladeXML    *xml = prefs->priv->glade_xml;
+	GtkBuilder    *xml = prefs->priv->builder;
 	gchar *value;
 	gint i = 0;
 	gint n_added = 0;
 	gboolean is_writable;
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (xml, widget_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (xml, widget_name));
+	gpm_prefs_set_combo_simple_text (widget);
 
 	value = gconf_client_get_string (prefs->priv->conf, gpm_pref_key, NULL);
 	is_writable = gconf_client_key_is_writable (prefs->priv->conf, gpm_pref_key, NULL);
@@ -577,13 +597,13 @@ gpm_prefs_setup_checkbox (GpmPrefs    *prefs,
 			  const gchar *gpm_pref_key)
 {
 
-	GladeXML    *xml = prefs->priv->glade_xml;
+	GtkBuilder    *xml = prefs->priv->builder;
 	gboolean checked;
 	GtkWidget *widget;
 
 	egg_debug ("Setting up %s", gpm_pref_key);
 
-	widget = glade_xml_get_widget (xml, widget_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (xml, widget_name));
 
 	checked = gconf_client_get_bool (prefs->priv->conf, gpm_pref_key, NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
@@ -640,7 +660,7 @@ set_idle_hscale_stops (GpmPrefs    *prefs,
 		       gint         gs_idle_time)
 {
 	GtkWidget *widget;
-	widget = glade_xml_get_widget (prefs->priv->glade_xml, widget_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, widget_name));
 	if (gs_idle_time + 1 > NEVER_TIME_ON_SLIDER) {
 		egg_warning ("gnome-session timeout is really big");
 		return;
@@ -666,7 +686,7 @@ gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *e
 		return;
 
 	if (strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC) == 0) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "hscale_ac_brightness");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hscale_ac_brightness"));
 		brightness = gconf_value_get_int (value);
 		gtk_range_set_value (GTK_RANGE (widget), brightness);
 	}
@@ -702,16 +722,16 @@ prefs_setup_notification (GpmPrefs *prefs)
 	icon_policy = gpm_tray_icon_mode_from_string (icon_policy_str);
 	g_free (icon_policy_str);
 
-	radiobutton_icon_always = glade_xml_get_widget (prefs->priv->glade_xml,
-							"radiobutton_notification_always");
-	radiobutton_icon_present = glade_xml_get_widget (prefs->priv->glade_xml,
-							"radiobutton_notification_present");
-	radiobutton_icon_charge = glade_xml_get_widget (prefs->priv->glade_xml,
-							"radiobutton_notification_charge");
-	radiobutton_icon_critical = glade_xml_get_widget (prefs->priv->glade_xml,
-							"radiobutton_notification_critical");
-	radiobutton_icon_never = glade_xml_get_widget (prefs->priv->glade_xml,
-							"radiobutton_notification_never");
+	radiobutton_icon_always = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
+					      "radiobutton_notification_always"));
+	radiobutton_icon_present = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
+					       "radiobutton_notification_present"));
+	radiobutton_icon_charge = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
+					      "radiobutton_notification_charge"));
+	radiobutton_icon_critical = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
+					      "radiobutton_notification_critical"));
+	radiobutton_icon_never = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder,
+					     "radiobutton_notification_never"));
 
 	is_writable = gconf_client_key_is_writable (prefs->priv->conf, GPM_CONF_UI_ICON_POLICY, NULL);
 	gtk_widget_set_sensitive (radiobutton_icon_always, is_writable);
@@ -802,13 +822,13 @@ prefs_setup_ac (GpmPrefs *prefs)
 	set_idle_hscale_stops (prefs, "hscale_ac_computer", prefs->priv->idle_delay);
 
 	if (prefs->priv->has_button_lid == FALSE) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "hbox_ac_lid");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_ac_lid"));
 		gtk_widget_hide_all (widget);
 	}
 	if (prefs->priv->has_lcd == FALSE) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "hbox_ac_brightness");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_ac_brightness"));
 		gtk_widget_hide_all (widget);
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "checkbutton_ac_display_dim");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_ac_display_dim"));
 		gtk_widget_hide_all (widget);
 	}
 }
@@ -817,7 +837,7 @@ static void
 prefs_setup_battery (GpmPrefs *prefs)
 {
 	GtkWidget *widget;
-	GtkWidget *notebook;
+	GtkNotebook *notebook;
 	gint page;
 
 	const gchar  *button_lid_actions[] =
@@ -835,10 +855,10 @@ prefs_setup_battery (GpmPrefs *prefs)
 				 NULL};
 
 	if (prefs->priv->has_batteries == FALSE) {
-		notebook = glade_xml_get_widget (prefs->priv->glade_xml, "notebook_preferences");
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "vbox_battery");
-		page = gtk_notebook_page_num (GTK_NOTEBOOK (notebook), GTK_WIDGET (widget));
-		gtk_notebook_remove_page (GTK_NOTEBOOK (notebook), page);
+		notebook = GTK_NOTEBOOK (gtk_builder_get_object (prefs->priv->builder, "notebook_preferences"));
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "vbox_battery"));
+		page = gtk_notebook_page_num (notebook, GTK_WIDGET (widget));
+		gtk_notebook_remove_page (notebook, page);
 		return;
 	}
 
@@ -861,18 +881,18 @@ prefs_setup_battery (GpmPrefs *prefs)
 				  GPM_CONF_BACKLIGHT_IDLE_DIM_BATT);
 
 	if (prefs->priv->has_ambient == FALSE) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "checkbutton_general_ambient");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_general_ambient"));
 		gtk_widget_hide_all (widget);
 	}
 
 	set_idle_hscale_stops (prefs, "hscale_battery_computer", prefs->priv->idle_delay);
 
 	if (prefs->priv->has_button_lid == FALSE) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "hbox_battery_lid");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_battery_lid"));
 		gtk_widget_hide_all (widget);
 	}
 	if (prefs->priv->has_lcd == FALSE) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "checkbutton_battery_display_dim");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_battery_display_dim"));
 		gtk_widget_hide_all (widget);
 	}
 }
@@ -881,7 +901,7 @@ static void
 prefs_setup_ups (GpmPrefs *prefs)
 {
 	GtkWidget *widget;
-	GtkWidget *notebook;
+	GtkNotebook *notebook;
 	gint page;
 
 	const gchar  *ups_low_actions[] =
@@ -891,10 +911,10 @@ prefs_setup_ups (GpmPrefs *prefs)
 				 NULL};
 
 	if (prefs->priv->has_ups == FALSE) {
-		notebook = glade_xml_get_widget (prefs->priv->glade_xml, "notebook_preferences");
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "vbox_ups");
-		page = gtk_notebook_page_num (GTK_NOTEBOOK (notebook), GTK_WIDGET (widget));
-		gtk_notebook_remove_page (GTK_NOTEBOOK (notebook), page);
+		notebook = GTK_NOTEBOOK (gtk_builder_get_object (prefs->priv->builder, "notebook_preferences"));
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "vbox_ups"));
+		page = gtk_notebook_page_num (notebook, GTK_WIDGET (widget));
+		gtk_notebook_remove_page (notebook, page);
 		return;
 	}
 
@@ -935,12 +955,12 @@ prefs_setup_general (GpmPrefs *prefs)
 				  GPM_CONF_AMBIENT_ENABLE);
 
 	if (prefs->priv->has_ambient == FALSE) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "checkbutton_general_ambient");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "checkbutton_general_ambient"));
 		gtk_widget_hide_all (widget);
 	}
 
 	if (prefs->priv->has_button_suspend == FALSE) {
-		widget = glade_xml_get_widget (prefs->priv->glade_xml, "hbox_general_suspend");
+		widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "hbox_general_suspend"));
 		gtk_widget_hide_all (widget);
 	}
 }
@@ -992,22 +1012,6 @@ pk_prefs_set_defaults_cb (PolKitGnomeAction *default_action, GpmPrefs *prefs)
 }
 
 /**
- * gpk_prefs_create_custom_widget:
- **/
-static GtkWidget *
-gpk_prefs_create_custom_widget (GladeXML *xml, gchar *func_name, gchar *name,
-				     gchar *string1, gchar *string2,
-				     gint int1, gint int2, gpointer user_data)
-{
-	GpmPrefs *prefs = GPM_PREFS (user_data);
-	if (strcmp (name, "button_default") == 0) {
-		return polkit_gnome_action_create_button (prefs->priv->default_action);
-	}
-	egg_warning ("name unknown=%s", name);
-	return NULL;
-}
-
-/**
  * gpk_prefs_setup_policykit:
  *
  * We have to do this before the glade stuff if done as the custom handler needs the actions setup
@@ -1037,7 +1041,12 @@ gpm_prefs_init (GpmPrefs *prefs)
 {
 	GtkWidget *main_window;
 	GtkWidget *widget;
+#ifdef HAVE_GCONF_DEFAULTS
+	GtkWidget *button;
+#endif
 	gint caps;
+	guint retval;
+	GError *error = NULL;
 
 	prefs->priv = GPM_PREFS_GET_PRIVATE (prefs);
 
@@ -1065,20 +1074,26 @@ gpm_prefs_init (GpmPrefs *prefs)
 	prefs->priv->can_hibernate = gpm_dbus_method_bool ("CanHibernate");
 	egg_debug ("caps=%i", caps);
 
-#ifdef HAVE_GCONF_DEFAULTS
-	/* use custom widgets */
-	glade_set_custom_handler (gpk_prefs_create_custom_widget, prefs);
+	prefs->priv->builder = gtk_builder_new ();
+	retval = gtk_builder_add_from_file (prefs->priv->builder, GPM_DATA "/gpm-prefs.ui", &error);
+	if (error != NULL) {
+		egg_warning ("failed to load ui: %s", error->message);
+		g_error_free (error);
+	}
 
-	/* we have to do this before we connect up the glade file */
-	gpk_prefs_setup_policykit (prefs);
-#endif
+	main_window = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "dialog_preferences"));
 
-	prefs->priv->glade_xml = glade_xml_new (GPM_DATA "/gpm-prefs.glade", NULL, NULL);
-	if (prefs->priv->glade_xml == NULL) {
-		g_error ("Cannot find 'gpm-prefs.glade'");
-	}
+#ifdef HAVE_GCONF_DEFAULTS
+	/* we have to do this before we connect up the GtkBuilder file */
+	gpk_prefs_setup_policykit (prefs);
 
-	main_window = glade_xml_get_widget (prefs->priv->glade_xml, "dialog_preferences");
+	/* create PolicyKit button */
+	widget = gtk_dialog_get_action_area (GTK_DIALOG (main_window));
+	button = polkit_gnome_action_create_button (prefs->priv->default_action);
+	gtk_box_pack_start (GTK_BOX (widget), button, FALSE, FALSE, 0);
+	gtk_box_reorder_child (GTK_BOX (widget), button, 0);
+	gtk_widget_show (button);
+#endif
 
 	/* Hide window first so that the dialogue resizes itself without redrawing */
 	gtk_widget_hide (main_window);
@@ -1088,11 +1103,11 @@ gpm_prefs_init (GpmPrefs *prefs)
 	g_signal_connect (main_window, "delete_event",
 			  G_CALLBACK (gpm_prefs_delete_event_cb), prefs);
 
-	widget = glade_xml_get_widget (prefs->priv->glade_xml, "button_close");
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "button_close"));
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_prefs_close_cb), prefs);
 
-	widget = glade_xml_get_widget (prefs->priv->glade_xml, "button_help");
+	widget = GTK_WIDGET (gtk_builder_get_object (prefs->priv->builder, "button_help"));
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_prefs_help_cb), prefs);
 
diff --git a/src/gpm-statistics.c b/src/gpm-statistics.c
index e275a12..703aee0 100644
--- a/src/gpm-statistics.c
+++ b/src/gpm-statistics.c
@@ -26,7 +26,6 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <dbus/dbus-glib.h>
 #include <gconf/gconf-client.h>
@@ -42,7 +41,7 @@
 #include "gpm-devicekit.h"
 #include "gpm-graph-widget.h"
 
-static GladeXML *glade_xml = NULL;
+static GtkBuilder *builder = NULL;
 static GtkListStore *list_store_info = NULL;
 static GtkListStore *list_store_devices = NULL;
 static GtkListStore *list_store_wakeups = NULL;
@@ -53,6 +52,8 @@ static guint history_time;
 static GConfClient *gconf_client;
 static gfloat sigma_smoothing = 0.0f;
 static DkpWakeups *wakeups = NULL;
+static GtkWidget *graph_history = NULL;
+static GtkWidget *graph_statistics = NULL;
 
 enum {
 	GPM_INFO_COLUMN_TEXT,
@@ -505,21 +506,20 @@ gpm_stats_update_info_page_history (DkpDevice *device)
 	GTimeVal timeval;
 
 	new = g_ptr_array_new ();
-	widget = glade_xml_get_widget (glade_xml, "custom_graph_history");
-	gpm_graph_widget_set_type_x (GPM_GRAPH_WIDGET (widget), GPM_GRAPH_WIDGET_TYPE_TIME);
+	gpm_graph_widget_set_type_x (GPM_GRAPH_WIDGET (graph_history), GPM_GRAPH_WIDGET_TYPE_TIME);
 	if (strcmp (history_type, GPM_HISTORY_CHARGE_VALUE) == 0)
-		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (widget), GPM_GRAPH_WIDGET_TYPE_PERCENTAGE);
+		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (graph_history), GPM_GRAPH_WIDGET_TYPE_PERCENTAGE);
 	else if (strcmp (history_type, GPM_HISTORY_RATE_VALUE) == 0)
-		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (widget), GPM_GRAPH_WIDGET_TYPE_POWER);
+		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (graph_history), GPM_GRAPH_WIDGET_TYPE_POWER);
 	else
-		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (widget), GPM_GRAPH_WIDGET_TYPE_TIME);
+		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (graph_history), GPM_GRAPH_WIDGET_TYPE_TIME);
 
 	array = dkp_device_get_history (device, history_type, history_time, 150, NULL);
 	if (array == NULL) {
-		gtk_widget_hide (widget);
+		gtk_widget_hide (graph_history);
 		goto out;
 	}
-	gtk_widget_show (widget);
+	gtk_widget_show (graph_history);
 
 	g_get_current_time (&timeval);
 	offset = timeval.tv_sec;
@@ -549,14 +549,13 @@ gpm_stats_update_info_page_history (DkpDevice *device)
 
 	/* render */
 	sigma_smoothing = 2.0;
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_smooth_history");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_history"));
 	checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_points_history");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_history"));
 	points = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
 	/* present data to graph */
-	widget = glade_xml_get_widget (glade_xml, "custom_graph_history");
-	gpm_stats_set_graph_data (widget, new, checked, points);
+	gpm_stats_set_graph_data (graph_history, new, checked, points);
 
 	g_ptr_array_foreach (array, (GFunc) dkp_history_obj_free, NULL);
 	g_ptr_array_free (array, TRUE);
@@ -584,7 +583,6 @@ gpm_stats_update_info_page_stats (DkpDevice *device)
 	const gchar *type = NULL;
 
 	new = g_ptr_array_new ();
-	widget = glade_xml_get_widget (glade_xml, "custom_graph_stats");
 	if (strcmp (stats_type, GPM_STATS_CHARGE_DATA_VALUE) == 0) {
 		type = "charging";
 		use_data = TRUE;
@@ -600,16 +598,16 @@ gpm_stats_update_info_page_stats (DkpDevice *device)
 	} else {
 		g_assert_not_reached ();
 	}
-	gpm_graph_widget_set_type_x (GPM_GRAPH_WIDGET (widget), GPM_GRAPH_WIDGET_TYPE_PERCENTAGE);
+	gpm_graph_widget_set_type_x (GPM_GRAPH_WIDGET (graph_statistics), GPM_GRAPH_WIDGET_TYPE_PERCENTAGE);
 
 	if (use_data)
-		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (widget), GPM_GRAPH_WIDGET_TYPE_FACTOR);
+		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (graph_statistics), GPM_GRAPH_WIDGET_TYPE_FACTOR);
 	else
-		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (widget), GPM_GRAPH_WIDGET_TYPE_PERCENTAGE);
+		gpm_graph_widget_set_type_y (GPM_GRAPH_WIDGET (graph_statistics), GPM_GRAPH_WIDGET_TYPE_PERCENTAGE);
 
 	array = dkp_device_get_statistics (device, type, NULL);
 	if (array == NULL) {
-		gtk_widget_hide (widget);
+		gtk_widget_hide (graph_statistics);
 		goto out;
 	}
 
@@ -627,14 +625,13 @@ gpm_stats_update_info_page_stats (DkpDevice *device)
 
 	/* render */
 	sigma_smoothing = 1.1;
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_smooth_stats");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_stats"));
 	checked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_points_stats");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_stats"));
 	points = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
 	/* present data to graph */
-	widget = glade_xml_get_widget (glade_xml, "custom_graph_stats");
-	gpm_stats_set_graph_data (widget, new, checked, points);
+	gpm_stats_set_graph_data (graph_statistics, new, checked, points);
 
 	g_ptr_array_foreach (array, (GFunc) dkp_stats_obj_free, NULL);
 	g_ptr_array_free (array, TRUE);
@@ -665,7 +662,7 @@ static void
 gpm_stats_update_info_data (DkpDevice *device)
 {
 	gint page;
-	GtkWidget *widget;
+	GtkNotebook *notebook;
 	GtkWidget *page_widget;
 	gboolean has_history;
 	gboolean has_statistics;
@@ -677,31 +674,31 @@ gpm_stats_update_info_data (DkpDevice *device)
 		      NULL);
 
 
-	widget = glade_xml_get_widget (glade_xml, "notebook1");
+	notebook = GTK_NOTEBOOK (gtk_builder_get_object (builder, "notebook1"));
 
 	/* show info page */
-	page_widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK(widget), 0);
+	page_widget = gtk_notebook_get_nth_page (notebook, 0);
 	gtk_widget_show (page_widget);
 
 	/* hide history if no support */
-	page_widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK(widget), 1);
+	page_widget = gtk_notebook_get_nth_page (notebook, 1);
 	if (has_history)
 		gtk_widget_show (page_widget);
 	else
 		gtk_widget_hide (page_widget);
 
 	/* hide statistics if no support */
-	page_widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK(widget), 2);
+	page_widget = gtk_notebook_get_nth_page (notebook, 2);
 	if (has_statistics)
 		gtk_widget_show (page_widget);
 	else
 		gtk_widget_hide (page_widget);
 
 	/* hide wakeups page */
-	page_widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK(widget), 3);
+	page_widget = gtk_notebook_get_nth_page (notebook, 3);
 	gtk_widget_hide (page_widget);
 
-	page = gtk_notebook_get_current_page (GTK_NOTEBOOK (widget));
+	page = gtk_notebook_get_current_page (notebook);
 	gpm_stats_update_info_data_page (device, page);
 
 	return;
@@ -915,7 +912,7 @@ gpm_stats_update_wakeups_data (void)
 	GError *error = NULL;
 	GPtrArray *array;
 
-	widget = glade_xml_get_widget (glade_xml, "notebook1");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "notebook1"));
 
 	/* hide other pages */
 	page_widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK(widget), 0);
@@ -931,7 +928,7 @@ gpm_stats_update_wakeups_data (void)
 
 	/* show total */
 	total = dkp_wakeups_get_total (wakeups, &error);
-	widget = glade_xml_get_widget (glade_xml, "label_total_wakeups");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_total_wakeups"));
 	if (error == NULL) {
 		text = g_strdup_printf ("%i", total);
 		gtk_label_set_label (GTK_LABEL(widget), text);
@@ -985,7 +982,7 @@ gpm_stats_notebook_changed_cb (GtkNotebook *notebook, GtkNotebookPage *page, gin
 	GtkWidget *widget;
 
 	/* set the window title depending on the mode */
-	widget = glade_xml_get_widget (glade_xml, "dialog_stats");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_stats"));
 	gpm_stats_set_title (GTK_WINDOW (widget), page_num);
 
 	/* save page in gconf */
@@ -1054,29 +1051,13 @@ gpm_stats_devices_treeview_clicked_cb (GtkTreeSelection *selection, gboolean dat
 }
 
 /**
- * gpm_stats_create_custom_widget:
- **/
-static GtkWidget *
-gpm_stats_create_custom_widget (GladeXML *xml, gchar *func_name, gchar *name,
-				gchar *string1, gchar *string2, gint int1, gint int2, gpointer user_data)
-{
-	GtkWidget *widget = NULL;
-	if (strcmp ("gpm_graph_widget_new", func_name) == 0) {
-		widget = gpm_graph_widget_new ();
-		return widget;
-	}
-	egg_warning ("name unknown=%s", name);
-	return NULL;
-}
-
-/**
  * gpm_stats_window_activated_cb
  **/
 static void
 gpm_stats_window_activated_cb (EggUnique *egg_unique, gpointer data)
 {
 	GtkWidget *widget;
-	widget = glade_xml_get_widget (glade_xml, "dialog_stats");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_stats"));
 	gtk_window_present (GTK_WINDOW (widget));
 }
 
@@ -1214,9 +1195,9 @@ gpm_stats_history_type_combo_changed_cb (GtkWidget *widget, gpointer data)
 	}
 
 	/* set axis */
-	widget = glade_xml_get_widget (glade_xml, "label_axis_history_x");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_axis_history_x"));
 	gtk_label_set_label (GTK_LABEL(widget), axis_x);
-	widget = glade_xml_get_widget (glade_xml, "label_axis_history_y");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_axis_history_y"));
 	gtk_label_set_label (GTK_LABEL(widget), axis_y);
 
 	gpm_stats_button_update_ui ();
@@ -1265,9 +1246,9 @@ gpm_stats_type_combo_changed_cb (GtkWidget *widget, gpointer data)
 	}
 
 	/* set axis */
-	widget = glade_xml_get_widget (glade_xml, "label_axis_stats_x");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_axis_stats_x"));
 	gtk_label_set_label (GTK_LABEL(widget), axis_x);
-	widget = glade_xml_get_widget (glade_xml, "label_axis_stats_y");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_axis_stats_y"));
 	gtk_label_set_label (GTK_LABEL(widget), axis_y);
 
 	gpm_stats_button_update_ui ();
@@ -1356,6 +1337,26 @@ gpm_stats_points_checkbox_stats_cb (GtkWidget *widget, gpointer data)
 }
 
 /**
+ * gpm_stats_set_combo_simple_text:
+ **/
+static void
+gpm_stats_set_combo_simple_text (GtkWidget *combo_box)
+{
+	GtkCellRenderer *cell;
+	GtkListStore *store;
+
+	store = gtk_list_store_new (1, G_TYPE_STRING);
+	gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box), GTK_TREE_MODEL (store));
+	g_object_unref (store);
+
+	cell = gtk_cell_renderer_text_new ();
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), cell, TRUE);
+	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), cell,
+					"text", 0,
+					NULL);
+}
+
+/**
  * main:
  **/
 int
@@ -1363,6 +1364,7 @@ main (int argc, char *argv[])
 {
 	gboolean verbose = FALSE;
 	GOptionContext *context;
+	GtkBox *box;
 	GtkWidget *widget;
 	GtkTreeSelection *selection;
 	EggUnique *egg_unique;
@@ -1375,6 +1377,8 @@ main (int argc, char *argv[])
 	const gchar *object_path;
 	gboolean checked;
 	gchar *last_device;
+	guint retval;
+	GError *error = NULL;
 
 	const GOptionEntry options[] = {
 		{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
@@ -1423,50 +1427,68 @@ main (int argc, char *argv[])
 	gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
                                            GPM_DATA G_DIR_SEPARATOR_S "icons");
 
-	/* use custom widgets */
-	glade_set_custom_handler (gpm_stats_create_custom_widget, NULL);
+	/* get UI */
+	builder = gtk_builder_new ();
+	retval = gtk_builder_add_from_file (builder, GPM_DATA "/gpm-statistics.ui", &error);
+	if (error != NULL) {
+		egg_warning ("failed to load ui: %s", error->message);
+		g_error_free (error);
+	}
 
-	glade_xml = glade_xml_new (GPM_DATA "/gpm-statistics.glade", NULL, NULL);
-	widget = glade_xml_get_widget (glade_xml, "dialog_stats");
+	/* add history graph */
+	box = GTK_BOX (gtk_builder_get_object (builder, "hbox_history"));
+	graph_history = gpm_graph_widget_new ();
+	gtk_box_pack_start (box, graph_history, TRUE, TRUE, 0);
+	gtk_widget_set_size_request (graph_history, 600, 300);
+	gtk_widget_show (graph_history);
+
+	/* add statistics graph */
+	box = GTK_BOX (gtk_builder_get_object (builder, "hbox_statistics"));
+	graph_statistics = gpm_graph_widget_new ();
+	gtk_box_pack_start (box, graph_statistics, TRUE, TRUE, 0);
+	gtk_widget_set_size_request (graph_statistics, 600, 300);
+	gtk_widget_show (graph_statistics);
+
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_stats"));
 	gtk_window_set_default_size (GTK_WINDOW(widget), 800, 500);
 	gtk_window_set_default_icon_name (GPM_STOCK_APP_ICON);
 
 	/* Get the main window quit */
 	g_signal_connect_swapped (widget, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "button_close");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_close"));
 	g_signal_connect_swapped (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
 	gtk_widget_grab_default (widget);
 
-	widget = glade_xml_get_widget (glade_xml, "button_help");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_help"));
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_button_help_cb), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_smooth_history");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_history"));
 	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_HISTORY_GRAPH_SMOOTH, NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_smooth_checkbox_history_cb), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_smooth_stats");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_smooth_stats"));
 	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_STATS_GRAPH_SMOOTH, NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_smooth_checkbox_stats_cb), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_points_history");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_history"));
 	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_HISTORY_GRAPH_POINTS, NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_points_checkbox_history_cb), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "checkbutton_points_stats");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_points_stats"));
 	checked = gconf_client_get_bool (gconf_client, GPM_CONF_INFO_STATS_GRAPH_POINTS, NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), checked);
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gpm_stats_points_checkbox_stats_cb), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "notebook1");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "notebook1"));
 	page = gconf_client_get_int (gconf_client, GPM_CONF_INFO_PAGE_NUMBER, NULL);
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), page);
 	g_signal_connect (widget, "switch-page",
@@ -1480,7 +1502,7 @@ main (int argc, char *argv[])
 						 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
 
 	/* create transaction_id tree view */
-	widget = glade_xml_get_widget (glade_xml, "treeview_info");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "treeview_info"));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
 				 GTK_TREE_MODEL (list_store_info));
 
@@ -1489,7 +1511,7 @@ main (int argc, char *argv[])
 	gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget)); /* show */
 
 	/* create transaction_id tree view */
-	widget = glade_xml_get_widget (glade_xml, "treeview_devices");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "treeview_devices"));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
 				 GTK_TREE_MODEL (list_store_devices));
 	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
@@ -1501,7 +1523,7 @@ main (int argc, char *argv[])
 	gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget)); /* show */
 
 	/* create wakeups tree view */
-	widget = glade_xml_get_widget (glade_xml, "treeview_wakeups");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "treeview_wakeups"));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
 				 GTK_TREE_MODEL (list_store_wakeups));
 	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
@@ -1521,7 +1543,8 @@ main (int argc, char *argv[])
 	if (stats_type == NULL)
 		stats_type = GPM_STATS_CHARGE_DATA_VALUE;
 
-	widget = glade_xml_get_widget (glade_xml, "combobox_history_type");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_history_type"));
+	gpm_stats_set_combo_simple_text (widget);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_HISTORY_RATE_TEXT);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_HISTORY_CHARGE_TEXT);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_HISTORY_TIME_FULL_TEXT);
@@ -1533,7 +1556,8 @@ main (int argc, char *argv[])
 	g_signal_connect (G_OBJECT (widget), "changed",
 			  G_CALLBACK (gpm_stats_history_type_combo_changed_cb), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "combobox_stats_type");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_stats_type"));
+	gpm_stats_set_combo_simple_text (widget);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_STATS_CHARGE_DATA_TEXT);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_STATS_CHARGE_ACCURACY_TEXT);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_STATS_DISCHARGE_DATA_TEXT);
@@ -1551,7 +1575,8 @@ main (int argc, char *argv[])
 	g_signal_connect (G_OBJECT (widget), "changed",
 			  G_CALLBACK (gpm_stats_type_combo_changed_cb), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "combobox_history_time");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_history_time"));
+	gpm_stats_set_combo_simple_text (widget);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_HISTORY_MINUTE_TEXT);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_HISTORY_HOUR_TEXT);
 	gtk_combo_box_append_text (GTK_COMBO_BOX (widget), GPM_HISTORY_DAY_TEXT);
@@ -1566,13 +1591,6 @@ main (int argc, char *argv[])
 	g_signal_connect (G_OBJECT (widget), "changed",
 			  G_CALLBACK (gpm_stats_range_combo_changed), NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "custom_graph_history");
-	gtk_widget_set_size_request (widget, 700, 400);
-	gtk_widget_show (widget);
-	widget = glade_xml_get_widget (glade_xml, "custom_graph_stats");
-	gtk_widget_set_size_request (widget, 700, 400);
-	gtk_widget_show (widget);
-
 	client = dkp_client_new ();
 	g_signal_connect (client, "device-added", G_CALLBACK (gpm_stats_device_added_cb), NULL);
 	g_signal_connect (client, "device-removed", G_CALLBACK (gpm_stats_device_removed_cb), NULL);
@@ -1623,7 +1641,7 @@ main (int argc, char *argv[])
 			gchar *path_str;
 			path_str = g_strdup_printf ("%i", i);
 			path = gtk_tree_path_new_from_string (path_str);
-			widget = glade_xml_get_widget (glade_xml, "treeview_devices");
+			widget = GTK_WIDGET (gtk_builder_get_object (builder, "treeview_devices"));
 			gtk_tree_view_set_cursor_on_cell (GTK_TREE_VIEW (widget), path, NULL, NULL, FALSE);
 			g_free (path_str);
 			gtk_tree_path_free (path);
@@ -1634,12 +1652,12 @@ main (int argc, char *argv[])
 	g_ptr_array_free (devices, TRUE);
 
 	/* set axis */
-	widget = glade_xml_get_widget (glade_xml, "combobox_history_type");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_history_type"));
 	gpm_stats_history_type_combo_changed_cb (widget, NULL);
-	widget = glade_xml_get_widget (glade_xml, "combobox_stats_type");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_stats_type"));
 	gpm_stats_type_combo_changed_cb (widget, NULL);
 
-	widget = glade_xml_get_widget (glade_xml, "dialog_stats");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_stats"));
 	gtk_widget_show (widget);
 
 	gtk_main ();
@@ -1648,7 +1666,7 @@ out:
 	g_object_unref (gconf_client);
 	g_object_unref (client);
 	g_object_unref (wakeups);
-	g_object_unref (glade_xml);
+	g_object_unref (builder);
 	g_object_unref (list_store_info);
 unique_out:
 	g_object_unref (egg_unique);



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