handles (tuple)

This commit is contained in:
2025-12-11 07:30:59 -05:00
parent 36668c82f4
commit 2dad409300
5 changed files with 36 additions and 40 deletions

View File

@@ -1,7 +1,7 @@
use super::*;
use std::marker::Unsize;
pub trait WidgetLike<Tag> {
pub trait WidgetLike<Tag>: Sized {
type Widget: Widget + ?Sized + Unsize<dyn Widget> + 'static;
fn add(self, ui: &mut Ui) -> WidgetHandle<Self::Widget>;
@@ -9,22 +9,20 @@ pub trait WidgetLike<Tag> {
fn with_id<W2>(
self,
f: impl FnOnce(&mut Ui, WidgetHandle<Self::Widget>) -> WidgetHandle<W2>,
) -> impl WidgetIdFn<W2>
where
Self: Sized,
{
) -> impl WidgetIdFn<W2> {
move |ui| {
let id = self.add(ui);
f(ui, id)
}
}
fn set_root(self, ui: &mut Ui)
where
Self: Sized,
{
fn set_root(self, ui: &mut Ui) {
ui.set_root(self);
}
fn handles(self, ui: &mut Ui) -> WidgetHandles<Self::Widget> {
self.add(ui).handles()
}
}
pub trait WidgetArrLike<const LEN: usize, Tag> {