[gnome-control-center] Network: Use grids for alignment instead of a huge set of size groups



commit 8613d54e9a0c576bb1767a9f3ed7d6e9168e506e
Author: William Jon McCann <jmccann redhat com>
Date:   Sat Mar 26 16:45:08 2011 -0400

    Network: Use grids for alignment instead of a huge set of size groups
    
    https://bugzilla.gnome.org/show_bug.cgi?id=645772

 panels/network/cc-network-panel.c |  565 ++++---
 panels/network/network.ui         | 3726 +++++++++++++++++--------------------
 2 files changed, 2033 insertions(+), 2258 deletions(-)
---
diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c
index deadc85..750b1ef 100644
--- a/panels/network/cc-network-panel.c
+++ b/panels/network/cc-network-panel.c
@@ -245,21 +245,49 @@ panel_proxy_mode_combo_setup_widgets (CcNetworkPanel *panel, guint value)
 
         /* hide or show the PAC text box */
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
-                                                     "hbox_proxy_url"));
+                                                     "heading_proxy_url"));
+        gtk_widget_set_visible (widget, value == 2);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "entry_proxy_url"));
         gtk_widget_set_visible (widget, value == 2);
 
         /* hide or show the manual entry text boxes */
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
-                                                     "hbox_proxy_http"));
+                                                     "heading_proxy_http"));
+        gtk_widget_set_visible (widget, value == 1);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "entry_proxy_http"));
+        gtk_widget_set_visible (widget, value == 1);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "spinbutton_proxy_http"));
+        gtk_widget_set_visible (widget, value == 1);
+
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "heading_proxy_https"));
+        gtk_widget_set_visible (widget, value == 1);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "entry_proxy_https"));
+        gtk_widget_set_visible (widget, value == 1);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "spinbutton_proxy_https"));
+        gtk_widget_set_visible (widget, value == 1);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "heading_proxy_ftp"));
+        gtk_widget_set_visible (widget, value == 1);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "entry_proxy_ftp"));
         gtk_widget_set_visible (widget, value == 1);
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
-                                                     "hbox_proxy_shttp"));
+                                                     "spinbutton_proxy_ftp"));
         gtk_widget_set_visible (widget, value == 1);
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
-                                                     "hbox_proxy_ftp"));
+                                                     "heading_proxy_socks"));
         gtk_widget_set_visible (widget, value == 1);
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
-                                                     "hbox_proxy_socks"));
+                                                     "entry_proxy_socks"));
+        gtk_widget_set_visible (widget, value == 1);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "spinbutton_proxy_socks"));
         gtk_widget_set_visible (widget, value == 1);
 
         /* perhaps show the wpad warning */
@@ -639,31 +667,30 @@ panel_set_widget_data (CcNetworkPanel *panel,
                        const gchar *widget_suffix,
                        const gchar *value)
 {
-        gchar *hbox_id;
+        gchar *heading_id;
         gchar *label_id = NULL;
+        GtkWidget *heading;
         GtkWidget *widget;
         CcNetworkPanelPrivate *priv = panel->priv;
 
-        /* hide the parent bix if there is no value */
-        hbox_id = g_strdup_printf ("hbox_%s_%s", sub_pane, widget_suffix);
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, hbox_id));
-        if (widget == NULL) {
-                g_warning ("no %s widget", hbox_id);
-                goto out;
-        }
-        if (value == NULL) {
-                gtk_widget_hide (widget);
-                goto out;
-        }
-
-        /* there exists a value */
-        gtk_widget_show (widget);
+        /* hide the row if there is no value */
+        heading_id = g_strdup_printf ("heading_%s_%s", sub_pane, widget_suffix);
         label_id = g_strdup_printf ("label_%s_%s", sub_pane, widget_suffix);
+        heading = GTK_WIDGET (gtk_builder_get_object (priv->builder, heading_id));
         widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, label_id));
-        gtk_label_set_label (GTK_LABEL (widget), value);
-out:
-        g_free (hbox_id);
+        g_assert (heading != NULL);
+        g_free (heading_id);
         g_free (label_id);
+
+        if (value == NULL) {
+                gtk_widget_hide (heading);
+                gtk_widget_hide (widget);
+        } else {
+                /* there exists a value */
+                gtk_widget_show (heading);
+                gtk_widget_show (widget);
+                gtk_label_set_label (GTK_LABEL (widget), value);
+        }
 }
 
 static void
@@ -749,7 +776,7 @@ add_access_point (CcNetworkPanel *panel, NMAccessPoint *ap, NMAccessPoint *activ
         if (g_strcmp0 (object_path,
                        nm_object_get_path (NM_OBJECT (active))) == 0) {
                 widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                             "combobox_network_name"));
+                                                             "combobox_wireless_network_name"));
                 gtk_combo_box_set_active_iter (GTK_COMBO_BOX (widget), &treeiter);
         }
 }
@@ -1081,7 +1108,7 @@ wireless_enabled_toggled (NMClient       *client,
 
         enabled = nm_client_wireless_get_enabled (client);
         sw = GTK_SWITCH (gtk_builder_get_object (panel->priv->builder,
-                                                 "device_off_switch"));
+                                                 "device_wireless_off_switch"));
 
         panel->priv->updating_device = TRUE;
         gtk_switch_set_active (sw, enabled);
@@ -1108,7 +1135,7 @@ wimax_enabled_toggled (NMClient       *client,
 
         enabled = nm_client_wimax_get_enabled (client);
         sw = GTK_SWITCH (gtk_builder_get_object (panel->priv->builder,
-                                                 "device_off_switch"));
+                                                 "device_wimax_off_switch"));
 
         panel->priv->updating_device = TRUE;
         gtk_switch_set_active (sw, enabled);
@@ -1135,233 +1162,304 @@ update_off_switch_from_device_state (GtkSwitch *sw, NMDeviceState state, CcNetwo
 }
 
 static void
-nm_device_refresh_device_ui (CcNetworkPanel *panel, NetDevice *device)
+refresh_header_ui (CcNetworkPanel *panel, NMDevice *device, const char *page_name)
 {
-        CcNetworkPanelPrivate *priv = panel->priv;
-        const gchar *str;
-        const gchar *sub_pane = NULL;
-        gchar *str_tmp;
-        GHashTable *options = NULL;
-        GtkListStore *liststore_wireless_network;
         GtkWidget *widget;
-        GtkWidget *sw;
-        guint i;
-        guint speed;
-        NMAccessPoint *ap;
-        NMAccessPoint *active_ap;
+        char *wid_name;
+        const char *str;
         NMDeviceState state;
         NMDeviceType type;
-        NMDHCP4Config *config_dhcp4 = NULL;
-        NMIP6Config *ip6_config = NULL;
-        NMDevice *nm_device;
-        gboolean has_ip4;
-        gboolean has_ip6;
 
-        /* we have a new device */
-        nm_device = net_device_get_nm_device (device);
-        type = nm_device_get_device_type (nm_device);
-        g_debug ("device %s type %i", nm_device_get_udi (nm_device), type);
+        type = nm_device_get_device_type (device);
 
         /* set header icon */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "image_device"));
+        wid_name = g_strdup_printf ("image_%s_device", page_name);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
+        g_free (wid_name);
         gtk_image_set_from_icon_name (GTK_IMAGE (widget),
-                                      panel_device_to_icon_name (nm_device),
+                                      panel_device_to_icon_name (device),
                                       GTK_ICON_SIZE_DIALOG);
 
         /* set device kind */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "label_device"));
