[Xfce4-commits] [panel-plugins/xfce4-hardware-monitor-plugin] 01/03: Allow users to configure interface names for the different types

noreply at xfce.org noreply at xfce.org
Sun Jun 21 18:33:41 CEST 2015


This is an automated email from the git hooks/post-receive script.

omegaphil pushed a commit to branch omegaphil/configurable-interface-names
in repository panel-plugins/xfce4-hardware-monitor-plugin.

commit a641c442d15a069790226933c620616e69f18483
Author: OmegaPhil <OmegaPhil at startmail.com>
Date:   Sun Jun 21 14:35:46 2015 +0100

    Allow users to configure interface names for the different types
    
    This is a large commit which:
    
    o Reworks settings usage to make it obvious when read or read/write
    settings files are used.
    o Creates user-configurable mappings of interface types to interface
    names to allow for distro differences in naming, fixes 'Wireless
    interface name hardcoded, Arch interface names different (connman?)' /
    https://bugzilla.xfce.org/show_bug.cgi?id=11881
---
 src/applet.cpp                |   84 +-
 src/applet.hpp                |    1 -
 src/bar-view.cpp              |   18 +-
 src/choose-monitor-window.cpp |  336 +++-
 src/choose-monitor-window.hpp |   40 +-
 src/column-view.cpp           |   18 +-
 src/curve-view.cpp            |   18 +-
 src/flame-view.cpp            |   18 +-
 src/helpers.cpp               |   19 +-
 src/helpers.hpp               |   15 +-
 src/monitor-impls.cpp         |  683 +++++--
 src/monitor-impls.hpp         |   89 +-
 src/monitor.hpp               |   16 +-
 src/preferences-window.cpp    |   94 +-
 src/ui.glade                  | 4226 ++++++++++++++++++-----------------------
 15 files changed, 2977 insertions(+), 2698 deletions(-)

diff --git a/src/applet.cpp b/src/applet.cpp
index 19eac7c..255db7e 100644
--- a/src/applet.cpp
+++ b/src/applet.cpp
@@ -122,16 +122,16 @@ void save_monitors(Applet *applet)
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Looping for all monitors and calling save on each
     for (monitor_iter i = applet->monitors.begin(),
          end = applet->monitors.end(); i != end; ++i)
