pub struct DrawWithTooltips {
draw: Drawable,
tooltips: Vec<(Polygon, Text, Option<ClickOutcome>)>,
hover: Box<dyn Fn(&Polygon) -> GeomBatch>,
hovering_on_idx: Option<usize>,
top_left: ScreenPt,
dims: ScreenDims,
}
Fields
draw: Drawable
tooltips: Vec<(Polygon, Text, Option<ClickOutcome>)>
hover: Box<dyn Fn(&Polygon) -> GeomBatch>
hovering_on_idx: Option<usize>
top_left: ScreenPt
dims: ScreenDims
Implementations
sourceimpl DrawWithTooltips
impl DrawWithTooltips
sourcepub fn new_widget(
ctx: &EventCtx<'_>,
batch: GeomBatch,
tooltips: Vec<(Polygon, Text, Option<ClickOutcome>)>,
hover: Box<dyn Fn(&Polygon) -> GeomBatch>
) -> Widget
pub fn new_widget(
ctx: &EventCtx<'_>,
batch: GeomBatch,
tooltips: Vec<(Polygon, Text, Option<ClickOutcome>)>,
hover: Box<dyn Fn(&Polygon) -> GeomBatch>
) -> Widget
batch
: the GeomBatch
to draw
tooltips
: (hitbox, text, clickable action) tuples where each text
is shown when the
user hovers over the respective hitbox
. If an action is present and the user
clicks the hitbox
, then it acts like a button click. It’s assumed the
hitboxes are non-overlapping.
hover
: returns a GeomBatch to render upon hovering. Return an GeomBox::new()
if
you want hovering to be a no-op
Trait Implementations
sourceimpl WidgetImpl for DrawWithTooltips
impl WidgetImpl for DrawWithTooltips
sourcefn get_dims(&self) -> ScreenDims
fn get_dims(&self) -> ScreenDims
What width and height does the widget occupy? If this changes, be sure to set
redo_layout
to true in event
. Read more
sourcefn set_pos(&mut self, top_left: ScreenPt)
fn set_pos(&mut self, top_left: ScreenPt)
Your widget’s top left corner should be here. Handle mouse events and draw appropriately.
sourcefn event(&mut self, ctx: &mut EventCtx<'_>, output: &mut WidgetOutput)
fn event(&mut self, ctx: &mut EventCtx<'_>, output: &mut WidgetOutput)
Your chance to react to an event. Any side effects outside of this widget are communicated through the output. Read more
sourcefn draw(&self, g: &mut GfxCtx<'_>)
fn draw(&self, g: &mut GfxCtx<'_>)
Draw the widget. Be sure to draw relative to the top-left specified by set_pos
.
sourcefn can_restore(&self) -> bool
fn can_restore(&self) -> bool
If a new Panel is being created to replace an older one, all widgets have the chance to preserve state from the previous version. Read more
sourcefn restore(&mut self, _: &mut EventCtx<'_>, _prev: &dyn WidgetImpl)
fn restore(&mut self, _: &mut EventCtx<'_>, _prev: &dyn WidgetImpl)
Restore state from the previous version of this widget, with the same ID. Implementors must downcast. Read more
Auto Trait Implementations
impl !RefUnwindSafe for DrawWithTooltips
impl !Send for DrawWithTooltips
impl !Sync for DrawWithTooltips
impl Unpin for DrawWithTooltips
impl !UnwindSafe for DrawWithTooltips
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub 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,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub 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
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub 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
pub fn as_any(&self) -> &(dyn Any + 'static)
pub 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
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub 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
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self