This commit is contained in:
iris committed 2025-12-29 20:11:35 -05:00
1 parent 93291badc1
commit 1e4a7f8cf5
10 files changed
+60 -288

No files matched your search

+6 -23
View File
@@ -1,6 +1,5 @@
use crate::{
Axis, Len, RenderedText, Size, SizeCtx, TextAttrs, TextBuffer, TextData, TextureHandle,
UiRegion, Widget, WidgetHandle, WidgetId,
RenderedText, TextAttrs, TextBuffer, TextData, TextureHandle, UiRegion, WidgetHandle, WidgetId,
render::{Mask, MaskIdx, Primitive, PrimitiveHandle, PrimitiveInst},
ui::draw_state::DrawState,
util::Vec2,
@@ -57,6 +56,10 @@ impl<'a, 'c> Painter<'a, 'c> {
self.widget_at(id, self.region);
}
pub fn rest_hint(&self, id: &WidgetHandle) -> f32 {
self.state.widgets.data(id).unwrap().align
}
/// Draws a widget somewhere within this one.
/// Useful for drawing child widgets in select areas.
pub fn widget_within<W: ?Sized>(&mut self, id: &WidgetHandle<W>, region: UiRegion) {
@@ -66,7 +69,7 @@ impl<'a, 'c> Painter<'a, 'c> {
fn widget_at<W: ?Sized>(&mut self, id: &WidgetHandle<W>, region: UiRegion) {
self.children.push(id.id());
self.state
.draw_inner(self.layer, id.id(), region, Some(self.id), self.mask, None);
.draw_inner(self.layer, id.id(), region, Some(self.id), self.mask);
}
pub fn texture_within(&mut self, handle: &TextureHandle, region: UiRegion) {
@@ -79,11 +82,6 @@ impl<'a, 'c> Painter<'a, 'c> {
self.primitive(handle.primitive());
}
pub fn texture_at(&mut self, handle: &TextureHandle, region: UiRegion) {
self.textures.push(handle.clone());
self.primitive_at(handle.primitive(), region);
}
/// returns (handle, offset from top left)
pub fn render_text(&mut self, buffer: &mut TextBuffer, attrs: &TextAttrs) -> RenderedText {
self.state
@@ -96,17 +94,6 @@ impl<'a, 'c> Painter<'a, 'c> {
self.region
}
pub fn size<W: ?Sized + Widget>(&mut self, id: &WidgetHandle<W>) -> Size {
self.size_ctx().size(id)
}
pub fn len_axis<W: ?Sized + Widget>(&mut self, id: &WidgetHandle<W>, axis: Axis) -> Len {
match axis {
Axis::X => self.size_ctx().width(id),
Axis::Y => self.size_ctx().height(id),
}
}
pub fn output_size(&self) -> Vec2 {
self.state.output_size
}
@@ -134,8 +121,4 @@ impl<'a, 'c> Painter<'a, 'c> {
pub fn id(&self) -> &WidgetId {
&self.id
}
pub fn size_ctx(&mut self) -> SizeCtx<'_> {
self.state.size_ctx(self.id, self.region.size())
}
}