Rename Layer to overlay::Content

This commit is contained in:
Héctor Ramón Jiménez 2020-05-23 01:07:59 +02:00
parent a264236624
commit 0ff5a02550
9 changed files with 41 additions and 40 deletions

View File

@ -1,6 +1,4 @@
//! Organize rendering primitives into a flattened list of layers. //! Organize rendering primitives into a flattened list of layers.
mod menu;
use crate::image; use crate::image;
use crate::svg; use crate::svg;
use crate::triangle; use crate::triangle;

View File

@ -9,6 +9,7 @@
#![forbid(rust_2018_idioms)] #![forbid(rust_2018_idioms)]
#![cfg_attr(docsrs, feature(doc_cfg))] #![cfg_attr(docsrs, feature(doc_cfg))]
mod antialiasing; mod antialiasing;
mod overlay;
mod primitive; mod primitive;
mod renderer; mod renderer;
mod transformation; mod transformation;

1
graphics/src/overlay.rs Normal file
View File

@ -0,0 +1 @@
mod menu;

View File

@ -1,11 +1,11 @@
use crate::backend::Backend; use crate::backend::Backend;
use crate::{Primitive, Renderer}; use crate::{Primitive, Renderer};
use iced_native::{ use iced_native::{
layer, mouse, Background, Color, Font, HorizontalAlignment, Point, mouse, overlay, Background, Color, Font, HorizontalAlignment, Point,
Rectangle, VerticalAlignment, Rectangle, VerticalAlignment,
}; };
impl<B> layer::menu::Renderer for Renderer<B> impl<B> overlay::menu::Renderer for Renderer<B>
where where
B: Backend, B: Backend,
{ {

View File

@ -36,9 +36,9 @@
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![forbid(rust_2018_idioms)] #![forbid(rust_2018_idioms)]
pub mod keyboard; pub mod keyboard;
pub mod layer;
pub mod layout; pub mod layout;
pub mod mouse; pub mod mouse;
pub mod overlay;
pub mod program; pub mod program;
pub mod renderer; pub mod renderer;
pub mod subscription; pub mod subscription;
@ -49,7 +49,6 @@ mod clipboard;
mod element; mod element;
mod event; mod event;
mod hasher; mod hasher;
mod overlay;
mod runtime; mod runtime;
mod user_interface; mod user_interface;
@ -76,7 +75,6 @@ pub use debug::Debug;
pub use element::Element; pub use element::Element;
pub use event::Event; pub use event::Event;
pub use hasher::Hasher; pub use hasher::Hasher;
pub use layer::Layer;
pub use layout::Layout; pub use layout::Layout;
pub use overlay::Overlay; pub use overlay::Overlay;
pub use program::Program; pub use program::Program;

View File

@ -1,12 +1,17 @@
use crate::{ mod content;
layout, Clipboard, Event, Hasher, Layer, Layout, Point, Size, Vector,
}; pub mod menu;
pub use content::Content;
pub use menu::Menu;
use crate::{layout, Clipboard, Event, Hasher, Layout, Point, Size, Vector};
use std::rc::Rc; use std::rc::Rc;
#[allow(missing_debug_implementations)] #[allow(missing_debug_implementations)]
pub struct Overlay<'a, Message, Renderer> { pub struct Overlay<'a, Message, Renderer> {
position: Point, position: Point,
layer: Box<dyn Layer<Message, Renderer> + 'a>, content: Box<dyn Content<Message, Renderer> + 'a>,
} }
impl<'a, Message, Renderer> Overlay<'a, Message, Renderer> impl<'a, Message, Renderer> Overlay<'a, Message, Renderer>
@ -15,9 +20,9 @@ where
{ {
pub fn new( pub fn new(
position: Point, position: Point,
layer: Box<dyn Layer<Message, Renderer> + 'a>, content: Box<dyn Content<Message, Renderer> + 'a>,
) -> Self { ) -> Self {
Self { position, layer } Self { position, content }
} }
pub fn translate(mut self, translation: Vector) -> Self { pub fn translate(mut self, translation: Vector) -> Self {
@ -33,12 +38,12 @@ where
{ {
Overlay { Overlay {
position: self.position, position: self.position,
layer: Box::new(Map::new(self.layer, f)), content: Box::new(Map::new(self.content, f)),
} }
} }
pub fn layout(&self, renderer: &Renderer, bounds: Size) -> layout::Node { pub fn layout(&self, renderer: &Renderer, bounds: Size) -> layout::Node {
self.layer.layout(renderer, bounds, self.position) self.content.layout(renderer, bounds, self.position)
} }
pub fn draw( pub fn draw(
@ -48,11 +53,12 @@ where
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
) -> Renderer::Output { ) -> Renderer::Output {
self.layer.draw(renderer, defaults, layout, cursor_position) self.content
.draw(renderer, defaults, layout, cursor_position)
} }
pub fn hash_layout(&self, state: &mut Hasher) { pub fn hash_layout(&self, state: &mut Hasher) {
self.layer.hash_layout(state, self.position); self.content.hash_layout(state, self.position);
} }
pub fn on_event( pub fn on_event(
@ -64,7 +70,7 @@ where
renderer: &Renderer, renderer: &Renderer,
clipboard: Option<&dyn Clipboard>, clipboard: Option<&dyn Clipboard>,
) { ) {
self.layer.on_event( self.content.on_event(
event, event,
layout, layout,
cursor_position, cursor_position,
@ -76,20 +82,20 @@ where
} }
struct Map<'a, A, B, Renderer> { struct Map<'a, A, B, Renderer> {
layer: Box<dyn Layer<A, Renderer> + 'a>, content: Box<dyn Content<A, Renderer> + 'a>,
mapper: Rc<dyn Fn(A) -> B>, mapper: Rc<dyn Fn(A) -> B>,
} }
impl<'a, A, B, Renderer> Map<'a, A, B, Renderer> { impl<'a, A, B, Renderer> Map<'a, A, B, Renderer> {
pub fn new( pub fn new(
layer: Box<dyn Layer<A, Renderer> + 'a>, content: Box<dyn Content<A, Renderer> + 'a>,
mapper: Rc<dyn Fn(A) -> B + 'static>, mapper: Rc<dyn Fn(A) -> B + 'static>,
) -> Map<'a, A, B, Renderer> { ) -> Map<'a, A, B, Renderer> {
Map { layer, mapper } Map { content, mapper }
} }
} }
impl<'a, A, B, Renderer> Layer<B, Renderer> for Map<'a, A, B, Renderer> impl<'a, A, B, Renderer> Content<B, Renderer> for Map<'a, A, B, Renderer>
where where
Renderer: crate::Renderer, Renderer: crate::Renderer,
{ {
@ -99,7 +105,7 @@ where
bounds: Size, bounds: Size,
position: Point, position: Point,
) -> layout::Node { ) -> layout::Node {
self.layer.layout(renderer, bounds, position) self.content.layout(renderer, bounds, position)
} }
fn on_event( fn on_event(
@ -113,7 +119,7 @@ where
) { ) {
let mut original_messages = Vec::new(); let mut original_messages = Vec::new();
self.layer.on_event( self.content.on_event(
event, event,
layout, layout,
cursor_position, cursor_position,
@ -134,10 +140,11 @@ where
layout: Layout<'_>, layout: Layout<'_>,
cursor_position: Point, cursor_position: Point,
) -> Renderer::Output { ) -> Renderer::Output {
self.layer.draw(renderer, defaults, layout, cursor_position) self.content
.draw(renderer, defaults, layout, cursor_position)
} }
fn hash_layout(&self, state: &mut Hasher, position: Point) { fn hash_layout(&self, state: &mut Hasher, position: Point) {
self.layer.hash_layout(state, position); self.content.hash_layout(state, position);
} }
} }

View File

@ -1,11 +1,6 @@
pub mod menu;
#[doc(no_inline)]
pub use menu::Menu;
use crate::{layout, Clipboard, Event, Hasher, Layout, Point, Size}; use crate::{layout, Clipboard, Event, Hasher, Layout, Point, Size};
pub trait Layer<Message, Renderer> pub trait Content<Message, Renderer>
where where
Renderer: crate::Renderer, Renderer: crate::Renderer,
{ {

View File

@ -1,7 +1,7 @@
use crate::{ use crate::{
container, layout, mouse, scrollable, Clipboard, Container, Element, Event, container, layout, mouse, overlay, scrollable, Clipboard, Container,
Hasher, Layer, Layout, Length, Point, Rectangle, Scrollable, Size, Vector, Element, Event, Hasher, Layout, Length, Point, Rectangle, Scrollable, Size,
Widget, Vector, Widget,
}; };
use std::borrow::Cow; use std::borrow::Cow;
@ -68,7 +68,7 @@ where
} }
} }
impl<'a, Message, Renderer> Layer<Message, Renderer> impl<'a, Message, Renderer> overlay::Content<Message, Renderer>
for Menu<'a, Message, Renderer> for Menu<'a, Message, Renderer>
where where
Renderer: self::Renderer, Renderer: self::Renderer,

View File

@ -1,7 +1,8 @@
use crate::{ use crate::{
layer::{self, menu}, layout, mouse,
layout, mouse, scrollable, text, Clipboard, Element, Event, Hasher, Layout, overlay::menu::{self, Menu},
Length, Overlay, Point, Rectangle, Size, Widget, scrollable, text, Clipboard, Element, Event, Hasher, Layout, Length,
Overlay, Point, Rectangle, Size, Widget,
}; };
use std::borrow::Cow; use std::borrow::Cow;
@ -214,7 +215,7 @@ where
Some(Overlay::new( Some(Overlay::new(
layout.position(), layout.position(),
Box::new(layer::Menu::new( Box::new(Menu::new(
menu, menu,
self.options.clone(), self.options.clone(),
on_selected, on_selected,