pub trait Widget<Message, R, E: Event, S>where
R: Renderer,{
// Required methods
fn id(&self) -> Option<ElId>;
fn tree_ids(&self) -> Vec<ElId>;
fn size(&self) -> Size<Length>;
fn layout(
&self,
ctx: &mut UiCtx<Message>,
state: &mut StateNode,
styler: &S,
limits: &Limits,
viewport: &Viewport,
) -> LayoutNode;
fn draw(
&self,
ctx: &mut UiCtx<Message>,
state: &mut StateNode,
renderer: &mut R,
styler: &S,
layout: Layout<'_>,
);
// Provided methods
fn position(&self) -> Position { ... }
fn on_event(
&mut self,
ctx: &mut UiCtx<Message>,
event: E,
state: &mut StateNode,
) -> EventResponse<E> { ... }
fn state_tag(&self) -> StateTag { ... }
fn state(&self) -> State { ... }
fn state_children(&self) -> Vec<StateNode> { ... }
}Required Methods§
fn id(&self) -> Option<ElId>
fn tree_ids(&self) -> Vec<ElId>
fn size(&self) -> Size<Length>
fn layout( &self, ctx: &mut UiCtx<Message>, state: &mut StateNode, styler: &S, limits: &Limits, viewport: &Viewport, ) -> LayoutNode
fn draw( &self, ctx: &mut UiCtx<Message>, state: &mut StateNode, renderer: &mut R, styler: &S, layout: Layout<'_>, )
Provided Methods§
fn position(&self) -> Position
fn on_event( &mut self, ctx: &mut UiCtx<Message>, event: E, state: &mut StateNode, ) -> EventResponse<E>
fn state_tag(&self) -> StateTag
fn state(&self) -> State
fn state_children(&self) -> Vec<StateNode>
Trait Implementations§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".