This commit is contained in:
2025-11-11 13:55:36 -05:00
parent 92db1264a6
commit deaf730901
9 changed files with 87 additions and 3 deletions

View File

@@ -44,6 +44,7 @@ pub struct WidgetInstance {
pub resize: Option<(Id, UiVec2)>,
pub mask: MaskIdx,
pub layer: usize,
pub desired_size: UiVec2,
}
#[derive(Default)]
@@ -178,6 +179,17 @@ impl<'a> PainterCtx<'a> {
// draw widgets
painter.ctx.widgets.get_dyn_dynamic(id).draw(&mut painter);
let desired_size = SizeCtx {
text: painter.ctx.text,
textures: painter.ctx.textures,
widgets: painter.ctx.widgets,
checked: &mut Default::default(),
screen_size: painter.ctx.screen_size,
px_dependent: painter.ctx.px_dependent,
id: painter.id,
region: UiRegion::full(),
}
.size_raw(id);
let sized_children = painter.sized_children;
@@ -191,6 +203,7 @@ impl<'a> PainterCtx<'a> {
children: painter.children,
resize,
mask: painter.mask,
desired_size,
layer,
};
for (cid, size) in sized_children {
@@ -394,6 +407,9 @@ impl SizeCtx<'_> {
// }
self.size_inner(id.id, self.region)
}
fn size_raw(&mut self, id: Id) -> UiVec2 {
self.size_inner(id, self.region)
}
pub fn size_within<W>(&mut self, id: &WidgetId<W>, region: UiRegion) -> UiVec2 {
self.size_inner(id.id, region.within(&self.region))
}