summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget/button.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-30 12:14:26 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-30 12:14:26 +0100
commit8caa66be2708b1c83e20d905d69902c2567c4692 (patch)
treeee18296fc3d32f24bca90f97fc6845d97f3e4c21 /wgpu/src/widget/button.rs
parent89a6b8a9a173e767753ec777fd83c912c1be5ea3 (diff)
downloadiced-8caa66be2708b1c83e20d905d69902c2567c4692.tar.gz
iced-8caa66be2708b1c83e20d905d69902c2567c4692.tar.bz2
iced-8caa66be2708b1c83e20d905d69902c2567c4692.zip
Add `Renderer::Defaults` and style inheritance
Diffstat (limited to '')
-rw-r--r--wgpu/src/widget/button.rs45
1 files changed, 19 insertions, 26 deletions
diff --git a/wgpu/src/widget/button.rs b/wgpu/src/widget/button.rs
index 7827f8b2..2c4e174f 100644
--- a/wgpu/src/widget/button.rs
+++ b/wgpu/src/widget/button.rs
@@ -5,7 +5,7 @@
//! [`Button`]: type.Button.html
//! [`State`]: struct.State.html
use crate::Renderer;
-use iced_native::Background;
+use iced_native::{Background, Color};
pub use iced_native::button::State;
@@ -19,6 +19,7 @@ pub struct Style {
pub shadow_offset: f32,
pub background: Option<Background>,
pub border_radius: u16,
+ pub text_color: Color,
}
pub trait StyleSheet {
@@ -41,7 +42,22 @@ pub trait StyleSheet {
}
fn disabled(&self) -> Style {
- self.active()
+ 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
+ }
}
}
@@ -53,30 +69,7 @@ impl StyleSheet for Default {
shadow_offset: 1.0,
background: Some(Background::Color([0.5, 0.5, 0.5].into())),
border_radius: 5,
- }
- }
-
- fn hovered(&self) -> Style {
- Style {
- shadow_offset: 2.0,
- background: Some(Background::Color([0.5, 0.5, 0.5].into())),
- border_radius: 5,
- }
- }
-
- fn pressed(&self) -> Style {
- Style {
- shadow_offset: 0.0,
- background: Some(Background::Color([0.5, 0.5, 0.5].into())),
- border_radius: 5,
- }
- }
-
- fn disabled(&self) -> Style {
- Style {
- shadow_offset: 0.0,
- background: Some(Background::Color([0.7, 0.7, 0.7].into())),
- border_radius: 5,
+ text_color: Color::BLACK,
}
}
}