-      (*i)->save(settings);
+      (*i)->save(settings_w);
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
@@ -167,30 +167,30 @@ Applet::Applet(XfcePanelPlugin *plugin)
   next_color(0)
 {
   // Search for settings file
-  XfceRc* settings = NULL;
+  XfceRc* settings_ro = NULL;
   gchar* file = xfce_panel_plugin_lookup_rc_file(panel_applet);
   
   if (file)
   {
-    // One exists - loading readonly settings
-    settings = xfce_rc_simple_open(file, true);
+    // One exists - loading settings
+    settings_ro = xfce_rc_simple_open(file, true);
     g_free(file);
 
     // Ensuring default group is in focus
-    xfce_rc_set_group(settings, "[NULL]");
+    xfce_rc_set_group(settings_ro, "[NULL]");
 
-    icon_path = xfce_rc_read_entry(settings, "icon-path", icon_path.c_str());
-    viewer_type = xfce_rc_read_entry(settings, "viewer_type",
+    icon_path = xfce_rc_read_entry(settings_ro, "icon-path", icon_path.c_str());
+    viewer_type = xfce_rc_read_entry(settings_ro, "viewer_type",
       viewer_type.c_str());
-    viewer_size = xfce_rc_read_int_entry(settings, "viewer_size",
+    viewer_size = xfce_rc_read_int_entry(settings_ro, "viewer_size",
       viewer_size);
-    viewer_font = xfce_rc_read_entry(settings, "viewer_font",
+    viewer_font = xfce_rc_read_entry(settings_ro, "viewer_font",
       viewer_font.c_str());
-    background_color = xfce_rc_read_int_entry(settings, "background_color",
+    background_color = xfce_rc_read_int_entry(settings_ro, "background_color",
       background_color);
-    use_background_color = xfce_rc_read_bool_entry(settings,
+    use_background_color = xfce_rc_read_bool_entry(settings_ro,
       "use_background_color", use_background_color);
-    next_color = xfce_rc_read_int_entry(settings, "next_color",
+    next_color = xfce_rc_read_int_entry(settings_ro, "next_color",
       next_color);
   }
   
@@ -216,13 +216,13 @@ Applet::Applet(XfcePanelPlugin *plugin)
    * seems that it needs to be done in or after the mainloop kicks off */
 
   // Loading up monitors
-  monitor_seq mon = load_monitors(settings);
+  monitor_seq mon = load_monitors(settings_ro, plugin);
   for (monitor_iter i = mon.begin(), end = mon.end(); i != end; ++i)
     add_monitor(*i);
 
   // All settings loaded
-  if (settings)
-    xfce_rc_close(settings);
+  if (settings_ro)
+    xfce_rc_close(settings_ro);
 
   /* Connect plugin signals to functions - since I'm not really interested
    * in the plugin but the applet pointer, swapped results in the signal
@@ -427,17 +427,17 @@ unsigned int Applet::get_fg_color()
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Ensuring default group is in focus
-    xfce_rc_set_group(settings, "[NULL]");
+    xfce_rc_set_group(settings_w, "[NULL]");
 
     // Saving next_color
-    xfce_rc_write_int_entry(settings, "next_color", next_color);
+    xfce_rc_write_int_entry(settings_w, "next_color", next_color);
     
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
@@ -539,8 +539,8 @@ void Applet::add_monitor(Monitor *monitor)
   add_sync_for(monitor);
   monitors.push_back(monitor);
 
-  /* Read and write config locations and the open call are be different
-   * in XFCE4 - hence the duplication here */
+  /* Read and write config locations and the open call are different in XFCE4 -
+   * hence the duplication here */
 
   /* Checking if monitor has a defined settings directory and therefore
    * settings to load */
@@ -555,14 +555,14 @@ void Applet::add_monitor(Monitor *monitor)
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Saving monitor
-      monitor->save(settings);
+      monitor->save(settings_w);
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
@@ -581,14 +581,14 @@ void Applet::add_monitor(Monitor *monitor)
     if (file)
     {
       // One exists - loading readonly settings
-      XfceRc* settings = xfce_rc_simple_open(file, true);
+      XfceRc* settings_ro = xfce_rc_simple_open(file, true);
       g_free(file);
 
       // Load settings for monitor
-      monitor->load(settings);
+      monitor->load(settings_ro);
       
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_ro);
     }
     else
     {
@@ -615,16 +615,16 @@ void Applet::remove_monitor(Monitor *monitor)
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Removing settings group associated with the monitor if it exists
-    if (xfce_rc_has_group(settings, monitor->get_settings_dir().c_str()))
-      xfce_rc_delete_group(settings, monitor->get_settings_dir().c_str(),
+    if (xfce_rc_has_group(settings_w, monitor->get_settings_dir().c_str()))
+      xfce_rc_delete_group(settings_w, monitor->get_settings_dir().c_str(),
         FALSE);
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
@@ -660,14 +660,14 @@ void Applet::replace_monitor(Monitor *prev_mon, Monitor *new_mon)
   if (file)
   {
     // One exists - loading readonly settings
-    XfceRc* settings = xfce_rc_simple_open(file, true);
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
     g_free(file);
 
     // Load settings
-    new_mon->load(settings);
+    new_mon->load(settings_ro);
     
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_ro);
   }
   else
   {
@@ -682,14 +682,14 @@ void Applet::replace_monitor(Monitor *prev_mon, Monitor *new_mon)
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Saving settings
-    new_mon->save(settings);
+    new_mon->save(settings_w);
     
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
@@ -732,15 +732,15 @@ Glib::ustring Applet::find_empty_monitor_dir()
   if (file)
   {
     // One exists - loading readonly settings
-    XfceRc* settings = xfce_rc_simple_open(file, true);
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
     g_free(file);
 
     do {
       mon_dir = String::ucompose("%1", c++);
-    } while (xfce_rc_has_group(settings, mon_dir.c_str()));
+    } while (xfce_rc_has_group(settings_ro, mon_dir.c_str()));
     
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_ro);
   }
   else
   {
diff --git a/src/applet.hpp b/src/applet.hpp
index 7eb976d..9b2901b 100644
--- a/src/applet.hpp
+++ b/src/applet.hpp
@@ -39,7 +39,6 @@ extern "C"
 #include <libxfce4panel/libxfce4panel.h>
 }
 
-
 #include "monitor.hpp"
 
 class PreferencesWindow; 
diff --git a/src/bar-view.cpp b/src/bar-view.cpp
index 9394582..3903de3 100644
--- a/src/bar-view.cpp
+++ b/src/bar-view.cpp
@@ -230,20 +230,20 @@ void BarView::do_attach(Monitor *monitor)
   if (file)
   {
     // One exists - loading readonly settings
-    XfceRc* settings = xfce_rc_simple_open(file, true);
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
     g_free(file);
 
     // Loading color
-    xfce_rc_set_group(settings, dir.c_str());
-    if (xfce_rc_has_entry(settings, "fill_color"))
+    xfce_rc_set_group(settings_ro, dir.c_str());
+    if (xfce_rc_has_entry(settings_ro, "fill_color"))
     {
-      fill_color = xfce_rc_read_int_entry(settings, "fill_color",
+      fill_color = xfce_rc_read_int_entry(settings_ro, "fill_color",
         applet->get_fg_color());
       color_missing = false;
     }
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_ro);
   }
 
   /* Saving color if it was not recorded. XFCE4 configuration is done in
@@ -259,15 +259,15 @@ void BarView::do_attach(Monitor *monitor)
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Saving color
-      xfce_rc_set_group(settings, dir.c_str());
-      xfce_rc_write_int_entry(settings, "fill_color", int(fill_color));
+      xfce_rc_set_group(settings_w, dir.c_str());
+      xfce_rc_write_int_entry(settings_w, "fill_color", int(fill_color));
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
diff --git a/src/choose-monitor-window.cpp b/src/choose-monitor-window.cpp
index 3da0328..63d8cb0 100644
--- a/src/choose-monitor-window.cpp
+++ b/src/choose-monitor-window.cpp
@@ -21,6 +21,11 @@
 
 #include <config.h>
 
+#include <sstream>
+
+#include <gtkmm/messagedialog.h>
+#include <gtkmm/stock.h>  // For creating a button image from stock
+
 #include "choose-monitor-window.hpp"
 #include "gui-helpers.hpp"
 #include "monitor-impls.hpp"
@@ -28,14 +33,18 @@
 #include "ucompose.hpp"
 
 
-ChooseMonitorWindow::ChooseMonitorWindow(Glib::RefPtr<Gdk::Pixbuf> icon,
+// Static intialisation
+ChooseMonitorWindow::NetworkInterfacesNamesCols ChooseMonitorWindow::nc;
+
+ChooseMonitorWindow::ChooseMonitorWindow(XfcePanelPlugin* panel_applet_local,
                                          Gtk::Window &parent)
+  : panel_applet(panel_applet_local)
 {
   ui = get_glade_xml("choose_monitor_window");
 
   ui->get_widget("choose_monitor_window", window);
   window->set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
-  window->set_icon(icon);
+  window->set_icon(parent.get_icon());
   window->set_transient_for(parent);
 
   ui->get_widget("device_notebook", device_notebook);
@@ -62,6 +71,17 @@ ChooseMonitorWindow::ChooseMonitorWindow(Glib::RefPtr<Gdk::Pixbuf> icon,
 
   ui->get_widget("network_type_optionmenu", network_type_optionmenu);
   ui->get_widget("network_direction_optionmenu", network_direction_optionmenu);
+  ui->get_widget("network_interfaces_treeview", network_interfaces_treeview);
+
+  /* Need special code here to set the desired stock icon as glade doesn't support
+   * setting a stock icon but custom text, and as soon as you change the label
+   * on a stock button the icon is removed! */
+  ui->get_widget("network_interfaces_restore_defaults_button",
+                 network_interfaces_restore_defaults_button);
+  Gtk::Image *stock_image = Gtk::manage(new Gtk::Image(
+                                          Gtk::Stock::REVERT_TO_SAVED,
+                                          Gtk::ICON_SIZE_BUTTON));
+  network_interfaces_restore_defaults_button->set_image(*stock_image);
 
   ui->get_widget("temperature_box", temperature_box);
   ui->get_widget("temperature_options", temperature_options);
@@ -83,6 +103,10 @@ ChooseMonitorWindow::ChooseMonitorWindow(Glib::RefPtr<Gdk::Pixbuf> icon,
     .connect(sigc::mem_fun(*this, &ChooseMonitorWindow::
                         on_network_load_radiobutton_toggled));
 
+  network_interfaces_restore_defaults_button->signal_clicked()
+      .connect(sigc::mem_fun(*this, &ChooseMonitorWindow::
+                             on_network_interfaces_restore_defaults_button_clicked));
+
   temperature_radiobutton->signal_toggled()
     .connect(sigc::mem_fun(*this, &ChooseMonitorWindow::
                         on_temperature_radiobutton_toggled));
@@ -146,7 +170,7 @@ ChooseMonitorWindow::ChooseMonitorWindow(Glib::RefPtr<Gdk::Pixbuf> icon,
     fan_speed_optionmenu->set_menu(*menu);
     menu->show_all();
   }
-  
+
   // connect close operations
   Gtk::Button *help_button;
   ui->get_widget("help_button", help_button);
@@ -160,26 +184,26 @@ ChooseMonitorWindow::ChooseMonitorWindow(Glib::RefPtr<Gdk::Pixbuf> icon,
 
 ChooseMonitorWindow::~ChooseMonitorWindow()
 {
-  window->hide();  
+  window->hide();
 }
 
 
-Monitor *ChooseMonitorWindow::run(XfcePanelPlugin* panel_applet,
-  const Glib::ustring &mon_dir)
+Monitor *ChooseMonitorWindow::run(const Glib::ustring &mon_dir)
 {
-  // setup dialog
-  if (!mon_dir.empty())
+  // Set up monitor
+  // Search for settings file
+  gchar* file = xfce_panel_plugin_lookup_rc_file(panel_applet);
+  if (file)
   {
-    // Search for settings file
-    gchar* file = xfce_panel_plugin_lookup_rc_file(panel_applet);
-    
-    if (file)
+    // Loading settings
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
+    g_free(file);
+
+    // Loading existing monitor settings if this is a change operation
+    if (!mon_dir.empty())
     {
-      // Loading settings
-      XfceRc* settings = xfce_rc_simple_open(file, true);
-      g_free(file);
-      xfce_rc_set_group(settings, mon_dir.c_str());
-      Glib::ustring type = xfce_rc_read_entry(settings, "type", "");
+      xfce_rc_set_group(settings_ro, mon_dir.c_str());
+      Glib::ustring type = xfce_rc_read_entry(settings_ro, "type", "");
 
       if (type == "memory_usage")
       {
@@ -219,9 +243,9 @@ Monitor *ChooseMonitorWindow::run(XfcePanelPlugin* panel_applet,
       }
       
       // Fill in cpu info
-      if (xfce_rc_has_entry(settings, "cpu_no"))
+      if (xfce_rc_has_entry(settings_ro, "cpu_no"))
       {
-        int no = xfce_rc_read_int_entry(settings, "cpu_no", -1);
+        int no = xfce_rc_read_int_entry(settings_ro, "cpu_no", -1);
         if (no >= 0 && no < CpuUsageMonitor::max_no_cpus) {
           one_cpu_radiobutton->set_active();
           cpu_no_spinbutton->set_value(no + 1);
@@ -232,47 +256,67 @@ Monitor *ChooseMonitorWindow::run(XfcePanelPlugin* panel_applet,
       }
 
       // Fill in disk usage info
-      if (xfce_rc_has_entry(settings, "mount_dir"))
+      if (xfce_rc_has_entry(settings_ro, "mount_dir"))
       {
-        Glib::ustring mount_dir = xfce_rc_read_entry(settings,
+        Glib::ustring mount_dir = xfce_rc_read_entry(settings_ro,
           "mount_dir", "");
         mount_dir_entry->set_text(mount_dir);
       }
-      if (xfce_rc_has_entry(settings, "show_free"))
+      if (xfce_rc_has_entry(settings_ro, "show_free"))
       {
-        bool show_free  = xfce_rc_read_bool_entry(settings,
+        bool show_free  = xfce_rc_read_bool_entry(settings_ro,
           "show_free", false);
         show_free_checkbutton->set_active(show_free);
       }
 
       // Fill in network load info
-      if (xfce_rc_has_entry(settings, "interface"))
+      if (xfce_rc_has_entry(settings_ro, "interface_type"))
       {
-        Glib::ustring interface = xfce_rc_read_entry(settings,
-          "interface", "eth");
-
-        int interface_no = xfce_rc_read_int_entry(settings,
-          "interface_no", 0);
-
-        if (interface == "eth" && interface_no == 0)
-          network_type_optionmenu->set_history(0);
-        else if (interface == "eth" && interface_no == 1)
-          network_type_optionmenu->set_history(1);
-        else if (interface == "eth" && interface_no == 2)
-          network_type_optionmenu->set_history(2);
-        else if (interface == "ppp")
-          network_type_optionmenu->set_history(3);
-        else if (interface == "slip")
-          network_type_optionmenu->set_history(4);
-        else if (interface == "wlan")
-          network_type_optionmenu->set_history(5);
-        else
-          network_type_optionmenu->set_history(0);
-      }
+        /* By the time this code is reached, deprecated configuration will be
+         * updated so no need to convert stuff etc */
+        NetworkLoadMonitor::InterfaceType interface_type = static_cast<NetworkLoadMonitor::InterfaceType>(xfce_rc_read_int_entry(
+                    settings_ro, "interface_type",
+                    NetworkLoadMonitor::ethernet_first));
+        switch (interface_type)
+        {
+          case NetworkLoadMonitor::ethernet_first:
+            network_type_optionmenu->set_history(0);
+            break;
+
+          case NetworkLoadMonitor::ethernet_second:
+            network_type_optionmenu->set_history(1);
+            break;
+
+          case NetworkLoadMonitor::ethernet_third:
+            network_type_optionmenu->set_history(2);
+            break;
+
+          case NetworkLoadMonitor::modem:
+            network_type_optionmenu->set_history(3);
+            break;
+
+          case NetworkLoadMonitor::serial_link:
+            network_type_optionmenu->set_history(4);
+            break;
+
+          case NetworkLoadMonitor::wireless_first:
+            network_type_optionmenu->set_history(5);
+            break;
+
+          case NetworkLoadMonitor::wireless_second:
+            network_type_optionmenu->set_history(6);
+            break;
+
+          case NetworkLoadMonitor::wireless_third:
+            network_type_optionmenu->set_history(7);
+            break;
+
+          default:
+            network_type_optionmenu->set_history(0);
+            break;
+        }
 
-      if (xfce_rc_has_entry(settings, "interface_direction"))
-      {
-        int direction = xfce_rc_read_int_entry(settings,
+        int direction = xfce_rc_read_int_entry(settings_ro,
           "interface_direction", NetworkLoadMonitor::all_data);
 
         if (direction == NetworkLoadMonitor::incoming_data)
@@ -283,24 +327,58 @@ Monitor *ChooseMonitorWindow::run(XfcePanelPlugin* panel_applet,
           network_direction_optionmenu->set_history(0);
       }
 
-      int temperature_no = xfce_rc_read_int_entry(settings,
+      int temperature_no = xfce_rc_read_int_entry(settings_ro,
           "temperature_no", 0);
 
       temperature_optionmenu->set_history(temperature_no);
+
+      xfce_rc_close(settings_ro);
     }
     else
     {
-      // No configuration file present - default setting?
+      // No monitor present so an addition - defaults
       device_notebook->set_current_page(0);
       // FIXME: use schema?
       cpu_usage_radiobutton->set_active();
     }
+
+    /* Populate interface type interface names advanced settings - interface
+     * name column needs to be editable + trigger validation on entry - note
+     * that append_column returns the number of columns present rather than
+     * the genuine ordinal to the last column, hence -1
+     * This is here as it is independent of monitors but dependent on a settings
+     * file being available, and needs to run both when a monitor does and doesn't
+     * exist */
+    network_interfaces_names_store = Gtk::ListStore::create(nc);
+    network_interfaces_treeview->set_model(network_interfaces_names_store);
+    network_interfaces_treeview->append_column(_("Interface Type"),
+                                               nc.interface_type);
+    int column_num = network_interfaces_treeview
+        ->append_column(_("Interface Name"), nc.interface_name) - 1;
+
+    // Documentation asks for dynamic_cast here
+    Gtk::CellRendererText *cell_renderer = dynamic_cast<Gtk::CellRendererText*>(network_interfaces_treeview
+                                    ->get_column_cell_renderer(column_num));
+    cell_renderer->property_editable() = true;
+    cell_renderer->signal_edited().connect(
+          sigc::mem_fun(*this, &ChooseMonitorWindow::
+                        on_network_interface_name_edited));
+
+    for (int i = 0; i < NetworkLoadMonitor::NUM_INTERFACE_TYPES; ++i)
+    {
+        NetworkLoadMonitor::InterfaceType interface_type =
+            static_cast<NetworkLoadMonitor::InterfaceType>(i);
+        store_iter iter = network_interfaces_names_store->append();
+        (*iter)[nc.interface_type] = NetworkLoadMonitor::
+            interface_type_to_string(interface_type, false);
+        (*iter)[nc.interface_name] = NetworkLoadMonitor::
+            get_interface_name(interface_type, panel_applet);
+    }
   }
 
   if (cpu_usage_radiobutton->get_active())
     cpu_usage_radiobutton->toggled(); // send a signal
 
-  
   // then ask the user
   int response;
   
@@ -327,41 +405,10 @@ Monitor *ChooseMonitorWindow::run(XfcePanelPlugin* panel_applet,
         // FIXME: check that mount_dir is valid
         mon = new DiskUsageMonitor(mount_dir, show_free);
       }
-      else if (network_load_radiobutton->get_active()) {
-        Glib::ustring interface;
-        int interface_no;
-
-        switch (network_type_optionmenu->get_history()) {
-        case 1:
-          interface = "eth";
-          interface_no = 1;
-          break;
-
-        case 2:
-          interface = "eth";
-          interface_no = 2;
-          break;
-
-        case 3:
-          interface = "ppp";
-          interface_no = 0;
-          break;
-
-        case 4:
-          interface = "slip";
-          interface_no = 0;
-          break;
-
-        case 5:
-          interface = "wlan";
-          interface_no = 0;
-          break;
-
-        default:
-          interface = "eth";
-          interface_no = 0;
-          break;
-        }
+      else if (network_load_radiobutton->get_active())
+      {
+        int selected_type = network_type_optionmenu->get_history();
+        NetworkLoadMonitor::InterfaceType interface_type = static_cast<NetworkLoadMonitor::InterfaceType>(selected_type);
 
         NetworkLoadMonitor::Direction dir;
         switch (network_direction_optionmenu->get_history()) {
@@ -378,7 +425,7 @@ Monitor *ChooseMonitorWindow::run(XfcePanelPlugin* panel_applet,
           break;
         }
 
-        mon = new NetworkLoadMonitor(interface, interface_no, dir);
+        mon = new NetworkLoadMonitor(interface_type, dir, panel_applet);
       }
       else if (temperature_radiobutton->get_active())
         mon = new TemperatureMonitor(temperature_optionmenu->get_history());
@@ -408,6 +455,115 @@ void ChooseMonitorWindow::on_disk_usage_radiobutton_toggled()
     = disk_usage_radiobutton->get_active();
 }
 
+void ChooseMonitorWindow::on_fan_speed_radiobutton_toggled()
+{
+  fan_speed_options->property_sensitive()
+    = fan_speed_radiobutton->get_active();
+}
+
+/* Triggered when user edits a network interface name after revealing the
+ * advanced widgets */
+void ChooseMonitorWindow::on_network_interface_name_edited(
+    const Glib::ustring& path, const Glib::ustring& new_text)
+{
+  // Debug code
+  /*std::cout << "Network interface name edit detected: path: " << path <<
+               ", new_text: " << new_text << "\n";*/
+
+  // Obtaining interface type from path
+  int inter_type_num = 0;
+  std::stringstream convert(path);
+  convert >> inter_type_num;
+  NetworkLoadMonitor::InterfaceType inter_type(
+        static_cast<NetworkLoadMonitor::InterfaceType>(inter_type_num));
+
+  /* Making sure the user is OK with specifying an invalid network interface (
+   * i.e. it may appear later) */
+  if (!NetworkLoadMonitor::interface_exists(new_text))
+  {
+    Glib::ustring interface_name = NetworkLoadMonitor::
+        interface_type_to_string(inter_type, false),
+    msg = String
+        ::ucompose(_("Specified interface '%1' of type '%2' does not currently "
+                     "exist - do you still want to proceed?"),
+                   new_text, interface_name);
+
+    /* See helpers.hpp - tried to host a generic warning dialog implementation
+     * there but got endless include bullshit */
+    Gtk::MessageDialog d(msg, false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_YES_NO);
+    d.set_modal();
+    d.set_title(_("Change Interface Name"));
+    d.set_icon(window->get_icon());
+    if (d.run() != Gtk::RESPONSE_YES)
+      return;
+  }
+
+  // Fetching pointer to row and setting column value
+  store_iter iter = network_interfaces_names_store->get_iter(path);
+  (*iter)[nc.interface_name] = new_text;
+
+  // Setting and saving the real value
+  NetworkLoadMonitor::set_interface_name(inter_type, new_text);
+  gchar* file = xfce_panel_plugin_save_location(panel_applet, true);
+  if (file)
+  {
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
+    g_free(file);
+    NetworkLoadMonitor::save_interfaces(settings_w);
+    xfce_rc_close(settings_w);
+  }
+  else
+  {
+    // Unable to obtain writeable config file - informing user
+    std::cerr << _("Unable to obtain writeable config file path in order to"
+                   "save interface names via ChooseMonitorWindow::"
+                   "on_network_interface_name_edited!\n");
+  }
+}
+
+void ChooseMonitorWindow::on_network_interfaces_restore_defaults_button_clicked()
+{
+    // Making sure user wants to restore defaults
+  Glib::ustring msg(_("Are you sure you want to overwrite the current network "
+                      "interface names with defaults?"));
+
+  /* See helpers.hpp - tried to host a generic warning dialog implementation
+   * there but got endless include bullshit */
+  Gtk::MessageDialog d(msg, false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_YES_NO);
+  d.set_modal();
+  d.set_title(_("Restore Default Interface Names"));
+  d.set_icon(window->get_icon());
+  if (d.run() != Gtk::RESPONSE_YES)
+    return;
+
+  // Restoring defaults to model
+  store_iter iter = network_interfaces_names_store->get_iter("0");
+  NetworkLoadMonitor::InterfaceType interface_type;
+  for (int i = 0; i < NetworkLoadMonitor::NUM_INTERFACE_TYPES; ++i, ++iter)
+  {
+      interface_type = static_cast<NetworkLoadMonitor::InterfaceType>(i);
+      (*iter)[nc.interface_name] = NetworkLoadMonitor::
+          get_default_interface_name(interface_type);
+  }
+
+  // Updating storage vector and saving
+  gchar* file = xfce_panel_plugin_save_location(panel_applet, true);
+  if (file)
+  {
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
+    g_free(file);
+    NetworkLoadMonitor::restore_default_interface_names(settings_w);
+    xfce_rc_close(settings_w);
+  }
+  else
+  {
+    // Unable to obtain writeable config file - informing user
+    std::cerr << _("Unable to obtain writeable config file path in order to"
+                   "save default interface names via ChooseMonitorWindow::"
+                   "on_network_interfaces_restore_defaults_button_clicked!\n");
+  }
+}
+
 void ChooseMonitorWindow::on_network_load_radiobutton_toggled()
 {
   network_load_options->property_sensitive()
@@ -420,12 +576,6 @@ void ChooseMonitorWindow::on_temperature_radiobutton_toggled()
     = temperature_radiobutton->get_active();
 }
 
-void ChooseMonitorWindow::on_fan_speed_radiobutton_toggled()
-{
-  fan_speed_options->property_sensitive()
-    = fan_speed_radiobutton->get_active();
-}
-
 void ChooseMonitorWindow::on_help_button_clicked()
 {
   // FIXME: do something
diff --git a/src/choose-monitor-window.hpp b/src/choose-monitor-window.hpp
index 8555d54..416ee31 100644
--- a/src/choose-monitor-window.hpp
+++ b/src/choose-monitor-window.hpp
@@ -32,10 +32,12 @@
 #include <gtkmm/checkbutton.h>
 #include <gtkmm/dialog.h>
 #include <gtkmm/entry.h>
+#include <gtkmm/liststore.h>
 #include <gtkmm/notebook.h>
 #include <gtkmm/optionmenu.h>
 #include <gtkmm/radiobutton.h>
 #include <gtkmm/spinbutton.h>
+#include <gtkmm/treeview.h>
 #include <glibmm/ustring.h>
 
 extern "C"
@@ -49,12 +51,14 @@ class Monitor;
 class ChooseMonitorWindow: public sigc::trackable
 {
 public:
-  ChooseMonitorWindow(Glib::RefPtr<Gdk::Pixbuf> icon, Gtk::Window &parent);
+
+  /* panel_applet is required here as the user can edit NetworkLoadMonitor
+   * interface names through a settings dialog, and this needs special saving */
+  ChooseMonitorWindow(XfcePanelPlugin* panel_applet_local, Gtk::Window &parent);
   ~ChooseMonitorWindow();
 
   // given a monitor directory (may be ""), return a new monitor or 0
-  Monitor *run(XfcePanelPlugin* panel_applet,
-    const Glib::ustring &mon_dir);
+  Monitor *run(const Glib::ustring &mon_dir);
   
 private:
   Glib::RefPtr<Gnome::Glade::Xml> ui;
@@ -83,19 +87,43 @@ private:
   Gtk::Box *network_load_options;
   Gtk::OptionMenu *network_type_optionmenu;
   Gtk::OptionMenu *network_direction_optionmenu;
+  Gtk::TreeView *network_interfaces_treeview;
+  Gtk::Button *network_interfaces_restore_defaults_button;
 
   Gtk::Box *temperature_box, *temperature_options;
   Gtk::OptionMenu *temperature_optionmenu;
   Gtk::Box *fan_speed_box, *fan_speed_options;
   Gtk::OptionMenu *fan_speed_optionmenu;
-  
+
+  XfcePanelPlugin* panel_applet;
+
+  // For the advanced settings network interface name treeview
+  class NetworkInterfacesNamesCols: public Gtk::TreeModel::ColumnRecord
+  {
+  public:
+    Gtk::TreeModelColumn<Glib::ustring> interface_type;
+    Gtk::TreeModelColumn<Glib::ustring> interface_name;
+
+    NetworkInterfacesNamesCols() { add(interface_type); add(interface_name); }
+  };
+
+  /* Note that the example MonitorColumns implementation in preferences-window.hpp
+   * seems to maintain multiple static instances of the columns class, don't
+   * know why it isn't just a single static member like below */
+  static NetworkInterfacesNamesCols nc;
+
+  Glib::RefPtr<Gtk::ListStore> network_interfaces_names_store;
+  typedef Gtk::ListStore::iterator store_iter;
+
   // GUI
   void on_cpu_usage_radiobutton_toggled();
   void on_disk_usage_radiobutton_toggled();
+  void on_fan_speed_radiobutton_toggled();
   void on_network_load_radiobutton_toggled();
+  void on_network_interfaces_restore_defaults_button_clicked();
   void on_temperature_radiobutton_toggled();
-  void on_fan_speed_radiobutton_toggled();
-  
+  void on_network_interface_name_edited(const Glib::ustring& path,
+                                        const Glib::ustring& new_text);
   void on_help_button_clicked();
   bool on_closed(GdkEventAny *);
 };
diff --git a/src/column-view.cpp b/src/column-view.cpp
index a1c4e08..8e6116a 100644
--- a/src/column-view.cpp
+++ b/src/column-view.cpp
@@ -190,20 +190,20 @@ void ColumnView::do_attach(Monitor *monitor)
   if (file)
   {
     // One exists - loading readonly settings
-    XfceRc* settings = xfce_rc_simple_open(file, true);
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
     g_free(file);
 
     // Loading color
-    xfce_rc_set_group(settings, dir.c_str());
-    if (xfce_rc_has_entry(settings, "color"))
+    xfce_rc_set_group(settings_ro, dir.c_str());
+    if (xfce_rc_has_entry(settings_ro, "color"))
     {
-      color = xfce_rc_read_int_entry(settings, "color",
+      color = xfce_rc_read_int_entry(settings_ro, "color",
         applet->get_fg_color());
       color_missing = false;
     }
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_ro);
   }
 
   /* Saving color if it was not recorded. XFCE4 configuration is done in
@@ -219,15 +219,15 @@ void ColumnView::do_attach(Monitor *monitor)
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Saving color
-      xfce_rc_set_group(settings, dir.c_str());
-      xfce_rc_write_int_entry(settings, "color", int(color));
+      xfce_rc_set_group(settings_w, dir.c_str());
+      xfce_rc_write_int_entry(settings_w, "color", int(color));
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
diff --git a/src/curve-view.cpp b/src/curve-view.cpp
index e55873f..90d4670 100644
--- a/src/curve-view.cpp
+++ b/src/curve-view.cpp
@@ -176,20 +176,20 @@ void CurveView::do_attach(Monitor *monitor)
   if (file)
   {
     // One exists - loading readonly settings
-    XfceRc* settings = xfce_rc_simple_open(file, true);
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
     g_free(file);
 
     // Loading color
-    xfce_rc_set_group(settings, dir.c_str());
-    if (xfce_rc_has_entry(settings, "color"))
+    xfce_rc_set_group(settings_ro, dir.c_str());
+    if (xfce_rc_has_entry(settings_ro, "color"))
     {
-      color = xfce_rc_read_int_entry(settings, "color",
+      color = xfce_rc_read_int_entry(settings_ro, "color",
         applet->get_fg_color());
       color_missing = false;
     }
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_ro);
   }
 
   /* Saving color if it was not recorded. XFCE4 configuration is done in
@@ -205,15 +205,15 @@ void CurveView::do_attach(Monitor *monitor)
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Saving color
-      xfce_rc_set_group(settings, dir.c_str());
-      xfce_rc_write_int_entry(settings, "color", int(color));
+      xfce_rc_set_group(settings_w, dir.c_str());
+      xfce_rc_write_int_entry(settings_w, "color", int(color));
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
diff --git a/src/flame-view.cpp b/src/flame-view.cpp
index 1d4d058..29e5199 100644
--- a/src/flame-view.cpp
+++ b/src/flame-view.cpp
@@ -276,20 +276,20 @@ void FlameView::do_attach(Monitor *monitor)
   if (file)
   {
     // One exists - loading readonly settings
-    XfceRc* settings = xfce_rc_simple_open(file, true);
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
     g_free(file);
 
     // Loading color
-    xfce_rc_set_group(settings, dir.c_str());
-    if (xfce_rc_has_entry(settings, "color"))
+    xfce_rc_set_group(settings_ro, dir.c_str());
+    if (xfce_rc_has_entry(settings_ro, "color"))
     {
-      color = xfce_rc_read_int_entry(settings, "color",
+      color = xfce_rc_read_int_entry(settings_ro, "color",
         applet->get_fg_color());
       color_missing = false;
     }
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_ro);
   }
 
   /* Saving color if it was not recorded. XFCE4 configuration is done in
@@ -305,15 +305,15 @@ void FlameView::do_attach(Monitor *monitor)
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Saving color
-      xfce_rc_set_group(settings, dir.c_str());
-      xfce_rc_write_int_entry(settings, "color", int(color));
+      xfce_rc_set_group(settings_w, dir.c_str());
+      xfce_rc_write_int_entry(settings_w, "color", int(color));
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
diff --git a/src/helpers.cpp b/src/helpers.cpp
index 8d13102..4b9b7ac 100644
--- a/src/helpers.cpp
+++ b/src/helpers.cpp
@@ -1,7 +1,7 @@
 /* Helper functions.
  *
  * Copyright (c) 2003 Ole Laursen.
- * Copyright (c) 2013 OmegaPhil (OmegaPhil at startmail.com)
+ * Copyright (c) 2013, 2015 OmegaPhil (OmegaPhil at startmail.com)
  *
  * This program is free software; you can redistribute it and/or 
  * modify it under the terms of the GNU General Public License as 
@@ -39,6 +39,23 @@ void fatal_error(const Glib::ustring &msg)
   exit(1);
 }
 
+// See header note for why buttons isn't a Gtk type
+/*
+int warning_dialog(const Glib::ustring &msg, const Glib::ustring &title,
+                   Glib::RefPtr<Gdk::Pixbuf> icon, const int buttons)
+{
+  Gtk::ButtonsType buttons_type = static_cast<Gtk::ButtonsType>(buttons);
+
+  Gtk::MessageDialog d(msg, false, Gtk::MESSAGE_WARNING, buttons_type);
+
+  d.set_modal();
+  d.set_title(title);
+  d.set_icon(icon);
+
+  return d.run();
+}
+*/
+
 Glib::ustring truncate_string(Glib::ustring s, unsigned int n)
 {
   // for when a string needs to be truncated
diff --git a/src/helpers.hpp b/src/helpers.hpp
index c49b974..329708c 100644
--- a/src/helpers.hpp
+++ b/src/helpers.hpp
@@ -1,7 +1,7 @@
 /* Helper functions.
  *
  * Copyright (c) 2003 Ole Laursen.
- * Copyright (c) 2013 OmegaPhil (OmegaPhil at startmail.com)
+ * Copyright (c) 2013, 2015 OmegaPhil (OmegaPhil at startmail.com)
  *
  * This program is free software; you can redistribute it and/or 
  * modify it under the terms of the GNU General Public License as 
@@ -22,8 +22,13 @@
 #ifndef HELPERS_HPP
 #define HELPERS_HPP
 
+//#include <gdkmm/pixbuf.h>  // For icon in warning_dialog
 #include <glibmm/ustring.h>
 
+/* Can't include gtkmm/messagedialog.h here as it causes X11 header to be
+ * included before gtkmm?? */
+//#define LOCAL_GTK_BUTTONS_OK 1
+
 // from www.boost.org - derivation from this class makes the derived class
 // noncopyable
 class noncopyable
@@ -38,4 +43,12 @@ private:
 
 void fatal_error(const Glib::ustring &msg);
 
+/* Attempting to host the warning_dialog code here has failed completely -
+ * constant bullshit include errors either not allowing namespace items to be
+ * defined, or some X11/gtkmm clash again - this is all needed to allow for
+ * the parameters passed here */
+/*int warning_dialog(const Glib::ustring &msg, const Glib::ustring &title,
+                   Glib::RefPtr<Gdk::Pixbuf> icon,
+                   const int buttons = LOCAL_GTK_BUTTONS_OK);*/
+
 #endif
diff --git a/src/monitor-impls.cpp b/src/monitor-impls.cpp
index 272c722..69ecf83 100644
--- a/src/monitor-impls.cpp
+++ b/src/monitor-impls.cpp
@@ -37,13 +37,12 @@
 #include <glibtop/loadavg.h>
 #include <glibtop/fsusage.h>
 #include <glibtop/netload.h>
-
+#include <glibtop/netlist.h>
 
 #include "monitor-impls.hpp"
 #include "ucompose.hpp"
 #include "i18n.hpp"
 
-
 /* Decay factor for maximum values (log_0.999(0.9) = 105 iterations
  * before reduced 10%). This is now no longer used for CurveView - the
  * actual max value across the ValueHistories is used */
@@ -55,15 +54,15 @@ double const max_decay = 0.999;
 //
 
 std::list<Monitor *>
-load_monitors(XfceRc* settings)
+load_monitors(XfceRc *settings_ro, XfcePanelPlugin *panel_plugin)
 {
   std::list<Monitor *> monitors;
 
   // Checking if settings currently exist
-  if (settings)
+  if (settings_ro)
   {
     // They do - fetching list of monitors
-    gchar** settings_monitors = xfce_rc_get_groups(settings);
+    gchar** settings_monitors = xfce_rc_get_groups(settings_ro);
 
     // They do - looping for all monitors
     for (int i = 0; settings_monitors[i] != NULL; ++i)
@@ -73,15 +72,15 @@ load_monitors(XfceRc* settings)
         continue;
 
       // Setting the correct group prior to loading settings
-      xfce_rc_set_group(settings, settings_monitors[i]);
+      xfce_rc_set_group(settings_ro, settings_monitors[i]);
 
       // Obtaining monitor type
-      Glib::ustring type = xfce_rc_read_entry(settings, "type", "");
+      Glib::ustring type = xfce_rc_read_entry(settings_ro, "type", "");
 
       if (type == "cpu_usage")
       {
         // Obtaining cpu_no
-        int cpu_no = xfce_rc_read_int_entry(settings, "cpu_no", -1);
+        int cpu_no = xfce_rc_read_int_entry(settings_ro, "cpu_no", -1);
 
         // Creating CPU usage monitor with provided number if valid
         if (cpu_no == -1)
@@ -98,11 +97,11 @@ load_monitors(XfceRc* settings)
       else if (type == "disk_usage")
       {
         // Obtaining volume mount directory
-        Glib::ustring mount_dir = xfce_rc_read_entry(settings,
+        Glib::ustring mount_dir = xfce_rc_read_entry(settings_ro,
           "mount_dir", "/");
 
         // Obtaining whether to show free space or not
-        bool show_free = xfce_rc_read_bool_entry(settings, "show_free",
+        bool show_free = xfce_rc_read_bool_entry(settings_ro, "show_free",
           false);
 
         // Creating disk usage monitor
@@ -110,16 +109,72 @@ load_monitors(XfceRc* settings)
       }
       else if (type == "network_load")
       {
-        // Fetching interface type
-        Glib::ustring inter = xfce_rc_read_entry(settings, "interface",
-          "eth");
-
-        // Fetching interface number
-        int inter_no = xfce_rc_read_int_entry(settings, "interface_no",
-          0);
+        NetworkLoadMonitor::InterfaceType inter_type(NetworkLoadMonitor::ethernet_first);
+
+        // Debug code
+        std::cout << "HARDWARE MONITOR PLUGIN: Before interface_no detection\n";
+
+        /* Deprecated config check (<=v1.4.6) - is the interface defined by a
+         * count? */
+        if (xfce_rc_has_entry(settings_ro, "interface_no"))
+        {
+          // Debug code
+          std::cout << "HARDWARE MONITOR PLUGIN: interface_no detected!\n";
+
+          // It is - fetching interface number
+          int inter_no = xfce_rc_read_int_entry(settings_ro, "interface_no", 0);
+
+          // Determining interface type
+          Glib::ustring inter = xfce_rc_read_entry(settings_ro, "interface",
+                                                   "eth0");
+          if (inter == "eth" && inter_no == 0)
+            inter_type = NetworkLoadMonitor::ethernet_first;
+          else if (inter == "eth" && inter_no == 1)
+            inter_type = NetworkLoadMonitor::ethernet_second;
+          else if (inter == "eth" && inter_no == 2)
+            inter_type = NetworkLoadMonitor::ethernet_third;
+          else if (inter == "ppp")
+            inter_type = NetworkLoadMonitor::modem;
+          else if (inter == "slip")
+            inter_type = NetworkLoadMonitor::serial_link;
+
+          // In the original form, only one wireless interface was available
+          else if (inter == "wlan")
+            inter_type = NetworkLoadMonitor::wireless_first;
+
+          // Search for a writeable settings file, create one if it doesnt exist
+          gchar* file = xfce_panel_plugin_save_location(panel_plugin, true);
+          if (file)
+          {
+            XfceRc* settings_w = xfce_rc_simple_open(file, false);
+            g_free(file);
+
+            // Removing deprecated interface settings
+            xfce_rc_set_group(settings_w, settings_monitors[i]);
+            xfce_rc_delete_entry(settings_w, "interface_no", FALSE);
+            xfce_rc_delete_entry(settings_w, "interface", FALSE);
+            xfce_rc_write_int_entry(settings_w, "interface_type", int(inter_type));
+
+            // Close settings file
+            xfce_rc_close(settings_w);
+          }
+          else
+          {
+            // Unable to obtain writeable config file - informing user
+            std::cerr << _("Unable to obtain writeable config file path in order"
+                           " to remove deprecated configuration in "
+                           "load_monitors!\n");
+          }
+        }
+        else
+        {
+            // Up to date configuration - interface_type will be available
+            inter_type = static_cast<NetworkLoadMonitor::InterfaceType>(xfce_rc_read_int_entry(settings_ro,                                                                                                                                       "interface_type",
+                                               NetworkLoadMonitor::ethernet_first));
+        }
 
         // Fetching interface 'direction' setting
-        int inter_direction = xfce_rc_read_int_entry(settings,
+        int inter_direction = xfce_rc_read_int_entry(settings_ro,
           "interface_direction", NetworkLoadMonitor::all_data);
 
         // Converting direction setting into dedicated type
@@ -133,12 +188,12 @@ load_monitors(XfceRc* settings)
           dir = NetworkLoadMonitor::all_data;
 
         // Creating network load monitor
-        monitors.push_back(new NetworkLoadMonitor(inter, inter_no, dir));
+        monitors.push_back(new NetworkLoadMonitor(inter_type, dir, panel_plugin));
       }
       else if (type == "temperature")
       {
         // Fetching temperature number
-        int temperature_no = xfce_rc_read_int_entry(settings,
+        int temperature_no = xfce_rc_read_int_entry(settings_ro,
           "temperature_no", 0);
 
         // Creating temperature monitor
@@ -147,7 +202,7 @@ load_monitors(XfceRc* settings)
       else if (type == "fan_speed")
       {
         // Fetching fan number
-        int fan_no = xfce_rc_read_int_entry(settings, "fan_no", 0);
+        int fan_no = xfce_rc_read_int_entry(settings_ro, "fan_no", 0);
 
         // Creating fan monitor
         monitors.push_back(new FanSpeedMonitor(fan_no));
@@ -316,15 +371,15 @@ int CpuUsageMonitor::update_interval()
   return 1000;
 }
 
-void CpuUsageMonitor::save(XfceRc *settings)
+void CpuUsageMonitor::save(XfceRc *settings_w)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "cpu_usage");
-  xfce_rc_write_int_entry(settings, "cpu_no", cpu_no);
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "cpu_usage");
+  xfce_rc_write_int_entry(settings_w, "cpu_no", cpu_no);
 }
 
 
@@ -384,14 +439,14 @@ int SwapUsageMonitor::update_interval()
   return 10 * 1000;
 }
 
-void SwapUsageMonitor::save(XfceRc *settings)
+void SwapUsageMonitor::save(XfceRc *settings_w)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "swap_usage");
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "swap_usage");
 }
 
 
@@ -458,30 +513,30 @@ int LoadAverageMonitor::update_interval()
   return 30 * 1000;
 }
 
-void LoadAverageMonitor::save(XfceRc *settings)
+void LoadAverageMonitor::save(XfceRc *settings_w)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "load_average");
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "load_average");
 
   // No support for floats - stringifying
   Glib::ustring setting = String::ucompose("%1", max_value);
-  xfce_rc_write_entry(settings, "max", setting.c_str());
+  xfce_rc_write_entry(settings_w, "max", setting.c_str());
 }
 
-void LoadAverageMonitor::load(XfceRc *settings)
+void LoadAverageMonitor::load(XfceRc *settings_ro)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Loading settings - no support for floats, unstringifying
-  xfce_rc_set_group(settings, dir.c_str());
-  Glib::ustring type = xfce_rc_read_entry(settings, "type", "");
+  xfce_rc_set_group(settings_ro, dir.c_str());
+  Glib::ustring type = xfce_rc_read_entry(settings_ro, "type", "");
   if (type == "load_average")
-    max_value = atof(xfce_rc_read_entry(settings, "max", "5"));
+    max_value = atof(xfce_rc_read_entry(settings_ro, "max", "5"));
 }
 
 
@@ -541,14 +596,14 @@ int MemoryUsageMonitor::update_interval()
   return 10 * 1000;
 }
 
-void MemoryUsageMonitor::save(XfceRc *settings)
+void MemoryUsageMonitor::save(XfceRc *settings_w)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "memory_usage");
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "memory_usage");
 }
 
 
@@ -627,16 +682,16 @@ int DiskUsageMonitor::update_interval()
   return 60 * 1000;
 }
 
-void DiskUsageMonitor::save(XfceRc *settings)
+void DiskUsageMonitor::save(XfceRc *settings_w)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "disk_usage");
-  xfce_rc_write_entry(settings, "mount_dir", mount_dir.c_str());
-  xfce_rc_write_bool_entry(settings, "show_free", show_free);
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "disk_usage");
+  xfce_rc_write_entry(settings_w, "mount_dir", mount_dir.c_str());
+  xfce_rc_write_bool_entry(settings_w, "show_free", show_free);
 }
 
 
@@ -644,10 +699,19 @@ void DiskUsageMonitor::save(XfceRc *settings)
 // class NetworkLoadMonitor
 //
 
-NetworkLoadMonitor::NetworkLoadMonitor(const Glib::ustring &inter, int inter_no,
-               Direction dir)
+/* Static intialisation - can't initialise in class declaration?? Can't have
+ * non-declaration statements here either, so can't directly populate the
+ * defaults vector... the main type names vector isn't initialised here as the
+ * associated function loads and saves settings */
+std::vector<Glib::ustring> NetworkLoadMonitor::interface_type_names = std::vector<Glib::ustring>(NUM_INTERFACE_TYPES);
+std::vector<Glib::ustring> NetworkLoadMonitor::interface_type_names_default = initialise_default_interface_names();
+
+bool NetworkLoadMonitor::interface_names_configured = false;
+
+NetworkLoadMonitor::NetworkLoadMonitor(InterfaceType &inter_type, Direction dir,
+                                       XfcePanelPlugin* panel_applet)
   : max_value(1), byte_count(0), time_stamp_secs(0), time_stamp_usecs(0),
-    interface(inter), interface_no(inter_no), direction(dir)
+    interface_type(inter_type), direction(dir), pnl_applet(panel_applet)
 {
 }
 
@@ -655,8 +719,11 @@ double NetworkLoadMonitor::do_measure()
 {
   glibtop_netload netload;
 
-  glibtop_get_netload(&netload,
-          String::ucompose("%1%2", interface, interface_no).c_str());
+  /* Obtaining interface name - this can change after monitor is instantiated
+   * hence fetching each time */
+  Glib::ustring interface = get_interface_name(interface_type, pnl_applet);
+
+  glibtop_get_netload(&netload, interface.c_str());
   guint64 val, measured_bytes;
 
   if (direction == all_data)
@@ -745,23 +812,7 @@ Glib::ustring NetworkLoadMonitor::format_value(double val)
 
 Glib::ustring NetworkLoadMonitor::get_name()
 {
-  Glib::ustring str;
-
-  if (interface == "eth" && interface_no == 0)
-    str = _("Ethernet (first)");
-  else if (interface == "eth" && interface_no == 1)
-    str = _("Ethernet (second)");
-  else if (interface == "eth" && interface_no == 2)
-    str = _("Ethernet (third)");
-  else if (interface == "ppp" && interface_no == 0)
-    str = _("Modem");
-  else if (interface == "slip" && interface_no == 0)
-    str = _("Serial link");
-  else if (interface == "wlan" && interface_no == 0)
-    str = _("Wireless");
-  else
-    // unknown, someone must have been fiddling with the config file
-    str = String::ucompose("%1%2", interface, interface_no);
+  Glib::ustring str = interface_type_to_string(interface_type, false);
 
   if (direction == incoming_data)
     // %1 is the network connection, e.g. "Ethernet (first)", in signifies
@@ -777,23 +828,8 @@ Glib::ustring NetworkLoadMonitor::get_name()
 
 Glib::ustring NetworkLoadMonitor::get_short_name()
 {
-  Glib::ustring str;
-
-  if (interface == "eth")
-    // short for an ethernet card
-    str = String::ucompose(_("Eth. %1"), interface_no + 1);
-  else if (interface == "ppp" && interface_no == 0)
-    // short for modem
-    str = _("Mod.");
-  else if (interface == "slip" && interface_no == 0)
-    // short for serial link
-    str = _("Ser.");
-  else if (interface == "wlan" && interface_no == 0)
-    // short for wireless
-    str = _("W.less.");
-  else
-    // unknown, someone must have been fiddling with the config file
-    str = String::ucompose("%1%2", interface, interface_no);
+  // Have not merged this with get_name in order to keep the interface the same
+  Glib::ustring str = interface_type_to_string(interface_type, true);
 
   if (direction == incoming_data)
     str = String::ucompose(_("%1, in"), str);
@@ -808,45 +844,41 @@ int NetworkLoadMonitor::update_interval()
   return 1000;
 }
 
-void NetworkLoadMonitor::save(XfceRc *settings)
+void NetworkLoadMonitor::save(XfceRc *settings_w)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "network_load");
-  xfce_rc_write_entry(settings, "interface", interface.c_str());
-  xfce_rc_write_int_entry(settings, "interface_no", interface_no);
-  xfce_rc_write_int_entry(settings, "interface_direction",
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "network_load");
+  xfce_rc_write_int_entry(settings_w, "interface_type", int(interface_type));
+  xfce_rc_write_int_entry(settings_w, "interface_direction",
     int(direction));
-  xfce_rc_write_int_entry(settings, "max", int(max_value));
+  xfce_rc_write_int_entry(settings_w, "max", int(max_value));
 }
 
-void NetworkLoadMonitor::load(XfceRc *settings)
+void NetworkLoadMonitor::load(XfceRc *settings_ro)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   /* Loading settings - ensuring the settings are for the particular
    * network monitor?? */
-  xfce_rc_set_group(settings, dir.c_str());
-  Glib::ustring type = xfce_rc_read_entry(settings, "type", ""),
-    setting_interface = xfce_rc_read_entry(settings, "interface", "");
-  if (type == "network_load" && setting_interface == interface
-    && xfce_rc_read_int_entry(settings, "interface_no", 0) == interface_no
-    && xfce_rc_read_int_entry(settings, "interface_direction",
-      int(incoming_data)) == int(direction))
-  {
-    max_value = xfce_rc_read_int_entry(settings, "max", 0);
-  }
+  xfce_rc_set_group(settings_ro, dir.c_str());
+  Glib::ustring type = xfce_rc_read_entry(settings_ro, "type", "");
+  InterfaceType inter_type = static_cast<InterfaceType>(xfce_rc_read_int_entry(settings_ro, "interface_type", int(ethernet_first)));
+  Direction inter_direction = static_cast<Direction>(xfce_rc_read_int_entry(settings_ro, "interface_direction" ,int(incoming_data)));
+
+  if (type == "network_load" && inter_type == interface_type
+      && inter_direction == direction)
+      max_value = xfce_rc_read_int_entry(settings_ro, "max", 0);
 }
 
 void NetworkLoadMonitor::possibly_add_sync_with(Monitor *other)
 {
   if (NetworkLoadMonitor *o = dynamic_cast<NetworkLoadMonitor *>(other))
-    if (interface == o->interface && interface_no == o->interface_no
-  && direction != o->direction)
+    if (interface_type == o->interface_type && direction != o->direction)
       sync_monitors.push_back(o);
 }
 
@@ -859,6 +891,409 @@ void NetworkLoadMonitor::remove_sync_with(Monitor *other)
     sync_monitors.erase(i);
 }
 
+void NetworkLoadMonitor::configure_interface_names(XfcePanelPlugin *panel_applet)
+{
+  if (interface_names_configured)
+    return;
+
+  bool write_settings_ethernet_first = false, write_settings_ethernet_second = false,
+      write_settings_ethernet_third = false, write_settings_modem = false,
+      write_settings_serial_link = false, write_settings_wireless_first = false,
+      write_settings_wireless_second = false, write_settings_wireless_third = false;
+
+  gchar* file = xfce_panel_plugin_lookup_rc_file(panel_applet);
+  if (file)
+  {
+    XfceRc* settings_ro = xfce_rc_simple_open(file, true);
+    g_free(file);
+
+    // Ensuring default group is in focus
+    xfce_rc_set_group(settings_ro, "[NULL]");
+
+    Glib::ustring setting_name = String::ucompose(
+          "network_type_%1_interface_name",
+          int(ethernet_first));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[ethernet_first] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(ethernet_first).c_str());
+    else
+    {
+      interface_type_names[ethernet_first] =
+          get_default_interface_name(ethernet_first);
+      write_settings_ethernet_first = true;
+    }
+
+    setting_name = String::ucompose(
+          "network_type_%1_interface_name",
+          int(ethernet_second));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[ethernet_second] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(ethernet_second).c_str());
+    else
+    {
+      interface_type_names[ethernet_second] =
+          get_default_interface_name(ethernet_second);
+      write_settings_ethernet_second = true;
+    }
+
+    setting_name = String::ucompose(
+          "network_type_%1_interface_name",
+          int(ethernet_third));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[ethernet_third] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(ethernet_third).c_str());
+    else
+    {
+      interface_type_names[ethernet_third] =
+          get_default_interface_name(ethernet_third);
+      write_settings_ethernet_third = true;
+    }
+
+    setting_name = String::ucompose(
+          "network_type_%1_interface_name", int(modem));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[modem] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(modem).c_str());
+    else
+    {
+      interface_type_names[modem] = get_default_interface_name(modem);
+      write_settings_modem = true;
+    }
+
+    setting_name = String::ucompose(
+          "network_type_%1_interface_name", int(serial_link));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[serial_link] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(serial_link).c_str());
+    else
+    {
+      interface_type_names[serial_link] =
+          get_default_interface_name(serial_link);
+      write_settings_serial_link = true;
+    }
+
+    setting_name = String::ucompose(
+          "network_type_%1_interface_name", int(wireless_first));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[wireless_first] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(wireless_first).c_str());
+    else
+    {
+      interface_type_names[wireless_first] =
+          get_default_interface_name(wireless_first);
+      write_settings_wireless_first = true;
+    }
+
+    setting_name = String::ucompose(
+          "network_type_%1_interface_name", int(wireless_second));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[wireless_second] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(wireless_first).c_str());
+    else
+    {
+      interface_type_names[wireless_second] =
+          get_default_interface_name(wireless_second);
+      write_settings_wireless_second = true;
+    }
+
+    setting_name = String::ucompose(
+          "network_type_%1_interface_name", int(wireless_third));
+    if (xfce_rc_has_entry(settings_ro, setting_name.c_str()))
+      interface_type_names[wireless_third] = xfce_rc_read_entry(
+            settings_ro, setting_name.c_str(),
+            get_default_interface_name(wireless_third).c_str());
+    else
+    {
+      interface_type_names[wireless_third] =
+          get_default_interface_name(wireless_third);
+      write_settings_wireless_third = true;
+    }
+
+    /* Writing out settings if any interface name didn't previously exist -
+    * this is only going to happen once as configurations essentially get
+    * upgraded */
+    if (write_settings_ethernet_first || write_settings_ethernet_second
+        || write_settings_ethernet_third || write_settings_modem
+        || write_settings_serial_link || write_settings_wireless_first
+        || write_settings_wireless_second || write_settings_wireless_third)
+    {
+      // Search for a writeable settings file, create one if it doesnt exist
+      gchar* file = xfce_panel_plugin_save_location(panel_applet, true);
+
+      if (file)
+      {
+        XfceRc* settings_w = xfce_rc_simple_open(file, false);
+        g_free(file);
+
+        // Saving all interface names that have been set
+        if (write_settings_ethernet_first)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(ethernet_first));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[ethernet_first].c_str());
+        }
+        if (write_settings_ethernet_second)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(ethernet_second));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[ethernet_second].c_str());
+        }
+        if (write_settings_ethernet_third)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(ethernet_third));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[ethernet_third].c_str());
+        }
+        if (write_settings_modem)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(modem));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[modem].c_str());
+        }
+        if (write_settings_serial_link)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(serial_link));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[serial_link].c_str());
+        }
+        if (write_settings_wireless_first)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(wireless_first));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[wireless_first].c_str());
+        }
+        if (write_settings_wireless_second)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(wireless_second));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[wireless_second].c_str());
+        }
+        if (write_settings_wireless_third)
+        {
+          setting_name = String::ucompose("network_type_%1_interface_name",
+                                          int(wireless_third));
+          xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                              interface_type_names[wireless_third].c_str());
+        }
+
+        xfce_rc_close(settings_w);
+      }
+      else
+      {
+        // Unable to obtain writeable config file - informing user
+        std::cerr << _("Unable to obtain writeable config file path in order to"
+                       " save interface names in NetworkLoadMonitor::"
+                       "get_interface_name!\n");
+        return;
+      }
+    }
+
+    xfce_rc_close(settings_ro);
+  }
+  else
+  {
+    // Unable to obtain read-only config file - informing user
+    std::cerr << _("Unable to obtain read-only config file path in order to "
+                   "configure interface names in NetworkLoadMonitor::"
+                   "configure_interface_names!");
+    return;
+  }
+
+  interface_names_configured = true;
+}
+
+Glib::ustring NetworkLoadMonitor::get_interface_name(InterfaceType type,
+                                                     XfcePanelPlugin *panel_applet)
+{
+  // Load saved interface names if not done yet and enforcing defaults
+  configure_interface_names(panel_applet);
+
+  // Debug code
+ /* std::cout << "get_interface_name called for " << interface_type_to_string(type,
+                                                                            false)
+            << ", returning " << interface_type_names[type] << "\n";*/
+
+  // Returning requested interface name
+  return interface_type_names[type];
+}
+
+Glib::ustring NetworkLoadMonitor::get_default_interface_name(InterfaceType type)
+{
+  return interface_type_names_default[type];
+}
+
+void NetworkLoadMonitor::set_interface_name(InterfaceType type, const Glib::ustring interface_name)
+{
+  interface_type_names[type] = interface_name;
+}
+
+std::vector<Glib::ustring> NetworkLoadMonitor::initialise_default_interface_names()
+{
+  std::vector<Glib::ustring> inter_type_names_default = std::
+      vector<Glib::ustring>(NUM_INTERFACE_TYPES);
+  inter_type_names_default[ethernet_first] = "eth0";
+  inter_type_names_default[ethernet_second] = "eth1";
+  inter_type_names_default[ethernet_third] = "eth2";
+  inter_type_names_default[modem] = "ppp";
+  inter_type_names_default[serial_link] = "slip";
+  inter_type_names_default[wireless_first] = "wlan0";
+  inter_type_names_default[wireless_second] = "wlan1";
+  inter_type_names_default[wireless_third] = "wlan2";
+  return inter_type_names_default;
+}
+
+void NetworkLoadMonitor::restore_default_interface_names(XfceRc *settings_w)
+{
+  interface_type_names = initialise_default_interface_names();
+  NetworkLoadMonitor::save_interfaces(settings_w);
+}
+
+const Glib::ustring NetworkLoadMonitor::interface_type_to_string(const InterfaceType type, const bool short_ver)
+{
+  Glib::ustring interface_type_str;
+
+  switch(type)
+  {
+    case ethernet_first:
+      if (short_ver)
+        interface_type_str = _("Eth. 1");
+      else
+        interface_type_str = _("Ethernet (first)");
+      break;
+
+    case ethernet_second:
+      if (short_ver)
+        interface_type_str = _("Eth. 2");
+      else
+        interface_type_str = _("Ethernet (second)");
+      break;
+
+    case ethernet_third:
+      if (short_ver)
+        interface_type_str = _("Eth. 3");
+      else
+        interface_type_str = _("Ethernet (third)");
+      break;
+
+    case modem:
+      if (short_ver)
+        interface_type_str = _("Mod.");
+      else
+        interface_type_str = _("Modem");
+      break;
+
+    case serial_link:
+      if (short_ver)
+        interface_type_str = _("Ser.");
+      else
+        interface_type_str = _("Serial link");
+      break;
+
+    case wireless_first:
+      if (short_ver)
+        interface_type_str = _("W.less. 1");
+      else
+        interface_type_str = _("Wireless (first)");
+      break;
+
+    case wireless_second:
+      if (short_ver)
+        interface_type_str = _("W.less. 2");
+      else
+        interface_type_str = _("Wireless (second)");
+      break;
+
+    case wireless_third:
+      if (short_ver)
+        interface_type_str = _("W.less. 3");
+      else
+        interface_type_str = _("Wireless (third)");
+      break;
+  }
+
+  return interface_type_str;
+
+}
+
+bool NetworkLoadMonitor::interface_exists(const Glib::ustring &interface_name)
+{
+  glibtop_netlist buf;
+  char **devices;
+  int i;
+  bool found_device = false;
+
+  // Attempting to locate specified network interface
+  devices = glibtop_get_netlist(&buf);
+  for(i = 0; i < buf.number; ++i)
+  {
+    // Debug code
+    /*std::cout << "Device to search for: " << interface_name << ", device "
+                 "compared with: " << devices[i] << "\n";*/
+
+    if (interface_name == devices[i])
+    {
+      found_device = true;
+      break;
+    }
+  }
+  g_strfreev(devices);
+
+  return found_device;
+}
+
+void NetworkLoadMonitor::save_interfaces(XfceRc *settings_w)
+{
+  // Ensuring default group is in focus
+  xfce_rc_set_group(settings_w, "[NULL]");
+
+  // Saving interface names
+  Glib::ustring setting_name = String::ucompose("network_type_%1_interface_name",
+                                                int(ethernet_first));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[ethernet_first].c_str());
+  setting_name = String::ucompose("network_type_%1_interface_name",
+                                  int(ethernet_second));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[ethernet_second].c_str());
+  setting_name = String::ucompose("network_type_%1_interface_name",
+                                  int(ethernet_third));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[ethernet_third].c_str());
+  setting_name = String::ucompose("network_type_%1_interface_name",
+                                  int(modem));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[modem].c_str());
+  setting_name = String::ucompose("network_type_%1_interface_name",
+                                  int(serial_link));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[serial_link].c_str());
+  setting_name = String::ucompose("network_type_%1_interface_name",
+                                  int(wireless_first));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[wireless_first].c_str());
+  setting_name = String::ucompose("network_type_%1_interface_name",
+                                  int(wireless_second));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[wireless_second].c_str());
+  setting_name = String::ucompose("network_type_%1_interface_name",
+                                  int(wireless_third));
+  xfce_rc_write_entry(settings_w, setting_name.c_str(),
+                      interface_type_names[wireless_third].c_str());
+}
 
 //
 // implementation of sensors wrapper
