[gnome-games/wip/exalm/unified-window: 59/60] preferences-subpage-keyboard: Simplify layout



commit d9602f85554d1f51fbe0929547c4c42c72d1b960
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Fri Apr 10 19:40:27 2020 +0500

    preferences-subpage-keyboard: Simplify layout

 data/ui/keyboard-mapper.ui               |   1 +
 data/ui/keyboard-tester.ui               |   1 +
 data/ui/preferences-subpage-keyboard.ui  | 176 +++++++++++++++++--------------
 src/ui/preferences-subpage-keyboard.vala |  39 ++-----
 4 files changed, 110 insertions(+), 107 deletions(-)
---
diff --git a/data/ui/keyboard-mapper.ui b/data/ui/keyboard-mapper.ui
index 07d37535..34d88b54 100644
--- a/data/ui/keyboard-mapper.ui
+++ b/data/ui/keyboard-mapper.ui
@@ -3,6 +3,7 @@
   <requires lib="gtk+" version="3.24"/>
   <template class="GamesKeyboardMapper" parent="GtkBin">
     <property name="visible">True</property>
+    <property name="vexpand">True</property>
     <child>
       <object class="GamesGamepadView" id="gamepad_view">
         <property name="visible">True</property>
diff --git a/data/ui/keyboard-tester.ui b/data/ui/keyboard-tester.ui
index 811efaa2..c9f51e7e 100644
--- a/data/ui/keyboard-tester.ui
+++ b/data/ui/keyboard-tester.ui
@@ -3,6 +3,7 @@
   <requires lib="gtk+" version="3.24"/>
   <template class="GamesKeyboardTester" parent="GtkBin">
     <property name="visible">True</property>
+    <property name="vexpand">True</property>
     <child>
       <object class="GamesGamepadView" id="gamepad_view">
         <property name="visible">True</property>
diff --git a/data/ui/preferences-subpage-keyboard.ui b/data/ui/preferences-subpage-keyboard.ui
index fd196990..dc142fad 100644
--- a/data/ui/preferences-subpage-keyboard.ui
+++ b/data/ui/preferences-subpage-keyboard.ui
@@ -1,110 +1,128 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="3.24"/>
-  <template class="GamesPreferencesSubpageKeyboard" parent="GtkBox">
+  <template class="GamesPreferencesSubpageKeyboard" parent="GtkBin">
     <property name="visible">True</property>
     <property name="can-focus">True</property>
-    <property name="orientation">vertical</property>
     <child>
-      <object class="HdyHeaderBar" id="header_bar">
+      <object class="GtkStack" id="stack">
         <property name="visible">True</property>
-        <style>
-          <class name="titlebar"/>
-        </style>
+        <property name="transition-type">crossfade</property>
         <child>
-          <object class="GtkButton" id="back_button">
+          <object class="GtkBox" id="tester_box">
             <property name="visible">True</property>
-            <signal name="clicked" handler="on_back_clicked"/>
-            <style>
-              <class name="image-button"/>
-            </style>
-            <child internal-child="accessible">
-              <object class="AtkObject" id="a11y-back">
-                <property name="accessible-name" translatable="yes">Back</property>
-              </object>
-            </child>
+            <property name="orientation">vertical</property>
             <child>
-              <object class="GtkImage" id="back_image">
+              <object class="HdyHeaderBar">
                 <property name="visible">True</property>
-                <property name="icon-name">go-previous-symbolic</property>
-                <property name="icon-size">1</property>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="pack-type">start</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkButton" id="cancel_button">
-            <property name="visible">True</property>
-            <property name="label" translatable="yes">Cancel</property>
-            <signal name="clicked" handler="on_cancel_clicked"/>
-          </object>
-          <packing>
-            <property name="pack-type">end</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <child>
-      <object class="GtkStack" id="gamepad_view_stack">
-        <property name="visible">True</property>
-        <property name="vexpand">True</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkStack" id="action_bar_stack">
-        <property name="visible">True</property>
-        <child>
-          <object class="GtkActionBar" id="tester_action_bar">
-            <property name="visible">True</property>
-            <child>
-              <object class="GtkButton" id="reset_button">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes" context="Keyboard configuration factory 
reset">Reset</property>
-                <signal name="clicked" handler="on_reset_clicked"/>
+                <property name="show-close-button">True</property>
+                <property name="title" translatable="true">Testing Keyboard</property>
                 <style>
-                  <class name="destructive-action"/>
+                  <class name="titlebar"/>
                 </style>
+                <child>
+                  <object class="GtkButton">
+                    <property name="visible">True</property>
+                    <signal name="clicked" handler="on_back_clicked"/>
+                    <style>
+                      <class name="image-button"/>
+                    </style>
+                    <child internal-child="accessible">
+                      <object class="AtkObject" id="a11y-back">
+                        <property name="accessible-name" translatable="yes">Back</property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImage">
+                        <property name="visible">True</property>
+                        <property name="icon-name">go-previous-symbolic</property>
+                        <property name="icon-size">1</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="pack-type">start</property>
+                  </packing>
+                </child>
               </object>
-              <packing>
-                <property name="pack-type">end</property>
-              </packing>
             </child>
             <child>
-              <object class="GtkButton" id="configure_button">
+              <object class="GtkActionBar">
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">Configure</property>
-                <signal name="clicked" handler="on_configure_clicked"/>
-                <style>
-                  <class name="suggested-action"/>
-                </style>
+                <child>
+                  <object class="GtkButton" id="reset_button">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes" context="Keyboard configuration factory 
reset">Reset</property>
+                    <signal name="clicked" handler="on_reset_clicked"/>
+                    <style>
+                      <class name="destructive-action"/>
+                    </style>
+                  </object>
+                  <packing>
+                    <property name="pack-type">end</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Configure</property>
+                    <signal name="clicked" handler="on_configure_clicked"/>
+                    <style>
+                      <class name="suggested-action"/>
+                    </style>
+                  </object>
+                  <packing>
+                    <property name="pack-type">start</property>
+                  </packing>
+                </child>
               </object>
-              <packing>
-                <property name="pack-type">start</property>
-              </packing>
             </child>
           </object>
         </child>
         <child>
-          <object class="GtkActionBar" id="mapper_action_bar">
+          <object class="GtkBox" id="mapper_box">
             <property name="visible">True</property>
+            <property name="orientation">vertical</property>
             <child>
-              <object class="GtkButton" id="skip_button">
+              <object class="HdyHeaderBar">
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">Skip</property>
-                <signal name="clicked" handler="on_skip_clicked"/>
+                <property name="title" translatable="true">Configuring Keyboard</property>
+                <style>
+                  <class name="titlebar"/>
+                  <class name="selection-mode"/>
+                </style>
+                <child>
+                  <object class="GtkButton">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Cancel</property>
+                    <signal name="clicked" handler="on_cancel_clicked"/>
+                  </object>
+                  <packing>
+                    <property name="pack-type">end</property>
+                  </packing>
+                </child>
               </object>
-              <packing>
-                <property name="pack-type">start</property>
-              </packing>
             </child>
-            <child type="center">
-              <object class="GtkLabel">
+            <child>
+              <object class="GtkActionBar">
                 <property name="visible">True</property>
-                <property name="ellipsize">end</property>
-                <property name="label" bind-source="GamesPreferencesSubpageKeyboard" 
bind-property="info-message" bind-flags="bidirectional"/>
+                <child>
+                  <object class="GtkButton">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Skip</property>
+                    <signal name="clicked" handler="on_skip_clicked"/>
+                  </object>
+                  <packing>
+                    <property name="pack-type">start</property>
+                  </packing>
+                </child>
+                <child type="center">
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="ellipsize">end</property>
+                    <property name="label" bind-source="GamesPreferencesSubpageKeyboard" 
bind-property="info-message" bind-flags="bidirectional"/>
+                  </object>
+                </child>
               </object>
             </child>
           </object>
diff --git a/src/ui/preferences-subpage-keyboard.vala b/src/ui/preferences-subpage-keyboard.vala
index 7b57dc89..b2b6951c 100644
--- a/src/ui/preferences-subpage-keyboard.vala
+++ b/src/ui/preferences-subpage-keyboard.vala
@@ -1,7 +1,7 @@
 // This file is part of GNOME Games. License: GPL-3.0+.
 
 [GtkTemplate (ui = "/org/gnome/Games/ui/preferences-subpage-keyboard.ui")]
-private class Games.PreferencesSubpageKeyboard : Gtk.Box, PreferencesSubpage {
+private class Games.PreferencesSubpageKeyboard : Gtk.Bin, PreferencesSubpage {
        private const GamepadInput[] KEYBOARD_GAMEPAD_INPUTS = {
                { EventCode.EV_KEY, EventCode.BTN_EAST },
                { EventCode.EV_KEY, EventCode.BTN_SOUTH },
@@ -33,23 +33,13 @@ private class Games.PreferencesSubpageKeyboard : Gtk.Box, PreferencesSubpage {
                get { return _state; }
                set {
                        _state = value;
-                       back_button.visible = (state == State.TEST);
-                       cancel_button.visible = (state == State.CONFIGURE);
-                       header_bar.show_close_button = (state == State.TEST);
                        allow_back = (state == State.TEST);
 
-                       if (state == State.CONFIGURE)
-                               header_bar.get_style_context ().add_class ("selection-mode");
-                       else
-                               header_bar.get_style_context ().remove_class ("selection-mode");
-
                        switch (value) {
                        case State.TEST:
                                reset_button.set_sensitive (!mapping_manager.is_default ());
 
-                               header_bar.title = _("Testing Keyboard");
-                               gamepad_view_stack.visible_child = tester;
-                               action_bar_stack.visible_child = tester_action_bar;
+                               stack.visible_child = tester_box;
 
                                tester.start ();
                                mapper.stop ();
@@ -57,9 +47,7 @@ private class Games.PreferencesSubpageKeyboard : Gtk.Box, PreferencesSubpage {
 
                                break;
                        case State.CONFIGURE:
-                               header_bar.title = _("Configuring Keyboard");
-                               gamepad_view_stack.visible_child = mapper;
-                               action_bar_stack.visible_child = mapper_action_bar;
+                               stack.visible_child = mapper_box;
 
                                tester.stop ();
                                mapper.start ();
@@ -74,21 +62,13 @@ private class Games.PreferencesSubpageKeyboard : Gtk.Box, PreferencesSubpage {
        public string info_message { get; set; }
 
        [GtkChild]
-       private Hdy.HeaderBar header_bar;
-       [GtkChild]
-       private Gtk.Stack gamepad_view_stack;
-       [GtkChild]
-       private Gtk.Stack action_bar_stack;
+       private Gtk.Stack stack;
        [GtkChild]
-       private Gtk.ActionBar tester_action_bar;
+       private Gtk.Box tester_box;
        [GtkChild]
-       private Gtk.ActionBar mapper_action_bar;
+       private Gtk.Box mapper_box;
        [GtkChild]
        private Gtk.Button reset_button;
-       [GtkChild]
-       private Gtk.Button back_button;
-       [GtkChild]
-       private Gtk.Button cancel_button;
 
        private KeyboardMapper mapper;
        private KeyboardTester tester;
@@ -96,11 +76,14 @@ private class Games.PreferencesSubpageKeyboard : Gtk.Box, PreferencesSubpage {
 
        construct {
                mapper = new KeyboardMapper (GamepadViewConfiguration.get_default (), 
KEYBOARD_GAMEPAD_INPUTS);
-               gamepad_view_stack.add (mapper);
                tester = new KeyboardTester (GamepadViewConfiguration.get_default ());
-               gamepad_view_stack.add (tester);
                mapping_manager = new KeyboardMappingManager ();
 
+               tester_box.add (tester);
+               tester_box.reorder_child (tester, 1);
+               mapper_box.add (mapper);
+               mapper_box.reorder_child (mapper, 1);
+
                tester.mapping = mapping_manager.mapping;
                mapping_manager.changed.connect (() => {
                        tester.mapping = mapping_manager.mapping;


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