summaryrefslogtreecommitdiffstats
path: root/native/src/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-29 03:34:21 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-29 03:34:21 +0100
commit9dabbf78857c3a60583227d3aa2fa6e030f085d0 (patch)
tree16356590112788fcf8914b7a60fd290384d4dd4c /native/src/widget
parent6602c1517cbffbc9ff0b6052ce7288cd51eb1e67 (diff)
downloadiced-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.rs1
-rw-r--r--native/src/widget/checkbox.rs1
-rw-r--r--native/src/widget/column.rs11
-rw-r--r--native/src/widget/radio.rs1
-rw-r--r--native/src/widget/row.rs11
-rw-r--r--native/src/widget/scrollable.rs10
-rw-r--r--native/src/widget/slider.rs1
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();