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
sourceimpl<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: 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
sourceimpl<T: 'static> AppLike for SimpleApp<T>
impl<T: 'static> AppLike for SimpleApp<T>
fn map(&self) -> &Map
fn sim(&self) -> &Sim
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)
sourcefn 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)
sourcefn 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.
sourcefn draw_default(&self, g: &mut GfxCtx<'_>)
fn draw_default(&self, g: &mut GfxCtx<'_>)
When DrawBaselayer::DefaultDraw is called, run this.
sourcefn dump_before_abort(&self, canvas: &Canvas)
fn dump_before_abort(&self, canvas: &Canvas)
Will be called if State::event
or State::draw
panics.
sourcefn before_quit(&self, canvas: &Canvas)
fn before_quit(&self, canvas: &Canvas)
Called before a normal exit, like window close
sourcefn 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. Read more
fn before_event(&mut self)
fn before_event(&mut self)
Before State::event
is called, call this.
sourceimpl<T> State<SimpleApp<T>> for SimpleWarper
impl<T> State<SimpleApp<T>> for SimpleWarper
sourcefn 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> !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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn 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 T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
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. Read more
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. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more