summaryrefslogtreecommitdiffstats
path: root/native/src/widget
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/widget')
-rw-r--r--native/src/widget/button.rs5
-rw-r--r--native/src/widget/checkbox.rs1
-rw-r--r--native/src/widget/column.rs7
-rw-r--r--native/src/widget/container.rs6
-rw-r--r--native/src/widget/image/viewer.rs1
-rw-r--r--native/src/widget/pane_grid.rs11
-rw-r--r--native/src/widget/pane_grid/content.rs11
-rw-r--r--native/src/widget/pane_grid/title_bar.rs14
-rw-r--r--native/src/widget/pick_list.rs2
-rw-r--r--native/src/widget/radio.rs1
-rw-r--r--native/src/widget/row.rs7
-rw-r--r--native/src/widget/scrollable.rs5
-rw-r--r--native/src/widget/slider.rs1
-rw-r--r--native/src/widget/text_input.rs1
-rw-r--r--native/src/widget/toggler.rs1
-rw-r--r--native/src/widget/tooltip.rs9
16 files changed, 67 insertions, 16 deletions
diff --git a/native/src/widget/button.rs b/native/src/widget/button.rs
index 686289e4..b4a3adc3 100644
--- a/native/src/widget/button.rs
+++ b/native/src/widget/button.rs
@@ -253,6 +253,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
let is_mouse_over = layout.bounds().contains(cursor_position);
let is_disabled = self.on_press.is_none();
@@ -343,8 +344,10 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
- self.content.overlay(layout.children().next().unwrap())
+ self.content
+ .overlay(layout.children().next().unwrap(), renderer)
}
}
diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs
index 95856928..a314140c 100644
--- a/native/src/widget/checkbox.rs
+++ b/native/src/widget/checkbox.rs
@@ -195,6 +195,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
if layout.bounds().contains(cursor_position) {
mouse::Interaction::Pointer
diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs
index 4c43c8c8..66ed5e23 100644
--- a/native/src/widget/column.rs
+++ b/native/src/widget/column.rs
@@ -169,6 +169,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
self.children
.iter()
@@ -178,6 +179,7 @@ where
layout,
cursor_position,
viewport,
+ renderer,
)
})
.max()
@@ -217,11 +219,14 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
self.children
.iter_mut()
.zip(layout.children())
- .filter_map(|(child, layout)| child.widget.overlay(layout))
+ .filter_map(|(child, layout)| {
+ child.widget.overlay(layout, renderer)
+ })
.next()
}
}
diff --git a/native/src/widget/container.rs b/native/src/widget/container.rs
index 0c291788..4444732a 100644
--- a/native/src/widget/container.rs
+++ b/native/src/widget/container.rs
@@ -184,11 +184,13 @@ where
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
self.content.widget.mouse_interaction(
layout.children().next().unwrap(),
cursor_position,
viewport,
+ renderer,
)
}
@@ -235,8 +237,10 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
- self.content.overlay(layout.children().next().unwrap())
+ self.content
+ .overlay(layout.children().next().unwrap(), renderer)
}
}
diff --git a/native/src/widget/image/viewer.rs b/native/src/widget/image/viewer.rs
index 645ce852..486d5fa5 100644
--- a/native/src/widget/image/viewer.rs
+++ b/native/src/widget/image/viewer.rs
@@ -286,6 +286,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
let bounds = layout.bounds();
let is_mouse_over = bounds.contains(cursor_position);
diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs
index b3d8b819..5f293fa6 100644
--- a/native/src/widget/pane_grid.rs
+++ b/native/src/widget/pane_grid.rs
@@ -472,6 +472,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
if self.state.picked_pane().is_some() {
return mouse::Interaction::Grab;
@@ -511,7 +512,12 @@ where
.iter()
.zip(layout.children())
.map(|((_pane, content), layout)| {
- content.mouse_interaction(layout, cursor_position, viewport)
+ content.mouse_interaction(
+ layout,
+ cursor_position,
+ viewport,
+ renderer,
+ )
})
.max()
.unwrap_or_default()
@@ -678,11 +684,12 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
self.elements
.iter_mut()
.zip(layout.children())
- .filter_map(|((_, pane), layout)| pane.overlay(layout))
+ .filter_map(|((_, pane), layout)| pane.overlay(layout, renderer))
.next()
}
}
diff --git a/native/src/widget/pane_grid/content.rs b/native/src/widget/pane_grid/content.rs
index 533827b7..6d12aa2d 100644
--- a/native/src/widget/pane_grid/content.rs
+++ b/native/src/widget/pane_grid/content.rs
@@ -205,6 +205,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
let (body_layout, title_bar_interaction) =
if let Some(title_bar) = &self.title_bar {
@@ -222,6 +223,7 @@ where
title_bar_layout,
cursor_position,
viewport,
+ renderer,
);
(children.next().unwrap(), mouse_interaction)
@@ -230,7 +232,7 @@ where
};
self.body
- .mouse_interaction(body_layout, cursor_position, viewport)
+ .mouse_interaction(body_layout, cursor_position, viewport, renderer)
.max(title_bar_interaction)
}
@@ -245,17 +247,18 @@ where
pub(crate) fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
if let Some(title_bar) = self.title_bar.as_mut() {
let mut children = layout.children();
let title_bar_layout = children.next()?;
- match title_bar.overlay(title_bar_layout) {
+ match title_bar.overlay(title_bar_layout, renderer) {
Some(overlay) => Some(overlay),
- None => self.body.overlay(children.next()?),
+ None => self.body.overlay(children.next()?, renderer),
}
} else {
- self.body.overlay(layout)
+ self.body.overlay(layout, renderer)
}
}
}
diff --git a/native/src/widget/pane_grid/title_bar.rs b/native/src/widget/pane_grid/title_bar.rs
index 353e1ce9..ea9ebfc4 100644
--- a/native/src/widget/pane_grid/title_bar.rs
+++ b/native/src/widget/pane_grid/title_bar.rs
@@ -258,6 +258,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
let mut children = layout.children();
let padded = children.next().unwrap();
@@ -269,13 +270,19 @@ where
title_layout,
cursor_position,
viewport,
+ renderer,
);
if let Some(controls) = &self.controls {
let controls_layout = children.next().unwrap();
controls
- .mouse_interaction(controls_layout, cursor_position, viewport)
+ .mouse_interaction(
+ controls_layout,
+ cursor_position,
+ viewport,
+ renderer,
+ )
.max(title_interaction)
} else {
title_interaction
@@ -285,6 +292,7 @@ where
pub(crate) fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
let mut children = layout.children();
let padded = children.next()?;
@@ -296,11 +304,11 @@ where
content, controls, ..
} = self;
- content.overlay(title_layout).or_else(move || {
+ content.overlay(title_layout, renderer).or_else(move || {
controls.as_mut().and_then(|controls| {
let controls_layout = children.next()?;
- controls.overlay(controls_layout)
+ controls.overlay(controls_layout, renderer)
})
})
}
diff --git a/native/src/widget/pick_list.rs b/native/src/widget/pick_list.rs
index 1f79e07a..a200fb13 100644
--- a/native/src/widget/pick_list.rs
+++ b/native/src/widget/pick_list.rs
@@ -331,6 +331,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
let bounds = layout.bounds();
let is_mouse_over = bounds.contains(cursor_position);
@@ -415,6 +416,7 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
+ _renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
if *self.is_open {
let bounds = layout.bounds();
diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs
index 1dbe7cf5..c6cc46ed 100644
--- a/native/src/widget/radio.rs
+++ b/native/src/widget/radio.rs
@@ -209,6 +209,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
if layout.bounds().contains(cursor_position) {
mouse::Interaction::Pointer
diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs
index a0174f79..c423d31f 100644
--- a/native/src/widget/row.rs
+++ b/native/src/widget/row.rs
@@ -168,6 +168,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
self.children
.iter()
@@ -177,6 +178,7 @@ where
layout,
cursor_position,
viewport,
+ renderer,
)
})
.max()
@@ -216,11 +218,14 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
self.children
.iter_mut()
.zip(layout.children())
- .filter_map(|(child, layout)| child.widget.overlay(layout))
+ .filter_map(|(child, layout)| {
+ child.widget.overlay(layout, renderer)
+ })
.next()
}
}
diff --git a/native/src/widget/scrollable.rs b/native/src/widget/scrollable.rs
index 3ef737c0..4b005c6b 100644
--- a/native/src/widget/scrollable.rs
+++ b/native/src/widget/scrollable.rs
@@ -427,6 +427,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
let bounds = layout.bounds();
let content_layout = layout.children().next().unwrap();
@@ -457,6 +458,7 @@ where
y: bounds.y + offset as f32,
..bounds
},
+ renderer,
)
}
}
@@ -581,11 +583,12 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
+ renderer: &Renderer,
) -> Option<overlay::Element<'_, Message, Renderer>> {
let Self { content, state, .. } = self;
content
- .overlay(layout.children().next().unwrap())
+ .overlay(layout.children().next().unwrap(), renderer)
.map(|overlay| {
let bounds = layout.bounds();
let content_layout = layout.children().next().unwrap();
diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs
index 65632a5c..917bfc14 100644
--- a/native/src/widget/slider.rs
+++ b/native/src/widget/slider.rs
@@ -361,6 +361,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
let bounds = layout.bounds();
let is_mouse_over = bounds.contains(cursor_position);
diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs
index f06b6aa6..03adeb12 100644
--- a/native/src/widget/text_input.rs
+++ b/native/src/widget/text_input.rs
@@ -764,6 +764,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
if layout.bounds().contains(cursor_position) {
mouse::Interaction::Text
diff --git a/native/src/widget/toggler.rs b/native/src/widget/toggler.rs
index 7eca58d2..002e0a4f 100644
--- a/native/src/widget/toggler.rs
+++ b/native/src/widget/toggler.rs
@@ -196,6 +196,7 @@ where
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
+ _renderer: &Renderer,
) -> mouse::Interaction {
if layout.bounds().contains(cursor_position) {
mouse::Interaction::Pointer
diff --git a/native/src/widget/tooltip.rs b/native/src/widget/tooltip.rs
index 79a57824..f6630864 100644
--- a/native/src/widget/tooltip.rs
+++ b/native/src/widget/tooltip.rs
@@ -147,9 +147,14 @@ where
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
+ renderer: &Renderer,
) -> mouse::Interaction {
- self.content
- .mouse_interaction(layout, cursor_position, viewport)
+ self.content.mouse_interaction(
+ layout,
+ cursor_position,
+ viewport,
+ renderer,
+ )
}
fn draw(