summaryrefslogtreecommitdiffstats
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
parent54a9a232f8110364972a8eef966b7b7477573f4f (diff)
downloadiced-edea093350e1b576e2b7db50c525e7fa5c3bea9f.tar.gz
iced-edea093350e1b576e2b7db50c525e7fa5c3bea9f.tar.bz2
iced-edea093350e1b576e2b7db50c525e7fa5c3bea9f.zip
Move `Defaults` from `iced_graphics` to `iced_native`
-rw-r--r--examples/custom_widget/src/main.rs5
-rw-r--r--examples/geometry/src/main.rs13
-rw-r--r--graphics/src/defaults.rs32
-rw-r--r--graphics/src/lib.rs4
-rw-r--r--graphics/src/renderer.rs12
-rw-r--r--graphics/src/widget/canvas.rs6
-rw-r--r--graphics/src/widget/qr_code.rs9
-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
-rw-r--r--wgpu/src/lib.rs4
39 files changed, 166 insertions, 192 deletions
diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs
index 648e7295..c8188f10 100644
--- a/examples/custom_widget/src/main.rs
+++ b/examples/custom_widget/src/main.rs
@@ -9,7 +9,8 @@ mod circle {
// Of course, you can choose to make the implementation renderer-agnostic,
// if you wish to, by creating your own `Renderer` trait, which could be
// implemented by `iced_wgpu` and other renderers.
- use iced_graphics::{Backend, Defaults, Primitive, Renderer};
+ use iced_graphics::renderer::{self, Renderer};
+ use iced_graphics::Backend;
use iced_native::{
layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
};
@@ -53,7 +54,7 @@ mod circle {
fn draw(
&self,
_renderer: &mut Renderer<B>,
- _defaults: &Defaults,
+ _style: &renderer::Style,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/examples/geometry/src/main.rs b/examples/geometry/src/main.rs
index 0745739a..de157267 100644
--- a/examples/geometry/src/main.rs
+++ b/examples/geometry/src/main.rs
@@ -10,13 +10,11 @@ mod rainbow {
// Of course, you can choose to make the implementation renderer-agnostic,
// if you wish to, by creating your own `Renderer` trait, which could be
// implemented by `iced_wgpu` and other renderers.
- use iced_graphics::{
- triangle::{Mesh2D, Vertex2D},
- Backend, Defaults, Primitive, Renderer,
- };
+ use iced_graphics::renderer::{self, Renderer};
+ use iced_graphics::Backend;
+
use iced_native::{
- layout, mouse, Element, Hasher, Layout, Length, Point, Rectangle, Size,
- Vector, Widget,
+ layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
};
pub struct Rainbow;
@@ -54,11 +52,12 @@ mod rainbow {
fn draw(
&self,
_renderer: &mut Renderer<B>,
- _defaults: &Defaults,
+ _style: &renderer::Style,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
) {
+ // use iced_graphics::triangle::{Mesh2D, Vertex2D};
// let b = layout.bounds();
// // R O Y G B I V
diff --git a/graphics/src/defaults.rs b/graphics/src/defaults.rs
deleted file mode 100644
index 11718a87..00000000
--- a/graphics/src/defaults.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-//! Use default styling attributes to inherit styles.
-use iced_native::Color;
-
-/// Some default styling attributes.
-#[derive(Debug, Clone, Copy)]
-pub struct Defaults {
- /// Text styling
- pub text: Text,
-}
-
-impl Default for Defaults {
- fn default() -> Defaults {
- Defaults {
- text: Text::default(),
- }
- }
-}
-
-/// Some default text styling attributes.
-#[derive(Debug, Clone, Copy)]
-pub struct Text {
- /// The default color of text
- pub color: Color,
-}
-
-impl Default for Text {
- fn default() -> Text {
- Text {
- color: Color::BLACK,
- }
- }
-}
diff --git a/graphics/src/lib.rs b/graphics/src/lib.rs
index 9c113da6..dbd94e99 100644
--- a/graphics/src/lib.rs
+++ b/graphics/src/lib.rs
@@ -13,15 +13,14 @@
mod antialiasing;
mod error;
mod primitive;
-mod renderer;
mod transformation;
mod viewport;
pub mod backend;
-pub mod defaults;
pub mod font;
pub mod layer;
pub mod overlay;
+pub mod renderer;
pub mod triangle;
pub mod widget;
pub mod window;
@@ -31,7 +30,6 @@ pub use widget::*;
pub use antialiasing::Antialiasing;
pub use backend::Backend;
-pub use defaults::Defaults;
pub use error::Error;
pub use layer::Layer;
pub use primitive::Primitive;
diff --git a/graphics/src/renderer.rs b/graphics/src/renderer.rs
index 7ed06151..8d623868 100644
--- a/graphics/src/renderer.rs
+++ b/graphics/src/renderer.rs
@@ -1,8 +1,10 @@
use crate::backend::{self, Backend};
-use crate::{Defaults, Primitive, Vector};
+use crate::{Primitive, Vector};
use iced_native::layout;
use iced_native::renderer;
-use iced_native::{Color, Element, Font, Rectangle};
+use iced_native::{Element, Font, Rectangle};
+
+pub use iced_native::renderer::Style;
/// A backend-agnostic renderer that supports all the built-in widgets.
#[derive(Debug)]
@@ -33,8 +35,6 @@ impl<B> iced_native::Renderer for Renderer<B>
where
B: Backend,
{
- type Defaults = Defaults;
-
fn layout<'a, Message>(
&mut self,
element: &Element<'a, Message, Self>,
@@ -97,8 +97,8 @@ where
self.primitives.push(Primitive::Text {
content: text.content.to_string(),
bounds: text.bounds,
- size: text.size.unwrap_or(f32::from(self.backend.default_size())),
- color: text.color.unwrap_or(Color::BLACK),
+ size: text.size,
+ color: text.color,
font: text.font,
horizontal_alignment: text.horizontal_alignment,
vertical_alignment: text.vertical_alignment,
diff --git a/graphics/src/widget/canvas.rs b/graphics/src/widget/canvas.rs
index 7bf00ca5..3990c2b9 100644
--- a/graphics/src/widget/canvas.rs
+++ b/graphics/src/widget/canvas.rs
@@ -3,7 +3,9 @@
//! A [`Canvas`] widget can be used to draw different kinds of 2D shapes in a
//! [`Frame`]. It can be used for animation, data visualization, game graphics,
//! and more!
-use crate::{Backend, Defaults, Renderer};
+use crate::renderer::{self, Renderer};
+use crate::Backend;
+
use iced_native::layout;
use iced_native::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
@@ -187,7 +189,7 @@ where
fn draw(
&self,
_renderer: &mut Renderer<B>,
- _defaults: &Defaults,
+ _style: &renderer::Style,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
diff --git a/graphics/src/widget/qr_code.rs b/graphics/src/widget/qr_code.rs
index a809d99f..364b636b 100644
--- a/graphics/src/widget/qr_code.rs
+++ b/graphics/src/widget/qr_code.rs
@@ -1,10 +1,11 @@
//! Encode and display information in a QR code.
use crate::canvas;
-use crate::{Backend, Defaults, Renderer};
+use crate::renderer::{self, Renderer};
+use crate::Backend;
+use iced_native::layout;
use iced_native::{
- layout, Color, Element, Hasher, Layout, Length, Point, Rectangle, Size,
- Widget,
+ Color, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
};
use thiserror::Error;
@@ -81,7 +82,7 @@ where
fn draw(
&self,
_renderer: &mut Renderer<B>,
- _defaults: &Defaults,
+ _style: &renderer::Style,
_layout: Layout<'_>,
_cursor_position: Point,
_viewport: &Rectangle,
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,
diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs
index e868a655..ed99b126 100644
--- a/wgpu/src/lib.rs
+++ b/wgpu/src/lib.rs
@@ -36,9 +36,7 @@ mod backend;
mod quad;
mod text;
-pub use iced_graphics::{
- Antialiasing, Color, Defaults, Error, Primitive, Viewport,
-};
+pub use iced_graphics::{Antialiasing, Color, Error, Primitive, Viewport};
pub use wgpu;
pub use backend::Backend;