summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-18 15:19:04 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-10-18 15:19:04 +0700
commitedea093350e1b576e2b7db50c525e7fa5c3bea9f (patch)
treebcc93c11a804d04e5842cef6c2088911fd4ef822 /native
parent54a9a232f8110364972a8eef966b7b7477573f4f (diff)
downloadiced-edea093350e1b576e2b7db50c525e7fa5c3bea9f.tar.gz
iced-edea093350e1b576e2b7db50c525e7fa5c3bea9f.tar.bz2
iced-edea093350e1b576e2b7db50c525e7fa5c3bea9f.zip
Move `Defaults` from `iced_graphics` to `iced_native`
Diffstat (limited to 'native')
-rw-r--r--native/src/element.rs11
-rw-r--r--native/src/overlay.rs3
-rw-r--r--native/src/overlay/element.rs11
-rw-r--r--native/src/overlay/menu.rs5
-rw-r--r--native/src/renderer.rs20
-rw-r--r--native/src/renderer/null.rs3
-rw-r--r--native/src/renderer/text.rs4
-rw-r--r--native/src/user_interface.rs7
-rw-r--r--native/src/widget.rs3
-rw-r--r--native/src/widget/button.rs3
-rw-r--r--native/src/widget/checkbox.rs8
-rw-r--r--native/src/widget/column.rs5
-rw-r--r--native/src/widget/container.rs5
-rw-r--r--native/src/widget/image.rs3
-rw-r--r--native/src/widget/image/viewer.rs3
-rw-r--r--native/src/widget/pane_grid.rs3
-rw-r--r--native/src/widget/pane_grid/content.rs3
-rw-r--r--native/src/widget/pane_grid/title_bar.rs3
-rw-r--r--native/src/widget/pick_list.rs3
-rw-r--r--native/src/widget/progress_bar.rs8
-rw-r--r--native/src/widget/radio.rs8
-rw-r--r--native/src/widget/row.rs5
-rw-r--r--native/src/widget/rule.rs9
-rw-r--r--native/src/widget/scrollable.rs6
-rw-r--r--native/src/widget/slider.rs6
-rw-r--r--native/src/widget/space.rs10
-rw-r--r--native/src/widget/svg.rs11
-rw-r--r--native/src/widget/text.rs6
-rw-r--r--native/src/widget/text_input.rs85
-rw-r--r--native/src/widget/toggler.rs3
-rw-r--r--native/src/widget/tooltip.rs10
31 files changed, 140 insertions, 133 deletions
diff --git a/native/src/element.rs b/native/src/element.rs
index 35e1b4f4..3ecd8e26 100644
--- a/native/src/element.rs
+++ b/native/src/element.rs
@@ -1,6 +1,7 @@
use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
+use crate::renderer;
use crate::{
Clipboard, Color, Hasher, Layout, Length, Point, Rectangle, Widget,
};
@@ -241,13 +242,13 @@ where
pub fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
) {
self.widget
- .draw(renderer, defaults, layout, cursor_position, viewport)
+ .draw(renderer, style, layout, cursor_position, viewport)
}
/// Computes the _layout_ hash of the [`Element`].
@@ -336,13 +337,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
) {
self.widget
- .draw(renderer, defaults, layout, cursor_position, viewport)
+ .draw(renderer, style, layout, cursor_position, viewport)
}
fn hash_layout(&self, state: &mut Hasher) {
@@ -418,7 +419,7 @@ where
fn draw(
&self,
_renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/overlay.rs b/native/src/overlay.rs
index 7054ee69..25b49adf 100644
--- a/native/src/overlay.rs
+++ b/native/src/overlay.rs
@@ -8,6 +8,7 @@ pub use menu::Menu;
use crate::event::{self, Event};
use crate::layout;
+use crate::renderer;
use crate::{Clipboard, Hasher, Layout, Point, Size};
/// An interactive component that can be displayed on top of other widgets.
@@ -32,7 +33,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
);
diff --git a/native/src/overlay/element.rs b/native/src/overlay/element.rs
index 081b62ce..bf3fb3f0 100644
--- a/native/src/overlay/element.rs
+++ b/native/src/overlay/element.rs
@@ -2,6 +2,7 @@ pub use crate::Overlay;
use crate::event::{self, Event};
use crate::layout;
+use crate::renderer;
use crate::{Clipboard, Hasher, Layout, Point, Size, Vector};
/// A generic [`Overlay`].
@@ -71,12 +72,11 @@ where
pub fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
- self.overlay
- .draw(renderer, defaults, layout, cursor_position)
+ self.overlay.draw(renderer, style, layout, cursor_position)
}
/// Computes the _layout_ hash of the [`Element`].
@@ -142,12 +142,11 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
- self.content
- .draw(renderer, defaults, layout, cursor_position)
+ self.content.draw(renderer, style, layout, cursor_position)
}
fn hash_layout(&self, state: &mut Hasher, position: Point) {
diff --git a/native/src/overlay/menu.rs b/native/src/overlay/menu.rs
index c4f64f85..f2367ae7 100644
--- a/native/src/overlay/menu.rs
+++ b/native/src/overlay/menu.rs
@@ -4,6 +4,7 @@ use crate::event::{self, Event};
use crate::layout;
use crate::mouse;
use crate::overlay;
+use crate::renderer;
use crate::scrollable;
use crate::text;
use crate::touch;
@@ -236,7 +237,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
@@ -380,7 +381,7 @@ where
fn draw(
&self,
_renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ _style: &renderer::Style,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/renderer.rs b/native/src/renderer.rs
index 382edb61..e48c701d 100644
--- a/native/src/renderer.rs
+++ b/native/src/renderer.rs
@@ -34,11 +34,6 @@ use crate::{Background, Color, Element, Rectangle, Vector};
/// A component that can take the state of a user interface and produce an
/// output for its users.
pub trait Renderer: Sized {
- /// The default styling attributes of the [`Renderer`].
- ///
- /// This type can be leveraged to implement style inheritance.
- type Defaults: Default;
-
/// Lays out the elements of a user interface.
///
/// You should override this if you need to perform any operations before or
@@ -71,3 +66,18 @@ pub struct Quad {
pub border_width: f32,
pub border_color: Color,
}
+
+/// The styling attributes of a [`Renderer`].
+#[derive(Debug, Clone, Copy, PartialEq)]
+pub struct Style {
+ /// The text color
+ pub text_color: Color,
+}
+
+impl Default for Style {
+ fn default() -> Self {
+ Style {
+ text_color: Color::BLACK,
+ }
+ }
+}
diff --git a/native/src/renderer/null.rs b/native/src/renderer/null.rs
index 960a5727..268248fd 100644
--- a/native/src/renderer/null.rs
+++ b/native/src/renderer/null.rs
@@ -5,7 +5,6 @@ use crate::pane_grid;
use crate::progress_bar;
use crate::radio;
use crate::renderer::{self, Renderer};
-use crate::scrollable;
use crate::slider;
use crate::text;
use crate::text_input;
@@ -26,8 +25,6 @@ impl Null {
}
impl Renderer for Null {
- type Defaults = ();
-
fn with_layer(
&mut self,
_bounds: Rectangle,
diff --git a/native/src/renderer/text.rs b/native/src/renderer/text.rs
index 5c189d89..9234c587 100644
--- a/native/src/renderer/text.rs
+++ b/native/src/renderer/text.rs
@@ -12,8 +12,8 @@ pub trait Text: Renderer {
pub struct Section<'a, Font> {
pub content: &'a str,
pub bounds: Rectangle,
- pub size: Option<f32>,
- pub color: Option<Color>,
+ pub size: f32,
+ pub color: Color,
pub font: Font,
pub horizontal_alignment: alignment::Horizontal,
pub vertical_alignment: alignment::Vertical,
diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs
index eb57670d..2f76c084 100644
--- a/native/src/user_interface.rs
+++ b/native/src/user_interface.rs
@@ -1,6 +1,7 @@
use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
+use crate::renderer;
use crate::{Clipboard, Element, Layout, Point, Rectangle, Size, Vector};
use std::hash::Hasher;
@@ -353,7 +354,7 @@ where
|renderer| {
overlay.draw(
renderer,
- &Renderer::Defaults::default(),
+ &renderer::Style::default(),
Layout::new(&layer.layout),
cursor_position,
);
@@ -376,7 +377,7 @@ where
self.root.widget.draw(
renderer,
- &Renderer::Defaults::default(),
+ &renderer::Style::default(),
Layout::new(&self.base.layout),
base_cursor,
&viewport,
@@ -384,7 +385,7 @@ where
} else {
self.root.widget.draw(
renderer,
- &Renderer::Defaults::default(),
+ &renderer::Style::default(),
Layout::new(&self.base.layout),
cursor_position,
&viewport,
diff --git a/native/src/widget.rs b/native/src/widget.rs
index 01c5bed3..9a494771 100644
--- a/native/src/widget.rs
+++ b/native/src/widget.rs
@@ -81,6 +81,7 @@ pub use tooltip::Tooltip;
use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
+use crate::renderer;
use crate::{Clipboard, Hasher, Layout, Length, Point, Rectangle};
/// A component that displays information and allows interaction.
@@ -131,7 +132,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
diff --git a/native/src/widget/button.rs b/native/src/widget/button.rs
index 1c7f80ef..2aeffd03 100644
--- a/native/src/widget/button.rs
+++ b/native/src/widget/button.rs
@@ -5,6 +5,7 @@ use crate::event::{self, Event};
use crate::layout;
use crate::mouse;
use crate::overlay;
+use crate::renderer;
use crate::touch;
use crate::{
Clipboard, Element, Hasher, Layout, Length, Padding, Point, Rectangle,
@@ -244,7 +245,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs
index 579e4ee3..52113322 100644
--- a/native/src/widget/checkbox.rs
+++ b/native/src/widget/checkbox.rs
@@ -1,15 +1,15 @@
//! Show toggle controls using checkboxes.
use std::hash::Hash;
-use crate::alignment::{self, Alignment};
use crate::event::{self, Event};
use crate::layout;
use crate::mouse;
+use crate::renderer;
use crate::text;
use crate::touch;
use crate::{
- Clipboard, Color, Element, Hasher, Layout, Length, Point, Rectangle, Row,
- Text, Widget,
+ Alignment, Clipboard, Color, Element, Hasher, Layout, Length, Point,
+ Rectangle, Row, Text, Widget,
};
/// A box that can be checked.
@@ -182,7 +182,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs
index 7cf6d345..e7ce0041 100644
--- a/native/src/widget/column.rs
+++ b/native/src/widget/column.rs
@@ -4,6 +4,7 @@ use std::hash::Hash;
use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
+use crate::renderer;
use crate::{
Alignment, Clipboard, Element, Hasher, Layout, Length, Padding, Point,
Rectangle, Widget,
@@ -165,13 +166,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
) {
for (child, layout) in self.children.iter().zip(layout.children()) {
- child.draw(renderer, defaults, layout, cursor_position, viewport);
+ child.draw(renderer, style, layout, cursor_position, viewport);
}
}
diff --git a/native/src/widget/container.rs b/native/src/widget/container.rs
index af40f2ab..92869873 100644
--- a/native/src/widget/container.rs
+++ b/native/src/widget/container.rs
@@ -5,6 +5,7 @@ use crate::alignment::{self, Alignment};
use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
+use crate::renderer;
use crate::{
Clipboard, Element, Hasher, Layout, Length, Padding, Point, Rectangle,
Widget,
@@ -175,14 +176,14 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
) {
self.content.draw(
renderer,
- defaults,
+ style,
layout.children().next().unwrap(),
cursor_position,
viewport,
diff --git a/native/src/widget/image.rs b/native/src/widget/image.rs
index 1607a596..b6b8dc1f 100644
--- a/native/src/widget/image.rs
+++ b/native/src/widget/image.rs
@@ -3,6 +3,7 @@ pub mod viewer;
pub use viewer::Viewer;
use crate::layout;
+use crate::renderer;
use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
use std::{
@@ -92,7 +93,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ _style: &renderer::Style,
layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/image/viewer.rs b/native/src/widget/image/viewer.rs
index d483ed61..63087f5f 100644
--- a/native/src/widget/image/viewer.rs
+++ b/native/src/widget/image/viewer.rs
@@ -3,6 +3,7 @@ use crate::event::{self, Event};
use crate::image;
use crate::layout;
use crate::mouse;
+use crate::renderer;
use crate::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Vector,
Widget,
@@ -283,7 +284,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs
index b4a8cdb1..1e63fdeb 100644
--- a/native/src/widget/pane_grid.rs
+++ b/native/src/widget/pane_grid.rs
@@ -32,6 +32,7 @@ use crate::event::{self, Event};
use crate::layout;
use crate::mouse;
use crate::overlay;
+use crate::renderer;
use crate::touch;
use crate::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Vector,
@@ -475,7 +476,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
diff --git a/native/src/widget/pane_grid/content.rs b/native/src/widget/pane_grid/content.rs
index e94955f7..22b3a310 100644
--- a/native/src/widget/pane_grid/content.rs
+++ b/native/src/widget/pane_grid/content.rs
@@ -3,6 +3,7 @@ use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
use crate::pane_grid::{self, TitleBar};
+use crate::renderer;
use crate::{Clipboard, Element, Hasher, Layout, Point, Rectangle, Size};
/// The content of a [`Pane`].
@@ -57,7 +58,7 @@ where
pub fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
diff --git a/native/src/widget/pane_grid/title_bar.rs b/native/src/widget/pane_grid/title_bar.rs
index 9b0b7c78..ce9249d2 100644
--- a/native/src/widget/pane_grid/title_bar.rs
+++ b/native/src/widget/pane_grid/title_bar.rs
@@ -3,6 +3,7 @@ use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
use crate::pane_grid;
+use crate::renderer;
use crate::{
Clipboard, Element, Hasher, Layout, Padding, Point, Rectangle, Size,
};
@@ -85,7 +86,7 @@ where
pub fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
diff --git a/native/src/widget/pick_list.rs b/native/src/widget/pick_list.rs
index 73b01b01..ed688a61 100644
--- a/native/src/widget/pick_list.rs
+++ b/native/src/widget/pick_list.rs
@@ -5,6 +5,7 @@ use crate::layout;
use crate::mouse;
use crate::overlay;
use crate::overlay::menu::{self, Menu};
+use crate::renderer;
use crate::text;
use crate::touch;
use crate::{
@@ -322,7 +323,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/progress_bar.rs b/native/src/widget/progress_bar.rs
index d8cf5376..98dd9989 100644
--- a/native/src/widget/progress_bar.rs
+++ b/native/src/widget/progress_bar.rs
@@ -1,7 +1,7 @@
//! Provide progress feedback to your users.
-use crate::{
- layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
-};
+use crate::layout;
+use crate::renderer;
+use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
use std::{hash::Hash, ops::RangeInclusive};
@@ -93,7 +93,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs
index c6955079..ba9bd9aa 100644
--- a/native/src/widget/radio.rs
+++ b/native/src/widget/radio.rs
@@ -1,15 +1,15 @@
//! Create choices using radio buttons.
use std::hash::Hash;
-use crate::alignment::{self, Alignment};
use crate::event::{self, Event};
use crate::layout;
use crate::mouse;
+use crate::renderer;
use crate::text;
use crate::touch;
use crate::{
- Clipboard, Color, Element, Hasher, Layout, Length, Point, Rectangle, Row,
- Text, Widget,
+ Alignment, Clipboard, Color, Element, Hasher, Layout, Length, Point,
+ Rectangle, Row, Text, Widget,
};
/// A circular button representing a choice.
@@ -194,7 +194,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs
index 7eb5ab55..af63c7da 100644
--- a/native/src/widget/row.rs
+++ b/native/src/widget/row.rs
@@ -2,6 +2,7 @@
use crate::event::{self, Event};
use crate::layout;
use crate::overlay;
+use crate::renderer;
use crate::{
Alignment, Clipboard, Element, Hasher, Layout, Length, Padding, Point,
Rectangle, Widget,
@@ -164,13 +165,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
) {
for (child, layout) in self.children.iter().zip(layout.children()) {
- child.draw(renderer, defaults, layout, cursor_position, viewport);
+ child.draw(renderer, style, layout, cursor_position, viewport);
}
}
diff --git a/native/src/widget/rule.rs b/native/src/widget/rule.rs
index 1fab77bc..24c4a51a 100644
--- a/native/src/widget/rule.rs
+++ b/native/src/widget/rule.rs
@@ -1,11 +1,10 @@
//! Display a horizontal or vertical rule for dividing content.
+use crate::layout;
+use crate::renderer;
+use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
use std::hash::Hash;
-use crate::{
- layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
-};
-
/// Display a horizontal or vertical rule for dividing content.
#[derive(Debug, Copy, Clone)]
pub struct Rule<Renderer: self::Renderer> {
@@ -68,7 +67,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/scrollable.rs b/native/src/widget/scrollable.rs
index 98357928..63da539f 100644
--- a/native/src/widget/scrollable.rs
+++ b/native/src/widget/scrollable.rs
@@ -425,7 +425,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
@@ -452,7 +452,7 @@ where
renderer.with_layer(bounds, Vector::new(0, offset), |renderer| {
self.content.draw(
renderer,
- defaults,
+ style,
content_layout,
cursor_position,
&Rectangle {
@@ -502,7 +502,7 @@ where
} else {
self.content.draw(
renderer,
- defaults,
+ style,
content_layout,
cursor_position,
&Rectangle {
diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs
index bcf811fe..7bdb72af 100644
--- a/native/src/widget/slider.rs
+++ b/native/src/widget/slider.rs
@@ -4,12 +4,14 @@
use crate::event::{self, Event};
use crate::layout;
use crate::mouse;
+use crate::renderer;
use crate::touch;
use crate::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
};
-use std::{hash::Hash, ops::RangeInclusive};
+use std::hash::Hash;
+use std::ops::RangeInclusive;
/// An horizontal bar and a handle that selects a single value from a range of
/// values.
@@ -246,7 +248,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/space.rs b/native/src/widget/space.rs
index 9a70dab1..1bf8cd68 100644
--- a/native/src/widget/space.rs
+++ b/native/src/widget/space.rs
@@ -1,9 +1,9 @@
//! Distribute content vertically.
-use std::hash::Hash;
+use crate::layout;
+use crate::renderer;
+use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
-use crate::{
- layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
-};
+use std::hash::Hash;
/// An amount of empty space.
///
@@ -62,7 +62,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/svg.rs b/native/src/widget/svg.rs
index 737dd8d4..cce560cb 100644
--- a/native/src/widget/svg.rs
+++ b/native/src/widget/svg.rs
@@ -1,12 +1,11 @@
//! Display vector graphics in your application.
use crate::layout;
+use crate::renderer;
use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
-use std::{
- hash::{Hash, Hasher as _},
- path::PathBuf,
- sync::Arc,
-};
+use std::hash::{Hash, Hasher as _};
+use std::path::PathBuf;
+use std::sync::Arc;
/// A vector graphics image.
///
@@ -90,7 +89,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/text.rs b/native/src/widget/text.rs
index ea1ba7ac..a2438d9c 100644
--- a/native/src/widget/text.rs
+++ b/native/src/widget/text.rs
@@ -135,7 +135,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
@@ -156,9 +156,9 @@ where
renderer.fill_text(renderer::text::Section {
content: &self.content,
- size: self.size.map(f32::from),
+ size: f32::from(self.size.unwrap_or(renderer.default_size())),
bounds: Rectangle { x, y, ..bounds },
- color: self.color,
+ color: self.color.unwrap_or(style.text_color),
font: self.font,
horizontal_alignment: self.horizontal_alignment,
vertical_alignment: self.vertical_alignment,
diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs
index fe95eb95..93af04d1 100644
--- a/native/src/widget/text_input.rs
+++ b/native/src/widget/text_input.rs
@@ -15,6 +15,7 @@ use crate::event::{self, Event};
use crate::keyboard;
use crate::layout;
use crate::mouse::{self, click};
+use crate::renderer;
use crate::text;
use crate::touch;
use crate::{
@@ -158,54 +159,6 @@ where
}
}
-impl<'a, Message, Renderer> TextInput<'a, Message, Renderer>
-where
- Renderer: self::Renderer,
-{
- /// Draws the [`TextInput`] with the given [`Renderer`], overriding its
- /// [`Value`] if provided.
- pub fn draw(
- &self,
- renderer: &mut Renderer,
- layout: Layout<'_>,
- cursor_position: Point,
- value: Option<&Value>,
- ) {
- // TODO
- // let value = value.unwrap_or(&self.value);
- // let bounds = layout.bounds();
- // let text_bounds = layout.children().next().unwrap().bounds();
-
- // if self.is_secure {
- // self::Renderer::draw(
- // renderer,
- // bounds,
- // text_bounds,
- // cursor_position,
- // self.font,
- // self.size.unwrap_or(renderer.default_size()),
- // &self.placeholder,
- // &value.secure(),
- // &self.state,
- // &self.style,
- // )
- // } else {
- // self::Renderer::draw(
- // renderer,
- // bounds,
- // text_bounds,
- // cursor_position,
- // self.font,
- // self.size.unwrap_or(renderer.default_size()),
- // &self.placeholder,
- // value,
- // &self.state,
- // &self.style,
- // )
- // }
- }
-}
-
impl<'a, Message, Renderer> Widget<Message, Renderer>
for TextInput<'a, Message, Renderer>
where
@@ -627,12 +580,44 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ _style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
) {
- self.draw(renderer, layout, cursor_position, None)
+
+ // TODO
+ // let value = value.unwrap_or(&self.value);
+ // let bounds = layout.bounds();
+ // let text_bounds = layout.children().next().unwrap().bounds();
+
+ // if self.is_secure {
+ // self::Renderer::draw(
+ // renderer,
+ // bounds,
+ // text_bounds,
+ // cursor_position,
+ // self.font,
+ // self.size.unwrap_or(renderer.default_size()),
+ // &self.placeholder,
+ // &value.secure(),
+ // &self.state,
+ // &self.style,
+ // )
+ // } else {
+ // self::Renderer::draw(
+ // renderer,
+ // bounds,
+ // text_bounds,
+ // cursor_position,
+ // self.font,
+ // self.size.unwrap_or(renderer.default_size()),
+ // &self.placeholder,
+ // value,
+ // &self.state,
+ // &self.style,
+ // )
+ // }
}
fn hash_layout(&self, state: &mut Hasher) {
diff --git a/native/src/widget/toggler.rs b/native/src/widget/toggler.rs
index 4a1f1f5d..6c7fa97b 100644
--- a/native/src/widget/toggler.rs
+++ b/native/src/widget/toggler.rs
@@ -5,6 +5,7 @@ use crate::alignment;
use crate::event;
use crate::layout;
use crate::mouse;
+use crate::renderer;
use crate::text;
use crate::{
Alignment, Clipboard, Element, Event, Hasher, Layout, Length, Point,
@@ -185,7 +186,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
- defaults: &Renderer::Defaults,
+ style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
_viewport: &Rectangle,
diff --git a/native/src/widget/tooltip.rs b/native/src/widget/tooltip.rs
index 83d04675..496cd41e 100644
--- a/native/src/widget/tooltip.rs
+++ b/native/src/widget/tooltip.rs
@@ -3,12 +3,12 @@ use std::hash::Hash;
use iced_core::Rectangle;
+use crate::event;
+use crate::layout;
+use crate::renderer;
use crate::widget::container;
use crate::widget::text::{self, Text};
-use crate::{
- event, layout, Clipboard, Element, Event, Hasher, Layout, Length, Point,
- Widget,
-};
+use crate::{Clipboard, Element, Event, Hasher, Layout, Length, Point, Widget};
/// An element to display a widget over another.
#[allow(missing_debug_implementations)]
@@ -137,7 +137,7 @@ where
fn draw(
&self,
_renderer: &mut Renderer,
- _defaults: &Renderer::Defaults,
+ style: &renderer::Style,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,