From ab3e0439e12dee592a8f6fe2a968e4bb429a60f8 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Sun, 22 Dec 2024 18:28:32 +0000 Subject: Adds other views --- schist_gtk4_gui/src/balances_view.rs | 56 ++++++++++++++++++++++++++ schist_gtk4_gui/src/category_transfers_view.rs | 56 ++++++++++++++++++++++++++ schist_gtk4_gui/src/lib.rs | 3 ++ schist_gtk4_gui/src/transactions_view.rs | 56 ++++++++++++++++++++++++++ schist_gtk4_gui/src/window.rs | 15 ++++++- 5 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 schist_gtk4_gui/src/balances_view.rs create mode 100644 schist_gtk4_gui/src/category_transfers_view.rs create mode 100644 schist_gtk4_gui/src/transactions_view.rs (limited to 'schist_gtk4_gui/src') diff --git a/schist_gtk4_gui/src/balances_view.rs b/schist_gtk4_gui/src/balances_view.rs new file mode 100644 index 0000000..5afb192 --- /dev/null +++ b/schist_gtk4_gui/src/balances_view.rs @@ -0,0 +1,56 @@ +use gtk::{ + glib::{ + self, + subclass::{ + object::{ObjectImpl, ObjectImplExt}, + types::ObjectSubclass, + InitializingObject, + }, + Object, + }, + subclass::{ + box_::BoxImpl, + widget::{CompositeTemplateClass, CompositeTemplateInitializingExt, WidgetImpl}, + }, +}; + +glib::wrapper! { + pub struct SchistBalancesView(ObjectSubclass) + @extends gtk::Box, gtk::Widget, + @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable; +} + +impl SchistBalancesView { + pub fn new() -> Self { + Object::builder().build() + } +} + +#[derive(gtk::CompositeTemplate, Default)] +#[template(resource = "/net/joeac/schist/ui/balances_view.ui")] +pub struct SchistBalancesViewImpl {} + +#[glib::object_subclass] +impl ObjectSubclass for SchistBalancesViewImpl { + const NAME: &'static str = "SchistBalancesView"; + type Type = SchistBalancesView; + 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 SchistBalancesViewImpl { + fn constructed(&self) { + self.parent_constructed(); + } +} + +impl WidgetImpl for SchistBalancesViewImpl {} + +impl BoxImpl for SchistBalancesViewImpl {} diff --git a/schist_gtk4_gui/src/category_transfers_view.rs b/schist_gtk4_gui/src/category_transfers_view.rs new file mode 100644 index 0000000..286a20c --- /dev/null +++ b/schist_gtk4_gui/src/category_transfers_view.rs @@ -0,0 +1,56 @@ +use gtk::{ + glib::{ + self, + subclass::{ + object::{ObjectImpl, ObjectImplExt}, + types::ObjectSubclass, + InitializingObject, + }, + Object, + }, + subclass::{ + box_::BoxImpl, + widget::{CompositeTemplateClass, CompositeTemplateInitializingExt, WidgetImpl}, + }, +}; + +glib::wrapper! { + pub struct SchistCategoryTransfersView(ObjectSubclass) + @extends gtk::Box, gtk::Widget, + @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable; +} + +impl SchistCategoryTransfersView { + pub fn new() -> Self { + Object::builder().build() + } +} + +#[derive(gtk::CompositeTemplate, Default)] +#[template(resource = "/net/joeac/schist/ui/category_transfers_view.ui")] +pub struct SchistCategoryTransfersViewImpl {} + +#[glib::object_subclass] +impl ObjectSubclass for SchistCategoryTransfersViewImpl { + const NAME: &'static str = "SchistCategoryTransfersView"; + type Type = SchistCategoryTransfersView; + 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 SchistCategoryTransfersViewImpl { + fn constructed(&self) { + self.parent_constructed(); + } +} + +impl WidgetImpl for SchistCategoryTransfersViewImpl {} + +impl BoxImpl for SchistCategoryTransfersViewImpl {} diff --git a/schist_gtk4_gui/src/lib.rs b/schist_gtk4_gui/src/lib.rs index 7455d83..10240b0 100644 --- a/schist_gtk4_gui/src/lib.rs +++ b/schist_gtk4_gui/src/lib.rs @@ -1,4 +1,7 @@ +mod balances_view; mod categories_view; +mod category_transfers_view; +mod transactions_view; mod window; use gtk::{gdk::Display, gio, glib, prelude::*, Application, CssProvider}; diff --git a/schist_gtk4_gui/src/transactions_view.rs b/schist_gtk4_gui/src/transactions_view.rs new file mode 100644 index 0000000..39a2a98 --- /dev/null +++ b/schist_gtk4_gui/src/transactions_view.rs @@ -0,0 +1,56 @@ +use gtk::{ + glib::{ + self, + subclass::{ + object::{ObjectImpl, ObjectImplExt}, + types::ObjectSubclass, + InitializingObject, + }, + Object, + }, + subclass::{ + box_::BoxImpl, + widget::{CompositeTemplateClass, CompositeTemplateInitializingExt, WidgetImpl}, + }, +}; + +glib::wrapper! { + pub struct SchistTransactionsView(ObjectSubclass) + @extends gtk::Box, gtk::Widget, + @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable; +} + +impl SchistTransactionsView { + pub fn new() -> Self { + Object::builder().build() + } +} + +#[derive(gtk::CompositeTemplate, Default)] +#[template(resource = "/net/joeac/schist/ui/transactions_view.ui")] +pub struct SchistTransactionsViewImpl {} + +#[glib::object_subclass] +impl ObjectSubclass for SchistTransactionsViewImpl { + const NAME: &'static str = "SchistTransactionsView"; + type Type = SchistTransactionsView; + 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 SchistTransactionsViewImpl { + fn constructed(&self) { + self.parent_constructed(); + } +} + +impl WidgetImpl for SchistTransactionsViewImpl {} + +impl BoxImpl for SchistTransactionsViewImpl {} diff --git a/schist_gtk4_gui/src/window.rs b/schist_gtk4_gui/src/window.rs index b612e92..b3cea35 100644 --- a/schist_gtk4_gui/src/window.rs +++ b/schist_gtk4_gui/src/window.rs @@ -19,7 +19,11 @@ use gtk::{ TemplateChild, }; -use crate::categories_view::SchistCategoriesView; +use crate::{ + balances_view::SchistBalancesView, categories_view::SchistCategoriesView, + category_transfers_view::SchistCategoryTransfersView, + transactions_view::SchistTransactionsView, +}; gtk::glib::wrapper! { pub struct SchistWindow(ObjectSubclass) @@ -37,8 +41,17 @@ impl SchistWindow { #[derive(gtk::CompositeTemplate, Default)] #[template(resource = "/net/joeac/schist/ui/window.ui")] pub struct SchistWindowSubclass { + #[template_child] + pub balances_view: TemplateChild, + #[template_child] pub categories_view: TemplateChild, + + #[template_child] + pub category_transfers_view: TemplateChild, + + #[template_child] + pub transactions_view: TemplateChild, } #[glib::object_subclass] -- cgit v1.2.3