diff options
author | 2019-10-29 03:34:21 +0100 | |
---|---|---|
committer | 2019-10-29 03:34:21 +0100 | |
commit | 9dabbf78857c3a60583227d3aa2fa6e030f085d0 (patch) | |
tree | 16356590112788fcf8914b7a60fd290384d4dd4c /native/src/widget | |
parent | 6602c1517cbffbc9ff0b6052ce7288cd51eb1e67 (diff) | |
download | iced-9dabbf78857c3a60583227d3aa2fa6e030f085d0.tar.gz iced-9dabbf78857c3a60583227d3aa2fa6e030f085d0.tar.bz2 iced-9dabbf78857c3a60583227d3aa2fa6e030f085d0.zip |
Provide `Renderer` to `Widget::on_event`
This allows us to implement configurable event processing that adapts to
different rendering strategies.
Diffstat (limited to 'native/src/widget')
-rw-r--r-- | native/src/widget/button.rs | 1 | ||||
-rw-r--r-- | native/src/widget/checkbox.rs | 1 | ||||
-rw-r--r-- | native/src/widget/column.rs | 11 | ||||
-rw-r--r-- | native/src/widget/radio.rs | 1 | ||||
-rw-r--r-- | native/src/widget/row.rs | 11 | ||||
-rw-r--r-- | native/src/widget/scrollable.rs | 10 | ||||
-rw-r--r-- | native/src/widget/slider.rs | 1 |
7 files changed, 28 insertions, 8 deletions
diff --git a/native/src/widget/button.rs b/native/src/widget/button.rs index 4ab59f7f..cf5dba93 100644 --- a/native/src/widget/button.rs +++ b/native/src/widget/button.rs @@ -31,6 +31,7 @@ where layout: Layout<'_>, cursor_position: Point, messages: &mut Vec<Message>, + _renderer: &Renderer, ) { match event { Event::Mouse(mouse::Event::Input { diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs index 5393417e..b8053238 100644 --- a/native/src/widget/checkbox.rs +++ b/native/src/widget/checkbox.rs @@ -20,6 +20,7 @@ where layout: Layout<'_>, cursor_position: Point, messages: &mut Vec<Message>, + _renderer: &Renderer, ) { match event { Event::Mouse(mouse::Event::Input { diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs index 7995cf5d..086d05ef 100644 --- a/native/src/widget/column.rs +++ b/native/src/widget/column.rs @@ -55,12 +55,17 @@ where layout: Layout<'_>, cursor_position: Point, messages: &mut Vec<Message>, + renderer: &Renderer, ) { self.children.iter_mut().zip(layout.children()).for_each( |(child, layout)| { - child - .widget - .on_event(event, layout, cursor_position, messages) + child.widget.on_event( + event, + layout, + cursor_position, + messages, + renderer, + ) }, ); } diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs index 27b8f8a8..93ec4a36 100644 --- a/native/src/widget/radio.rs +++ b/native/src/widget/radio.rs @@ -21,6 +21,7 @@ where layout: Layout<'_>, cursor_position: Point, messages: &mut Vec<Message>, + _renderer: &Renderer, ) { match event { Event::Mouse(mouse::Event::Input { diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs index 5ec27159..7dbfb92a 100644 --- a/native/src/widget/row.rs +++ b/native/src/widget/row.rs @@ -55,12 +55,17 @@ where layout: Layout<'_>, cursor_position: Point, messages: &mut Vec<Message>, + renderer: &Renderer, ) { self.children.iter_mut().zip(layout.children()).for_each( |(child, layout)| { - child - .widget - .on_event(event, layout, cursor_position, messages) + child.widget.on_event( + event, + layout, + cursor_position, + messages, + renderer, + ) }, ); } diff --git a/native/src/widget/scrollable.rs b/native/src/widget/scrollable.rs index 9acba3c2..e52f3c3f 100644 --- a/native/src/widget/scrollable.rs +++ b/native/src/widget/scrollable.rs @@ -46,6 +46,7 @@ where layout: Layout<'_>, cursor_position: Point, messages: &mut Vec<Message>, + renderer: &Renderer, ) { let bounds = layout.bounds(); let is_mouse_over = bounds.contains(cursor_position); @@ -78,8 +79,13 @@ where Point::new(cursor_position.x, -1.0) }; - self.content - .on_event(event, content, cursor_position, messages) + self.content.on_event( + event, + content, + cursor_position, + messages, + renderer, + ) } fn draw( diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index d643d902..be2b9b22 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -25,6 +25,7 @@ where layout: Layout<'_>, cursor_position: Point, messages: &mut Vec<Message>, + _renderer: &Renderer, ) { let mut change = || { let bounds = layout.bounds(); |