+        wid_name = g_strdup_printf ("label_%s_device", page_name);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
+        g_free (wid_name);
         gtk_label_set_label (GTK_LABEL (widget),
-                             panel_device_to_localized_string (nm_device));
+                             panel_device_to_localized_string (device));
 
 
         /* set device state */
-        state = nm_device_get_state (nm_device);
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "label_status"));
+        state = nm_device_get_state (device);
+        wid_name = g_strdup_printf ("label_%s_status", page_name);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
+        g_free (wid_name);
         str = panel_device_state_to_localized_string (type, state);
         gtk_label_set_label (GTK_LABEL (widget), str);
 
-        /* set up the options button */
-        switch (type) {
-        case NM_DEVICE_TYPE_ETHERNET:
-                widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                             "button_wired_options"));
-                gtk_widget_set_sensitive (widget, state == NM_DEVICE_STATE_ACTIVATED);
-                break;
-        case NM_DEVICE_TYPE_WIFI:
-                widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                             "button_wireless_options"));
-                gtk_widget_set_sensitive (widget, state == NM_DEVICE_STATE_ACTIVATED);
-                break;
-        default:
-                break;
-        }
 
         /* set up the device on/off switch */
-        sw = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                 "device_off_switch"));
+        wid_name = g_strdup_printf ("device_%s_off_switch", page_name);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
+        g_free (wid_name);
+
         /* keep this in sync with the signal handler setup in cc_network_panel_init */
         switch (type) {
         case NM_DEVICE_TYPE_ETHERNET:
-                gtk_widget_set_visible (sw, state != NM_DEVICE_STATE_UNAVAILABLE &&
-                                            state != NM_DEVICE_STATE_UNMANAGED);
-                update_off_switch_from_device_state (GTK_SWITCH (sw), state, panel);
+                gtk_widget_set_visible (widget,
+                                        state != NM_DEVICE_STATE_UNAVAILABLE
+                                        && state != NM_DEVICE_STATE_UNMANAGED);
+                update_off_switch_from_device_state (GTK_SWITCH (widget), state, panel);
                 break;
         case NM_DEVICE_TYPE_WIFI:
-                gtk_widget_show (sw);
-                wireless_enabled_toggled (priv->client, NULL, panel);
+                gtk_widget_show (widget);
+                wireless_enabled_toggled (panel->priv->client, NULL, panel);
                 break;
         case NM_DEVICE_TYPE_WIMAX:
-                gtk_widget_show (sw);
-                wimax_enabled_toggled (priv->client, NULL, panel);
+                gtk_widget_show (widget);
+                wimax_enabled_toggled (panel->priv->client, NULL, panel);
                 break;
         default:
-                gtk_widget_hide (sw);
+                gtk_widget_hide (widget);
                 break;
         }
 
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "notebook_types"));
-        if (type == NM_DEVICE_TYPE_ETHERNET) {
-                gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 0);
-                sub_pane = "wired";
-        } else if (type == NM_DEVICE_TYPE_WIFI) {
-                gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 1);
-                sub_pane = "wireless";
-        } else if (type == NM_DEVICE_TYPE_MODEM) {
-                NMDeviceModemCapabilities caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (nm_device));
-                if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
-                    (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
-                        gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 4);
-                        sub_pane = "mobilebb";
+        /* set up options button */
+        wid_name = g_strdup_printf ("button_%s_options", page_name);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
+        g_free (wid_name);
+        if (widget != NULL) {
+                gtk_widget_set_sensitive (widget, state == NM_DEVICE_STATE_ACTIVATED);
+        }
+}
+
+static void
+device_refresh_ethernet_ui (CcNetworkPanel *panel, NetDevice *device)
+{
+        guint speed;
+        NMDeviceState state;
+        const char *str;
+        gchar *str_tmp;
+        NMDevice *nm_device;
+
+        nm_device = net_device_get_nm_device (device);
+        state = nm_device_get_state (nm_device);
+
+        refresh_header_ui (panel, nm_device, "wired");
+
+        /* speed */
+        speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (nm_device));
+        if (state == NM_DEVICE_STATE_UNAVAILABLE)
+                str_tmp = NULL;
+        else if (speed  > 0)
+                /* Translators: network device speed */
+                str_tmp = g_strdup_printf (_("%d Mb/s"), speed);
+        else
+                str_tmp = g_strdup ("");
+        panel_set_widget_data (panel,
+                               "wired",
+                               "speed",
+                               str_tmp);
+        g_free (str_tmp);
+
+        /* device MAC */
+        str = nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (nm_device));
+        panel_set_widget_data (panel,
+                               "wired",
+                               "mac",
+                               str);
+
+}
+
+static void
+device_refresh_wifi_ui (CcNetworkPanel *panel, NetDevice *device)
+{
+        GtkWidget *widget;
+        guint speed;
+        const GPtrArray *aps;
+        GPtrArray *aps_unique = NULL;
+        GtkWidget *heading;
+        NMDeviceState state;
+        NMAccessPoint *ap;
+        NMAccessPoint *active_ap;
+        const char *str;
+        gchar *str_tmp;
+        GtkListStore *liststore_wireless_network;
+        guint i;
+        NMDevice *nm_device;
+
+        nm_device = net_device_get_nm_device (device);
+        state = nm_device_get_state (nm_device);
+
+        refresh_header_ui (panel, nm_device, "wireless");
+
+        /* speed */
+        speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (nm_device));
+        if (state == NM_DEVICE_STATE_UNAVAILABLE)
+                str_tmp = NULL;
+        else if (speed > 0)
+                str_tmp = g_strdup_printf (_("%d Mb/s"),
+                                           speed / 1000);
+        else
+                str_tmp = g_strdup ("");
+        panel_set_widget_data (panel,
+                               "wireless",
+                               "speed",
+                               str_tmp);
+        g_free (str_tmp);
+
+        /* device MAC */
+        str = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (nm_device));
+        panel_set_widget_data (panel,
+                               "wireless",
+                               "mac",
+                               str);
+        /* security */
+        active_ap = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (nm_device));
+        if (state == NM_DEVICE_STATE_UNAVAILABLE)
+                str_tmp = NULL;
+        else if (active_ap != NULL)
+                str_tmp = get_ap_security_string (active_ap);
+        else
+                str_tmp = g_strdup ("");
+        panel_set_widget_data (panel,
+                               "wireless",
+                               "security",
+                               str_tmp);
+        g_free (str_tmp);
+
+        heading = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                      "heading_wireless_network_name"));
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "combobox_wireless_network_name"));
+        /* populate access point dropdown */
+        if (state == NM_DEVICE_STATE_UNAVAILABLE) {
+                gtk_widget_hide (heading);
+                gtk_widget_hide (widget);
+        } else {
+                gtk_widget_show (heading);
+                gtk_widget_show (widget);
+                liststore_wireless_network = GTK_LIST_STORE (gtk_builder_get_object (panel->priv->builder,
+                                                                                     "liststore_wireless_network"));
+                panel->priv->updating_device = TRUE;
+                gtk_list_store_clear (liststore_wireless_network);
+                aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (nm_device));
+                aps_unique = panel_get_strongest_unique_aps (aps);
+
+                for (i = 0; i < aps_unique->len; i++) {
+                        ap = NM_ACCESS_POINT (g_ptr_array_index (aps_unique, i));
+                        add_access_point (panel, ap, active_ap);
                 }
+                panel->priv->updating_device = FALSE;
+
+                g_ptr_array_unref (aps_unique);
         }
-        if (sub_pane == NULL)
-                goto out;
 
