18 lines
424 B
Rust
18 lines
424 B
Rust
use crate::layout::{Widget, WidgetHandle, WidgetLike};
|
|
use std::marker::Unsize;
|
|
|
|
pub trait WidgetView {
|
|
type Widget: Widget + ?Sized + Unsize<dyn Widget> = dyn Widget;
|
|
fn view(self) -> WidgetHandle<Self::Widget>;
|
|
}
|
|
|
|
pub struct ViewTag;
|
|
|
|
impl<WV: WidgetView> WidgetLike<ViewTag> for WV {
|
|
type Widget = WV::Widget;
|
|
|
|
fn add(self, _ui: &mut super::Ui) -> WidgetHandle<Self::Widget> {
|
|
self.view()
|
|
}
|
|
}
|