@@ -1043,33 +1478,33 @@ int TemperatureMonitor::update_interval()
   return 20 * 1000;
 }
 
-void TemperatureMonitor::save(XfceRc *settings)
+void TemperatureMonitor::save(XfceRc *settings_w)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "temperature");
-  xfce_rc_write_int_entry(settings, "temperature_no", sensors_no);
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "temperature");
+  xfce_rc_write_int_entry(settings_w, "temperature_no", sensors_no);
 
   // No support for floats - stringifying
   Glib::ustring setting = String::ucompose("%1", max_value);
-  xfce_rc_write_entry(settings, "max", setting.c_str());
+  xfce_rc_write_entry(settings_w, "max", setting.c_str());
 }
 
-void TemperatureMonitor::load(XfceRc *settings)
+void TemperatureMonitor::load(XfceRc *settings_ro)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   /* Loading settings, making sure the right sensor is loaded. No support
    * for floats, unstringifying */
-  xfce_rc_set_group(settings, dir.c_str());
-  Glib::ustring type = xfce_rc_read_entry(settings, "type", "");
-  if (type == "temperature" && xfce_rc_read_int_entry(settings,
+  xfce_rc_set_group(settings_ro, dir.c_str());
+  Glib::ustring type = xfce_rc_read_entry(settings_ro, "type", "");
+  if (type == "temperature" && xfce_rc_read_int_entry(settings_ro,
     "temperature_no", 0) == sensors_no)
-    max_value = atof(xfce_rc_read_entry(settings, "max", "40"));
+    max_value = atof(xfce_rc_read_entry(settings_ro, "max", "40"));
 }
 
 
@@ -1139,31 +1574,31 @@ int FanSpeedMonitor::update_interval()
   return 20 * 1000;
 }
 
