[gnome-todo] window: Subclass AdwApplicationWindow
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] window: Subclass AdwApplicationWindow
- Date: Mon, 5 Apr 2021 15:22:49 +0000 (UTC)
commit 67329b431d94864b5a5cdd21e789c79cb1734583
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sat Apr 3 19:05:31 2021 -0300
window: Subclass AdwApplicationWindow
Subclass AdwApplicationWindow, and add an intermediary AdwLeafLet to handle
adaptativeness.
src/gui/gtd-window.c | 4 +-
src/gui/gtd-window.h | 4 +-
src/gui/gtd-window.ui | 207 ++++++++++++++++++++++++++++----------------------
3 files changed, 119 insertions(+), 96 deletions(-)
---
diff --git a/src/gui/gtd-window.c b/src/gui/gtd-window.c
index 21f741ad..d72e9a5d 100644
--- a/src/gui/gtd-window.c
+++ b/src/gui/gtd-window.c
@@ -56,7 +56,7 @@
struct _GtdWindow
{
- GtkApplicationWindow application;
+ AdwApplicationWindow application;
GtkHeaderBar *headerbar;
GtkBox *headerbar_box;
@@ -98,7 +98,7 @@ enum
static GParamSpec *properties[N_PROPS] = { NULL, };
-G_DEFINE_TYPE (GtdWindow, gtd_window, GTK_TYPE_APPLICATION_WINDOW)
+G_DEFINE_TYPE (GtdWindow, gtd_window, ADW_TYPE_APPLICATION_WINDOW)
static gint compare_workspaced_func (gconstpointer a,
gconstpointer b,
diff --git a/src/gui/gtd-window.h b/src/gui/gtd-window.h
index 255c5ca7..594662d9 100644
--- a/src/gui/gtd-window.h
+++ b/src/gui/gtd-window.h
@@ -22,13 +22,13 @@
#include "gtd-types.h"
-#include <gtk/gtk.h>
+#include <adwaita.h>
G_BEGIN_DECLS
#define GTD_TYPE_WINDOW (gtd_window_get_type())
-G_DECLARE_FINAL_TYPE (GtdWindow, gtd_window, GTD, WINDOW, GtkApplicationWindow)
+G_DECLARE_FINAL_TYPE (GtdWindow, gtd_window, GTD, WINDOW, AdwApplicationWindow)
GtkWidget* gtd_window_new (GtdApplication *application);
diff --git a/src/gui/gtd-window.ui b/src/gui/gtd-window.ui
index 2595b146..c7b74f05 100644
--- a/src/gui/gtd-window.ui
+++ b/src/gui/gtd-window.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.16"/>
- <template class="GtdWindow" parent="GtkApplicationWindow">
+ <template class="GtdWindow" parent="AdwApplicationWindow">
<property name="default_width">800</property>
<property name="default_height">600</property>
@@ -21,101 +21,124 @@
<style>
<class name="org-gnome-Todo"/>
</style>
- <child>
- <object class="GtkOverlay" id="overlay">
- <child type="overlay">
- <object class="GtdNotificationWidget" id="notification_widget">
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="valign">start</property>
- </object>
- </child>
- <child type="overlay">
- <object class="GtkRevealer" id="headerbar_overlay_revealer">
- <property name="transition-type">slide-down</property>
- <property name="transition-duration">750</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- </object>
- </child>
- <child>
- <object class="GtkEventControllerMotion" id="overlay_motion_controller">
- <property name="propagation-phase">none</property>
- <signal name="motion" handler="on_overlay_motion_controller_motion_cb" object="GtdWindow"
swapped="no" />
- </object>
- </child>
+ <!-- Main leaflet -->
+ <child>
+ <object class="AdwLeaflet" id="content_box">
+ <property name="can-swipe-back">true</property>
+ <property name="width-request">360</property>
+
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="hexpand">true</property>
+
+ <child>
+ <object class="GtkBox" id="headerbar_box">
+ <child>
+ <object class="GtkHeaderBar" id="headerbar">
+ <property name="hexpand">1</property>
+ <property name="show-title-buttons">1</property>
+
+ <!-- Workspace Button -->
+ <child>
+ <object class="GtdMenuButton" id="workspaces_menu_button">
+ <property name="visible">false</property>
+ <property name="can_focus">1</property>
+ <property name="popover">workspaces_popover</property>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkBox" id="workspace_box_start">
+ <property name="spacing">6</property>
+ </object>
+ </child>
+
+ <!-- Omni Area -->
+ <child type="title">
+ <object class="GtdOmniArea" id="omni_area">
+ </object>
+ </child>
+
+
+ <child type="end">
+ <object class="GtkMenuButton">
+ <property name="menu-model">app-menu</property>
+ <property name="direction">none</property>
+ </object>
+ </child>
+
+ <!-- Fullscreen Button -->
+ <child type="end">
+ <object class="GtkToggleButton">
+ <property name="action-name">win.toggle-fullscreen</property>
+ <property name="icon-name">view-fullscreen-symbolic</property>
+ </object>
+ </child>
+
+ <child type="end">
+ <object class="GtkBox" id="workspace_box_end">
+ <property name="spacing">6</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkOverlay" id="overlay">
+ <child type="overlay">
+ <object class="GtdNotificationWidget" id="notification_widget">
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ </object>
+ </child>
+
+ <child type="overlay">
+ <object class="GtkRevealer" id="headerbar_overlay_revealer">
+ <property name="transition-type">slide-down</property>
+ <property name="transition-duration">750</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkEventControllerMotion" id="overlay_motion_controller">
+ <property name="propagation-phase">none</property>
+ <signal name="motion" handler="on_overlay_motion_controller_motion_cb"
object="GtdWindow" swapped="no" />
+ </object>
+ </child>
+
+ <!-- Main Stack -->
+ <child>
+ <object class="GtkStack" id="stack">
+ <property name="hexpand">true</property>
+ <property name="vexpand">true</property>
+ <property name="transition_duration">250</property>
+ <property name="transition_type">crossfade</property>
+ <signal name="notify::visible-child" handler="on_stack_visible_child_cb"
object="GtdWindow" swapped="no"/>
+ <style>
+ <class name="background"/>
+ </style>
+ </object>
+ </child>
+
+ </object>
+ </child>
+
+ </object>
+ </child>
+
+ </object>
+ </child>
+
- <!-- Main Stack -->
- <child>
- <object class="GtkStack" id="stack">
- <property name="hexpand">true</property>
- <property name="vexpand">true</property>
- <property name="transition_duration">250</property>
- <property name="transition_type">crossfade</property>
- <signal name="notify::visible-child" handler="on_stack_visible_child_cb" object="GtdWindow"
swapped="no"/>
- <style>
- <class name="background"/>
- </style>
- </object>
- </child>
- </object>
- </child>
- <child type="titlebar">
- <object class="GtkBox" id="headerbar_box">
- <child>
- <object class="GtkHeaderBar" id="headerbar">
- <property name="hexpand">1</property>
- <property name="show-title-buttons">1</property>
-
- <!-- Workspace Button -->
- <child>
- <object class="GtdMenuButton" id="workspaces_menu_button">
- <property name="visible">false</property>
- <property name="can_focus">1</property>
- <property name="popover">workspaces_popover</property>
- </object>
- </child>
-
- <child>
- <object class="GtkBox" id="workspace_box_start">
- <property name="spacing">6</property>
- </object>
- </child>
-
- <!-- Omni Area -->
- <child type="title">
- <object class="GtdOmniArea" id="omni_area">
- </object>
- </child>
-
-
- <child type="end">
- <object class="GtkMenuButton">
- <property name="menu-model">app-menu</property>
- <property name="direction">none</property>
- </object>
- </child>
-
- <!-- Fullscreen Button -->
- <child type="end">
- <object class="GtkToggleButton">
- <property name="action-name">win.toggle-fullscreen</property>
- <property name="icon-name">view-fullscreen-symbolic</property>
- </object>
- </child>
-
- <child type="end">
- <object class="GtkBox" id="workspace_box_end">
- <property name="spacing">6</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
</template>
<!-- Workspaces Popover -->
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]