Trait widgetry::app_state::SimpleState[][src]

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

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!().

Provided methods

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition.

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events.

Implementations

Implementors