-#if 0
-        /* FIXME? should we need to do something with this? */
-        if (state == NM_DEVICE_STATE_ACTIVATED)
-                panel_show_ip4_config (nm_device_get_ip4_config (nm_device));
-#endif
+}
 
-        if (type == NM_DEVICE_TYPE_ETHERNET) {
-
-                /* speed */
-                speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (nm_device));
-                if (state == NM_DEVICE_STATE_UNAVAILABLE)
-                        str_tmp = NULL;
-                else if (speed  > 0)
-                        /* Translators: network device speed */
-                        str_tmp = g_strdup_printf (_("%d Mb/s"), speed);
-                else
-                        str_tmp = g_strdup ("");
-                panel_set_widget_data (panel,
-                                       sub_pane,
-                                       "speed",
-                                       str_tmp);
-                g_free (str_tmp);
+static void
+device_refresh_wimax_ui (CcNetworkPanel *panel, NetDevice *device)
+{
+        NMDevice *nm_device;
 
-                /* device MAC */
-                str = nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (nm_device));
-                panel_set_widget_data (panel,
-                                       sub_pane,
-                                       "mac",
-                                       str);
+        nm_device = net_device_get_nm_device (device);
+        refresh_header_ui (panel, nm_device, "wimax");
+}
 
-        } else if (type == NM_DEVICE_TYPE_WIFI) {
-                const GPtrArray *aps;
-                GPtrArray *aps_unique = NULL;
-
-                /* speed */
-                speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (nm_device));
-                if (state == NM_DEVICE_STATE_UNAVAILABLE)
-                        str_tmp = NULL;
-                else if (speed > 0)
-                        str_tmp = g_strdup_printf (_("%d Mb/s"),
-                                                   speed / 1000);
-                else
-                        str_tmp = g_strdup ("");
-                panel_set_widget_data (panel,
-                                       sub_pane,
-                                       "speed",
-                                       str_tmp);
-                g_free (str_tmp);
+static void
+device_refresh_modem_ui (CcNetworkPanel *panel, NetDevice *device)
+{
+        NMDeviceModemCapabilities caps;
+        NMDevice *nm_device;
+        const char *str;
+
+        nm_device = net_device_get_nm_device (device);
 
-                /* device MAC */
-                str = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (nm_device));
+        refresh_header_ui (panel, nm_device, "mobilebb");
+
+        caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (nm_device));
+
+        if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
+            (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
+                /* IMEI */
+                str = g_object_get_data (G_OBJECT (device),
+                                         "ControlCenter::EquipmentIdentifier");
                 panel_set_widget_data (panel,
-                                       sub_pane,
-                                       "mac",
+                                       "mobilebb",
+                                       "imei",
                                        str);
-                /* security */
-                active_ap = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (nm_device));
-                if (state == NM_DEVICE_STATE_UNAVAILABLE)
-                        str_tmp = NULL;
-                else if (active_ap != NULL)
-                        str_tmp = get_ap_security_string (active_ap);
-                else
-                        str_tmp = g_strdup ("");
-                panel_set_widget_data (panel,
-                                       sub_pane,
-                                       "security",
-                                       str_tmp);
-                g_free (str_tmp);
 
-                widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
-                                                             "hbox_wireless_ssid"));
-                /* populate access point dropdown */
-                if (state == NM_DEVICE_STATE_UNAVAILABLE)
-                        gtk_widget_hide (widget);
-                else {
-                        gtk_widget_show (widget);
-                        liststore_wireless_network = GTK_LIST_STORE (gtk_builder_get_object (priv->builder,
-                                                                     "liststore_wireless_network"));
-                        priv->updating_device = TRUE;
-                        gtk_list_store_clear (liststore_wireless_network);
-                        aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (nm_device));
-                        aps_unique = panel_get_strongest_unique_aps (aps);
-
-                        for (i = 0; i < aps_unique->len; i++) {
-                                ap = NM_ACCESS_POINT (g_ptr_array_index (aps_unique, i));
-                                add_access_point (panel, ap, active_ap);
-                        }
-                        priv->updating_device = FALSE;
+                /* operator name */
+                str = g_object_get_data (G_OBJECT (device),
+                                         "ControlCenter::OperatorName");
+                panel_set_widget_data (panel,
+                                       "mobilebb",
+                                       "provider",
+                                       str);
 
-                        g_ptr_array_unref (aps_unique);
-                }
+                /* device speed */
+                panel_set_widget_data (panel,
+                                       "mobilebb",
+                                       "speed",
+                                       NULL);
+        }
+}
 
-        } else if (type == NM_DEVICE_TYPE_MODEM) {
-                NMDeviceModemCapabilities caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (nm_device));
+static void
+nm_device_refresh_device_ui (CcNetworkPanel *panel, NetDevice *device)
+{
+        CcNetworkPanelPrivate *priv = panel->priv;
+        const gchar *str;
+        const gchar *sub_pane = NULL;
+        gchar *str_tmp;
+        GHashTable *options = NULL;
+        GtkWidget *widget;
+        NMDeviceType type;
+        NMDHCP4Config *config_dhcp4 = NULL;
+        NMIP6Config *ip6_config = NULL;
+        NMDevice *nm_device;
+        gboolean has_ip4;
+        gboolean has_ip6;
 
-                if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
-                    (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
-                        /* IMEI */
-                        str = g_object_get_data (G_OBJECT (nm_device),
-                                                 "ControlCenter::EquipmentIdentifier");
-                        panel_set_widget_data (panel,
-                                               sub_pane,
-                                               "imei",
-                                               str);
+        /* we have a new device */
+        nm_device = net_device_get_nm_device (device);
+        type = nm_device_get_device_type (nm_device);
+        g_debug ("device %s type %i", nm_device_get_udi (nm_device), type);
 
-                        /* operator name */
-                        str = g_object_get_data (G_OBJECT (nm_device),
-                                                 "ControlCenter::OperatorName");
-                        panel_set_widget_data (panel,
-                                              sub_pane,
-                                              "provider",
-                                               str);
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "notebook_types"));
 
-                        /* device speed */
-                        panel_set_widget_data (panel,
-                                               sub_pane,
-                                               "speed",
-                                               NULL);
+        switch (type) {
+        case NM_DEVICE_TYPE_ETHERNET:
+                gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 0);
+                sub_pane = "wired";
+                device_refresh_ethernet_ui (panel, device);
+                break;
+        case NM_DEVICE_TYPE_WIFI:
+                gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 1);
+                sub_pane = "wireless";
+                device_refresh_wifi_ui (panel, device);
+                break;
+        case NM_DEVICE_TYPE_WIMAX:
+                device_refresh_wimax_ui (panel, device);
+                break;
+        case NM_DEVICE_TYPE_MODEM:
+                {
+                        NMDeviceModemCapabilities caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (nm_device));
+                        if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
+                            (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
+                                gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 4);
+                                sub_pane = "mobilebb";
+                                device_refresh_modem_ui (panel, device);
+                        }
                 }
+                break;
+        default:
+                g_assert_not_reached ();
+                break;
         }
 
+        if (sub_pane == NULL)
+                goto out;
+
         /* get IP4 parameters */
         config_dhcp4 = nm_device_get_dhcp4_config (nm_device);
         if (config_dhcp4 != NULL) {
@@ -1374,7 +1472,7 @@ nm_device_refresh_device_ui (CcNetworkPanel *panel, NetDevice *device)
                                                       "ip_address");
                 panel_set_widget_data (panel,
                                        sub_pane,
-                                       "ip4",
+                                       "ipv4",
                                        str);
                 has_ip4 = str != NULL;
 
