[gnome-characters/bilelmoussaoui/ui-cleanup: 2/10] window: use HdyApplicationWindow




commit 00a4dc76f34ed8b75b7755f5b571b29762322805
Author: Bilal Elmoussaoui <bil elmoussaoui gmail com>
Date:   Thu Feb 11 20:53:41 2021 +0100

    window: use HdyApplicationWindow

 data/mainwindow.ui | 202 +++++++++++++++++++++++++++--------------------------
 meson.build        |   1 +
 src/main.js        |  16 +++--
 src/window.js      |   4 +-
 4 files changed, 117 insertions(+), 106 deletions(-)
---
diff --git a/data/mainwindow.ui b/data/mainwindow.ui
index c281147..d3bb1e8 100644
--- a/data/mainwindow.ui
+++ b/data/mainwindow.ui
@@ -1,117 +1,123 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="3.12"/>
-  <template class="Gjs_MainWindow" parent="GtkApplicationWindow">
+  <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="orientation">vertical</property>
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkHeaderBar" 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>
+        </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>
+        </child>
       </object>
     </child>
   </template>
diff --git a/meson.build b/meson.build
index 0c0a274..baa199e 100644
--- a/meson.build
+++ b/meson.build
@@ -49,6 +49,7 @@ libgc_deps = [
   dependency('gio-2.0'),
   dependency('gtk+-3.0'),
   dependency('pango'),
+  dependency('libhandy-1', version: '>= 1.1'),
   declare_dependency(link_args: '-lunistring')
 ]
 
diff --git a/src/main.js b/src/main.js
index 24e08e7..7413c74 100644
--- a/src/main.js
+++ b/src/main.js
@@ -26,13 +26,16 @@
 
 pkg.initGettext();
 pkg.initFormat();
-pkg.require({ 'Gdk': '3.0',
-              'Gio': '2.0',
-              'GLib': '2.0',
-              'GObject': '2.0',
-              'Gtk': '3.0' });
+pkg.require({ 
+    'Gdk': '3.0',
+    'Gio': '2.0',
+    'GLib': '2.0',
+    'GObject': '2.0',
+    'Gtk': '3.0',
+    'Handy': '1',
+});
 
-const {GLib, Gio, GObject, Gtk} = imports.gi;
+const {GLib, Gio, GObject, Gtk, Handy} = imports.gi;
 
 const Util = imports.util;
 const Window = imports.window;
@@ -88,6 +91,7 @@ var MyApplication = GObject.registerClass({
         if (!this._appwindow) {
             this._appwindow = new Window.MainWindow({ application: this });
         }
+        Handy.init();
 
         this._appwindow.present();
         log("Characters Application activated");
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]