[libhandy/wip/haecker-felix/flap-widget] Demo placeholder



commit 5a7b59a628fb1e45c8556e13a2a4dc652449a390
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Tue Nov 24 16:12:20 2020 +0500

    Demo placeholder

 examples/handy-demo.gresources.xml |   1 +
 examples/hdy-demo-window.c         |  12 +++++
 examples/hdy-demo-window.ui        | 106 ++++++++++++++++++++++++++++++++++++
 examples/hdy-flap-demo-window.c    |  30 +++++++++++
 examples/hdy-flap-demo-window.h    |  13 +++++
 examples/hdy-flap-demo-window.ui   | 108 +++++++++++++++++++++++++++++++++++++
 examples/meson.build               |   1 +
 7 files changed, 271 insertions(+)
---
diff --git a/examples/handy-demo.gresources.xml b/examples/handy-demo.gresources.xml
index e0825c1d..19e24ede 100644
--- a/examples/handy-demo.gresources.xml
+++ b/examples/handy-demo.gresources.xml
@@ -21,6 +21,7 @@
   <gresource prefix="/sm/puri/Handy/Demo/ui">
     <file preprocess="xml-stripblanks">hdy-demo-preferences-window.ui</file>
     <file preprocess="xml-stripblanks">hdy-demo-window.ui</file>
+    <file preprocess="xml-stripblanks">hdy-flap-demo-window.ui</file>
     <file preprocess="xml-stripblanks">hdy-view-switcher-demo-window.ui</file>
     <file compressed="true">style.css</file>
   </gresource>
diff --git a/examples/hdy-demo-window.c b/examples/hdy-demo-window.c
index ffcab9a1..729048be 100644
--- a/examples/hdy-demo-window.c
+++ b/examples/hdy-demo-window.c
@@ -1,6 +1,7 @@
 #include "hdy-demo-window.h"
 
 #include <glib/gi18n.h>
+#include "hdy-flap-demo-window.h"
 #include "hdy-view-switcher-demo-window.h"
 
 struct _HdyDemoWindow
@@ -425,6 +426,16 @@ avatar_update_contacts (HdyDemoWindow *self)
   }
 }
 
+static void
+flap_demo_clicked_cb (GtkButton     *btn,
+                      HdyDemoWindow *self)
+{
+  HdyFlapDemoWindow *window = hdy_flap_demo_window_new ();
+
+  gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (self));
+  gtk_widget_show (GTK_WIDGET (window));
+}
+
 static void
 hdy_demo_window_constructed (GObject *object)
 {
@@ -487,6 +498,7 @@ hdy_demo_window_class_init (HdyDemoWindowClass *klass)
   gtk_widget_class_bind_template_callback_full (widget_class, "carousel_return_clicked_cb", 
G_CALLBACK(carousel_return_clicked_cb));
   gtk_widget_class_bind_template_callback_full (widget_class, "avatar_file_remove_cb", 
G_CALLBACK(avatar_file_remove_cb));
   gtk_widget_class_bind_template_callback_full (widget_class, "avatar_file_set_cb", 
G_CALLBACK(avatar_file_set_cb));
+  gtk_widget_class_bind_template_callback_full (widget_class, "flap_demo_clicked_cb", 
G_CALLBACK(flap_demo_clicked_cb));
 }
 
 static void
diff --git a/examples/hdy-demo-window.ui b/examples/hdy-demo-window.ui
index 9d00588f..1f08b8a0 100644
--- a/examples/hdy-demo-window.ui
+++ b/examples/hdy-demo-window.ui
@@ -2277,6 +2277,112 @@
                         <property name="title">Window</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkBox">
+                        <property name="visible">True</property>
+                        <property name="orientation">vertical</property>
+                        <property name="can_focus">False</property>
+                        <property name="valign">center</property>
+                        <property name="expand">True</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">center</property>
+                            <property name="valign">center</property>
+                            <property name="margin-bottom">32</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="valign">center</property>
+                                <property name="pixel_size">128</property>
+                                <property name="icon_name">widget-flap-symbolic</property>
+                                <property name="icon-size">0</property>
+                                <property name="margin-bottom">18</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkBox">
+                                <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
+                                <child>
+                                  <object class="GtkLabel">
+                                    <property name="visible">True</property>
+                                    <property name="opacity">0.5</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">Flap</property>
+                                    <property name="halign">center</property>
+                                    <property name="xalign">0</property>
+                                    <property name="margin-bottom">12</property>
+                                    <attributes>
+                                      <attribute name="weight" value="bold"/>
+                                      <attribute name="scale" value="2"/>
+                                    </attributes>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel">
+                                    <property name="visible">True</property>
+                                    <property name="opacity">0.5</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">Widgets to switch the window's 
view.</property>
+                                    <property name="justify">center</property>
+                                    <property name="use_markup">true</property>
+                                    <property name="wrap">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">center</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkButton">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Run the demo</property>
+                                <signal name="clicked" handler="flap_demo_clicked_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="name">flap</property>
+                        <property name="title">Flap</property>
+                      </packing>
+                    </child>
                   </object>
                 </child>
               </object>
