Trait widgetry::app_state::SimpleState
source · [−]pub trait SimpleState<A> {
fn on_click(
&mut self,
ctx: &mut EventCtx<'_>,
app: &mut A,
action: &str,
panel: &mut Panel
) -> Transition<A>;
fn on_click_custom(
&mut self,
_ctx: &mut EventCtx<'_>,
_app: &mut A,
_action: Box<dyn CloneableAny>,
_panel: &mut Panel
) -> Transition<A> { ... }
fn panel_changed(
&mut self,
_: &mut EventCtx<'_>,
_: &mut A,
_: &mut Panel
) -> Option<Transition<A>> { ... }
fn on_mouseover(&mut self, _: &mut EventCtx<'_>, _: &mut A) { ... }
fn other_event(&mut self, _: &mut EventCtx<'_>, _: &mut A) -> Transition<A> { ... }
fn draw(&self, _: &mut GfxCtx<'_>, _: &A) { ... }
fn draw_baselayer(&self) -> DrawBaselayer { ... }
}
Expand description
Many states fit a pattern of managing a single panel, handling mouseover events, and other
interactions on the map. Implementing this instead of State
reduces some boilerplate.
Required Methods
Provided Methods
fn on_click_custom(
&mut self,
_ctx: &mut EventCtx<'_>,
_app: &mut A,
_action: Box<dyn CloneableAny>,
_panel: &mut Panel
) -> Transition<A>
fn on_click_custom(
&mut self,
_ctx: &mut EventCtx<'_>,
_app: &mut A,
_action: Box<dyn CloneableAny>,
_panel: &mut Panel
) -> Transition<A>
Called when something on the panel has been clicked.
fn panel_changed(
&mut self,
_: &mut EventCtx<'_>,
_: &mut A,
_: &mut Panel
) -> Option<Transition<A>>
fn panel_changed(
&mut self,
_: &mut EventCtx<'_>,
_: &mut A,
_: &mut Panel
) -> Option<Transition<A>>
Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition.
fn on_mouseover(&mut self, _: &mut EventCtx<'_>, _: &mut A)
fn on_mouseover(&mut self, _: &mut EventCtx<'_>, _: &mut A)
Called when the mouse has moved.
fn other_event(&mut self, _: &mut EventCtx<'_>, _: &mut A) -> Transition<A>
fn other_event(&mut self, _: &mut EventCtx<'_>, _: &mut A) -> Transition<A>
If a panel on_click
event didn’t occur and panel_changed
didn’t return transition, then
call this to handle all other events.