diff --git a/Cargo.toml b/Cargo.toml
index 1671d46..aac0025 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-adw = { version = "0.5.2", package = "libadwaita", features = ["v1_2"] }
+adw = { version = "0.5.2", package = "libadwaita", features = ["v1_3"] }
gtk = { version = "0.7.1", package = "gtk4", features = ["v4_10"] }
log = { version = "0.4", features = ["max_level_debug", "release_max_level_info"] }
simplelog = "^0.12.0"
diff --git a/resources/app_view.ui b/resources/app_view.ui
new file mode 100644
index 0000000..9d424b9
--- /dev/null
+++ b/resources/app_view.ui
@@ -0,0 +1,13 @@
+
+
+
+ vertical
+ True
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/resources.gresource.xml b/resources/resources.gresource.xml
index b20d4c3..f6e222f 100644
--- a/resources/resources.gresource.xml
+++ b/resources/resources.gresource.xml
@@ -2,5 +2,6 @@
window.ui
+ app_view.ui
diff --git a/resources/window.ui b/resources/window.ui
index 2dca42f..339b6da 100644
--- a/resources/window.ui
+++ b/resources/window.ui
@@ -128,6 +128,9 @@
+
+
+
diff --git a/src/ui/appview/imp.rs b/src/ui/appview/imp.rs
new file mode 100644
index 0000000..aee0935
--- /dev/null
+++ b/src/ui/appview/imp.rs
@@ -0,0 +1,32 @@
+use adw::glib;
+use glib::subclass::InitializingObject;
+use gtk::CompositeTemplate;
+use gtk::prelude::*;
+use gtk::subclass::prelude::*;
+
+#[derive(Default, CompositeTemplate)]
+#[template(resource = "dev/fyloz/example/app_view.ui")]
+pub struct AppView {}
+
+#[glib::object_subclass]
+impl ObjectSubclass for AppView {
+ const NAME: &'static str = "CmAppView";
+ type Type = super::AppView;
+ type ParentType = gtk::Box;
+
+ fn class_init(klass: &mut Self::Class) {
+ klass.bind_template();
+ }
+
+ fn instance_init(obj: &InitializingObject) {
+ obj.init_template();
+ }
+}
+
+impl ObjectImpl for AppView {
+
+}
+
+impl WidgetImpl for AppView {}
+
+impl BoxImpl for AppView {}
\ No newline at end of file
diff --git a/src/ui/appview/mod.rs b/src/ui/appview/mod.rs
new file mode 100644
index 0000000..6fa6caf
--- /dev/null
+++ b/src/ui/appview/mod.rs
@@ -0,0 +1,9 @@
+use adw::glib;
+
+mod imp;
+
+glib::wrapper! {
+ pub struct AppView(ObjectSubclass)
+ @extends gtk::Box, gtk::Widget,
+ @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable;
+}
\ No newline at end of file
diff --git a/src/ui/mod.rs b/src/ui/mod.rs
index e7ec559..7d01859 100644
--- a/src/ui/mod.rs
+++ b/src/ui/mod.rs
@@ -1,2 +1,4 @@
pub mod objects;
pub mod window;
+
+pub mod appview;
diff --git a/src/ui/window/imp.rs b/src/ui/window/imp.rs
index cfbcb46..40f420f 100644
--- a/src/ui/window/imp.rs
+++ b/src/ui/window/imp.rs
@@ -9,6 +9,7 @@ use adw::subclass::prelude::*;
use glib::once_cell::sync::OnceCell;
use glib::subclass::InitializingObject;
use gtk::{gio, glib, CompositeTemplate, ListBox, TemplateChild, Stack};
+use crate::ui::appview::AppView;
#[derive(CompositeTemplate, Default)]
#[template(resource = "/dev/fyloz/example/window.ui")]
@@ -19,6 +20,8 @@ pub struct Window {
pub leaflet: TemplateChild,
#[template_child]
pub stack: TemplateChild,
+ #[template_child]
+ pub app_view: TemplateChild,
pub apps: OnceCell,
pub current_app: RefCell