From c58f071d80e46c5e006756bf808dc312dfd51d27 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Mon, 13 Jul 2026 09:14:00 -0400 Subject: [PATCH] Widget structure --- pulse-ui/src/StateManagement.mist | 25 ------------------------- pulse-ui/src/units.mist | 18 ++++++++++++++++++ pulse-ui/src/widget.mist | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+), 25 deletions(-) delete mode 100644 pulse-ui/src/StateManagement.mist create mode 100644 pulse-ui/src/units.mist create mode 100644 pulse-ui/src/widget.mist diff --git a/pulse-ui/src/StateManagement.mist b/pulse-ui/src/StateManagement.mist deleted file mode 100644 index 603a50d..0000000 --- a/pulse-ui/src/StateManagement.mist +++ /dev/null @@ -1,25 +0,0 @@ -pub module state_management; - -use std::sync::Arc; -use std::sync::Mutex; -use std::sync::LockResult; -use std::sync::MutexGuard; - -pub trait Dependent -{ - void update(&self); -} - -pub struct State -{ - pub Box dependent; - pub Arc> data; -} - -impl State -{ - LockResult> lock(&self) - { - self.data.lock() - } -} diff --git a/pulse-ui/src/units.mist b/pulse-ui/src/units.mist new file mode 100644 index 0000000..f55e633 --- /dev/null +++ b/pulse-ui/src/units.mist @@ -0,0 +1,18 @@ +pub module units; + +pub enum Position +{ + Char(u16); + ScreenUnits { u16 units; u16 div; }; + Percent(u16); + Center; + End; +} + +pub enum Size +{ + Char(u16); + ScreenUnits { u16 units; u16 div; }; + Percent(u16); + Full; +} diff --git a/pulse-ui/src/widget.mist b/pulse-ui/src/widget.mist new file mode 100644 index 0000000..056a576 --- /dev/null +++ b/pulse-ui/src/widget.mist @@ -0,0 +1,18 @@ +pub module widget; + +use crate::units; + +class Widget +{ + units::Position x = units::Position::Char(0); + units::Position y = units::Position::Char(0); + + units::Size width = units::Size::Full; + units::Size height = units::Size::Full; + + pub constructor() {} + + void render(&self) {} + + void update(&mut self) {} +}