[gnome-control-center] region: Use GtkTemplate



commit 5c418b898318dbd8504fcdbe800381244bb54e9c
Author: Robert Ancell <robert ancell canonical com>
Date:   Mon May 28 11:56:04 2018 +1200

    region: Use GtkTemplate

 panels/region/cc-region-panel.c |  77 ++--
 panels/region/region.ui         | 770 ++++++++++++++++++++--------------------
 2 files changed, 419 insertions(+), 428 deletions(-)
---
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 6991ea133..c8ec89789 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -59,8 +59,6 @@
 
 #define DEFAULT_LOCALE "en_US.utf-8"
 
-#define WID(s) GTK_WIDGET (gtk_builder_get_object (self->builder, s))
-
 typedef enum {
         CHOOSE_LANGUAGE,
         CHOOSE_REGION,
@@ -73,8 +71,6 @@ typedef enum {
 struct _CcRegionPanel {
        CcPanel      parent_instance;
 
-       GtkBuilder *builder;
-
         GtkWidget   *login_button;
         GtkWidget   *login_label;
         gboolean     login;
@@ -85,7 +81,7 @@ struct _CcRegionPanel {
         GDBusProxy  *session;
         GCancellable *cancellable;
 
-        GtkWidget *restart_notification;
+        GtkWidget *restart_revealer;
         gchar *needs_restart_file_path;
 
         GtkWidget     *language_section;
@@ -112,6 +108,8 @@ struct _CcRegionPanel {
         GtkWidget *move_down_input;
         GtkWidget *show_config;
         GtkWidget *show_layout;
+        GtkWidget *restart_button;
+        GtkWidget *language_list;
 
         GSettings *input_settings;
         GnomeXkbInfo *xkb_info;
@@ -146,7 +144,6 @@ cc_region_panel_finalize (GObject *object)
         g_clear_object (&self->permission);
         g_clear_object (&self->localed);
         g_clear_object (&self->session);
-        g_clear_object (&self->builder);
         g_clear_object (&self->locale_settings);
         g_clear_object (&self->input_settings);
         g_clear_object (&self->xkb_info);
@@ -192,13 +189,34 @@ cc_region_panel_get_help_uri (CcPanel *panel)
 static void
 cc_region_panel_class_init (CcRegionPanelClass * klass)
 {
+       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
-       CcPanelClass * panel_class = CC_PANEL_CLASS (klass);
+       CcPanelClass *panel_class = CC_PANEL_CLASS (klass);
 
        panel_class->get_help_uri = cc_region_panel_get_help_uri;
 
         object_class->constructed = cc_region_panel_constructed;
        object_class->finalize = cc_region_panel_finalize;
+
+        gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/region/region.ui");
+
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, language_row);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, language_label);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, formats_row);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, formats_label);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, restart_revealer);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, input_section);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, options_button);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, input_list);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, add_input);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, remove_input);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, move_up_input);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, move_down_input);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, show_config);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, show_layout);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, restart_button);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, login_label);
+        gtk_widget_class_bind_template_child (widget_class, CcRegionPanel, language_list);
 }
 
 static void
@@ -226,7 +244,7 @@ set_restart_notification_visible (CcRegionPanel *self,
                 setlocale (LC_MESSAGES, locale);
         }
 
-        gtk_revealer_set_reveal_child (GTK_REVEALER (self->restart_notification), visible);
+        gtk_revealer_set_reveal_child (GTK_REVEALER (self->restart_revealer), visible);
 
         if (locale)
                 setlocale (LC_MESSAGES, current_locale);
