Struct map_gui::simple_app::SimpleApp

source ·
pub struct SimpleApp<T> {
    pub map: Map,
    pub draw_map: DrawMap,
    pub cs: ColorScheme,
    pub opts: Options,
    pub current_selection: Option<ID>,
    pub session: T,
    pub time: Time,
}
Expand description

Simple app state that just renders a static map, without any dynamic agents on the map.

Fields§

§map: Map§draw_map: DrawMap§cs: ColorScheme§opts: Options§current_selection: Option<ID>§session: T

Custom per-app state can be stored here

§time: Time

If desired, this can be advanced to render traffic signals changing.

Implementations§

source§

impl<T: 'static> SimpleApp<T>

source

pub fn new<F: 'static + Fn(&mut EventCtx<'_>, &mut SimpleApp<T>) -> Vec<Box<dyn State<SimpleApp<T>>>>>( ctx: &mut EventCtx<'_>, opts: Options, map_name: Option<MapName>, cam: Option<String>, session: T, init_states: F ) -> (SimpleApp<T>, Vec<Box<dyn State<SimpleApp<T>>>>)

source

pub fn draw_unzoomed(&self, g: &mut GfxCtx<'_>)

source

pub fn draw_zoomed(&self, g: &mut GfxCtx<'_>, opts: DrawOptions)

source

pub fn recalculate_current_selection(&mut self, ctx: &EventCtx<'_>)

Assumes some defaults.

source

pub fn mouseover_unzoomed_roads_and_intersections( &self, ctx: &EventCtx<'_> ) -> Option<ID>

source

pub fn mouseover_unzoomed_buildings(&self, ctx: &EventCtx<'_>) -> Option<ID>

Only select buildings, and work whether zoomed in or not.

source

fn calculate_current_selection( &self, ctx: &EventCtx<'_>, unzoomed_roads_and_intersections: bool, unzoomed_buildings: bool ) -> Option<ID>

Trait Implementations§

source§

impl<T: 'static> AppLike for SimpleApp<T>

source§

fn map(&self) -> &Map

source§

fn cs(&self) -> &ColorScheme

source§

fn mut_cs(&mut self) -> &mut ColorScheme

source§

fn draw_map(&self) -> &DrawMap

source§

fn mut_draw_map(&mut self) -> &mut DrawMap

source§

fn opts(&self) -> &Options

source§

fn mut_opts(&mut self) -> &mut Options

source§

fn map_switched( &mut self, ctx: &mut EventCtx<'_>, map: Map, timer: &mut Timer<'_> )

source§

fn draw_with_opts(&self, g: &mut GfxCtx<'_>, opts: DrawOptions)

source§

fn make_warper( &mut self, ctx: &EventCtx<'_>, pt: Pt2D, target_cam_zoom: Option<f64>, _: Option<ID> ) -> Box<dyn State<SimpleApp<T>>>

Create a widgetry::State that warps to the given point.
source§

fn sim_time(&self) -> Time

source§

fn current_stage_and_remaining_time( &self, id: IntersectionID ) -> (usize, Duration)

source§

fn change_color_scheme( &mut self, ctx: &mut EventCtx<'_>, cs: ColorSchemeChoice ) -> bool

Change the color scheme. Idempotent. Return true if there was a change.
source§

impl<T: 'static> SharedAppState for SimpleApp<T>

source§

fn draw_default(&self, g: &mut GfxCtx<'_>)

When DrawBaselayer::DefaultDraw is called, run this.
source§

fn dump_before_abort(&self, canvas: &Canvas)

Will be called if State::event or State::draw panics.
source§

fn before_quit(&self, canvas: &Canvas)

Called before a normal exit, like window close
source§

fn free_memory(&mut self)

If widgetry determines the video card is low on memory, this may be called. The application should make its best effort to delete any unused Drawables.
§

fn before_event(&mut self)

Before State::event is called, call this.
source§

impl<T> State<SimpleApp<T>> for SimpleWarper

source§

fn event( &mut self, ctx: &mut EventCtx<'_>, _: &mut SimpleApp<T> ) -> Transition<SimpleApp<T>>

Respond to a UI event, such as input or time passing.
source§

fn draw(&self, _: &mut GfxCtx<'_>, _: &SimpleApp<T>)

Draw
§

fn draw_baselayer(&self) -> DrawBaselayer

Specifies what to draw before draw()
§

fn on_destroy(&mut self, _: &mut EventCtx<'_>, _: &mut A)

Before this state is popped or replaced, call this.
§

fn recreate(&mut self, _: &mut EventCtx<'_>, _: &mut A) -> Box<dyn State<A>>

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately.

Auto Trait Implementations§

§

impl<T> !Freeze for SimpleApp<T>

§

impl<T> !RefUnwindSafe for SimpleApp<T>

§

impl<T> !Send for SimpleApp<T>

§

impl<T> !Sync for SimpleApp<T>

§

impl<T> Unpin for SimpleApp<T>
where T: Unpin,

§

impl<T> UnwindSafe for SimpleApp<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

§

fn is_within(&self, b: &G2) -> bool