typed stuff

This commit is contained in:
2025-12-17 00:55:36 -05:00
parent 1363f31fcd
commit 70ac0fbcb2
3 changed files with 7 additions and 0 deletions

View File

@@ -2,6 +2,7 @@
macro_rules! core_state { macro_rules! core_state {
($vis: vis $state: ty) => { ($vis: vis $state: ty) => {
$vis type WidgetHandle<W = dyn Widget<$state>> = $crate::WidgetHandle<$state, W>; $vis type WidgetHandle<W = dyn Widget<$state>> = $crate::WidgetHandle<$state, W>;
$vis type WidgetHandles<W = dyn Widget<$state>> = $crate::WidgetHandles<$state, W>;
$vis type WidgetRef<W = dyn Widget<$state>> = $crate::WidgetRef<$state, W>; $vis type WidgetRef<W = dyn Widget<$state>> = $crate::WidgetRef<$state, W>;
$vis type Ui = $crate::Ui<$state>; $vis type Ui = $crate::Ui<$state>;
}; };

View File

@@ -23,6 +23,7 @@ macro_rules! widget_state {
Masked, Masked,
WidgetPtr, WidgetPtr,
); );
$vis type TextBuilder<O = TextOutput, H: WidgetOption<$state> = ()> = $crate::widget::TextBuilder<$state, O, H>;
}; };
($vis:vis $state:ty; $($ty:ident,)*) => { ($vis:vis $state:ty; $($ty:ident,)*) => {
$($vis type $ty = $crate::widget::$ty<$state>;)* $($vis type $ty = $crate::widget::$ty<$state>;)*

View File

@@ -125,6 +125,11 @@ widget_trait! {
fn to_any(self) -> impl WidgetIdFn<State> { fn to_any(self) -> impl WidgetIdFn<State> {
|ui| self.add(ui) |ui| self.add(ui)
} }
fn set_ptr(self, ptr: WidgetRef<State, WidgetPtr<State>>, ui: &mut Ui<State>) {
let id = self.add(ui);
ui[ptr].inner = Some(id);
}
} }
pub trait CoreWidgetArr<State, const LEN: usize, Wa: WidgetArrLike<State, LEN, Tag>, Tag> { pub trait CoreWidgetArr<State, const LEN: usize, Wa: WidgetArrLike<State, LEN, Tag>, Tag> {