From 6c2d4b1ff145bb4bdcaaf83ca45973df15fe3ae0 Mon Sep 17 00:00:00 2001 From: Ilya Zlobintsev Date: Fri, 17 Nov 2023 22:23:23 +0200 Subject: [PATCH] feat: SoftwarePage in blueprint feat: PageSection --- lact-gui/src/app/info_row.rs | 72 ++++++++ lact-gui/src/app/mod.rs | 2 + lact-gui/src/app/page_section.rs | 70 ++++++++ lact-gui/src/app/root_stack/info_page/mod.rs | 8 +- lact-gui/src/app/root_stack/mod.rs | 30 +--- .../app/root_stack/oc_page/clocks_frame.rs | 6 +- lact-gui/src/app/root_stack/oc_page/mod.rs | 2 - .../root_stack/oc_page/performance_frame.rs | 6 +- .../app/root_stack/oc_page/power_cap_frame.rs | 6 +- .../src/app/root_stack/oc_page/stats_frame.rs | 6 +- lact-gui/src/app/root_stack/software_page.rs | 167 +++++++++--------- .../src/app/root_stack/thermals_page/mod.rs | 8 +- lact-gui/src/lib.rs | 2 +- lact-gui/ui/info_row.blp | 21 +++ lact-gui/ui/page_section.blp | 15 ++ lact-gui/ui/software_page.blp | 25 +++ 16 files changed, 309 insertions(+), 137 deletions(-) create mode 100644 lact-gui/src/app/info_row.rs create mode 100644 lact-gui/src/app/page_section.rs create mode 100644 lact-gui/ui/info_row.blp create mode 100644 lact-gui/ui/page_section.blp create mode 100644 lact-gui/ui/software_page.blp diff --git a/lact-gui/src/app/info_row.rs b/lact-gui/src/app/info_row.rs new file mode 100644 index 0000000..426c525 --- /dev/null +++ b/lact-gui/src/app/info_row.rs @@ -0,0 +1,72 @@ +use gtk::glib::{self, Object}; + +glib::wrapper! { + pub struct InfoRow(ObjectSubclass) + @extends gtk::Box, gtk::Widget, + @implements gtk::Orientable, gtk::Accessible, gtk::Buildable; +} + +impl InfoRow { + pub fn new(name: &str, value: &str) -> Self { + Object::builder() + .property("name", name) + .property("value", value) + .build() + } +} + +mod imp { + use glib::Properties; + use gtk::{ + glib::{self, subclass::InitializingObject}, + pango::AttrList, + prelude::*, + subclass::{ + prelude::*, + widget::{CompositeTemplateClass, WidgetImpl}, + }, + CompositeTemplate, Label, TemplateChild, + }; + use std::{cell::RefCell, str::FromStr}; + + #[derive(CompositeTemplate, Default, Properties)] + #[properties(wrapper_type = super::InfoRow)] + #[template(file = "ui/info_row.blp")] + pub struct InfoRow { + #[property(get, set)] + name: RefCell, + #[property(get, set)] + value: RefCell, + + #[template_child] + value_label: TemplateChild