diff --git a/examples/hdy-flap-demo-window.c b/examples/hdy-flap-demo-window.c
new file mode 100644
index 00000000..c4479046
--- /dev/null
+++ b/examples/hdy-flap-demo-window.c
@@ -0,0 +1,30 @@
+#include "hdy-flap-demo-window.h"
+
+#include <glib/gi18n.h>
+
+struct _HdyFlapDemoWindow
+{
+  HdyWindow parent_instance;
+};
+
+G_DEFINE_TYPE (HdyFlapDemoWindow, hdy_flap_demo_window, HDY_TYPE_WINDOW)
+
+static void
+hdy_flap_demo_window_class_init (HdyFlapDemoWindowClass *klass)
+{
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+  gtk_widget_class_set_template_from_resource (widget_class, 
"/sm/puri/Handy/Demo/ui/hdy-flap-demo-window.ui");
+}
+
+static void
+hdy_flap_demo_window_init (HdyFlapDemoWindow *self)
+{
+  gtk_widget_init_template (GTK_WIDGET (self));
+}
+
+HdyFlapDemoWindow *
+hdy_flap_demo_window_new (void)
+{
+  return g_object_new (HDY_TYPE_FLAP_DEMO_WINDOW, NULL);
+}
diff --git a/examples/hdy-flap-demo-window.h b/examples/hdy-flap-demo-window.h
new file mode 100644
index 00000000..9f74ac5c
--- /dev/null
+++ b/examples/hdy-flap-demo-window.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include <handy.h>
+
+G_BEGIN_DECLS
+
+#define HDY_TYPE_FLAP_DEMO_WINDOW (hdy_flap_demo_window_get_type())
+
+G_DECLARE_FINAL_TYPE (HdyFlapDemoWindow, hdy_flap_demo_window, HDY, FLAP_DEMO_WINDOW, HdyWindow)
+
+HdyFlapDemoWindow *hdy_flap_demo_window_new (void);
+
+G_END_DECLS
diff --git a/examples/hdy-flap-demo-window.ui b/examples/hdy-flap-demo-window.ui
new file mode 100644
index 00000000..51e04a46
--- /dev/null
+++ b/examples/hdy-flap-demo-window.ui
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="3.20"/>
+  <requires lib="libhandy" version="0.0"/>
+  <template class="HdyFlapDemoWindow" parent="HdyWindow">
+    <property name="can_focus">False</property>
+    <property name="modal">True</property>
+    <property name="window_position">center-on-parent</property>
+    <child>
+      <object class="GtkBox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <object class="HdyHeaderBar">
+            <property name="visible">True</property>
+            <property name="centering_policy">strict</property>
+            <property name="can_focus">False</property>
+            <property name="show_close_button">True</property>
+            <property name="title">HdyViewSwitcher Demo</property>
+            <child type="title">
+              <object class="HdyViewSwitcherTitle" id="switcher_title">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="stack">stack</property>
+                <property name="title" translatable="yes">View Switcher Example</property>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child>
+          <object class="GtkStack" id="stack">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin">24</property>
+                <property name="label" translatable="yes">World</property>
+              </object>
+              <packing>
+                <property name="name">page1</property>
+                <property name="title" translatable="yes">World</property>
+                <property name="icon_name">help-about-symbolic</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin">24</property>
+                <property name="label" translatable="yes">Alarm</property>
+              </object>
+              <packing>
+                <property name="name">page2</property>
+                <property name="title" translatable="yes">Alarm</property>
+                <property name="icon_name">alarm-symbolic</property>
+                <property name="position">1</property>
+                <property name="needs_attention">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin">24</property>
+                <property name="label" translatable="yes">Stopwatch</property>
+              </object>
+              <packing>
+                <property name="name">page3</property>
+                <property name="title" translatable="yes">Stopwatch</property>
+                <property name="icon_name">document-print-symbolic</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin">24</property>
+                <property name="label" translatable="yes">Timer</property>
+              </object>
+              <packing>
+                <property name="name">page0</property>
+                <property name="title" translatable="yes">Timer</property>
+                <property name="icon_name">weather-clear-symbolic</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="HdyViewSwitcherBar" id="switcher_bar">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="stack">stack</property>
+            <property name="reveal" bind-source="switcher_title" bind-property="title-visible" 
bind-flags="sync-create"/>
+          </object>
+        </child>
+      </object>
+    </child>
+  </template>
+</interface>
diff --git a/examples/meson.build b/examples/meson.build
index 883607e9..d95a89b8 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -12,6 +12,7 @@ handy_demo_sources = [
   'handy-demo.c',
   'hdy-demo-preferences-window.c',
   'hdy-demo-window.c',
+  'hdy-flap-demo-window.c',
   'hdy-view-switcher-demo-window.c',
   libhandy_generated_headers,
 ]


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