-void FanSpeedMonitor::save(XfceRc *settings)
+void FanSpeedMonitor::save(XfceRc *settings_w)
 {
     // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   // Saving settings
-  xfce_rc_set_group(settings, dir.c_str());
-  xfce_rc_write_entry(settings, "type", "fan_speed");
-  xfce_rc_write_int_entry(settings, "fan_no", sensors_no);
+  xfce_rc_set_group(settings_w, dir.c_str());
+  xfce_rc_write_entry(settings_w, "type", "fan_speed");
+  xfce_rc_write_int_entry(settings_w, "fan_no", sensors_no);
 
   // No support for floats - stringifying
   Glib::ustring setting = String::ucompose("%1", max_value);
-  xfce_rc_write_entry(settings, "max", setting.c_str());
+  xfce_rc_write_entry(settings_w, "max", setting.c_str());
 }
 
-void FanSpeedMonitor::load(XfceRc *settings)
+void FanSpeedMonitor::load(XfceRc *settings_ro)
 {
   // Fetching assigned settings group
   Glib::ustring dir = get_settings_dir();
 
   /* Loading settings, making sure the right fan is loaded. No support
    * for floats, unstringifying */
-  xfce_rc_set_group(settings, dir.c_str());
-  Glib::ustring type = xfce_rc_read_entry(settings, "type", "");
-  if (type == "fan_speed" && xfce_rc_read_int_entry(settings, "fan_no",
-    0) == sensors_no)
-    max_value = atof(xfce_rc_read_entry(settings, "max", "1"));
+  xfce_rc_set_group(settings_ro, dir.c_str());
+  Glib::ustring type = xfce_rc_read_entry(settings_ro, "type", "");
+  int fan_no = xfce_rc_read_int_entry(settings_ro, "fan_no", 0);
+  if (type == "fan_speed" && fan_no == sensors_no)
+    max_value = atof(xfce_rc_read_entry(settings_ro, "max", "1"));
 }
