summaryrefslogtreecommitdiffstats
path: root/wgpu/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-01-01 14:16:10 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-01-01 14:16:10 +0100
commite1062a02d17f5748e4809b76ddcc132f1c912886 (patch)
tree70fbd0e7b6ee7801f017f469cfdb1b786e2a085d /wgpu/src
parent9ab7c47dc7d834ee73bc068f9f34eea4d6946436 (diff)
downloadiced-e1062a02d17f5748e4809b76ddcc132f1c912886.tar.gz
iced-e1062a02d17f5748e4809b76ddcc132f1c912886.tar.bz2
iced-e1062a02d17f5748e4809b76ddcc132f1c912886.zip
Move styling to a brand new `iced_style` crate
Diffstat (limited to 'wgpu/src')
-rw-r--r--wgpu/src/widget/button.rs77
-rw-r--r--wgpu/src/widget/container.rs43
2 files changed, 9 insertions, 111 deletions
diff --git a/wgpu/src/widget/button.rs b/wgpu/src/widget/button.rs
index 2c4e174f..b738c55e 100644
--- a/wgpu/src/widget/button.rs
+++ b/wgpu/src/widget/button.rs
@@ -5,86 +5,11 @@
//! [`Button`]: type.Button.html
//! [`State`]: struct.State.html
use crate::Renderer;
-use iced_native::{Background, Color};
pub use iced_native::button::State;
+pub use iced_style::button::{Style, StyleSheet};
/// A widget that produces a message when clicked.
///
/// This is an alias of an `iced_native` button with an `iced_wgpu::Renderer`.
pub type Button<'a, Message> = iced_native::Button<'a, Message, Renderer>;
-
-#[derive(Debug)]
-pub struct Style {
- pub shadow_offset: f32,
- pub background: Option<Background>,
- pub border_radius: u16,
- pub text_color: Color,
-}
-
-pub trait StyleSheet {
- fn active(&self) -> Style;
-
- fn hovered(&self) -> Style {
- let active = self.active();
-
- Style {
- shadow_offset: active.shadow_offset + 1.0,
- ..active
- }
- }
-
- fn pressed(&self) -> Style {
- Style {
- shadow_offset: 0.0,
- ..self.active()
- }
- }
-
- fn disabled(&self) -> Style {
- let active = self.active();
-
- Style {
- shadow_offset: 0.0,
- background: active.background.map(|background| match background {
- Background::Color(color) => Background::Color(Color {
- a: color.a * 0.5,
- ..color
- }),
- }),
- text_color: Color {
- a: active.text_color.a * 0.5,
- ..active.text_color
- },
- ..active
- }
- }
-}
-
-struct Default;
-
-impl StyleSheet for Default {
- fn active(&self) -> Style {
- Style {
- shadow_offset: 1.0,
- background: Some(Background::Color([0.5, 0.5, 0.5].into())),
- border_radius: 5,
- text_color: Color::BLACK,
- }
- }
-}
-
-impl std::default::Default for Box<dyn StyleSheet> {
- fn default() -> Self {
- Box::new(Default)
- }
-}
-
-impl<T> From<T> for Box<dyn StyleSheet>
-where
- T: 'static + StyleSheet,
-{
- fn from(style: T) -> Self {
- Box::new(style)
- }
-}
diff --git a/wgpu/src/widget/container.rs b/wgpu/src/widget/container.rs
index 1fc0ec98..9a93a246 100644
--- a/wgpu/src/widget/container.rs
+++ b/wgpu/src/widget/container.rs
@@ -1,37 +1,10 @@
-use iced_native::{Background, Color};
+//! Decorate content and apply alignment.
+use crate::Renderer;
-#[derive(Debug, Clone, Copy)]
-pub struct Style {
- pub text_color: Option<Color>,
- pub background: Option<Background>,
- pub border_radius: u16,
-}
+pub use iced_style::container::{Style, StyleSheet};
-pub trait StyleSheet {
- fn style(&self) -> Style {
- Style {
- text_color: None,
- background: None,
- border_radius: 0,
- }
- }
-}
-
-struct Default;
-
-impl StyleSheet for Default {}
-
-impl std::default::Default for Box<dyn StyleSheet> {
- fn default() -> Self {
- Box::new(Default)
- }
-}
-
-impl<T> From<T> for Box<dyn StyleSheet>
-where
- T: 'static + StyleSheet,
-{
- fn from(style: T) -> Self {
- Box::new(style)
- }
-}
+/// An element decorating some content.
+///
+/// This is an alias of an `iced_native` container with a default
+/// `Renderer`.
+pub type Container<'a, Message> = iced_native::Container<'a, Message, Renderer>;