Paginator

This commit is contained in:
2025-11-01 09:48:04 +01:00
parent 9d4b247b2a
commit 29432a939b
+8 -18
View File
@@ -10,7 +10,6 @@ use crate::{
pub struct Paginator { pub struct Paginator {
children: Vec<Arc<Widget>>, children: Vec<Arc<Widget>>,
size: (u16, u16),
index: usize, index: usize,
} }
@@ -18,7 +17,6 @@ impl Paginator {
pub fn new() -> Self { pub fn new() -> Self {
Self { Self {
children: Vec::new(), children: Vec::new(),
size: (0, 0),
index: 0, index: 0,
} }
} }
@@ -27,28 +25,20 @@ impl Paginator {
impl Element for Paginator { impl Element for Paginator {
fn render( fn render(
&mut self, &mut self,
scope: &mut crate::render_scope::RenderScope, parent_scope: &mut crate::render_scope::RenderScope,
_: &crate::render_scope::RenderContext,
) {
let (width, height) = scope.get_size_or(self.size.0, self.size.1);
scope.use_area(width, height);
}
fn after_render(
&mut self,
scope: &mut crate::render_scope::RenderScope,
render_context: &crate::render_scope::RenderContext, render_context: &crate::render_scope::RenderContext,
) { ) {
if let Some(widget) = self.children.get(self.index) { if let Some(widget) = self.children.get(self.index) {
let mut transform = scope.get_transform().clone(); let mut transform = parent_scope.get_transform().clone();
let mut renderer = DivRenderer(&mut transform); let (w, h) = parent_scope.get_size_or_parent();
let (w, h) = scope.get_parent_size();
scope.set_parent_size(renderer.0.width, renderer.0.height);
let mut scope = crate::render_scope::RenderScope::new();
scope.set_parent_size(w, h);
let mut renderer = DivRenderer(&mut transform);
scope.render_widget(&mut renderer, render_context.get_context(), widget); scope.render_widget(&mut renderer, render_context.get_context(), widget);
scope.set_parent_size(w, h); parent_scope.use_area(w, h);
self.size = (renderer.0.width, renderer.0.height);
} }
} }