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>
impl<T: 'static> SimpleApp<T>
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>>>>)
pub fn draw_unzoomed(&self, g: &mut GfxCtx<'_>)
pub fn draw_zoomed(&self, g: &mut GfxCtx<'_>, opts: DrawOptions)
sourcepub fn recalculate_current_selection(&mut self, ctx: &EventCtx<'_>)
pub fn recalculate_current_selection(&mut self, ctx: &EventCtx<'_>)
Assumes some defaults.
pub fn mouseover_unzoomed_roads_and_intersections( &self, ctx: &EventCtx<'_> ) -> Option<ID>
sourcepub fn mouseover_unzoomed_buildings(&self, ctx: &EventCtx<'_>) -> Option<ID>
pub fn mouseover_unzoomed_buildings(&self, ctx: &EventCtx<'_>) -> Option<ID>
Only select buildings, and work whether zoomed in or not.
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>
impl<T: 'static> AppLike for SimpleApp<T>
fn map(&self) -> &Map
fn cs(&self) -> &ColorScheme
fn mut_cs(&mut self) -> &mut ColorScheme
fn draw_map(&self) -> &DrawMap
fn mut_draw_map(&mut self) -> &mut DrawMap
fn opts(&self) -> &Options
fn mut_opts(&mut self) -> &mut Options
fn map_switched( &mut self, ctx: &mut EventCtx<'_>, map: Map, timer: &mut Timer<'_> )
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>>>
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.fn sim_time(&self) -> Time
fn current_stage_and_remaining_time( &self, id: IntersectionID ) -> (usize, Duration)
source§fn change_color_scheme(
&mut self,
ctx: &mut EventCtx<'_>,
cs: ColorSchemeChoice
) -> bool
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§fn draw_default(&self, g: &mut GfxCtx<'_>)
fn draw_default(&self, g: &mut GfxCtx<'_>)
When DrawBaselayer::DefaultDraw is called, run this.
source§fn dump_before_abort(&self, canvas: &Canvas)
fn dump_before_abort(&self, canvas: &Canvas)
Will be called if
State::event
or State::draw
panics.source§fn before_quit(&self, canvas: &Canvas)
fn before_quit(&self, canvas: &Canvas)
Called before a normal exit, like window close
source§fn free_memory(&mut self)
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)
fn before_event(&mut self)
Before
State::event
is called, call this.source§impl<T> State<SimpleApp<T>> for SimpleWarper
impl<T> State<SimpleApp<T>> for SimpleWarper
source§fn event(
&mut self,
ctx: &mut EventCtx<'_>,
_: &mut SimpleApp<T>
) -> Transition<SimpleApp<T>>
fn event( &mut self, ctx: &mut EventCtx<'_>, _: &mut SimpleApp<T> ) -> Transition<SimpleApp<T>>
Respond to a UI event, such as input or time passing.
§fn draw_baselayer(&self) -> DrawBaselayer
fn draw_baselayer(&self) -> DrawBaselayer
Specifies what to draw before draw()
§fn on_destroy(&mut self, _: &mut EventCtx<'_>, _: &mut A)
fn on_destroy(&mut self, _: &mut EventCtx<'_>, _: &mut A)
Before this state is popped or replaced, call this.
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn 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>
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)
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)
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.