@@ -1404,7 +1502,7 @@ nm_device_refresh_device_ui (CcNetworkPanel *panel, NetDevice *device)
                 /* IPv4 address */
                 panel_set_widget_data (panel,
                                        sub_pane,
-                                       "ip4",
+                                       "ipv4",
                                        NULL);
                 has_ip4 = FALSE;
 
@@ -1435,23 +1533,23 @@ nm_device_refresh_device_ui (CcNetworkPanel *panel, NetDevice *device)
 
                 /* IPv6 address */
                 str_tmp = get_ipv6_config_address_as_string (ip6_config);
-                panel_set_widget_data (panel, sub_pane, "ip6", str_tmp);
+                panel_set_widget_data (panel, sub_pane, "ipv6", str_tmp);
                 has_ip6 = str_tmp != NULL;
                 g_free (str_tmp);
         } else {
-                panel_set_widget_data (panel, sub_pane, "ip6", NULL);
+                panel_set_widget_data (panel, sub_pane, "ipv6", NULL);
                 has_ip6 = FALSE;
         }
 
         if (has_ip4 && has_ip6) {
-                panel_set_widget_heading (panel, sub_pane, "ip4", _("IPv4 Address"));
-                panel_set_widget_heading (panel, sub_pane, "ip6", _("IPv6 Address"));
+                panel_set_widget_heading (panel, sub_pane, "ipv4", _("IPv4 Address"));
+                panel_set_widget_heading (panel, sub_pane, "ipv6", _("IPv6 Address"));
         }
         else if (has_ip4) {
-                panel_set_widget_heading (panel, sub_pane, "ip4", _("IP Address"));
+                panel_set_widget_heading (panel, sub_pane, "ipv4", _("IP Address"));
         }
         else if (has_ip6) {
-                panel_set_widget_heading (panel, sub_pane, "ip6", _("IP Address"));
+                panel_set_widget_heading (panel, sub_pane, "ipv6", _("IP Address"));
         }
 out: ;
 }
@@ -1472,7 +1570,7 @@ nm_device_refresh_vpn_ui (CcNetworkPanel *panel, NetVpn *vpn)
         NMVPNConnectionState state;
 
         sw = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                 "device_off_switch"));
+                                                 "device_vpn_off_switch"));
         gtk_widget_set_visible (sw, TRUE);
 
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
@@ -1487,14 +1585,14 @@ nm_device_refresh_vpn_ui (CcNetworkPanel *panel, NetVpn *vpn)
 
         /* set VPN icon */
         widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "image_device"));
+                                                     "image_vpn_device"));
         gtk_image_set_from_icon_name (GTK_IMAGE (widget),
                                       "network-vpn",
                                       GTK_ICON_SIZE_DIALOG);
 
         /* use title */
         widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "label_device"));
+                                                     "label_vpn_device"));
         gtk_label_set_label (GTK_LABEL (widget), net_object_get_title (NET_OBJECT (vpn)));
 
         /* use status */
@@ -1513,7 +1611,7 @@ nm_device_refresh_vpn_ui (CcNetworkPanel *panel, NetVpn *vpn)
         }
 
         widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "label_status"));
+                                                     "label_vpn_status"));
         status = panel_vpn_state_to_localized_string (state);
         gtk_label_set_label (GTK_LABEL (widget), status);
         priv->updating_device = TRUE;
@@ -1531,7 +1629,7 @@ nm_device_refresh_vpn_ui (CcNetworkPanel *panel, NetVpn *vpn)
         /* groupname */
         panel_set_widget_data (panel,
                                sub_pane,
-                               "groupname",
+                               "group_name",
                                 net_vpn_get_id (vpn));
 
         /* username */
@@ -1574,26 +1672,27 @@ refresh_ui (CcNetworkPanel *panel)
 
                 /* set header to something sane */
                 widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                             "image_device"));
+                                                             "image_proxy_device"));
                 gtk_image_set_from_icon_name (GTK_IMAGE (widget),
                                               "preferences-system-network",
                                               GTK_ICON_SIZE_DIALOG);
                 widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                             "label_device"));
+                                                             "label_proxy_device"));
                 gtk_label_set_label (GTK_LABEL (widget),
                                      _("Proxy"));
                 widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                             "label_status"));
+                                                             "label_proxy_status"));
                 gtk_label_set_label (GTK_LABEL (widget), "");
 
                 widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
                                                              "notebook_types"));
                 gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 2);
 
-                /* hide the slider until we get some more detail in the mockup */
+                /* hide the switch until we get some more detail in the mockup */
                 widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                             "device_off_switch"));
-                gtk_widget_hide (widget);
+                                                             "device_proxy_off_switch"));
+                if (widget != NULL)
+                        gtk_widget_hide (widget);
 
                 /* we shoulnd't be able to delete the proxy device */
                 widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
@@ -1984,6 +2083,7 @@ add_connection_cb (GtkToolButton *button, CcNetworkPanel *panel)
                                                                "connection_type_combo"));
                 model = gtk_combo_box_get_model (combo);
                 gtk_combo_box_get_active_iter (combo, &iter);
+                type = NULL;
                 gtk_tree_model_get (model, &iter, 1, &type, -1);
 
                 cmdline = g_strdup_printf ("nm-connection-editor --create --type %s", type);
@@ -2258,7 +2358,7 @@ cc_network_panel_init (CcNetworkPanel *panel)
 
         /* setup wireless combobox model */
         combobox = GTK_COMBO_BOX (gtk_builder_get_object (panel->priv->builder,
-                                                          "combobox_network_name"));
+                                                          "combobox_wireless_network_name"));
         g_signal_connect (combobox, "changed",
                           G_CALLBACK (wireless_ap_changed_cb),
                           panel);
@@ -2309,9 +2409,26 @@ cc_network_panel_init (CcNetworkPanel *panel)
                           G_CALLBACK (device_removed_cb), panel);
 
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
-                                                     "device_off_switch"));
+                                                     "device_wired_off_switch"));
+        g_signal_connect (widget, "notify::active",
+                          G_CALLBACK (device_off_toggled), panel);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "device_wireless_off_switch"));
+        g_signal_connect (widget, "notify::active",
+                          G_CALLBACK (device_off_toggled), panel);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "device_mobilebb_off_switch"));
         g_signal_connect (widget, "notify::active",
                           G_CALLBACK (device_off_toggled), panel);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "device_vpn_off_switch"));
