Move Defaults from iced_graphics to iced_native

This commit is contained in:
Héctor Ramón Jiménez 2021-10-18 15:19:04 +07:00
parent 54a9a232f8
commit edea093350
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
39 changed files with 166 additions and 192 deletions

View file

@ -9,7 +9,8 @@ mod circle {
// Of course, you can choose to make the implementation renderer-agnostic, // Of course, you can choose to make the implementation renderer-agnostic,
// if you wish to, by creating your own `Renderer` trait, which could be // if you wish to, by creating your own `Renderer` trait, which could be
// implemented by `iced_wgpu` and other renderers. // 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::{ use iced_native::{
layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
}; };
@ -53,7 +54,7 @@ mod circle {
fn draw( fn draw(
&self, &self,
_renderer: &mut Renderer<B>, _renderer: &mut Renderer<B>,
_defaults: &Defaults, _style: &renderer::Style,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -10,13 +10,11 @@ mod rainbow {
// Of course, you can choose to make the implementation renderer-agnostic, // Of course, you can choose to make the implementation renderer-agnostic,
// if you wish to, by creating your own `Renderer` trait, which could be // if you wish to, by creating your own `Renderer` trait, which could be
// implemented by `iced_wgpu` and other renderers. // implemented by `iced_wgpu` and other renderers.
use iced_graphics::{ use iced_graphics::renderer::{self, Renderer};
triangle::{Mesh2D, Vertex2D}, use iced_graphics::Backend;
Backend, Defaults, Primitive, Renderer,
};
use iced_native::{ use iced_native::{
layout, mouse, Element, Hasher, Layout, Length, Point, Rectangle, Size, layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
Vector, Widget,
}; };
pub struct Rainbow; pub struct Rainbow;
@ -54,11 +52,12 @@ mod rainbow {
fn draw( fn draw(
&self, &self,
_renderer: &mut Renderer<B>, _renderer: &mut Renderer<B>,
_defaults: &Defaults, _style: &renderer::Style,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,
) { ) {
// use iced_graphics::triangle::{Mesh2D, Vertex2D};
// let b = layout.bounds(); // let b = layout.bounds();
// // R O Y G B I V // // R O Y G B I V

View file

@ -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,
}
}
}

View file

@ -13,15 +13,14 @@
mod antialiasing; mod antialiasing;
mod error; mod error;
mod primitive; mod primitive;
mod renderer;
mod transformation; mod transformation;
mod viewport; mod viewport;
pub mod backend; pub mod backend;
pub mod defaults;
pub mod font; pub mod font;
pub mod layer; pub mod layer;
pub mod overlay; pub mod overlay;
pub mod renderer;
pub mod triangle; pub mod triangle;
pub mod widget; pub mod widget;
pub mod window; pub mod window;
@ -31,7 +30,6 @@ pub use widget::*;
pub use antialiasing::Antialiasing; pub use antialiasing::Antialiasing;
pub use backend::Backend; pub use backend::Backend;
pub use defaults::Defaults;
pub use error::Error; pub use error::Error;
pub use layer::Layer; pub use layer::Layer;
pub use primitive::Primitive; pub use primitive::Primitive;

View file

@ -1,8 +1,10 @@
use crate::backend::{self, Backend}; use crate::backend::{self, Backend};
use crate::{Defaults, Primitive, Vector}; use crate::{Primitive, Vector};
use iced_native::layout; use iced_native::layout;
use iced_native::renderer; 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. /// A backend-agnostic renderer that supports all the built-in widgets.
#[derive(Debug)] #[derive(Debug)]
@ -33,8 +35,6 @@ impl<B> iced_native::Renderer for Renderer<B>
where where
B: Backend, B: Backend,
{ {
type Defaults = Defaults;
fn layout<'a, Message>( fn layout<'a, Message>(
&mut self, &mut self,
element: &Element<'a, Message, Self>, element: &Element<'a, Message, Self>,
@ -97,8 +97,8 @@ where
self.primitives.push(Primitive::Text { self.primitives.push(Primitive::Text {
content: text.content.to_string(), content: text.content.to_string(),
bounds: text.bounds, bounds: text.bounds,
size: text.size.unwrap_or(f32::from(self.backend.default_size())), size: text.size,
color: text.color.unwrap_or(Color::BLACK), color: text.color,
font: text.font, font: text.font,
horizontal_alignment: text.horizontal_alignment, horizontal_alignment: text.horizontal_alignment,
vertical_alignment: text.vertical_alignment, vertical_alignment: text.vertical_alignment,

View file

@ -3,7 +3,9 @@
//! A [`Canvas`] widget can be used to draw different kinds of 2D shapes in a //! 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, //! [`Frame`]. It can be used for animation, data visualization, game graphics,
//! and more! //! and more!
use crate::{Backend, Defaults, Renderer}; use crate::renderer::{self, Renderer};
use crate::Backend;
use iced_native::layout; use iced_native::layout;
use iced_native::{ use iced_native::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
@ -187,7 +189,7 @@ where
fn draw( fn draw(
&self, &self,
_renderer: &mut Renderer<B>, _renderer: &mut Renderer<B>,
_defaults: &Defaults, _style: &renderer::Style,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1,10 +1,11 @@
//! Encode and display information in a QR code. //! Encode and display information in a QR code.
use crate::canvas; use crate::canvas;
use crate::{Backend, Defaults, Renderer}; use crate::renderer::{self, Renderer};
use crate::Backend;
use iced_native::layout;
use iced_native::{ use iced_native::{
layout, Color, Element, Hasher, Layout, Length, Point, Rectangle, Size, Color, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
Widget,
}; };
use thiserror::Error; use thiserror::Error;
@ -81,7 +82,7 @@ where
fn draw( fn draw(
&self, &self,
_renderer: &mut Renderer<B>, _renderer: &mut Renderer<B>,
_defaults: &Defaults, _style: &renderer::Style,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1,6 +1,7 @@
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::{ use crate::{
Clipboard, Color, Hasher, Layout, Length, Point, Rectangle, Widget, Clipboard, Color, Hasher, Layout, Length, Point, Rectangle, Widget,
}; };
@ -241,13 +242,13 @@ where
pub fn draw( pub fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
self.widget self.widget
.draw(renderer, defaults, layout, cursor_position, viewport) .draw(renderer, style, layout, cursor_position, viewport)
} }
/// Computes the _layout_ hash of the [`Element`]. /// Computes the _layout_ hash of the [`Element`].
@ -336,13 +337,13 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
self.widget self.widget
.draw(renderer, defaults, layout, cursor_position, viewport) .draw(renderer, style, layout, cursor_position, viewport)
} }
fn hash_layout(&self, state: &mut Hasher) { fn hash_layout(&self, state: &mut Hasher) {
@ -418,7 +419,7 @@ where
fn draw( fn draw(
&self, &self,
_renderer: &mut Renderer, _renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -8,6 +8,7 @@ pub use menu::Menu;
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::renderer;
use crate::{Clipboard, Hasher, Layout, Point, Size}; use crate::{Clipboard, Hasher, Layout, Point, Size};
/// An interactive component that can be displayed on top of other widgets. /// An interactive component that can be displayed on top of other widgets.
@ -32,7 +33,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
); );

View file

@ -2,6 +2,7 @@ pub use crate::Overlay;
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::renderer;
use crate::{Clipboard, Hasher, Layout, Point, Size, Vector}; use crate::{Clipboard, Hasher, Layout, Point, Size, Vector};
/// A generic [`Overlay`]. /// A generic [`Overlay`].
@ -71,12 +72,11 @@ where
pub fn draw( pub fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
) { ) {
self.overlay self.overlay.draw(renderer, style, layout, cursor_position)
.draw(renderer, defaults, layout, cursor_position)
} }
/// Computes the _layout_ hash of the [`Element`]. /// Computes the _layout_ hash of the [`Element`].
@ -142,12 +142,11 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
) { ) {
self.content self.content.draw(renderer, style, layout, cursor_position)
.draw(renderer, defaults, layout, cursor_position)
} }
fn hash_layout(&self, state: &mut Hasher, position: Point) { fn hash_layout(&self, state: &mut Hasher, position: Point) {

View file

@ -4,6 +4,7 @@ use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::scrollable; use crate::scrollable;
use crate::text; use crate::text;
use crate::touch; use crate::touch;
@ -236,7 +237,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
) { ) {
@ -380,7 +381,7 @@ where
fn draw( fn draw(
&self, &self,
_renderer: &mut Renderer, _renderer: &mut Renderer,
_defaults: &Renderer::Defaults, _style: &renderer::Style,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -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 /// A component that can take the state of a user interface and produce an
/// output for its users. /// output for its users.
pub trait Renderer: Sized { 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. /// Lays out the elements of a user interface.
/// ///
/// You should override this if you need to perform any operations before or /// 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_width: f32,
pub border_color: Color, 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,
}
}
}

View file

@ -5,7 +5,6 @@ use crate::pane_grid;
use crate::progress_bar; use crate::progress_bar;
use crate::radio; use crate::radio;
use crate::renderer::{self, Renderer}; use crate::renderer::{self, Renderer};
use crate::scrollable;
use crate::slider; use crate::slider;
use crate::text; use crate::text;
use crate::text_input; use crate::text_input;
@ -26,8 +25,6 @@ impl Null {
} }
impl Renderer for Null { impl Renderer for Null {
type Defaults = ();
fn with_layer( fn with_layer(
&mut self, &mut self,
_bounds: Rectangle, _bounds: Rectangle,

View file

@ -12,8 +12,8 @@ pub trait Text: Renderer {
pub struct Section<'a, Font> { pub struct Section<'a, Font> {
pub content: &'a str, pub content: &'a str,
pub bounds: Rectangle, pub bounds: Rectangle,
pub size: Option<f32>, pub size: f32,
pub color: Option<Color>, pub color: Color,
pub font: Font, pub font: Font,
pub horizontal_alignment: alignment::Horizontal, pub horizontal_alignment: alignment::Horizontal,
pub vertical_alignment: alignment::Vertical, pub vertical_alignment: alignment::Vertical,

View file

@ -1,6 +1,7 @@
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::{Clipboard, Element, Layout, Point, Rectangle, Size, Vector}; use crate::{Clipboard, Element, Layout, Point, Rectangle, Size, Vector};
use std::hash::Hasher; use std::hash::Hasher;
@ -353,7 +354,7 @@ where
|renderer| { |renderer| {
overlay.draw( overlay.draw(
renderer, renderer,
&Renderer::Defaults::default(), &renderer::Style::default(),
Layout::new(&layer.layout), Layout::new(&layer.layout),
cursor_position, cursor_position,
); );
@ -376,7 +377,7 @@ where
self.root.widget.draw( self.root.widget.draw(
renderer, renderer,
&Renderer::Defaults::default(), &renderer::Style::default(),
Layout::new(&self.base.layout), Layout::new(&self.base.layout),
base_cursor, base_cursor,
&viewport, &viewport,
@ -384,7 +385,7 @@ where
} else { } else {
self.root.widget.draw( self.root.widget.draw(
renderer, renderer,
&Renderer::Defaults::default(), &renderer::Style::default(),
Layout::new(&self.base.layout), Layout::new(&self.base.layout),
cursor_position, cursor_position,
&viewport, &viewport,

View file

@ -81,6 +81,7 @@ pub use tooltip::Tooltip;
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::{Clipboard, Hasher, Layout, Length, Point, Rectangle}; use crate::{Clipboard, Hasher, Layout, Length, Point, Rectangle};
/// A component that displays information and allows interaction. /// A component that displays information and allows interaction.
@ -131,7 +132,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,

View file

@ -5,6 +5,7 @@ use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::touch; use crate::touch;
use crate::{ use crate::{
Clipboard, Element, Hasher, Layout, Length, Padding, Point, Rectangle, Clipboard, Element, Hasher, Layout, Length, Padding, Point, Rectangle,
@ -244,7 +245,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1,15 +1,15 @@
//! Show toggle controls using checkboxes. //! Show toggle controls using checkboxes.
use std::hash::Hash; use std::hash::Hash;
use crate::alignment::{self, Alignment};
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::renderer;
use crate::text; use crate::text;
use crate::touch; use crate::touch;
use crate::{ use crate::{
Clipboard, Color, Element, Hasher, Layout, Length, Point, Rectangle, Row, Alignment, Clipboard, Color, Element, Hasher, Layout, Length, Point,
Text, Widget, Rectangle, Row, Text, Widget,
}; };
/// A box that can be checked. /// A box that can be checked.
@ -182,7 +182,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -4,6 +4,7 @@ use std::hash::Hash;
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::{ use crate::{
Alignment, Clipboard, Element, Hasher, Layout, Length, Padding, Point, Alignment, Clipboard, Element, Hasher, Layout, Length, Padding, Point,
Rectangle, Widget, Rectangle, Widget,
@ -165,13 +166,13 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
for (child, layout) in self.children.iter().zip(layout.children()) { 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);
} }
} }

View file

@ -5,6 +5,7 @@ use crate::alignment::{self, Alignment};
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::{ use crate::{
Clipboard, Element, Hasher, Layout, Length, Padding, Point, Rectangle, Clipboard, Element, Hasher, Layout, Length, Padding, Point, Rectangle,
Widget, Widget,
@ -175,14 +176,14 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
self.content.draw( self.content.draw(
renderer, renderer,
defaults, style,
layout.children().next().unwrap(), layout.children().next().unwrap(),
cursor_position, cursor_position,
viewport, viewport,

View file

@ -3,6 +3,7 @@ pub mod viewer;
pub use viewer::Viewer; pub use viewer::Viewer;
use crate::layout; use crate::layout;
use crate::renderer;
use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget}; use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
use std::{ use std::{
@ -92,7 +93,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, _style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -3,6 +3,7 @@ use crate::event::{self, Event};
use crate::image; use crate::image;
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::renderer;
use crate::{ use crate::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Vector, Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Vector,
Widget, Widget,
@ -283,7 +284,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -32,6 +32,7 @@ use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::touch; use crate::touch;
use crate::{ use crate::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Vector, Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Vector,
@ -475,7 +476,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,

View file

@ -3,6 +3,7 @@ use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::pane_grid::{self, TitleBar}; use crate::pane_grid::{self, TitleBar};
use crate::renderer;
use crate::{Clipboard, Element, Hasher, Layout, Point, Rectangle, Size}; use crate::{Clipboard, Element, Hasher, Layout, Point, Rectangle, Size};
/// The content of a [`Pane`]. /// The content of a [`Pane`].
@ -57,7 +58,7 @@ where
pub fn draw( pub fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,

View file

@ -3,6 +3,7 @@ use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::pane_grid; use crate::pane_grid;
use crate::renderer;
use crate::{ use crate::{
Clipboard, Element, Hasher, Layout, Padding, Point, Rectangle, Size, Clipboard, Element, Hasher, Layout, Padding, Point, Rectangle, Size,
}; };
@ -85,7 +86,7 @@ where
pub fn draw( pub fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,

View file

@ -5,6 +5,7 @@ use crate::layout;
use crate::mouse; use crate::mouse;
use crate::overlay; use crate::overlay;
use crate::overlay::menu::{self, Menu}; use crate::overlay::menu::{self, Menu};
use crate::renderer;
use crate::text; use crate::text;
use crate::touch; use crate::touch;
use crate::{ use crate::{
@ -322,7 +323,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1,7 +1,7 @@
//! Provide progress feedback to your users. //! Provide progress feedback to your users.
use crate::{ use crate::layout;
layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, use crate::renderer;
}; use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
use std::{hash::Hash, ops::RangeInclusive}; use std::{hash::Hash, ops::RangeInclusive};
@ -93,7 +93,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1,15 +1,15 @@
//! Create choices using radio buttons. //! Create choices using radio buttons.
use std::hash::Hash; use std::hash::Hash;
use crate::alignment::{self, Alignment};
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::renderer;
use crate::text; use crate::text;
use crate::touch; use crate::touch;
use crate::{ use crate::{
Clipboard, Color, Element, Hasher, Layout, Length, Point, Rectangle, Row, Alignment, Clipboard, Color, Element, Hasher, Layout, Length, Point,
Text, Widget, Rectangle, Row, Text, Widget,
}; };
/// A circular button representing a choice. /// A circular button representing a choice.
@ -194,7 +194,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -2,6 +2,7 @@
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::overlay; use crate::overlay;
use crate::renderer;
use crate::{ use crate::{
Alignment, Clipboard, Element, Hasher, Layout, Length, Padding, Point, Alignment, Clipboard, Element, Hasher, Layout, Length, Padding, Point,
Rectangle, Widget, Rectangle, Widget,
@ -164,13 +165,13 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
viewport: &Rectangle, viewport: &Rectangle,
) { ) {
for (child, layout) in self.children.iter().zip(layout.children()) { 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);
} }
} }

View file

@ -1,11 +1,10 @@
//! Display a horizontal or vertical rule for dividing content. //! 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 std::hash::Hash;
use crate::{
layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
};
/// Display a horizontal or vertical rule for dividing content. /// Display a horizontal or vertical rule for dividing content.
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct Rule<Renderer: self::Renderer> { pub struct Rule<Renderer: self::Renderer> {
@ -68,7 +67,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -425,7 +425,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,
@ -452,7 +452,7 @@ where
renderer.with_layer(bounds, Vector::new(0, offset), |renderer| { renderer.with_layer(bounds, Vector::new(0, offset), |renderer| {
self.content.draw( self.content.draw(
renderer, renderer,
defaults, style,
content_layout, content_layout,
cursor_position, cursor_position,
&Rectangle { &Rectangle {
@ -502,7 +502,7 @@ where
} else { } else {
self.content.draw( self.content.draw(
renderer, renderer,
defaults, style,
content_layout, content_layout,
cursor_position, cursor_position,
&Rectangle { &Rectangle {

View file

@ -4,12 +4,14 @@
use crate::event::{self, Event}; use crate::event::{self, Event};
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::renderer;
use crate::touch; use crate::touch;
use crate::{ use crate::{
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, 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 /// An horizontal bar and a handle that selects a single value from a range of
/// values. /// values.
@ -246,7 +248,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1,9 +1,9 @@
//! Distribute content vertically. //! 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::{ use std::hash::Hash;
layout, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
};
/// An amount of empty space. /// An amount of empty space.
/// ///
@ -62,7 +62,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -1,12 +1,11 @@
//! Display vector graphics in your application. //! Display vector graphics in your application.
use crate::layout; use crate::layout;
use crate::renderer;
use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget}; use crate::{Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget};
use std::{ use std::hash::{Hash, Hasher as _};
hash::{Hash, Hasher as _}, use std::path::PathBuf;
path::PathBuf, use std::sync::Arc;
sync::Arc,
};
/// A vector graphics image. /// A vector graphics image.
/// ///
@ -90,7 +89,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -135,7 +135,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,
@ -156,9 +156,9 @@ where
renderer.fill_text(renderer::text::Section { renderer.fill_text(renderer::text::Section {
content: &self.content, content: &self.content,
size: self.size.map(f32::from), size: f32::from(self.size.unwrap_or(renderer.default_size())),
bounds: Rectangle { x, y, ..bounds }, bounds: Rectangle { x, y, ..bounds },
color: self.color, color: self.color.unwrap_or(style.text_color),
font: self.font, font: self.font,
horizontal_alignment: self.horizontal_alignment, horizontal_alignment: self.horizontal_alignment,
vertical_alignment: self.vertical_alignment, vertical_alignment: self.vertical_alignment,

View file

@ -15,6 +15,7 @@ use crate::event::{self, Event};
use crate::keyboard; use crate::keyboard;
use crate::layout; use crate::layout;
use crate::mouse::{self, click}; use crate::mouse::{self, click};
use crate::renderer;
use crate::text; use crate::text;
use crate::touch; use crate::touch;
use crate::{ 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> impl<'a, Message, Renderer> Widget<Message, Renderer>
for TextInput<'a, Message, Renderer> for TextInput<'a, Message, Renderer>
where where
@ -627,12 +580,44 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
_defaults: &Renderer::Defaults, _style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _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) { fn hash_layout(&self, state: &mut Hasher) {

View file

@ -5,6 +5,7 @@ use crate::alignment;
use crate::event; use crate::event;
use crate::layout; use crate::layout;
use crate::mouse; use crate::mouse;
use crate::renderer;
use crate::text; use crate::text;
use crate::{ use crate::{
Alignment, Clipboard, Element, Event, Hasher, Layout, Length, Point, Alignment, Clipboard, Element, Event, Hasher, Layout, Length, Point,
@ -185,7 +186,7 @@ where
fn draw( fn draw(
&self, &self,
renderer: &mut Renderer, renderer: &mut Renderer,
defaults: &Renderer::Defaults, style: &renderer::Style,
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -3,12 +3,12 @@ use std::hash::Hash;
use iced_core::Rectangle; use iced_core::Rectangle;
use crate::event;
use crate::layout;
use crate::renderer;
use crate::widget::container; use crate::widget::container;
use crate::widget::text::{self, Text}; use crate::widget::text::{self, Text};
use crate::{ use crate::{Clipboard, Element, Event, Hasher, Layout, Length, Point, Widget};
event, layout, Clipboard, Element, Event, Hasher, Layout, Length, Point,
Widget,
};
/// An element to display a widget over another. /// An element to display a widget over another.
#[allow(missing_debug_implementations)] #[allow(missing_debug_implementations)]
@ -137,7 +137,7 @@ where
fn draw( fn draw(
&self, &self,
_renderer: &mut Renderer, _renderer: &mut Renderer,
_defaults: &Renderer::Defaults, style: &renderer::Style,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor_position: Point, _cursor_position: Point,
_viewport: &Rectangle, _viewport: &Rectangle,

View file

@ -36,9 +36,7 @@ mod backend;
mod quad; mod quad;
mod text; mod text;
pub use iced_graphics::{ pub use iced_graphics::{Antialiasing, Color, Error, Primitive, Viewport};
Antialiasing, Color, Defaults, Error, Primitive, Viewport,
};
pub use wgpu; pub use wgpu;
pub use backend::Backend; pub use backend::Backend;