summaryrefslogtreecommitdiffstats
path: root/native/src/widget
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/widget')
-rw-r--r--native/src/widget/button.rs19
-rw-r--r--native/src/widget/checkbox.rs2
-rw-r--r--native/src/widget/column.rs4
-rw-r--r--native/src/widget/container.rs2
-rw-r--r--native/src/widget/image.rs1
-rw-r--r--native/src/widget/radio.rs2
-rw-r--r--native/src/widget/row.rs4
-rw-r--r--native/src/widget/scrollable.rs8
-rw-r--r--native/src/widget/slider.rs1
-rw-r--r--native/src/widget/svg.rs1
-rw-r--r--native/src/widget/text.rs3
-rw-r--r--native/src/widget/text_input.rs1
12 files changed, 36 insertions, 12 deletions
diff --git a/native/src/widget/button.rs b/native/src/widget/button.rs
index 4a7187da..75ef2693 100644
--- a/native/src/widget/button.rs
+++ b/native/src/widget/button.rs
@@ -216,21 +216,19 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
- let content = self.content.draw(
- renderer,
- layout.children().next().unwrap(),
- cursor_position,
- );
-
renderer.draw(
+ defaults,
layout.bounds(),
cursor_position,
+ self.on_press.is_none(),
self.state.is_pressed,
&self.style,
- content,
+ &self.content,
+ layout.children().next().unwrap(),
)
}
@@ -253,13 +251,16 @@ pub trait Renderer: crate::Renderer + Sized {
/// Draws a [`Button`].
///
/// [`Button`]: struct.Button.html
- fn draw(
+ fn draw<Message>(
&mut self,
+ defaults: &Self::Defaults,
bounds: Rectangle,
cursor_position: Point,
+ is_disabled: bool,
is_pressed: bool,
style: &Self::Style,
- content: Self::Output,
+ content: &Element<'_, Message, Self>,
+ content_layout: Layout<'_>,
) -> Self::Output;
}
diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs
index 0dcac712..87a7f629 100644
--- a/native/src/widget/checkbox.rs
+++ b/native/src/widget/checkbox.rs
@@ -134,6 +134,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
@@ -146,6 +147,7 @@ where
let label = text::Renderer::draw(
renderer,
+ defaults,
label_layout.bounds(),
&self.label,
text::Renderer::default_size(renderer),
diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs
index 4b5d631c..3418d4b0 100644
--- a/native/src/widget/column.rs
+++ b/native/src/widget/column.rs
@@ -173,10 +173,11 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
- renderer.draw(&self.children, layout, cursor_position)
+ renderer.draw(defaults, &self.children, layout, cursor_position)
}
fn hash_layout(&self, state: &mut Hasher) {
@@ -213,6 +214,7 @@ pub trait Renderer: crate::Renderer + Sized {
/// [`Layout`]: ../layout/struct.Layout.html
fn draw<Message>(
&mut self,
+ defaults: &Self::Defaults,
content: &[Element<'_, Message, Self>],
layout: Layout<'_>,
cursor_position: Point,
diff --git a/native/src/widget/container.rs b/native/src/widget/container.rs
index 74f0e0ef..93804c99 100644
--- a/native/src/widget/container.rs
+++ b/native/src/widget/container.rs
@@ -147,11 +147,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
self.content.draw(
renderer,
+ defaults,
layout.children().next().unwrap(),
cursor_position,
)
diff --git a/native/src/widget/image.rs b/native/src/widget/image.rs
index 20375822..1efe4570 100644
--- a/native/src/widget/image.rs
+++ b/native/src/widget/image.rs
@@ -95,6 +95,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ _defaults: &Renderer::Defaults,
layout: Layout<'_>,
_cursor_position: Point,
) -> Renderer::Output {
diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs
index a9995b86..6ac00770 100644
--- a/native/src/widget/radio.rs
+++ b/native/src/widget/radio.rs
@@ -131,6 +131,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
@@ -143,6 +144,7 @@ where
let label = text::Renderer::draw(
renderer,
+ defaults,
label_layout.bounds(),
&self.label,
text::Renderer::default_size(renderer),
diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs
index 3de65deb..76cca3d0 100644
--- a/native/src/widget/row.rs
+++ b/native/src/widget/row.rs
@@ -174,10 +174,11 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
- renderer.draw(&self.children, layout, cursor_position)
+ renderer.draw(defaults, &self.children, layout, cursor_position)
}
fn hash_layout(&self, state: &mut Hasher) {
@@ -215,6 +216,7 @@ pub trait Renderer: crate::Renderer + Sized {
/// [`Layout`]: ../layout/struct.Layout.html
fn draw<Message>(
&mut self,
+ defaults: &Self::Defaults,
children: &[Element<'_, Message, Self>],
layout: Layout<'_>,
cursor_position: Point,
diff --git a/native/src/widget/scrollable.rs b/native/src/widget/scrollable.rs
index 9fa602d5..9df09b14 100644
--- a/native/src/widget/scrollable.rs
+++ b/native/src/widget/scrollable.rs
@@ -255,6 +255,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
@@ -277,7 +278,12 @@ where
Point::new(cursor_position.x, -1.0)
};
- self.content.draw(renderer, content_layout, cursor_position)
+ self.content.draw(
+ renderer,
+ defaults,
+ content_layout,
+ cursor_position,
+ )
};
self::Renderer::draw(
diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs
index f446f7e8..ea66a347 100644
--- a/native/src/widget/slider.rs
+++ b/native/src/widget/slider.rs
@@ -178,6 +178,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ _defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {
diff --git a/native/src/widget/svg.rs b/native/src/widget/svg.rs
index 9580f195..f6202f72 100644
--- a/native/src/widget/svg.rs
+++ b/native/src/widget/svg.rs
@@ -91,6 +91,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ _defaults: &Renderer::Defaults,
layout: Layout<'_>,
_cursor_position: Point,
) -> Renderer::Output {
diff --git a/native/src/widget/text.rs b/native/src/widget/text.rs
index cf9c9565..3a3db3cd 100644
--- a/native/src/widget/text.rs
+++ b/native/src/widget/text.rs
@@ -146,10 +146,12 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ defaults: &Renderer::Defaults,
layout: Layout<'_>,
_cursor_position: Point,
) -> Renderer::Output {
renderer.draw(
+ defaults,
layout.bounds(),
&self.content,
self.size.unwrap_or(renderer.default_size()),
@@ -209,6 +211,7 @@ pub trait Renderer: crate::Renderer {
/// [`VerticalAlignment`]: enum.VerticalAlignment.html
fn draw(
&mut self,
+ defaults: &Self::Defaults,
bounds: Rectangle,
content: &str,
size: u16,
diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs
index 1d1c32a2..e2114f00 100644
--- a/native/src/widget/text_input.rs
+++ b/native/src/widget/text_input.rs
@@ -343,6 +343,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ _defaults: &Renderer::Defaults,
layout: Layout<'_>,
cursor_position: Point,
) -> Renderer::Output {