@@ -607,8 +625,6 @@ update_language_from_user (CcRegionPanel *self)
 static void
 setup_language_section (CcRegionPanel *self)
 {
-        GtkWidget *widget;
-
         self->user = act_user_manager_get_user_by_id (self->user_manager, getuid ());
         g_signal_connect_swapped (self->user, "notify::language",
                                   G_CALLBACK (update_language_from_user), self);
@@ -619,23 +635,14 @@ setup_language_section (CcRegionPanel *self)
         g_signal_connect_swapped (self->locale_settings, "changed::" KEY_REGION,
                                   G_CALLBACK (update_region_from_setting), self);
 
-        self->language_section = WID ("language_section");
-        self->language_row = GTK_LIST_BOX_ROW (WID ("language_row"));
-        self->language_label = WID ("language_label");
-        self->formats_row = GTK_LIST_BOX_ROW (WID ("formats_row"));
-        self->formats_label = WID ("formats_label");
+        g_signal_connect_swapped (self->restart_button, "clicked", G_CALLBACK (restart_now), self);
 
-        self->restart_notification = WID ("restart-revealer");
-        widget = WID ("restart-button");
-        g_signal_connect_swapped (widget, "clicked", G_CALLBACK (restart_now), self);
-
-        widget = WID ("language_list");
-        gtk_list_box_set_selection_mode (GTK_LIST_BOX (widget),
+        gtk_list_box_set_selection_mode (GTK_LIST_BOX (self->language_list),
                                          GTK_SELECTION_NONE);
-        gtk_list_box_set_header_func (GTK_LIST_BOX (widget),
+        gtk_list_box_set_header_func (GTK_LIST_BOX (self->language_list),
                                       cc_list_box_update_header_func,
                                       NULL, NULL);
-        g_signal_connect_swapped (widget, "row-activated",
+        g_signal_connect_swapped (self->language_list, "row-activated",
                                   G_CALLBACK (activate_language_row), self);
 
         update_language_from_user (self);
@@ -1350,16 +1357,6 @@ setup_input_section (CcRegionPanel *self)
         maybe_start_ibus ();
 #endif
 
-        self->input_section = WID ("input_section");
-        self->options_button = WID ("input_options");
-        self->input_list = WID ("input_list");
-        self->add_input = WID ("input_source_add");
-        self->remove_input = WID ("input_source_remove");
-        self->move_up_input = WID ("input_source_up");
-        self->move_down_input = WID ("input_source_down");
-        self->show_config = WID ("input_source_config");
-        self->show_layout = WID ("input_source_layout");
-
         g_signal_connect_swapped (self->options_button, "clicked",
                                   G_CALLBACK (show_input_options), self);
         g_signal_connect_swapped (self->add_input, "clicked",
@@ -1651,7 +1648,6 @@ setup_login_button (CcRegionPanel *self)
                           (GAsyncReadyCallback) localed_proxy_ready,
                           self);
 
-        self->login_label = WID ("login-label");
         self->login_button = gtk_toggle_button_new_with_mnemonic (_("Login _Screen"));
         gtk_style_context_add_class (gtk_widget_get_style_context (self->login_button),
                                      "text-button");
@@ -1696,15 +1692,7 @@ cc_region_panel_init (CcRegionPanel *self)
 
         g_resources_register (cc_region_get_resource ());
 
-       self->builder = gtk_builder_new ();
-
-       gtk_builder_add_from_resource (self->builder,
-                                       "/org/gnome/control-center/region/region.ui",
-                                       &error);
-       if (error != NULL) {
-               g_warning ("Error loading UI file: %s", error->message);
-               return;
-       }
+        gtk_widget_init_template (GTK_WIDGET (self));
 
         self->user_manager = act_user_manager_get_default ();
 
@@ -1723,9 +1711,6 @@ cc_region_panel_init (CcRegionPanel *self)
         setup_language_section (self);
         setup_input_section (self);
 
-       gtk_container_add (GTK_CONTAINER (self),
-                           GTK_WIDGET (gtk_builder_get_object (self->builder, "vbox_region")));
-
         self->needs_restart_file_path = g_build_filename (g_get_user_runtime_dir (),
                                                           "gnome-control-center-region-needs-restart",
                                                           NULL);
diff --git a/panels/region/region.ui b/panels/region/region.ui
index 7e8f8d55e..906327dfe 100644
--- a/panels/region/region.ui
+++ b/panels/region/region.ui
@@ -1,140 +1,92 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkBox" id="vbox_region">
+  <template class="CcRegionPanel" parent="CcPanel">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
 
-    <!-- Stub boxes to make the content cover 1/3 of the screen -->
     <child>
       <object class="GtkBox">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="hexpand">True</property>
-      </object>
-    </child>
+        <!-- Stub boxes to make the content cover 1/3 of the screen -->
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+          </object>
+        </child>
 
-    <child>
-      <object class="GtkBox">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="hexpand">True</property>
-      </object>
-      <packing>
-        <property name="pack_type">end</property>
-      </packing>
-    </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+          </object>
+          <packing>
+            <property name="pack_type">end</property>
+          </packing>
+        </child>
 
-    <!-- Content -->
-    <child>
-      <object class="GtkBox">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="margin">32</property>
-        <property name="spacing">12</property>
-        <property name="hexpand">True</property>
+        <!-- Content -->
         <child>
-          <object class="GtkFrame" id="language_section">
+          <object class="GtkBox">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="margin_bottom">18</property>
-            <property name="shadow_type">in</property>
+            <property name="orientation">vertical</property>
+            <property name="margin">32</property>
+            <property name="spacing">12</property>
+            <property name="hexpand">True</property>
             <child>
-              <object class="GtkListBox" id="language_list">
+              <object class="GtkFrame" id="language_section">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_bottom">18</property>
+                <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkListBoxRow" id="language_row">
+                  <object class="GtkListBox" id="language_list">
                     <property name="visible">True</property>
+                    <property name="can_focus">True</property>
                     <child>
-                      <object class="GtkBox" id="language_box">
+                      <object class="GtkListBoxRow" id="language_row">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="visible">True</property>
-                            <child>
-                              <object class="GtkLabel" id="language_heading">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="margin_start">20</property>
-                                <property name="margin_end">20</property>
-                                <property name="margin_top">18</property>
-                                <property name="margin_bottom">18</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">_Language</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="language_label">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">1</property>
-                                <property name="margin_start">20</property>
-                                <property name="margin_end">20</property>
-                                <property name="margin_top">18</property>
-                                <property name="margin_bottom">18</property>
-                                <property name="label" translatable="yes">English (United Kingdom)</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
                         <child>
-                          <object class="GtkRevealer" id="restart-revealer">
+                          <object class="GtkBox" id="language_box">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="orientation">vertical</property>
                             <child>
                               <object class="GtkBox">
                                 <property name="visible">True</property>
                                 <child>
-                                  <object class="GtkLabel">
+                                  <object class="GtkLabel" id="language_heading">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
                                     <property name="margin_start">20</property>
                                     <property name="margin_end">20</property>
-                                    <property name="margin_top">12</property>
-                                    <property name="margin_bottom">12</property>
+                                    <property name="margin_top">18</property>
+                                    <property name="margin_bottom">18</property>
                                     <property name="xalign">0</property>
-                                    <property name="hexpand">True</property>
-                                    <property name="wrap">True</property>
-                                    <property name="max-width-chars">35</property>
-                                    <property name="label" translatable="yes">Restart the session for 
changes to take effect</property>
-                                    <style>
-                                      <class name="dim-label"/>
-                                    </style>
-                                    <attributes>
-                                      <attribute name="scale" value="0.9"/>
-                                    </attributes>
+                                    <property name="label" translatable="yes">_Language</property>
+                                    <property name="use_underline">True</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">False</property>
+                                    <property name="expand">True</property>
                                     <property name="fill">True</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkButton" id="restart-button">
+                                  <object class="GtkLabel" id="language_label">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="xalign">1</property>
                                     <property name="margin_start">20</property>
                                     <property name="margin_end">20</property>
-                                    <property name="margin_top">12</property>
-                                    <property name="margin_bottom">12</property>
-                                    <property name="valign">end</property>
-                                    <property name="label" translatable="yes">Restart…</property>
-                                    <style>
-                                      <class name="suggested-action"/>
-                                    </style>
+                                    <property name="margin_top">18</property>
+                                    <property name="margin_bottom">18</property>
+                                    <property name="label" translatable="yes">English (United 
Kingdom)</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -144,109 +96,190 @@
                                 </child>
                               </object>
                             </child>
+                            <child>
+                              <object class="GtkRevealer" id="restart_revealer">
+                                <property name="visible">True</property>
+                                <child>
+                                  <object class="GtkBox">
+                                    <property name="visible">True</property>
+                                    <child>
+                                      <object class="GtkLabel">
+                                        <property name="visible">True</property>
+                                        <property name="margin_start">20</property>
+                                        <property name="margin_end">20</property>
+                                        <property name="margin_top">12</property>
+                                        <property name="margin_bottom">12</property>
+                                        <property name="xalign">0</property>
+                                        <property name="hexpand">True</property>
+                                        <property name="wrap">True</property>
+                                        <property name="max-width-chars">35</property>
+                                        <property name="label" translatable="yes">Restart the session for 
changes to take effect</property>
+                                        <style>
+                                          <class name="dim-label"/>
+                                        </style>
+                                        <attributes>
+                                          <attribute name="scale" value="0.9"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" id="restart_button">
+                                        <property name="visible">True</property>
+                                        <property name="margin_start">20</property>
+                                        <property name="margin_end">20</property>
+                                        <property name="margin_top">12</property>
+                                        <property name="margin_bottom">12</property>
+                                        <property name="valign">end</property>
+                                        <property name="label" translatable="yes">Restart…</property>
+                                        <style>
+                                          <class name="suggested-action"/>
+                                        </style>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
                           </object>
                         </child>
                       </object>
                     </child>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkListBoxRow" id="formats_row">
-                    <property name="visible">True</property>
                     <child>
-                      <object class="GtkBox" id="formats_box">
+                      <object class="GtkListBoxRow" id="formats_row">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <child>
-                          <object class="GtkLabel" id="formats_heading">
+                          <object class="GtkBox" id="formats_box">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_start">20</property>
-                            <property name="margin_end">20</property>
-                            <property name="margin_top">18</property>
-                            <property name="margin_bottom">18</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">_Formats</property>
-                            <property name="use_underline">True</property>
-                          </object>
-                          <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="formats_label">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">1</property>
-                            <property name="margin_start">20</property>
-                            <property name="margin_end">20</property>
-                            <property name="margin_top">18</property>
-                            <property name="margin_bottom">18</property>
-                            <property name="label" translatable="yes">United Kingdom</property>
+                            <child>
+                              <object class="GtkLabel" id="formats_heading">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="margin_start">20</property>
+                                <property name="margin_end">20</property>
+                                <property name="margin_top">18</property>
+                                <property name="margin_bottom">18</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">_Formats</property>
+                                <property name="use_underline">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="formats_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">1</property>
+                                <property name="margin_start">20</property>
+                                <property name="margin_end">20</property>
+                                <property name="margin_top">18</property>
+                                <property name="margin_bottom">18</property>
+                                <property name="label" translatable="yes">United Kingdom</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">True</property>
-                            <property name="position">1</property>
-                          </packing>
                         </child>
                       </object>
                     </child>
                   </object>
                 </child>
+                <child type="label_item">
+                  <placeholder/>
+                </child>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
             </child>
-            <child type="label_item">
-              <placeholder/>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="input_section">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="orientation">vertical</property>
-            <property name="hexpand">True</property>
             <child>
-              <object class="GtkBox" id="input_heading_row">
+              <object class="GtkBox" id="input_section">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="margin_bottom">12</property>
+                <property name="orientation">vertical</property>
+                <property name="hexpand">True</property>
                 <child>
-                  <object class="GtkLabel" id="input_heading">
+                  <object class="GtkBox" id="input_heading_row">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="margin_start">2</property>
-                    <property name="margin_end">2</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Input Sources</property>
-                    <attributes>
-                      <attribute name="weight" value="bold"/>
-                    </attributes>
-                    <accessibility>
-                      <relation target="input_list" type="label-for"/>
-                    </accessibility>
+                    <property name="margin_bottom">12</property>
+                    <child>
+                      <object class="GtkLabel" id="input_heading">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_start">2</property>
+                        <property name="margin_end">2</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Input Sources</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                        <accessibility>
+                          <relation target="input_list" type="label-for"/>
+                        </accessibility>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="options_button">
+                        <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_underline">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">True</property>
+                    <property name="expand">False</property>
                     <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="input_options">
-                    <property name="label" translatable="yes">_Options</property>
+                  <object class="GtkFrame" id="input_frame">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_underline">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="GtkListBox" id="input_list">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <accessibility>
+                          <relation target="input_heading" type="labelled-by"/>
+                        </accessibility>
+                      </object>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -254,287 +287,260 @@
                     <property name="position">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="GtkFrame" id="input_frame">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkListBox" id="input_list">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <accessibility>
-                      <relation target="input_heading" type="labelled-by"/>
-                    </accessibility>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolbar" id="input_toolbar">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="toolbar_style">icons</property>
-                <property name="show_arrow">False</property>
-                <property name="icon_size">1</property>
-                <style>
-                  <class name="inline-toolbar"/>
-                </style>
-                <child>
-                  <object class="GtkToolItem" id="i_s_ar_item">
+                  <object class="GtkToolbar" id="input_toolbar">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
+                    <property name="toolbar_style">icons</property>
+                    <property name="show_arrow">False</property>
+                    <property name="icon_size">1</property>
+                    <style>
+                      <class name="inline-toolbar"/>
+                    </style>
                     <child>
-                      <object class="GtkBox" id="i_s_ar_box">
+                      <object class="GtkToolItem" id="i_s_ar_item">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <child>
-                          <object class="GtkButton" id="input_source_add">
+                          <object class="GtkBox" id="i_s_ar_box">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <child internal-child="accessible">
-                              <object class="AtkObject">
-                                <property name="accessible-name" translatable="yes">Add input 
source</property>
-                              </object>
-                            </child>
+                            <property name="can_focus">False</property>
                             <child>
-                              <object class="GtkImage" id="i_s_a_image">
+                              <object class="GtkButton" id="add_input">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">list-add-symbolic</property>
-                                <property name="icon-size">1</property>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkButton" id="input_source_remove">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <child internal-child="accessible">
-                              <object class="AtkObject">
-                                <property name="accessible-name" translatable="yes">Remove input 
source</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject">
+                                    <property name="accessible-name" translatable="yes">Add input 
source</property>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="i_s_a_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">list-add-symbolic</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                </child>
                               </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
                             </child>
                             <child>
-                              <object class="GtkImage" id="i_s_r_image">
+                              <object class="GtkButton" id="remove_input">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">list-remove-symbolic</property>
-                                <property name="icon-size">1</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject">
+                                    <property name="accessible-name" translatable="yes">Remove input 
source</property>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="i_s_r_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">list-remove-symbolic</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                </child>
                               </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">True</property>
-                            <property name="position">1</property>
-                          </packing>
                         </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkSeparatorToolItem" id="sep1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="draw">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToolItem" id="i_s_ud_item">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <child>
-                      <object class="GtkBox" id="i_s_ud_box">
+                      <object class="GtkSeparatorToolItem" id="sep1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="draw">False</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkToolItem" id="i_s_ud_item">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <child>
-                          <object class="GtkButton" id="input_source_up">
+                          <object class="GtkBox" id="i_s_ud_box">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <child internal-child="accessible">
-                              <object class="AtkObject">
-                                <property name="accessible-name" translatable="yes">Move input source 
up</property>
-                              </object>
-                            </child>
+                            <property name="can_focus">False</property>
                             <child>
-                              <object class="GtkImage" id="i_s_up_image">
+                              <object class="GtkButton" id="move_up_input">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">go-up-symbolic</property>
-                                <property name="icon-size">1</property>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkButton" id="input_source_down">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <child internal-child="accessible">
-                              <object class="AtkObject">
-                                <property name="accessible-name" translatable="yes">Move input source 
down</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject">
+                                    <property name="accessible-name" translatable="yes">Move input source 
up</property>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="i_s_up_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">go-up-symbolic</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                </child>
                               </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
                             </child>
                             <child>
-                              <object class="GtkImage" id="i_s_down_image">
+                              <object class="GtkButton" id="move_down_input">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">go-down-symbolic</property>
-                                <property name="icon-size">1</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject">
+                                    <property name="accessible-name" translatable="yes">Move input source 
down</property>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="i_s_down_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">go-down-symbolic</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                </child>
                               </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">True</property>
-                            <property name="position">1</property>
-                          </packing>
                         </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSeparatorToolItem" id="sep2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="draw">False</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkSeparatorToolItem" id="sep2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="draw">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToolItem" id="i_s_sc_item">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <child>
-                      <object class="GtkBox" id="i_s_sc_box">
+                      <object class="GtkToolItem" id="i_s_sc_item">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <child>
-                          <object class="GtkButton" id="input_source_config">
+                          <object class="GtkBox" id="i_s_sc_box">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <child internal-child="accessible">
-                              <object class="AtkObject">
-                                <property name="accessible-name" translatable="yes">Configure input 
source</property>
-                              </object>
-                            </child>
+                            <property name="can_focus">False</property>
                             <child>
-                              <object class="GtkImage" id="i_s_sc_image">
+                              <object class="GtkButton" id="show_config">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">emblem-system-symbolic</property>
-                                <property name="icon-size">1</property>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkButton" id="input_source_layout">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <child internal-child="accessible">
-                              <object class="AtkObject">
-                                <property name="accessible-name" translatable="yes">Show input source 
keyboard layout</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject">
+                                    <property name="accessible-name" translatable="yes">Configure input 
source</property>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="i_s_sc_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">emblem-system-symbolic</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                </child>
                               </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
                             </child>
                             <child>
-                              <object class="GtkImage" id="i_s_sl_image">
+                              <object class="GtkButton" id="show_layout">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">input-keyboard-symbolic</property>
-                                <property name="icon-size">1</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject">
+                                    <property name="accessible-name" translatable="yes">Show input source 
keyboard layout</property>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="i_s_sl_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">input-keyboard-symbolic</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                </child>
                               </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">True</property>
-                            <property name="position">1</property>
-                          </packing>
                         </child>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                      </packing>
                     </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
                   </packing>
                 </child>
               </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">2</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>
-          <object class="GtkLabel" id="login-label">
-           <property name="valign">end</property>
-           <property name="vexpand">True</property>
-           <property name="hexpand">True</property>
-           <property name="label" translatable="yes">Login settings are used by all users when logging into 
the system</property>
-           <property name="margin_bottom">12</property>
-           <style>
-             <class name="dim-label"/>
-           </style>
+            <child>
+              <object class="GtkLabel" id="login_label">
+               <property name="valign">end</property>
+               <property name="vexpand">True</property>
+               <property name="hexpand">True</property>
+               <property name="label" translatable="yes">Login settings are used by all users when logging 
into the system</property>
+               <property name="margin_bottom">12</property>
+               <style>
+                 <class name="dim-label"/>
+               </style>
+              </object>
+            </child>
           </object>
         </child>
       </object>
     </child>
-  </object>
+  </template>
 </interface>


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