[gnome-taquin/arnaudb/wip/gtk4: 92/108] GtkStack is not subclassable anymore.




commit 894b8d48710abdc86dcb2f91a28154db8d473323
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date:   Sat Apr 18 15:58:41 2020 +0200

    GtkStack is not subclassable anymore.

 data/ui/base-view.ui | 28 ++++++++++++++++------------
 src/base-view.vala   | 15 +++++++++++----
 2 files changed, 27 insertions(+), 16 deletions(-)
---
diff --git a/data/ui/base-view.ui b/data/ui/base-view.ui
index 8348176..5324add 100644
--- a/data/ui/base-view.ui
+++ b/data/ui/base-view.ui
@@ -17,21 +17,25 @@
 -->
 <interface>
   <requires lib="gtk+" version="3.99"/>
-  <template class="BaseView" parent="GtkStack">
-    <property name="transition-type">over-down-up</property>
-    <property name="transition-duration">300</property>
+  <template class="BaseView" parent="GtkWidget">
     <child>
-      <object class="GtkStackPage">
-        <property name="name">main-view</property>
-        <property name="child">
-          <object class="GtkOverlay" id="notifications_overlay">
-            <child>
-              <object class="GtkGrid" id="main_grid">
-                <property name="orientation">vertical</property>
+      <object class="GtkStack" id="stack">
+        <property name="transition-type">over-down-up</property>
+        <property name="transition-duration">300</property>
+        <child>
+          <object class="GtkStackPage">
+            <property name="name">main-view</property>
+            <property name="child">
+              <object class="GtkOverlay" id="notifications_overlay">
+                <child>
+                  <object class="GtkGrid" id="main_grid">
+                    <property name="orientation">vertical</property>
+                  </object>
+                </child>
               </object>
-            </child>
+            </property>
           </object>
-        </property>
+        </child>
       </object>
     </child>
   </template>
diff --git a/src/base-view.vala b/src/base-view.vala
index 5c3cb01..fc2f8e6 100644
--- a/src/base-view.vala
+++ b/src/base-view.vala
@@ -18,8 +18,9 @@
 using Gtk;
 
 [GtkTemplate (ui = "/org/gnome/Taquin/ui/base-view.ui")]
-private class BaseView : Stack, AdaptativeWidget
+private class BaseView : Widget, AdaptativeWidget
 {
+    [GtkChild] private Stack stack;
     [GtkChild] protected Grid main_grid;
 
     internal virtual bool handle_copy_text (out string copy_text)
@@ -32,6 +33,12 @@ private class BaseView : Stack, AdaptativeWidget
 
     internal virtual void close_popovers () {}
 
+    construct
+    {
+        BinLayout layout = new BinLayout ();
+        set_layout_manager (layout);
+    }
+
     /*\
     * * adaptative stuff
     \*/
@@ -55,7 +62,7 @@ private class BaseView : Stack, AdaptativeWidget
         if (in_window_about)
         {
             in_window_about = false;
-            set_visible_child (notifications_overlay);   // or set_visible_child_name ("main-view");
+            stack.set_visible_child (notifications_overlay);   // or set_visible_child_name ("main-view");
         }
         else
             assert_not_reached ();
@@ -92,7 +99,7 @@ private class BaseView : Stack, AdaptativeWidget
                                     ref artists, ref authors, ref comments, ref copyright, ref documenters, 
ref logo_icon_name, ref program_name, ref translator_credits, ref version, ref website, ref website_label);
         about_list.set_window_size (saved_window_size);
         about_list.show ();
-        add (about_list);
+        stack.add (about_list);
         about_list_created = true;
     }
 
@@ -101,7 +108,7 @@ private class BaseView : Stack, AdaptativeWidget
         requires (in_window_about == false)
     {
         about_list.reset ();
-        set_visible_child (about_list);
+        stack.set_visible_child (about_list);
         in_window_about = true;
     }
 


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