pub trait Widget<T> {
// Required method
fn paint(&mut self, canvas: Canvas<'_>, data: &T);
// Provided methods
fn layout(
&mut self,
parent: Size,
ctx: &LayoutCtx<'_>,
data: &T,
env: &Env
) -> Size { ... }
fn update(&mut self, ctx: &Context<'_>, data: &T) { ... }
fn event(
&mut self,
event: &WidgetEvent,
ctx: &Context<'_>,
data: &mut T
) -> ControlFlow<()> { ... }
fn lifecycle(
&mut self,
lifecycle: &WidgetLifecycle<'_>,
ctx: &Context<'_>,
data: &T,
env: &Env
) { ... }
fn frame(&mut self, surfaces: &Surfaces, data: &mut T) { ... }
fn cursor(&self) -> Option<&'static str> { ... }
fn contains(&self, point: Point) -> bool { ... }
fn display(&self) -> String { ... }
}
Expand description
A UI widget that can be painted on screen.
Required Methods§
Provided Methods§
sourcefn layout(
&mut self,
parent: Size,
ctx: &LayoutCtx<'_>,
data: &T,
env: &Env
) -> Size
fn layout( &mut self, parent: Size, ctx: &LayoutCtx<'_>, data: &T, env: &Env ) -> Size
Compute the widget layout.
sourcefn event(
&mut self,
event: &WidgetEvent,
ctx: &Context<'_>,
data: &mut T
) -> ControlFlow<()>
fn event( &mut self, event: &WidgetEvent, ctx: &Context<'_>, data: &mut T ) -> ControlFlow<()>
Process an external event.
Trait Implementations§
source§impl<T> Widget<T> for Box<dyn Widget<T>>
impl<T> Widget<T> for Box<dyn Widget<T>>
source§fn layout(
&mut self,
parent: Size,
ctx: &LayoutCtx<'_>,
data: &T,
env: &Env
) -> Size
fn layout( &mut self, parent: Size, ctx: &LayoutCtx<'_>, data: &T, env: &Env ) -> Size
Compute the widget layout.
source§fn event(
&mut self,
event: &WidgetEvent,
ctx: &Context<'_>,
data: &mut T
) -> ControlFlow<()>
fn event( &mut self, event: &WidgetEvent, ctx: &Context<'_>, data: &mut T ) -> ControlFlow<()>
Process an external event.