+        g_signal_connect (widget, "notify::active",
+                          G_CALLBACK (device_off_toggled), panel);
+        widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
+                                                     "device_proxy_off_switch"));
+        g_signal_connect (widget, "notify::active",
+                          G_CALLBACK (device_off_toggled), panel);
+
         g_signal_connect (panel->priv->client, "notify::wireless-enabled",
                           G_CALLBACK (wireless_enabled_toggled), panel);
         g_signal_connect (panel->priv->client, "notify::wimax-enabled",
diff --git a/panels/network/network.ui b/panels/network/network.ui
index d79dd44..7074c87 100644
--- a/panels/network/network.ui
+++ b/panels/network/network.ui
@@ -17,6 +17,154 @@
     <property name="upper">65535</property>
     <property name="step_increment">1</property>
   </object>
+  <object class="GtkDialog" id="connection_type_dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="vbox_1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_left">12</property>
+        <property name="margin_right">12</property>
+        <property name="margin_top">12</property>
+        <property name="margin_bottom">12</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">10</property>
+        <child>
+          <object class="GtkHBox" id="hbox_1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkLabel" id="label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Select the interface to use for the new service</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="hbuttonbox_1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="create_button">
+                <property name="label" translatable="yes">Create...</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+        </child>
+        <child>
+          <object class="GtkBox" id="box_1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="halign">center</property>
+            <property name="spacing">10</property>
+            <child>
+              <object class="GtkLabel" id="label_1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Interface</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBox" id="connection_type_combo">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <property name="valign">start</property>
+                <property name="margin_top">12</property>
+                <property name="margin_bottom">12</property>
+                <property name="model">liststore1</property>
+                <property name="active">0</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer_1"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">cancel_button</action-widget>
+      <action-widget response="0">create_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <!-- column-name type -->
+      <column type="gchararray"/>
+      <!-- column-name name -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">VPN</col>
+        <col id="1">vpn</col>
+      </row>
+    </data>
+  </object>
   <object class="GtkListStore" id="liststore_devices">
     <columns>
       <!-- column-name icon -->
@@ -167,83 +315,60 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkVBox" id="vbox3">
+                  <object class="GtkNotebook" id="notebook_types">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="spacing">6</property>
+                    <property name="can_focus">True</property>
+                    <property name="show_border">False</property>
                     <child>
-                      <object class="GtkAlignment" id="alignment_header">
+                      <object class="GtkVBox" id="vbox6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="left_padding">21</property>
+                        <property name="border_width">12</property>
+                        <property name="spacing">6</property>
                         <child>
-                          <object class="GtkHBox" id="hbox_device_header">
+                          <object class="GtkGrid" id="grid1">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="spacing">9</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">start</property>
+                            <property name="row_spacing">10</property>
+                            <property name="column_spacing">6</property>
                             <child>
-                              <object class="GtkHBox" id="hbox3">
+                              <object class="GtkImage" id="image_wired_device">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <child>
-                                  <object class="GtkImage" id="image_device">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="stock">gtk-preferences</property>
-                                    <property name="icon-size">6</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="pack_type">end</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkLabel" id="label1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="label"> </property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
+                                <property name="xalign">1</property>
+                                <property name="pixel_size">48</property>
+                                <property name="icon_name">network-wired</property>
+                                <property name="icon-size">6</property>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkVBox" id="vbox4">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="valign">start</property>
+                                <property name="hexpand">True</property>
                                 <property name="spacing">3</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox4">
+                                  <object class="GtkLabel" id="label_wired_device">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <child>
-                                      <object class="GtkLabel" id="label_device">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">Wired</property>
-                                        <property name="ellipsize">end</property>
-                                        <attributes>
-                                          <attribute name="weight" value="bold"/>
-                                          <attribute name="scale" value="1.2"/>
-                                        </attributes>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Wired</property>
+                                    <property name="ellipsize">end</property>
+                                    <attributes>
+                                      <attribute name="weight" value="bold"/>
+                                      <attribute name="scale" value="1.2"/>
+                                    </attributes>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -252,21 +377,11 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkHBox" id="hbox5">
+                                  <object class="GtkLabel" id="label_wired_status">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <child>
-                                      <object class="GtkLabel" id="label_status">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">Cable unplugged</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Cable unplugged</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -276,516 +391,358 @@
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wired_mac">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Hardware Address</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wired_speed">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Speed</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wired_ipv4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">IPv4 Address</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wired_ipv6">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">IPv6 Address</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wired_subnet">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Subnet Mask</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wired_route">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Default Route</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">6</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkAlignment" id="alignment6">
+                              <object class="GtkLabel" id="heading_wired_dns">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">1</property>
                                 <property name="yalign">0</property>
-                                <property name="xscale">0</property>
-                                <property name="yscale">0</property>
-                                <child>
-                                  <object class="GtkSwitch" id="device_off_switch">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="halign">end</property>
-                                    <property name="valign">start</property>
-                                    <property name="use_action_appearance">False</property>
-                                  </object>
-                                </child>
+                                <property name="label" translatable="yes">DNS</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">2</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">7</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkHBox" id="hbox6">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <child>
-                          <object class="GtkNotebook" id="notebook_types">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="show_border">False</property>
                             <child>
-                              <object class="GtkVBox" id="vbox6">
+                              <object class="GtkLabel" id="label_wired_mac">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="border_width">12</property>
-                                <property name="spacing">6</property>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wired_mac">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox18">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label19">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Hardware Address</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wired_mac">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">AA:BB:CC:DD:55:66:77:88</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wired_speed">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox20">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label21">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Speed</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wired_speed">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">1 Mb/s</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wired_ip4">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox24">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="heading_wired_ip4">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">IPv4 Address</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wired_ip4">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wired_ip6">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox924">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="heading_wired_ip6">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">IPv6 Address</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wired_ip6">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">::1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wired_subnet">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox13">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label2">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Subnet Mask</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wired_subnet">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">4</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wired_route">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox19">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label3">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Default Route</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wired_route">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">5</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wired_dns">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox21">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label4">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="yalign">0</property>
-                                            <property name="label" translatable="yes">DNS</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wired_dns">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="wrap">True</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">6</property>
-                                  </packing>
-                                </child>
+                                <property name="xalign">0</property>
+                                <property name="label">AA:BB:CC:DD:55:66:77:88</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wired_speed">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">1 Mb/s</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wired_ipv4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wired_ipv6">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">::1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wired_subnet">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wired_route">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">6</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wired_dns">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="yalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="wrap">True</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">7</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment_wired_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
                                 <child>
-                                  <object class="GtkAlignment" id="alignment1">
+                                  <object class="GtkSwitch" id="device_wired_off_switch">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="xalign">1</property>
-                                    <property name="yalign">1</property>
-                                    <property name="xscale">0</property>
-                                    <property name="yscale">0</property>
-                                    <property name="top-padding">12</property>
-                                    <child>
-                                      <object class="GtkButton" id="button_wired_options">
-                                        <property name="visible">True</property>
-                                        <property name="label" translatable="yes">_Options...</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="receives_default">True</property>
-                                        <property name="use_action_appearance">False</property>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">True</property>
+                                    <property name="halign">end</property>
+                                    <property name="valign">start</property>
+                                    <property name="use_action_appearance">False</property>
                                   </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="pack_type">end</property>
-                                    <property name="position">7</property>
-                                  </packing>
                                 </child>
                               </object>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
                             </child>
-                            <child type="tab">
-                              <object class="GtkLabel" id="label5">
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkAlignment" id="alignment1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="yalign">1</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">12</property>
+                            <child>
+                              <object class="GtkButton" id="button_wired_options">
+                                <property name="label" translatable="yes">_Options...</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="pack_type">end</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="tab">
+                      <object class="GtkLabel" id="label5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">wired</property>
+                      </object>
+                      <packing>
+                        <property name="tab_fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="border_width">12</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkGrid" id="grid2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">start</property>
+                            <property name="row_spacing">10</property>
+                            <property name="column_spacing">6</property>
+                            <child>
+                              <object class="GtkImage" id="image_wireless_device">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label">wired</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
+                                <property name="xalign">1</property>
+                                <property name="pixel_size">48</property>
+                                <property name="icon_name">network-wireless</property>
+                                <property name="icon-size">6</property>
                               </object>
                               <packing>
-                                <property name="tab_fill">False</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkVBox" id="vbox5">
+                              <object class="GtkVBox" id="vbox3">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="border_width">12</property>
-                                <property name="spacing">6</property>
+                                <property name="valign">start</property>
+                                <property name="hexpand">True</property>
+                                <property name="spacing">3</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_wireless_mac">
+                                  <object class="GtkLabel" id="label_wireless_device">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox9">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label6">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Hardware Address</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wireless_mac">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">AA:BB:CC:DD:55:66:77:88</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Wireless</property>
+                                    <property name="ellipsize">end</property>
+                                    <attributes>
+                                      <attribute name="weight" value="bold"/>
+                                      <attribute name="scale" value="1.2"/>
+                                    </attributes>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -794,50 +751,11 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_wireless_speed">
+                                  <object class="GtkLabel" id="label_wireless_status">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox10">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label9">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Speed</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wireless_speed">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">1 Mb/s</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Not connected</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -845,424 +763,683 @@
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_mac">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Hardware Address</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_speed">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Speed</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_ipv4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">IPv4 Address</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_ipv6">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">IPv6 Address</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">6</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_route">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Default Route</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">7</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_dns">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="yalign">0</property>
+                                <property name="label" translatable="yes">DNS</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">8</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wireless_mac">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">AA:BB:CC:DD:55:66:77:88</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wireless_speed">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">1 Mb/s</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wireless_ipv4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wireless_ipv6">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">::1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">6</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wireless_route">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">7</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wireless_dns">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="wrap">True</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">8</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment_wireless_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_wireless_security">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox12">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label11">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Security</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wireless_security">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">WPA</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wireless_ssid">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox16">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label15">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">_Network Name</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">comboboxentry-entry2</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBox" id="combobox_network_name">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="model">liststore_wireless_network</property>
-                                        <property name="has_entry">True</property>
-                                        <property name="entry_text_column">1</property>
-                                        <child internal-child="entry">
-                                          <object class="GtkEntry" id="comboboxentry-entry2">
-                                            <property name="can_focus">False</property>
-                                            <property name="editable">False</property>
-                                          </object>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wireless_ip4">
+                                  <object class="GtkSwitch" id="device_wireless_off_switch">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox14">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="heading_wireless_ip4">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">IPv4 Address</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wireless_ip4">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="can_focus">True</property>
+                                    <property name="halign">end</property>
+                                    <property name="valign">start</property>
+                                    <property name="use_action_appearance">False</property>
                                   </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">4</property>
-                                  </packing>
                                 </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_wireless_ip6">
-                                    <property name="visible">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_security">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Security</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_wireless_network_name">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">_Network Name</property>
+                                <property name="use_underline">True</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_wireless_security">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">WPA</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkComboBox" id="combobox_wireless_network_name">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="model">liststore_wireless_network</property>
+                                <property name="has_entry">True</property>
+                                <property name="entry_text_column">1</property>
+                                <child internal-child="entry">
+                                  <object class="GtkEntry" id="comboboxentry-entry">
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox914">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="heading_wireless_ip6">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">IPv6 Address</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wireless_ip6">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">::1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
                                   </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">5</property>
-                                  </packing>
                                 </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkAlignment" id="alignment2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="yalign">1</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">12</property>
+                            <child>
+                              <object class="GtkButton" id="button_wireless_options">
+                                <property name="label" translatable="yes">_Options...</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="pack_type">end</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child type="tab">
+                      <object class="GtkLabel" id="label16">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">wireless</property>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                        <property name="tab_fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox7">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="border_width">12</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkGrid" id="grid3">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">start</property>
+                            <property name="row_spacing">10</property>
+                            <property name="column_spacing">6</property>
+                            <child>
+                              <object class="GtkImage" id="image_mobilebb_device">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
+                                <property name="xalign">1</property>
+                                <property name="pixel_size">48</property>
+                                <property name="icon_name">network-cellular-connected-symbolic</property>
+                                <property name="icon-size">6</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="vbox11">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="valign">start</property>
+                                <property name="hexpand">True</property>
+                                <property name="spacing">3</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_wireless_route">
+                                  <object class="GtkLabel" id="label_mobilebb_device">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox23">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label8">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Default Route</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wireless_route">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Mobile Broadband</property>
+                                    <property name="ellipsize">end</property>
+                                    <attributes>
+                                      <attribute name="weight" value="bold"/>
+                                      <attribute name="scale" value="1.2"/>
+                                    </attributes>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
-                                    <property name="position">6</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_wireless_dns">
+                                  <object class="GtkLabel" id="label_mobilebb_status">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox25">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label10">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="yalign">0</property>
-                                            <property name="label" translatable="yes">DNS</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_wireless_dns">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="wrap">True</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Not connected</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
-                                    <property name="position">7</property>
+                                    <property name="position">1</property>
                                   </packing>
                                 </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_mobilebb_imei">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">IMEI</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_mobilebb_speed">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Speed</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_mobilebb_provider">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Provider</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_mobilebb_imei">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">1234567890</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_mobilebb_speed">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">1 Mb/s</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_mobilebb_provider">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">SuperTel Supremo	</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_mobilebb_ip">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">127.0.0.1</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment_mobilebb_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
                                 <child>
-                                  <object class="GtkAlignment" id="alignment2">
+                                  <object class="GtkSwitch" id="device_mobilebb_off_switch">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="xalign">1</property>
-                                    <property name="yalign">1</property>
-                                    <property name="xscale">0</property>
-                                    <property name="yscale">0</property>
-                                    <property name="top-padding">12</property>
-                                    <child>
-                                      <object class="GtkButton" id="button_wireless_options">
-                                        <property name="visible">True</property>
-                                        <property name="label" translatable="yes">_Options...</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="receives_default">True</property>
-                                        <property name="use_action_appearance">False</property>
-                                        <property name="use_underline">True</property>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">True</property>
+                                    <property name="halign">end</property>
+                                    <property name="valign">start</property>
+                                    <property name="use_action_appearance">False</property>
                                   </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="pack_type">end</property>
-                                    <property name="position">8</property>
-                                  </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="position">1</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
-                            <child type="tab">
-                              <object class="GtkLabel" id="label16">
+                            <child>
+                              <object class="GtkLabel" id="heading_mobilebb_ip">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label">wireless</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">IP Address</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkAlignment" id="alignment3">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="yalign">1</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">12</property>
+                            <child>
+                              <object class="GtkButton" id="button_mobile_options">
+                                <property name="label" translatable="yes">_Options...</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="pack_type">end</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child type="tab">
+                      <object class="GtkLabel" id="label17">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">mobilebb</property>
+                      </object>
+                      <packing>
+                        <property name="position">2</property>
+                        <property name="tab_fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox9">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="border_width">12</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkGrid" id="grid4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">start</property>
+                            <property name="row_spacing">10</property>
+                            <property name="column_spacing">6</property>
+                            <child>
+                              <object class="GtkImage" id="image_vpn_device">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
+                                <property name="xalign">1</property>
+                                <property name="pixel_size">48</property>
+                                <property name="icon_name">network-vpn</property>
+                                <property name="icon-size">6</property>
                               </object>
                               <packing>
-                                <property name="position">1</property>
-                                <property name="tab_fill">False</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkVBox" id="vbox7">
+                              <object class="GtkVBox" id="vbox12">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="border_width">12</property>
-                                <property name="spacing">6</property>
+                                <property name="valign">start</property>
+                                <property name="hexpand">True</property>
+                                <property name="spacing">3</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_mobilebb_imei">
+                                  <object class="GtkLabel" id="label_vpn_device">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox22">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label20">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">IMEI</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_mobilebb_imei">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">1234567890</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">VPN</property>
+                                    <property name="ellipsize">end</property>
+                                    <attributes>
+                                      <attribute name="weight" value="bold"/>
+                                      <attribute name="scale" value="1.2"/>
+                                    </attributes>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -1271,50 +1448,11 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_mobilebb_speed">
+                                  <object class="GtkLabel" id="label_vpn_status">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox26">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label23">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Speed</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_mobilebb_speed">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">1 Mb/s</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Not connected</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -1322,204 +1460,265 @@
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_vpn_gateway">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Gateway</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_vpn_group_name">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Group Name</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_vpn_group_password">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Group Password</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_vpn_username">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">Username</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_vpn_gateway">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">AA:BB:CC:DD:55:66:77:88</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_vpn_group_name">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">SEKRIT</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_vpn_group_password">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">**********</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_vpn_username">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label">smithy</property>
+                                <property name="selectable">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment_vpn_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_mobilebb_provider">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox28">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label26">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Provider</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_mobilebb_provider">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">SuperTel Supremo</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_mobilebb_ip4">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox30">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label28">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">IP Address</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_mobilebb_ip4">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">127.0.0.1</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment3">
+                                  <object class="GtkSwitch" id="device_vpn_off_switch">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="xalign">1</property>
-                                    <property name="yalign">1</property>
-                                    <property name="xscale">0</property>
-                                    <property name="yscale">0</property>
-                                    <property name="top-padding">12</property>
-                                    <child>
-                                      <object class="GtkButton" id="button_mobile_options">
-                                        <property name="visible">True</property>
-                                        <property name="label" translatable="yes">_Options...</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="receives_default">True</property>
-                                        <property name="use_action_appearance">False</property>
-                                        <property name="use_underline">True</property>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">True</property>
+                                    <property name="halign">end</property>
+                                    <property name="valign">start</property>
+                                    <property name="use_action_appearance">False</property>
                                   </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="pack_type">end</property>
-                                    <property name="position">4</property>
-                                  </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="position">2</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
-                            <child type="tab">
-                              <object class="GtkLabel" id="label17">
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkAlignment" id="alignment4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="yalign">1</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">12</property>
+                            <child>
+                              <object class="GtkButton" id="button_vpn_options">
+                                <property name="label" translatable="yes">_Options...</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="use_underline">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="pack_type">end</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child type="tab">
+                      <object class="GtkLabel" id="label55">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">vpn</property>
+                      </object>
+                      <packing>
+                        <property name="position">2</property>
+                        <property name="tab_fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="vbox8">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="border_width">12</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkGrid" id="grid5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">start</property>
+                            <property name="row_spacing">10</property>
+                            <property name="column_spacing">6</property>
+                            <child>
+                              <object class="GtkImage" id="image_proxy_device">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label">mobilebb</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
+                                <property name="xalign">1</property>
+                                <property name="pixel_size">48</property>
+                                <property name="icon_name">preferences-system-network</property>
+                                <property name="icon-size">6</property>
                               </object>
                               <packing>
-                                <property name="position">2</property>
-                                <property name="tab_fill">False</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkVBox" id="vbox9">
+                              <object class="GtkVBox" id="vbox13">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="border_width">12</property>
-                                <property name="spacing">6</property>
+                                <property name="valign">start</property>
+                                <property name="hexpand">True</property>
+                                <property name="spacing">3</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_vpn_gateway">
+                                  <object class="GtkLabel" id="label_proxy_device">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox39">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label38">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Gateway</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_vpn_gateway">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">AA:BB:CC:DD:55:66:77:88</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Proxy</property>
+                                    <property name="ellipsize">end</property>
+                                    <attributes>
+                                      <attribute name="weight" value="bold"/>
+                                      <attribute name="scale" value="1.2"/>
+                                    </attributes>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -1528,50 +1727,11 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_vpn_groupname">
+                                  <object class="GtkLabel" id="label_proxy_status">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox41">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label40">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Group Name</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_vpn_groupname">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">SEKRIT</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
+                                    <property name="xalign">0</property>
+                                    <property name="label">Not connected</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -1579,655 +1739,347 @@
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment_proxy_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">start</property>
                                 <child>
-                                  <object class="GtkHBox" id="hbox_vpn_group_password">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox43">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label42">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Group Password</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_vpn_group_password">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">***********</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_vpn_username">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox45">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label44">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Username</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_vpn_username">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">smithy</property>
-                                        <property name="selectable">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment4">
+                                  <object class="GtkSwitch" id="device_proxy_off_switch">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="xalign">1</property>
-                                    <property name="yalign">1</property>
-                                    <property name="xscale">0</property>
-                                    <property name="yscale">0</property>
-                                    <property name="top-padding">12</property>
-                                    <child>
-                                      <object class="GtkButton" id="button_vpn_options">
-                                        <property name="visible">True</property>
-                                        <property name="label" translatable="yes">_Options...</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="receives_default">True</property>
-                                        <property name="use_action_appearance">False</property>
-                                        <property name="use_underline">True</property>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">True</property>
+                                    <property name="halign">end</property>
+                                    <property name="valign">start</property>
+                                    <property name="use_action_appearance">False</property>
                                   </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="pack_type">end</property>
-                                    <property name="position">4</property>
-                                  </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="position">2</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_proxy_method">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">_Method</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">combobox_proxy_mode</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkComboBoxText" id="combobox_proxy_mode">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="model">liststore_proxy_method</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">1</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_proxy_url">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">_Configuration URL</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">entry_proxy_url</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry_proxy_url">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="invisible_char_set">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">2</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_proxy_http">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">_HTTP Proxy</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">entry_proxy_http</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_proxy_https">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">H_TTPS Proxy</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">entry_proxy_https</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_proxy_ftp">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">_FTP Proxy</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">entry_proxy_ftp</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="heading_proxy_socks">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="label" translatable="yes">_Socks Host</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">entry_proxy_socks</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">6</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label_proxy_warning">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label">WPAD warning...</property>
+                                <property name="wrap">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">7</property>
+                                <property name="width">3</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry_proxy_http">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="invisible_char_set">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkSpinButton" id="spinbutton_proxy_http">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="xalign">1</property>
+                                <property name="invisible_char_set">True</property>
+                                <property name="adjustment">adjustment_proxy_port_http</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">3</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry_proxy_https">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="invisible_char_set">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry_proxy_ftp">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="invisible_char_set">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
-                            <child type="tab">
-                              <object class="GtkLabel" id="label55">
+                            <child>
+                              <object class="GtkEntry" id="entry_proxy_socks">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label">vpn</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="invisible_char_set">True</property>
                               </object>
                               <packing>
-                                <property name="position">2</property>
-                                <property name="tab_fill">False</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">6</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkVBox" id="vbox8">
+                              <object class="GtkSpinButton" id="spinbutton_proxy_https">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="border_width">12</property>
-                                <property name="spacing">6</property>
-                                <child>
-                                  <object class="GtkHBox" id="hbox1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox31">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label18">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Method</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">combobox_proxy_mode</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkComboBoxText" id="combobox_proxy_mode">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="model">liststore_proxy_method</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_proxy_url">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox33">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label31">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Configuration URL</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">entry_proxy_url</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkEntry" id="entry_proxy_url">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_proxy_http">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox35">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label33">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_HTTP Proxy</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">entry_proxy_http</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkBox" id="hbox_proxy_url_entry">
-                                        <property name="orientation">horizontal</property>
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkEntry" id="entry_proxy_http">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkSpinButton" id="spinbutton_proxy_http">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                        <property name="xalign">1</property>
-                                        <property name="adjustment">adjustment_proxy_port_http</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_proxy_shttp">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox37">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label35">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">H_TTPS Proxy</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">entry_proxy_https</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkEntry" id="entry_proxy_https">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkSpinButton" id="spinbutton_proxy_https">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                        <property name="xalign">1</property>
-                                        <property name="adjustment">adjustment_proxy_port_https</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_proxy_ftp">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox47">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label30">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_FTP Proxy</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">entry_proxy_ftp</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkEntry" id="entry_proxy_ftp">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkSpinButton" id="spinbutton_proxy_ftp">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                        <property name="xalign">1</property>
-                                        <property name="adjustment">adjustment_proxy_port_ftp</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">4</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkHBox" id="hbox_proxy_socks">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkHBox" id="hbox49">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label47">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Socks Host</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">entry_proxy_socks</property>
-                                            <style>
-                                              <class name="dim-label"/>
-                                            </style>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="pack_type">end</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkEntry" id="entry_proxy_socks">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">False</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkSpinButton" id="spinbutton_proxy_socks">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="invisible_char">â??</property>
-                                        <property name="xalign">1</property>
-                                        <property name="adjustment">adjustment_proxy_port_socks</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">True</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">2</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">5</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkBox" id="box1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="spacing">9</property>
-                                    <child>
-                                      <object class="GtkBox" id="box2">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <child>
-                                          <object class="GtkLabel" id="label7">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">False</property>
-                                            <property name="label"> </property>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">True</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label_proxy_warning">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="label">WPAD warning...</property>
-                                        <property name="wrap">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">6</property>
-                                  </packing>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="xalign">1</property>
+                                <property name="invisible_char_set">True</property>
+                                <property name="adjustment">adjustment_proxy_port_https</property>
                               </object>
                               <packing>
-                                <property name="position">2</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">4</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
-                            <child type="tab">
-                              <object class="GtkLabel" id="label46">
+                            <child>
+                              <object class="GtkSpinButton" id="spinbutton_proxy_ftp">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label">proxy</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="xalign">1</property>
+                                <property name="invisible_char_set">True</property>
+                                <property name="adjustment">adjustment_proxy_port_ftp</property>
                               </object>
                               <packing>
-                                <property name="position">2</property>
-                                <property name="tab_fill">False</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
-                              <placeholder/>
-                            </child>
-                            <child type="tab">
-                              <object class="GtkLabel" id="label37">
+                              <object class="GtkSpinButton" id="spinbutton_proxy_socks">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label">other</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">â??</property>
+                                <property name="xalign">1</property>
+                                <property name="invisible_char_set">True</property>
+                                <property name="adjustment">adjustment_proxy_port_socks</property>
                               </object>
                               <packing>
-                                <property name="position">2</property>
-                                <property name="tab_fill">False</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">6</property>
+                                <property name="width">1</property>
+                                <property name="height">1</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label56">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                          </object>
-                          <packing>
-                            <property name="expand">True</property>
+                            <property name="expand">False</property>
                             <property name="fill">True</property>
-                            <property name="position">2</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child type="tab">
+                      <object class="GtkLabel" id="label46">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">proxy</property>
+                      </object>
+                      <packing>
+                        <property name="position">2</property>
+                        <property name="tab_fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child type="tab">
+                      <object class="GtkLabel" id="label37">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">other</property>
+                      </object>
+                      <packing>
+                        <property name="position">2</property>
+                        <property name="tab_fill">False</property>
                       </packing>
                     </child>
                   </object>
@@ -2320,211 +2172,17 @@
   </object>
   <object class="GtkSizeGroup" id="sizegroup1">
     <widgets>
-      <widget name="hbox45"/>
-      <widget name="hbox43"/>
-      <widget name="hbox41"/>
-      <widget name="hbox39"/>
-      <widget name="hbox24"/>
-      <widget name="hbox924"/>
-      <widget name="hbox20"/>
-      <widget name="hbox18"/>
-      <widget name="hbox16"/>
-      <widget name="hbox12"/>
-      <widget name="hbox9"/>
-      <widget name="hbox10"/>
-      <widget name="hbox14"/>
-      <widget name="hbox914"/>
-      <widget name="hbox22"/>
-      <widget name="hbox26"/>
-      <widget name="hbox28"/>
-      <widget name="hbox30"/>
-      <widget name="hbox31"/>
-      <widget name="hbox33"/>
-      <widget name="hbox35"/>
-      <widget name="hbox37"/>
-      <widget name="hbox47"/>
-      <widget name="hbox49"/>
-      <widget name="hbox3"/>
-      <widget name="hbox13"/>
-      <widget name="hbox19"/>
-      <widget name="hbox21"/>
-      <widget name="hbox23"/>
-      <widget name="hbox25"/>
-      <widget name="box2"/>
-    </widgets>
-  </object>
-  <object class="GtkSizeGroup" id="sizegroup2">
-    <widgets>
-      <widget name="label18"/>
-      <widget name="label31"/>
-      <widget name="label33"/>
-      <widget name="label35"/>
-      <widget name="label30"/>
-      <widget name="label47"/>
+      <widget name="heading_wired_mac"/>
+      <widget name="heading_wireless_mac"/>
+      <widget name="heading_mobilebb_imei"/>
+      <widget name="heading_vpn_gateway"/>
+      <widget name="heading_proxy_method"/>
     </widgets>
   </object>
   <object class="GtkSizeGroup" id="sizegroup3">
     <widgets>
       <widget name="combobox_proxy_mode"/>
       <widget name="entry_proxy_url"/>
-      <widget name="hbox_proxy_url_entry"/>
     </widgets>
   </object>
-  <object class="GtkListStore" id="liststore1">
-    <columns>
-      <!-- column-name type -->
-      <column type="gchararray"/>
-      <!-- column-name name -->
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes">VPN</col>
-        <col id="1">vpn</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkDialog" id="connection_type_dialog">
-    <property name="can_focus">False</property>
-    <property name="border_width">5</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="type_hint">dialog</property>
-    <child internal-child="vbox">
-      <object class="GtkVBox" id="vbox_1">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="margin_left">12</property>
-        <property name="margin_right">12</property>
-        <property name="margin_top">12</property>
-        <property name="margin_bottom">12</property>
-        <property name="spacing">10</property>
-        <child>
-          <object class="GtkHBox" id="hbox_1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <child>
-              <object class="GtkLabel" id="label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">Select the interface to use for the new service</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="box_1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="halign">center</property>
-            <property name="spacing">10</property>
-            <child>
-              <object class="GtkLabel" id="label_1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">Interface</property>
-                <style>
-                  <class name="dim-label"/>
-                </style>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkComboBox" id="connection_type_combo">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="halign">start</property>
-                <property name="valign">start</property>
-                <property name="margin_top">12</property>
-                <property name="margin_bottom">12</property>
-                <property name="model">liststore1</property>
-                <property name="active">0</property>
-                <child>
-                  <object class="GtkCellRendererText" id="renderer_1"/>
-                  <attributes>
-                    <attribute name="text">0</attribute>
-                  </attributes>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="hbuttonbox_1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="spacing">10</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="cancel_button">
-                <property name="label">gtk-cancel</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="create_button">
-                <property name="label" translatable="yes">Create...</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="-6">cancel_button</action-widget>
-      <action-widget response="-5">create_button</action-widget>
-    </action-widgets>
-  </object>
 </interface>



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