diff --git a/src/monitor-impls.hpp b/src/monitor-impls.hpp
index 32edc5b..5a4dbb9 100644
--- a/src/monitor-impls.hpp
+++ b/src/monitor-impls.hpp
@@ -25,12 +25,20 @@
 #include <config.h>
 
 #include <string>
+#include <vector>
+
 #include <glib/gtypes.h>
 
 #if HAVE_LIBSENSORS
 #include <sensors/sensors.h>
 #endif
 
+// For XfcePanelPlugin
+extern "C"
+{
+#include <libxfce4panel/libxfce4panel.h>
+}
+
 #include "monitor.hpp"
 
 //
@@ -49,7 +57,7 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
 
   static int const max_no_cpus;
 
@@ -76,7 +84,7 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
 
 private:
   virtual double do_measure();
@@ -96,8 +104,8 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
-  virtual void load(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
+  virtual void load(XfceRc *settings_ro);
 
 private:
   virtual double do_measure();
@@ -117,7 +125,7 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
 
 private:
   virtual double do_measure();
@@ -137,7 +145,7 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
 
 private:
   virtual double do_measure();
@@ -155,8 +163,25 @@ public:
     all_data, incoming_data, outgoing_data
   };
 
-  NetworkLoadMonitor(const Glib::ustring &interface, int interface_no,
-         Direction direction);
+  /* There haven't been many different interfaces commonly used on machines,
+   * so a simple enum should be good enough to maintain them now this information
+   * is separate from the interface name and is required in the configuration,
+   * also can't really tie to a string due to translation
+   * See also default interface name configuration in interface_type_names */
+  enum InterfaceType {
+     ethernet_first,
+     ethernet_second,
+     ethernet_third,
+     modem,
+     serial_link,
+     wireless_first,
+     wireless_second,
+     wireless_third,
+     NUM_INTERFACE_TYPES
+  };
+
+  NetworkLoadMonitor(InterfaceType &interface_type,
+                     Direction direction, XfcePanelPlugin *panel_applet);
 
   virtual double max();
   virtual bool fixed_max();
@@ -164,26 +189,58 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
-  virtual void load(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
+  virtual void load(XfceRc *settings_ro);
   virtual void possibly_add_sync_with(Monitor *other);
   virtual void remove_sync_with(Monitor *other);
 
+  /* Allow to maintain list of interface names separate to individual monitor
+   * objects
+   * configure_interface_names needs to read and possibly write the configuration
+   * file hence takes an applet pointer */
+  static Glib::ustring get_interface_name(InterfaceType type,
+                                          XfcePanelPlugin *panel_applet);
+  static Glib::ustring get_default_interface_name(InterfaceType type);
+  static void set_interface_name(InterfaceType type,
+                                 const Glib::ustring interface_name);
+  static const Glib::ustring interface_type_to_string(const InterfaceType type,
+                                                              bool short_ver);
+  static bool interface_exists(const Glib::ustring& interface_name);
+
+  /* Function dedicated to saving interface names the standard interface types
+   * are mapped to */
+  static void save_interfaces(XfceRc *settings_w);
+
+  static void restore_default_interface_names(XfceRc *settings_w);
+
 private:
   virtual double do_measure();
 
+  // Can't initialise a static vector properly so trying this
+  static std::vector<Glib::ustring> initialise_default_interface_names();
+  static void configure_interface_names(XfcePanelPlugin *panel_applet);
+
+  XfcePanelPlugin *pnl_applet;  // Needed to allow do_measure to call
+                                // get_interface_name(*panel_applet)
+
   guint64 max_value;    // maximum measured capacity of line
   long int time_difference; // no. of msecs. between the last two calls
 
   guint64 byte_count;   // number of bytes at last call
   long int time_stamp_secs, time_stamp_usecs; // time stamp for last call
 
-  Glib::ustring interface;  // e.g. "eth"
-  int interface_no;   // e.g. 0
+  InterfaceType interface_type;  // Interface name is now fetched from the type
+                                 // when needed
   Direction direction;
 
   typedef std::list<NetworkLoadMonitor *> nlm_seq;
   nlm_seq sync_monitors;
+
+  /* Storage for default or customised interface names for all types - can't
+   * initialise vector here?? */
+  static std::vector<Glib::ustring> interface_type_names;
+  static std::vector<Glib::ustring> interface_type_names_default;
+  static bool interface_names_configured;
 };
 
 
@@ -198,8 +255,8 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
-  virtual void load(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
+  virtual void load(XfceRc *settings_ro);
 
 private:
   virtual double do_measure();
@@ -221,8 +278,8 @@ public:
   virtual Glib::ustring get_name();
   virtual Glib::ustring get_short_name();
   virtual int update_interval();
-  virtual void save(XfceRc *settings);
-  virtual void load(XfceRc *settings);
+  virtual void save(XfceRc *settings_w);
+  virtual void load(XfceRc *settings_ro);
 
 private:
   virtual double do_measure();
diff --git a/src/monitor.hpp b/src/monitor.hpp
index ebb17ff..5d74d8b 100644
--- a/src/monitor.hpp
+++ b/src/monitor.hpp
@@ -33,6 +33,7 @@ extern "C"
 
 #include "helpers.hpp"
 
+
 class Monitor: noncopyable
 {
 public:
@@ -88,10 +89,10 @@ public:
   virtual int update_interval() = 0;
 
   // Save information about the monitor
-  virtual void save(XfceRc *settings) = 0;
+  virtual void save(XfceRc *settings_w) = 0;
 
   // Load any internal monitor state
-  virtual void load(XfceRc *settings)
+  virtual void load(XfceRc *settings_ro)
   {
   }
 
@@ -105,10 +106,10 @@ public:
   virtual void remove_sync_with(Monitor *other)
   {
   }
-  
+
 protected:
   double measured_value;
-  
+
 private:
 
   // Perform actual measurement, for derived classes
@@ -125,6 +126,11 @@ private:
 typedef std::list<Monitor *> monitor_seq;
 typedef monitor_seq::iterator monitor_iter;
 
-monitor_seq load_monitors(XfceRc* settings);
+/* Forward declaration for load_monitors - including the panel header at the top
+ * causes glibmm/object.h to complain that X11/Xlib.h has been included ahead
+ * of it?? Why is the include tolerated in applet.hpp then? */
+typedef struct _XfcePanelPlugin        XfcePanelPlugin;
+
+monitor_seq load_monitors(XfceRc *settings_ro, XfcePanelPlugin *panel_plugin);
 
 #endif
diff --git a/src/preferences-window.cpp b/src/preferences-window.cpp
index 8824327..ba14dc7 100644
--- a/src/preferences-window.cpp
+++ b/src/preferences-window.cpp
@@ -1,7 +1,7 @@
 /* Implementation of the PreferencesWindow class.
  *
  * Copyright (c) 2003, 04 Ole Laursen.
- * Copyright (c) 2013-2014 OmegaPhil (OmegaPhil at startmail.com)
+ * Copyright (c) 2013-2015 OmegaPhil (OmegaPhil at startmail.com)
  *
  * This program is free software; you can redistribute it and/or 
  * modify it under the terms of the GNU General Public License as 
@@ -393,19 +393,19 @@ void PreferencesWindow::sync_conf_with_colorbutton(Glib::ustring settings_dir,
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Focussing settings group if requested
     if (!settings_dir.empty())
-      xfce_rc_set_group(settings, settings_dir.c_str());
+      xfce_rc_set_group(settings_w, settings_dir.c_str());
     
     // Updating configuration
-    xfce_rc_write_int_entry(settings, setting_name.c_str(),
+    xfce_rc_write_int_entry(settings_w, setting_name.c_str(),
       get_colorbutton_int(button));
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
@@ -441,17 +441,17 @@ void PreferencesWindow::on_background_color_radiobutton_toggled()
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Ensuring default group is in focus
-    xfce_rc_set_group(settings, "[NULL]");
+    xfce_rc_set_group(settings_w, "[NULL]");
 
     // Updating configuration
-    xfce_rc_write_bool_entry(settings, "use_background_color", on);
+    xfce_rc_write_bool_entry(settings_w, "use_background_color", on);
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
@@ -474,17 +474,17 @@ void PreferencesWindow::on_curve_radiobutton_toggled()
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Ensuring default group is in focus
-      xfce_rc_set_group(settings, "[NULL]");
+      xfce_rc_set_group(settings_w, "[NULL]");
 
       // Updating configuration
-      xfce_rc_write_entry(settings, "viewer_type", "curve");
+      xfce_rc_write_entry(settings_w, "viewer_type", "curve");
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
@@ -514,17 +514,17 @@ void PreferencesWindow::on_bar_radiobutton_toggled()
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Ensuring default group is in focus
-      xfce_rc_set_group(settings, "[NULL]");
+      xfce_rc_set_group(settings_w, "[NULL]");
 
       // Updating configuration
-      xfce_rc_write_entry(settings, "viewer_type", "bar");
+      xfce_rc_write_entry(settings_w, "viewer_type", "bar");
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
@@ -554,17 +554,17 @@ void PreferencesWindow::on_vbar_radiobutton_toggled()
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Ensuring default group is in focus
-      xfce_rc_set_group(settings, "[NULL]");
+      xfce_rc_set_group(settings_w, "[NULL]");
 
       // Updating configuration
-      xfce_rc_write_entry(settings, "viewer_type", "vbar");
+      xfce_rc_write_entry(settings_w, "viewer_type", "vbar");
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
@@ -594,17 +594,17 @@ void PreferencesWindow::on_column_radiobutton_toggled()
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Ensuring default group is in focus
-      xfce_rc_set_group(settings, "[NULL]");
+      xfce_rc_set_group(settings_w, "[NULL]");
 
       // Updating configuration
-      xfce_rc_write_entry(settings, "viewer_type", "column");
+      xfce_rc_write_entry(settings_w, "viewer_type", "column");
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
@@ -634,17 +634,17 @@ void PreferencesWindow::on_text_radiobutton_toggled()
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Ensuring default group is in focus
-      xfce_rc_set_group(settings, "[NULL]");
+      xfce_rc_set_group(settings_w, "[NULL]");
 
       // Updating configuration
-      xfce_rc_write_entry(settings, "viewer_type", "text");
+      xfce_rc_write_entry(settings_w, "viewer_type", "text");
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
@@ -673,17 +673,17 @@ void PreferencesWindow::on_flame_radiobutton_toggled()
     if (file)
     {
       // Opening setting file
-      XfceRc* settings = xfce_rc_simple_open(file, false);
+      XfceRc* settings_w = xfce_rc_simple_open(file, false);
       g_free(file);
 
       // Ensuring default group is in focus
-      xfce_rc_set_group(settings, "[NULL]");
+      xfce_rc_set_group(settings_w, "[NULL]");
 
       // Updating configuration
-      xfce_rc_write_entry(settings, "viewer_type", "flame");
+      xfce_rc_write_entry(settings_w, "viewer_type", "flame");
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_w);
     }
     else
     {
@@ -717,18 +717,18 @@ void PreferencesWindow::on_size_scale_changed()
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Ensuring default group is in focus
-    xfce_rc_set_group(settings, "[NULL]");
+    xfce_rc_set_group(settings_w, "[NULL]");
 
     // Updating configuration
-    xfce_rc_write_int_entry(settings, "viewer_size",
+    xfce_rc_write_int_entry(settings_w, "viewer_size",
       size_scale_to_pixels(i));
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
@@ -839,15 +839,15 @@ void PreferencesWindow::on_selection_changed()
     if (file)
     {
       // One exists - loading readonly settings
-      XfceRc* settings = xfce_rc_simple_open(file, true);
+      XfceRc* settings_ro = xfce_rc_simple_open(file, true);
       g_free(file);
 
       // Loading color
-      xfce_rc_set_group(settings, mon_dir.c_str());
-      color = xfce_rc_read_int_entry(settings, "color", 0);
+      xfce_rc_set_group(settings_ro, mon_dir.c_str());
+      color = xfce_rc_read_int_entry(settings_ro, "color", 0);
 
       // Close settings file
-      xfce_rc_close(settings);
+      xfce_rc_close(settings_ro);
     }
 
     // Applying colour
@@ -887,9 +887,9 @@ bool PreferencesWindow::on_closed(GdkEventAny *)
 
 Monitor *PreferencesWindow::run_choose_monitor_window(const Glib::ustring &str)
 {
-  ChooseMonitorWindow chooser(applet.get_icon(), *window);
+  ChooseMonitorWindow chooser(applet.panel_applet, *window);
 
-  return chooser.run(applet.panel_applet, str);
+  return chooser.run(str);
 }
 
 void PreferencesWindow::add_to_monitors_list(Monitor *mon)
@@ -942,17 +942,17 @@ void PreferencesWindow::save_font_details(Glib::ustring font_details)
   if (file)
   {
     // Opening setting file
-    XfceRc* settings = xfce_rc_simple_open(file, false);
+    XfceRc* settings_w = xfce_rc_simple_open(file, false);
     g_free(file);
 
     // Ensuring default group is in focus
-    xfce_rc_set_group(settings, "[NULL]");
+    xfce_rc_set_group(settings_w, "[NULL]");
 
     // Updating configuration
-    xfce_rc_write_entry(settings, "viewer_font", font_details.c_str());
+    xfce_rc_write_entry(settings_w, "viewer_font", font_details.c_str());
 
     // Close settings file
-    xfce_rc_close(settings);
+    xfce_rc_close(settings_w);
   }
   else
   {
diff --git a/src/ui.glade b/src/ui.glade
index f13b4e6..0eafc28 100644
--- a/src/ui.glade
+++ b/src/ui.glade
@@ -1,2328 +1,1902 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
+<?xml version="1.0" encoding="UTF-8"?>
 <glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkWindow" id="preferences_window">
-  <property name="border_width">12</property>
-  <property name="title" translatable="yes">Hardware Monitor Preferences</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="outer_vbox">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">12</property>
-
-      <child>
-	<widget class="GtkNotebook" id="notebook">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="show_tabs">True</property>
-	  <property name="show_border">True</property>
-	  <property name="tab_pos">GTK_POS_TOP</property>
-	  <property name="scrollable">False</property>
-	  <property name="enable_popup">False</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="devices_outer_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkLabel" id="devices_label">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes"><b>Devices</b></property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="monitors_hbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="monitors_vbox">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkLabel" id="monitors_header">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Monitored devices:</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="mnemonic_widget">monitor_treeview</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkTable" id="monitors_table">
-			  <property name="visible">True</property>
-			  <property name="n_rows">2</property>
-			  <property name="n_columns">2</property>
-			  <property name="homogeneous">False</property>
-			  <property name="row_spacing">6</property>
-			  <property name="column_spacing">18</property>
-
-			  <child>
-			    <widget class="GtkScrolledWindow" id="scrolledwindow">
-			      <property name="width_request">250</property>
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
-			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			      <child>
-				<widget class="GtkTreeView" id="monitor_treeview">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="headers_visible">False</property>
-				  <property name="rules_hint">False</property>
-				  <property name="reorderable">False</property>
-				  <property name="enable_search">True</property>
-				  <property name="fixed_height_mode">False</property>
-				  <property name="hover_selection">False</property>
-				  <property name="hover_expand">False</property>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVButtonBox" id="monitor_buttonbox">
-			      <property name="visible">True</property>
-			      <property name="layout_style">GTK_BUTTONBOX_START</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkButton" id="add_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="add_dummy">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="add_label">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">_Add</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">12</property>
-					  <property name="ypad">0</property>
-					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					  <property name="width_chars">-1</property>
-					  <property name="single_line_mode">False</property>
-					  <property name="angle">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="remove_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="remove_dummy">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="remove_label">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">_Remove</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">12</property>
-					  <property name="ypad">0</property>
-					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					  <property name="width_chars">-1</property>
-					  <property name="single_line_mode">False</property>
-					  <property name="angle">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="change_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="change_dummy">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="change_label">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">C_hange</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">12</property>
-					  <property name="ypad">0</property>
-					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					  <property name="width_chars">-1</property>
-					  <property name="single_line_mode">False</property>
-					  <property name="angle">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">shrink</property>
-			      <property name="y_options">shrink</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVBox" id="monitor_options">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkVBox" id="monitor_curve_options">
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">12</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="line_hbox">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">18</property>
-
-				      <child>
-					<widget class="GtkHBox" id="line_color_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">12</property>
-
-					  <child>
-					    <widget class="GtkLabel" id="line_color_label">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">C_olor:</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="mnemonic_widget">line_colorbutton</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkColorButton" id="line_colorbutton">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="use_alpha">True</property>
-					      <property name="focus_on_click">True</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">True</property>
-					  <property name="fill">True</property>
-					</packing>
-				      </child>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkVBox" id="monitor_bar_options">
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">12</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="bar_color_hbox">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">12</property>
-
-				      <child>
-					<widget class="GtkLabel" id="bar_color_label">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">C_olor:</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0.5</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">0</property>
-					  <property name="ypad">0</property>
-					  <property name="mnemonic_widget">bar_colorbutton</property>
-					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					  <property name="width_chars">-1</property>
-					  <property name="single_line_mode">False</property>
-					  <property name="angle">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkColorButton" id="bar_colorbutton">
-					  <property name="visible">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="use_alpha">True</property>
-					  <property name="focus_on_click">True</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkVBox" id="monitor_column_options">
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">12</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="column_color_hbox">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">12</property>
-
-				      <child>
-					<widget class="GtkLabel" id="column_color_label">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">C_olor:</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0.5</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">0</property>
-					  <property name="ypad">0</property>
-					  <property name="mnemonic_widget">column_colorbutton</property>
-					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					  <property name="width_chars">-1</property>
-					  <property name="single_line_mode">False</property>
-					  <property name="angle">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkColorButton" id="column_colorbutton">
-					  <property name="visible">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="use_alpha">True</property>
-					  <property name="focus_on_click">True</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkVBox" id="monitor_flame_options">
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">12</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="flame_color_hbox">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">12</property>
-
-				      <child>
-					<widget class="GtkLabel" id="flame_color_label">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">C_olor:</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0.5</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">0</property>
-					  <property name="ypad">0</property>
-					  <property name="mnemonic_widget">flame_colorbutton</property>
-					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					  <property name="width_chars">-1</property>
-					  <property name="single_line_mode">False</property>
-					  <property name="angle">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkColorButton" id="flame_colorbutton">
-					  <property name="visible">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="use_alpha">True</property>
-					  <property name="focus_on_click">True</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkVBox" id="monitor_vbar_options">
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">12</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="vbar_color_hbox">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">12</property>
-
-				      <child>
-					<widget class="GtkLabel" id="vbar_color_label">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">C_olor:</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0.5</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">0</property>
-					  <property name="ypad">0</property>
-					  <property name="mnemonic_widget">bar_colorbutton</property>
-					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					  <property name="width_chars">-1</property>
-					  <property name="single_line_mode">False</property>
-					  <property name="angle">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkColorButton" id="vbar_colorbutton">
-					  <property name="visible">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="use_alpha">True</property>
-					  <property name="focus_on_click">True</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">expand|shrink|fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">12</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="devices_tab_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Devices</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="viewer_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="viewer_outer_vbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="viewer_label">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"><b>Viewer</b></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="viewer_hbox">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkTable" id="radio_table">
-			  <property name="visible">True</property>
-			  <property name="n_rows">2</property>
-			  <property name="n_columns">3</property>
-			  <property name="homogeneous">False</property>
-			  <property name="row_spacing">12</property>
-			  <property name="column_spacing">12</property>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="curve_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Monitor devices using line graphs</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">C_urves</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">True</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="bar_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Monitor devices using horizontal bars</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Horizontal bars</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">curve_radiobutton</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="flame_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Monitor devices using fluctuating flames</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Flames</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">curve_radiobutton</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">2</property>
-			      <property name="right_attach">3</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="column_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Monitor devices using solid columns</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">C_olumns</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">curve_radiobutton</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="text_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Monitor devices using text descriptions</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Text</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">curve_radiobutton</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">2</property>
-			      <property name="right_attach">3</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="vbar_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Monitor devices using vertical bars</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Vertical bars</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">curve_radiobutton</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">12</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="size_outer_vbox">
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="size_label">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"><b>Size</b></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="size_hbox">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkHBox" id="size_scale_hbox">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">12</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="size_small_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes"><i>Small</i></property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">True</property>
-			      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHScale" id="size_scale">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="draw_value">False</property>
-			      <property name="value_pos">GTK_POS_TOP</property>
-			      <property name="digits">0</property>
-			      <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
-			      <property name="inverted">False</property>
-			      <property name="adjustment">0 0 9 1 1 0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="size_large_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes"><i>Large</i></property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">True</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">12</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="font_outer_vbox">
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="font_label">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"><b>Font</b></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="font_hbox">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkHBox" id="font_picker_hbox">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="font_checkbutton">
-			      <property name="visible">True</property>
-			      <property name="sensitive">False</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Use this f_ont:</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkFontButton" id="fontbutton">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="title" translatable="yes">Choose a Font</property>
-			      <property name="show_style">True</property>
-			      <property name="show_size">True</property>
-			      <property name="use_font">False</property>
-			      <property name="use_size">False</property>
-			      <property name="focus_on_click">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">12</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="viewer_tab_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Viewer</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="background_outer_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkLabel" id="background_label">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes"><b>Background</b></property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="background_hbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="background_vbox">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkRadioButton" id="panel_background_radiobutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Use _panel background</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkHBox" id="background_color_hbox">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="background_color_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Use _this color:</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">panel_background_radiobutton</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkColorButton" id="background_colorbutton">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="use_alpha">False</property>
-			      <property name="focus_on_click">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">12</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="background_tab_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Background</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHButtonBox" id="action_buttonbox">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-	  <property name="spacing">12</property>
-
-	  <child>
-	    <widget class="GtkButton" id="close_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-close</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkDialog" id="choose_monitor_window">
-  <property name="border_width">12</property>
-  <property name="title" translatable="yes">Choose a Device</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">True</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="outer_vbox">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">12</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="action_area">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="help_button">
-	      <property name="visible">True</property>
-	      <property name="sensitive">False</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-help</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-11</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="cancel_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="ok_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="has_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-ok</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkNotebook" id="device_notebook">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="show_tabs">True</property>
-	  <property name="show_border">True</property>
-	  <property name="tab_pos">GTK_POS_TOP</property>
-	  <property name="scrollable">False</property>
-	  <property name="enable_popup">False</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="system_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkVBox" id="cpu_vbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="cpu_usage_radiobutton">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">The percentage of time that is spent running foreground processes</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">C_PU usage</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">True</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="cpu_usage_options">
-		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="cpu_choose_vbox">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="all_cpus_radiobutton">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Monitor all CPUs</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">All CPUs</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="cpu_no_hbox">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="one_cpu_radiobutton">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Monitor only a single CPU</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Only CPU:</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <property name="group">all_cpus_radiobutton</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkSpinButton" id="cpu_no_spinbutton">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Which CPU no. to monitor</property>
-				  <property name="can_focus">True</property>
-				  <property name="climb_rate">1</property>
-				  <property name="digits">0</property>
-				  <property name="numeric">True</property>
-				  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
-				  <property name="snap_to_ticks">False</property>
-				  <property name="wrap">False</property>
-				  <property name="adjustment">1 1 33 1 10 10</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">18</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkRadioButton" id="load_average_radiobutton">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">A running average of the number of simultanous processes</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">_Load average</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
-		  <property name="group">cpu_usage_radiobutton</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="system_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">System</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="storage_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkVBox" id="disk_vbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="disk_usage_radiobutton">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">The amount of disk space used</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Disk usage</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <property name="group">cpu_usage_radiobutton</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="disk_usage_options">
-		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="disk_usage_options_vbox">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="mount_dir_hbox">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkLabel" id="mount_dir_label">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Folder:</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				  <property name="width_chars">-1</property>
-				  <property name="single_line_mode">False</property>
-				  <property name="angle">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="mount_dir_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Enter a folder residing on the disk to monitor</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes">/</property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="show_free_checkbutton">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Show _free space instead of used</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">18</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkRadioButton" id="memory_usage_radiobutton">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">The amount of memory used</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">_Memory usage</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
-		  <property name="group">cpu_usage_radiobutton</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkRadioButton" id="swap_usage_radiobutton">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">The amount of disk-based memory used</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">_Swap usage</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
-		  <property name="group">cpu_usage_radiobutton</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="storage_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Storage</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="network_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkVBox" id="network_vbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="network_load_radiobutton">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">The amount of data sent through a network connection</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Network throughput</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <property name="group">cpu_usage_radiobutton</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="network_load_options">
-		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkTable" id="network_load_options_table">
-			  <property name="visible">True</property>
-			  <property name="n_rows">2</property>
-			  <property name="n_columns">2</property>
-			  <property name="homogeneous">False</property>
-			  <property name="row_spacing">6</property>
-			  <property name="column_spacing">12</property>
-
-			  <child>
-			    <widget class="GtkOptionMenu" id="network_type_optionmenu">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Type of connection - Ethernet is the most common local area network adapter type</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child>
-				<widget class="GtkMenu" id="menu1">
-
-				  <child>
-				    <widget class="GtkMenuItem" id="ethernet1_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Ethernet (first)</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="ethernet2_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Ethernet (second)</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="ethernet3_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Ethernet (third)</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="modem_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Modem</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="serial_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Serial link</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="wireless_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Wireless</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="direction_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Direction:</property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkOptionMenu" id="network_direction_optionmenu">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Select whether to monitor incoming or outgoing data or both</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child>
-				<widget class="GtkMenu" id="menu2">
-
-				  <child>
-				    <widget class="GtkMenuItem" id="all_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">All data</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="in_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Incoming data</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="out_item">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Outgoing data</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="network_type_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Connection:</property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="mnemonic_widget">network_type_optionmenu</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">18</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="network_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Network</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="temperature_vbox">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkVBox" id="temperature_box">
-		  <property name="visible">True</property>
-		  <property name="sensitive">False</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="temperature_radiobutton">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">The temperature of the inside of the system</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Temperature</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <property name="group">cpu_usage_radiobutton</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="temperature_options">
-		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">12</property>
-
-		      <child>
-			<widget class="GtkOptionMenu" id="temperature_optionmenu">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">Select the sensor to monitor</property>
-			  <property name="can_focus">True</property>
-			  <property name="history">0</property>
-
-			  <child>
-			    <widget class="GtkMenu" id="menu3">
-
-			      <child>
-				<widget class="GtkMenuItem" id="no_sensors">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">No sensors detected</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">18</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="fan_speed_box">
-		  <property name="visible">True</property>
-		  <property name="sensitive">False</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="fan_speed_radiobutton">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">The speed of the fans</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Fan speed</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <property name="group">cpu_usage_radiobutton</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="fan_speed_options">
-		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">12</property>
-
-		      <child>
-			<widget class="GtkOptionMenu" id="fan_speed_optionmenu">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">Select the sensor to monitor</property>
-			  <property name="can_focus">True</property>
-			  <property name="history">0</property>
-
-			  <child>
-			    <widget class="GtkMenu" id="menu4">
-
-			      <child>
-				<widget class="GtkMenuItem" id="no_sensors">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">No sensors detected</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">18</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="temperature_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Temperature</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
+  <!-- interface-requires gtk+ 2.16 -->
+  <!-- interface-naming-policy toplevel-contextual -->
+  <widget class="GtkDialog" id="choose_monitor_window">
+    <property name="can_focus">False</property>
+    <property name="border_width">12</property>
+    <property name="title" translatable="yes">Choose a Device</property>
+    <property name="modal">True</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="outer_vbox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="action_area">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <widget class="GtkButton" id="help_button">
+                <property name="label">gtk-help</property>
+                <property name="response_id">-11</property>
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="cancel_button">
+                <property name="label">gtk-cancel</property>
+                <property name="response_id">-6</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="ok_button">
+                <property name="label">gtk-ok</property>
+                <property name="response_id">-5</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkNotebook" id="device_notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <widget class="GtkVBox" id="system_vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkVBox" id="cpu_vbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkRadioButton" id="cpu_usage_radiobutton">
+                        <property name="label" translatable="yes">C_PU usage</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip" translatable="yes">The percentage of time that is spent running foreground processes</property>
+                        <property name="use_underline">True</property>
+                        <property name="active">True</property>
+                        <property name="draw_indicator">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="cpu_usage_options">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <widget class="GtkVBox" id="cpu_choose_vbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkRadioButton" id="all_cpus_radiobutton">
+                                <property name="label" translatable="yes">All CPUs</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Monitor all CPUs</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkHBox" id="cpu_no_hbox">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <widget class="GtkRadioButton" id="one_cpu_radiobutton">
+                                    <property name="label" translatable="yes">Only CPU:</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="tooltip" translatable="yes">Monitor only a single CPU</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">all_cpus_radiobutton</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkSpinButton" id="cpu_no_spinbutton">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="tooltip" translatable="yes">Which CPU no. to monitor</property>
+                                    <property name="primary_icon_activatable">False</property>
+                                    <property name="secondary_icon_activatable">False</property>
+                                    <property name="primary_icon_sensitive">True</property>
+                                    <property name="secondary_icon_sensitive">True</property>
+                                    <property name="adjustment">1 1 33 1 10 0</property>
+                                    <property name="climb_rate">1</property>
+                                    <property name="numeric">True</property>
+                                    <property name="update_policy">if-valid</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="padding">18</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkRadioButton" id="load_average_radiobutton">
+                    <property name="label" translatable="yes">_Load average</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="tooltip" translatable="yes">A running average of the number of simultanous processes</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">cpu_usage_radiobutton</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="system_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">System</property>
+              </widget>
+              <packing>
+                <property name="tab_fill">False</property>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="storage_vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkVBox" id="disk_vbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkRadioButton" id="disk_usage_radiobutton">
+                        <property name="label" translatable="yes">_Disk usage</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip" translatable="yes">The amount of disk space used</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                        <property name="group">cpu_usage_radiobutton</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="disk_usage_options">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <widget class="GtkVBox" id="disk_usage_options_vbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkHBox" id="mount_dir_hbox">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <widget class="GtkLabel" id="mount_dir_label">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">Folder:</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkEntry" id="mount_dir_entry">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="tooltip" translatable="yes">Enter a folder residing on the disk to monitor</property>
+                                    <property name="text" translatable="yes">/</property>
+                                    <property name="primary_icon_activatable">False</property>
+                                    <property name="secondary_icon_activatable">False</property>
+                                    <property name="primary_icon_sensitive">True</property>
+                                    <property name="secondary_icon_sensitive">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="show_free_checkbutton">
+                                <property name="label" translatable="yes">Show _free space instead of used</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="padding">18</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkRadioButton" id="memory_usage_radiobutton">
+                    <property name="label" translatable="yes">_Memory usage</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="tooltip" translatable="yes">The amount of memory used</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">cpu_usage_radiobutton</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkRadioButton" id="swap_usage_radiobutton">
+                    <property name="label" translatable="yes">_Swap usage</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="tooltip" translatable="yes">The amount of disk-based memory used</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_indicator">True</property>
+                    <property name="group">cpu_usage_radiobutton</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="storage_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Storage</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="network_vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkVBox" id="network_vbox1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkRadioButton" id="network_load_radiobutton">
+                        <property name="label" translatable="yes">_Network throughput</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip" translatable="yes">The amount of data sent through a network connection</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                        <property name="group">cpu_usage_radiobutton</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="network_load_options">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <widget class="GtkTable" id="network_load_options_table">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="n_rows">2</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">12</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <widget class="GtkOptionMenu" id="network_type_optionmenu">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Type of connection - Ethernet is the most common local area network adapter type</property>
+                                <child>
+                                  <widget class="GtkMenu" id="menu1">
+                                    <property name="can_focus">False</property>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="ethernet1_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Ethernet (first)</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="ethernet2_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Ethernet (second)</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="ethernet3_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Ethernet (third)</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="modem_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Modem</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="serial_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Serial link</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="wireless1_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Wireless (first)</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="wireless2_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Wireless (second)</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="wireless3_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Wireless (third)</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="direction_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Direction:</property>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkOptionMenu" id="network_direction_optionmenu">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Select whether to monitor incoming or outgoing data or both</property>
+                                <child>
+                                  <widget class="GtkMenu" id="menu2">
+                                    <property name="can_focus">False</property>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="all_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">All data</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="in_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Incoming data</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkMenuItem" id="out_item">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="label" translatable="yes">Outgoing data</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="network_type_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Connection:</property>
+                                <property name="mnemonic_widget">network_type_optionmenu</property>
+                              </widget>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="padding">18</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkExpander" id="expander1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <widget class="GtkVBox" id="network_vbox2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <widget class="GtkTreeView" id="network_interfaces_treeview">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <widget class="GtkVButtonBox" id="vbuttonbox1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <child>
+                              <widget class="GtkButton" id="network_interfaces_restore_defaults_button">
+                                <property name="label" translatable="yes">Restore Defaults</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Advanced</property>
+                      </widget>
+                      <packing>
+                        <property name="type">label_item</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="network_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Network</property>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="temperature_vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkVBox" id="temperature_box">
+                    <property name="visible">True</property>
+                    <property name="sensitive">False</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <widget class="GtkRadioButton" id="temperature_radiobutton">
+                        <property name="label" translatable="yes">_Temperature</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip" translatable="yes">The temperature of the inside of the system</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                        <property name="group">cpu_usage_radiobutton</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="temperature_options">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <widget class="GtkOptionMenu" id="temperature_optionmenu">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="tooltip" translatable="yes">Select the sensor to monitor</property>
+                            <child>
+                              <widget class="GtkMenu" id="menu3">
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <widget class="GtkMenuItem" id="no_sensors">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">No sensors detected</property>
+                                    <property name="use_underline">True</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="padding">18</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkVBox" id="fan_speed_box">
+                    <property name="visible">True</property>
+                    <property name="sensitive">False</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <widget class="GtkRadioButton" id="fan_speed_radiobutton">
+                        <property name="label" translatable="yes">_Fan speed</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip" translatable="yes">The speed of the fans</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                        <property name="group">cpu_usage_radiobutton</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="fan_speed_options">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <widget class="GtkOptionMenu" id="fan_speed_optionmenu">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="tooltip" translatable="yes">Select the sensor to monitor</property>
+                            <child>
+                              <widget class="GtkMenu" id="menu4">
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <widget class="GtkMenuItem" id="no_sensors1">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">No sensors detected</property>
+                                    <property name="use_underline">True</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="padding">18</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">3</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="temperature_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Temperature</property>
+              </widget>
+              <packing>
+                <property name="position">3</property>
+                <property name="tab_fill">False</property>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkWindow" id="preferences_window">
+    <property name="can_focus">False</property>
+    <property name="border_width">12</property>
+    <property name="title" translatable="yes">Hardware Monitor Preferences</property>
+    <child>
+      <widget class="GtkVBox" id="outer_vbox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">12</property>
+        <child>
+          <widget class="GtkNotebook" id="notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <widget class="GtkVBox" id="devices_outer_vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkLabel" id="devices_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes"><b>Devices</b></property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkHBox" id="monitors_hbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <widget class="GtkVBox" id="monitors_vbox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <widget class="GtkLabel" id="monitors_header">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Monitored devices:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">monitor_treeview</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkTable" id="monitors_table">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="n_rows">2</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">18</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <widget class="GtkScrolledWindow" id="scrolledwindow">
+                                <property name="width_request">250</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="hscrollbar_policy">automatic</property>
+                                <property name="vscrollbar_policy">automatic</property>
+                                <property name="shadow_type">in</property>
+                                <child>
+                                  <widget class="GtkTreeView" id="monitor_treeview">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="headers_visible">False</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkVButtonBox" id="monitor_buttonbox">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">6</property>
+                                <property name="layout_style">start</property>
+                                <child>
+                                  <widget class="GtkButton" id="add_button">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="add_dummy">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="add_label">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xalign">0</property>
+                                            <property name="xpad">12</property>
+                                            <property name="label" translatable="yes">_Add</property>
+                                            <property name="use_underline">True</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkButton" id="remove_button">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="remove_dummy">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="remove_label">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xalign">0</property>
+                                            <property name="xpad">12</property>
+                                            <property name="label" translatable="yes">_Remove</property>
+                                            <property name="use_underline">True</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkButton" id="change_button">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="change_dummy">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="change_label">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xalign">0</property>
+                                            <property name="xpad">12</property>
+                                            <property name="label" translatable="yes">C_hange</property>
+                                            <property name="use_underline">True</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="x_options">GTK_SHRINK</property>
+                                <property name="y_options">GTK_SHRINK</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkVBox" id="monitor_options">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <widget class="GtkVBox" id="monitor_curve_options">
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="line_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="spacing">18</property>
+                                        <child>
+                                          <widget class="GtkHBox" id="line_color_hbox">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="spacing">12</property>
+                                            <child>
+                                              <widget class="GtkLabel" id="line_color_label">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">False</property>
+                                                <property name="label" translatable="yes">C_olor:</property>
+                                                <property name="use_underline">True</property>
+                                                <property name="mnemonic_widget">line_colorbutton</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">0</property>
+                                              </packing>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkColorButton" id="line_colorbutton">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="receives_default">False</property>
+                                                <property name="use_alpha">True</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">True</property>
+                                            <property name="fill">True</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkVBox" id="monitor_bar_options">
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="bar_color_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="spacing">12</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="bar_color_label">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">C_olor:</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">bar_colorbutton</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkColorButton" id="bar_colorbutton">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">False</property>
+                                            <property name="use_alpha">True</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkVBox" id="monitor_column_options">
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="column_color_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="spacing">12</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="column_color_label">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">C_olor:</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">column_colorbutton</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkColorButton" id="column_colorbutton">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">False</property>
+                                            <property name="use_alpha">True</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkVBox" id="monitor_flame_options">
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="flame_color_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="spacing">12</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="flame_color_label">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">C_olor:</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">flame_colorbutton</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkColorButton" id="flame_colorbutton">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">False</property>
+                                            <property name="use_alpha">True</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">3</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkVBox" id="monitor_vbar_options">
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <widget class="GtkHBox" id="vbar_color_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="spacing">12</property>
+                                        <child>
+                                          <widget class="GtkLabel" id="vbar_color_label">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">C_olor:</property>
+                                            <property name="use_underline">True</property>
+                                            <property name="mnemonic_widget">bar_colorbutton</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkColorButton" id="vbar_colorbutton">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">False</property>
+                                            <property name="use_alpha">True</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">4</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="padding">12</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="devices_tab_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Devices</property>
+              </widget>
+              <packing>
+                <property name="tab_fill">False</property>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="viewer_vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">18</property>
+                <child>
+                  <widget class="GtkVBox" id="viewer_outer_vbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <widget class="GtkLabel" id="viewer_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes"><b>Viewer</b></property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="viewer_hbox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <widget class="GtkTable" id="radio_table">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="n_rows">2</property>
+                            <property name="n_columns">3</property>
+                            <property name="column_spacing">12</property>
+                            <property name="row_spacing">12</property>
+                            <child>
+                              <widget class="GtkRadioButton" id="curve_radiobutton">
+                                <property name="label" translatable="yes">C_urves</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Monitor devices using line graphs</property>
+                                <property name="use_underline">True</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkRadioButton" id="bar_radiobutton">
+                                <property name="label" translatable="yes">_Horizontal bars</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Monitor devices using horizontal bars</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">curve_radiobutton</property>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkRadioButton" id="flame_radiobutton">
+                                <property name="label" translatable="yes">_Flames</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Monitor devices using fluctuating flames</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">curve_radiobutton</property>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="right_attach">3</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkRadioButton" id="column_radiobutton">
+                                <property name="label" translatable="yes">C_olumns</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Monitor devices using solid columns</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">curve_radiobutton</property>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkRadioButton" id="text_radiobutton">
+                                <property name="label" translatable="yes">_Text</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Monitor devices using text descriptions</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">curve_radiobutton</property>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="right_attach">3</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkRadioButton" id="vbar_radiobutton">
+                                <property name="label" translatable="yes">_Vertical bars</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="tooltip" translatable="yes">Monitor devices using vertical bars</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">curve_radiobutton</property>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"/>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="padding">12</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkVBox" id="size_outer_vbox">
+                    <property name="can_focus">False</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <widget class="GtkLabel" id="size_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes"><b>Size</b></property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="size_hbox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <widget class="GtkHBox" id="size_scale_hbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <widget class="GtkLabel" id="size_small_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes"><i>Small</i></property>
+                                <property name="use_markup">True</property>
+                                <property name="justify">right</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkHScale" id="size_scale">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="update_policy">discontinuous</property>
+                                <property name="adjustment">0 0 9 1 1 0</property>
+                                <property name="digits">0</property>
+                                <property name="draw_value">False</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="size_large_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes"><i>Large</i></property>
+                                <property name="use_markup">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="padding">12</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkVBox" id="font_outer_vbox">
+                    <property name="can_focus">False</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <widget class="GtkLabel" id="font_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes"><b>Font</b></property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkHBox" id="font_hbox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <widget class="GtkHBox" id="font_picker_hbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkCheckButton" id="font_checkbutton">
+                                <property name="label" translatable="yes">Use this f_ont:</property>
+                                <property name="visible">True</property>
+                                <property name="sensitive">False</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkFontButton" id="fontbutton">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="title" translatable="yes">Choose a Font</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="padding">12</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="viewer_tab_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Viewer</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="background_outer_vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkLabel" id="background_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes"><b>Background</b></property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkHBox" id="background_hbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <widget class="GtkVBox" id="background_vbox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <widget class="GtkRadioButton" id="panel_background_radiobutton">
+                            <property name="label" translatable="yes">Use _panel background</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkHBox" id="background_color_hbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <widget class="GtkRadioButton" id="background_color_radiobutton">
+                                <property name="label" translatable="yes">Use _this color:</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">panel_background_radiobutton</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkColorButton" id="background_colorbutton">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="padding">12</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="background_tab_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Background</property>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkHButtonBox" id="action_buttonbox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="spacing">12</property>
+            <property name="layout_style">end</property>
+            <child>
+              <widget class="GtkButton" id="close_button">
+                <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="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list