diff options
Diffstat (limited to 'native/src/layer.rs')
-rw-r--r-- | native/src/layer.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/native/src/layer.rs b/native/src/layer.rs new file mode 100644 index 00000000..d89fb4e5 --- /dev/null +++ b/native/src/layer.rs @@ -0,0 +1,34 @@ +use crate::{layout, Clipboard, Event, Hasher, Layout, Point, Size}; + +pub trait Layer<Message, Renderer> +where + Renderer: crate::Renderer, +{ + fn layout( + &self, + renderer: &Renderer, + bounds: Size, + position: Point, + ) -> layout::Node; + + fn draw( + &self, + renderer: &mut Renderer, + defaults: &Renderer::Defaults, + layout: Layout<'_>, + cursor_position: Point, + ) -> Renderer::Output; + + fn hash_layout(&self, state: &mut Hasher, position: Point); + + fn on_event( + &mut self, + _event: Event, + _layout: Layout<'_>, + _cursor_position: Point, + _messages: &mut Vec<Message>, + _renderer: &Renderer, + _clipboard: Option<&dyn Clipboard>, + ) { + } +} |