Move Defaults from iced_graphics to iced_native
This commit is contained in:
parent
54a9a232f8
commit
edea093350
39 changed files with 166 additions and 192 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue