[gnome-characters/bilelmoussaoui/split-headerbar: 2/5] switch to HdyApplicationWindow & HdyHeaderBar



commit 5a0f737eeb6ab95fbac223474908620a7124b9b0
Author: Bilal Elmoussaoui <bil elmoussaoui gmail com>
Date:   Sun Jun 7 11:51:25 2020 +0200

    switch to HdyApplicationWindow & HdyHeaderBar

 data/mainwindow.ui | 217 +++++++++++++++++++++++++++++------------------------
 src/window.js      |   4 +-
 2 files changed, 120 insertions(+), 101 deletions(-)
---
diff --git a/data/mainwindow.ui b/data/mainwindow.ui
index c281147..007da24 100644
--- a/data/mainwindow.ui
+++ b/data/mainwindow.ui
@@ -1,118 +1,137 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
-  <requires lib="gtk+" version="3.12"/>
-  <template class="Gjs_MainWindow" parent="GtkApplicationWindow">
+  <requires lib="gtk+" version="3.12" />
+  <template class="Gjs_MainWindow" parent="HdyApplicationWindow">
     <property name="height-request">660</property>
-    <child type="titlebar">
-      <object class="GtkHeaderBar" id="main-headerbar">
-       <property name="can_focus">False</property>
-       <property name="visible">True</property>
-       <property name="show-close-button">True</property>
-       <property name="has-subtitle">False</property>
-       <property name="title" translatable="yes">Current page</property>
-       <child>
-         <object class="GtkToggleButton" id="search-active-button">
-            <property name="can_focus">True</property>
+    <child>
+      <object class="GtkBox">
+        <property name="visible">True</property>
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <object class="HdyHeaderBar" id="main-headerbar">
+            <property name="can_focus">False</property>
             <property name="visible">True</property>
-            <style>
-              <class name="image-button"/>
-            </style>
+            <property name="show-close-button">True</property>
+            <property name="has-subtitle">False</property>
+            <property name="title" translatable="yes">Current page</property>
             <child>
-              <object class="GtkImage" id="search-button-image">
-               <property name="visible">True</property>
-               <property name="icon-name">edit-find-symbolic</property>
+              <object class="GtkToggleButton" id="search-active-button">
+                <property name="can_focus">True</property>
+                <property name="visible">True</property>
+                <style>
+                  <class name="image-button" />
+                </style>
+                <child>
+                  <object class="GtkImage" id="search-button-image">
+                    <property name="visible">True</property>
+                    <property name="icon-name">edit-find-symbolic</property>
+                  </object>
+                </child>
               </object>
+              <packing>
+                <property name="pack-type">start</property>
+              </packing>
             </child>
-         </object>
-         <packing>
-            <property name="pack-type">start</property>
-         </packing>
-       </child>
-       <child>
-         <object class="GtkButton" id="back-button">
-            <property name="can_focus">True</property>
-            <property name="visible">False</property>
-            <style>
-              <class name="image-button"/>
-            </style>
             <child>
-              <object class="GtkImage" id="back-button-image">
-               <property name="visible">True</property>
-               <property name="icon-name">go-previous-symbolic</property>
+              <object class="GtkButton" id="back-button">
+                <property name="can_focus">True</property>
+                <property name="visible">False</property>
+                <style>
+                  <class name="image-button" />
+                </style>
+                <child>
+                  <object class="GtkImage" id="back-button-image">
+                    <property name="visible">True</property>
+                    <property name="icon-name">go-previous-symbolic</property>
+                  </object>
+                </child>
               </object>
+              <packing>
+                <property name="pack-type">start</property>
+              </packing>
             </child>
-         </object>
-         <packing>
-            <property name="pack-type">start</property>
-         </packing>
-       </child>
-       <child>
-         <object class="GtkMenuButton" id="menu-button">
-            <property name="can_focus">False</property>
-            <property name="visible">True</property>
-           <property name="use_popover">True</property>
-            <style>
-              <class name="image-button"/>
-            </style>
             <child>
-              <object class="GtkImage" id="menu-button-image">
-               <property name="visible">True</property>
-               <property name="icon-name">open-menu-symbolic</property>
+              <object class="GtkMenuButton" id="menu-button">
+                <property name="can_focus">False</property>
+                <property name="visible">True</property>
+                <property name="use_popover">True</property>
+                <style>
+                  <class name="image-button" />
+                </style>
+                <child>
+                  <object class="GtkImage" id="menu-button-image">
+                    <property name="visible">True</property>
+                    <property name="icon-name">open-menu-symbolic</property>
+                  </object>
+                </child>
               </object>
+              <packing>
+                <property name="pack-type">end</property>
+              </packing>
             </child>
-         </object>
-         <packing>
-            <property name="pack-type">end</property>
-         </packing>
-       </child>
-      </object>
-    </child>
-    <child>
-      <object class="GtkGrid" id="main-grid">
-       <property name="can_focus">False</property>
-       <property name="visible">True</property>
-       <property name="orientation">vertical</property>
-       <property name="valign">fill</property>
-       <child>
-         <object class="GtkBox" id="main-hbox">
-           <property name="can_focus">False</property>
-           <property name="visible">True</property>
-           <property name="orientation">horizontal</property>
-           <child>
-             <object class="GtkGrid" id="sidebar-grid">
-               <property name="can_focus">False</property>
-               <property name="visible">True</property>
-               <property name="hexpand">False</property>
-               <property name="vexpand">True</property>
-               <property name="orientation">vertical</property>
-               <child>
-                 <object class="GtkSearchBar" id="search-bar">
-                   <property name="visible">True</property>
-                   <property name="halign">fill</property>
-                   <child>
-                     <object class="GtkSearchEntry" id="search-entry">
-                       <property name="can_focus">True</property>
-                       <property name="halign">fill</property>
-                     </object>
-                   </child>
-                 </object>
-               </child>
-               <child>
-                 <placeholder/>
-               </child>
-             </object>
-           </child>
-           <child>
-              <object class="GtkVSeparator">
-               <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkGrid" id="main-grid">
+            <property name="can_focus">False</property>
+            <property name="visible">True</property>
+            <property name="orientation">vertical</property>
+            <property name="valign">fill</property>
+            <child>
+              <object class="GtkBox" id="main-hbox">
+                <property name="can_focus">False</property>
+                <property name="visible">True</property>
+                <property name="orientation">horizontal</property>
+                <child>
+                  <object class="GtkGrid" id="sidebar-grid">
+                    <property name="can_focus">False</property>
+                    <property name="visible">True</property>
+                    <property name="hexpand">False</property>
+                    <property name="vexpand">True</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="GtkSearchBar" id="search-bar">
+                        <property name="visible">True</property>
+                        <property name="halign">fill</property>
+                        <child>
+                          <object class="GtkSearchEntry" id="search-entry">
+                            <property name="can_focus">True</property>
+                            <property name="halign">fill</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <placeholder />
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkVSeparator">
+                    <property name="visible">True</property>
+                  </object>
+                </child>
+                <child>
+                  <placeholder />
+                </child>
               </object>
             </child>
-           <child>
-             <placeholder/>
-           </child>
-         </object>
-       </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
       </object>
     </child>
   </template>
 </interface>
+
diff --git a/src/window.js b/src/window.js
index 8e09a2c..5614223 100644
--- a/src/window.js
+++ b/src/window.js
@@ -24,7 +24,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-const {Gio, GLib, GObject, Gtk } = imports.gi;
+const {Gio, GLib, GObject, Gtk, Handy } = imports.gi;
 
 const Params = imports.params;
 const CategoryList = imports.categoryList;
@@ -47,7 +47,7 @@ var MainWindow = GObject.registerClass({
             'search-active', '', '',
             GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, false)
     },
-}, class MainWindow extends Gtk.ApplicationWindow {
+}, class MainWindow extends Handy.ApplicationWindow {
     _init(params) {
         params = Params.fill(params, { title: GLib.get_application_name(),
                                        default_width: 640,


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