pub trait Overlay<Message, Renderer>where
    Renderer: Renderer,{
    // Required methods
    fn layout(&self, renderer: &Renderer, bounds: Size, position: Point) -> Node;
    fn draw(
        &self,
        renderer: &mut Renderer,
        theme: &Renderer::Theme,
        style: &Style,
        layout: Layout<'_>,
        cursor_position: Point
    );

    // Provided methods
    fn operate(
        &mut self,
        _layout: Layout<'_>,
        _renderer: &Renderer,
        _operation: &mut dyn Operation<Message>
    ) { ... }
    fn on_event(
        &mut self,
        _event: Event,
        _layout: Layout<'_>,
        _cursor_position: Point,
        _renderer: &Renderer,
        _clipboard: &mut dyn Clipboard,
        _shell: &mut Shell<'_, Message>
    ) -> Status { ... }
    fn mouse_interaction(
        &self,
        _layout: Layout<'_>,
        _cursor_position: Point,
        _viewport: &Rectangle,
        _renderer: &Renderer
    ) -> Interaction { ... }
    fn is_over(&self, layout: Layout<'_>, cursor_position: Point) -> bool { ... }
}
Expand description

An interactive component that can be displayed on top of other widgets.

Required Methods§

source

fn layout(&self, renderer: &Renderer, bounds: Size, position: Point) -> Node

Returns the layout Node of the Overlay.

This Node is used by the runtime to compute the Layout of the user interface.

source

fn draw( &self, renderer: &mut Renderer, theme: &Renderer::Theme, style: &Style, layout: Layout<'_>, cursor_position: Point )

Draws the Overlay using the associated Renderer.

Provided Methods§

source

fn operate( &mut self, _layout: Layout<'_>, _renderer: &Renderer, _operation: &mut dyn Operation<Message> )

Applies a widget::Operation to the Overlay.

source

fn on_event( &mut self, _event: Event, _layout: Layout<'_>, _cursor_position: Point, _renderer: &Renderer, _clipboard: &mut dyn Clipboard, _shell: &mut Shell<'_, Message> ) -> Status

Processes a runtime Event.

It receives:

  • an Event describing user interaction
  • the computed Layout of the Overlay
  • the current cursor position
  • a mutable Message list, allowing the Overlay to produce new messages based on user interaction.
  • the Renderer
  • a Clipboard, if available

By default, it does nothing.

source

fn mouse_interaction( &self, _layout: Layout<'_>, _cursor_position: Point, _viewport: &Rectangle, _renderer: &Renderer ) -> Interaction

Returns the current mouse::Interaction of the Overlay.

By default, it returns mouse::Interaction::Idle.

source

fn is_over(&self, layout: Layout<'_>, cursor_position: Point) -> bool

Returns true if the cursor is over the Overlay.

By default, it returns true if the bounds of the layout contain the cursor_position.

Implementors§

source§

impl<'a, Message, Renderer> Overlay<Message, Renderer> for Group<'a, Message, Renderer>where Renderer: Renderer,