Dynamic Widget system

This commit is contained in:
2025-07-28 15:02:22 +02:00
parent 00f7493741
commit 02bdca151b
7 changed files with 82 additions and 224 deletions
+3 -8
View File
@@ -1,14 +1,10 @@
use std::sync::Arc;
use crate::{
dependency::{Dependency, DependencyHandler},
widget::{Element, Widget},
Screen,
};
use crate::{state::DependencyHandler, widget::WidgetLoad, Screen};
pub struct Rsx(
pub Vec<(
Box<dyn FnMut() -> Box<dyn Element> + Send + Sync>,
Box<dyn FnMut() -> WidgetLoad + Send + Sync>,
Vec<std::sync::Arc<dyn DependencyHandler>>,
)>,
);
@@ -16,8 +12,7 @@ pub struct Rsx(
impl Rsx {
pub fn draw(self, screen: &Arc<Screen>) {
for i in self.0 {
let d = Dependency::from(i.0, i.1);
screen.draw_widget(Widget::new(Box::new(d)));
screen.draw_box(i.0);
}
}
}