[−][src]Trait widgetry::WidgetImpl
Create a new widget by implementing this trait. You can instantiate your widget by calling
Widget::new(Box::new(instance of your new widget))
, which gives you the usual style options.
Required methods
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
.
fn set_pos(&mut self, top_left: ScreenPt)
Your widget's top left corner should be here. Handle mouse events and draw appropriately.
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.
fn draw(&self, g: &mut GfxCtx<'_>)
Draw the widget. Be sure to draw relative to the top-left specified by set_pos
.
Provided methods
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.
fn restore(&mut self, _: &mut EventCtx<'_>, _prev: &Box<dyn WidgetImpl>)
Restore state from the previous version of this widget, with the same ID. Implementors must downcast.
Implementations
impl dyn WidgetImpl
[src]
pub fn is<__T: WidgetImpl>(&self) -> bool
[src]
Returns true if the trait object wraps an object of type __T
.
pub fn downcast<__T: WidgetImpl>(self: Box<Self>) -> Result<Box<__T>, Box<Self>>
[src]
Returns a boxed object from a boxed trait object if the underlying object is of type
__T
. Returns the original boxed trait if it isn't.
pub fn downcast_rc<__T: WidgetImpl>(self: Rc<Self>) -> Result<Rc<__T>, Rc<Self>>
[src]
Returns an Rc
-ed object from an Rc
-ed trait object if the underlying object is of
type __T
. Returns the original Rc
-ed trait if it isn't.
pub fn downcast_ref<__T: WidgetImpl>(&self) -> Option<&__T>
[src]
Returns a reference to the object within the trait object if it is of type __T
, or
None
if it isn't.
pub fn downcast_mut<__T: WidgetImpl>(&mut self) -> Option<&mut __T>
[src]
Returns a mutable reference to the object within the trait object if it is of type
__T
, or None
if it isn't.