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,
// 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,

View file

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

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 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;

View file

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

View file

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

View file

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

View file

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

View file

@ -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,
);

View file

@ -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) {

View file

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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);
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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);
}
}

View file

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

View file

@ -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 {

View file

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

View file

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

View file

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

View file

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

View file

@ -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) {

View file

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

View file

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

View file

@ -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;