Implement theme styling for Rule

This commit is contained in:
Héctor Ramón Jiménez 2022-06-01 01:56:46 +02:00
parent 6f69df3d41
commit c275fde67a
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
8 changed files with 86 additions and 123 deletions

View file

@ -179,7 +179,7 @@ impl Sandbox for ScrollableDemo {
.spacing(20)
.padding(20)
.push(choose_theme)
.push(Rule::horizontal(20).style(self.theme))
.push(Rule::horizontal(20))
.push(scrollable_row);
Container::new(content)

View file

@ -1,4 +1,4 @@
use iced::{container, rule, scrollable};
use iced::{container, scrollable};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Theme {
@ -34,17 +34,8 @@ impl<'a> From<Theme> for Box<dyn scrollable::StyleSheet + 'a> {
}
}
impl From<Theme> for Box<dyn rule::StyleSheet> {
fn from(theme: Theme) -> Self {
match theme {
Theme::Light => Default::default(),
Theme::Dark => dark::Rule.into(),
}
}
}
mod dark {
use iced::{container, rule, scrollable, Color};
use iced::{container, scrollable, Color};
const BACKGROUND: Color = Color::from_rgb(
0x36 as f32 / 255.0,
@ -139,17 +130,4 @@ mod dark {
}
}
}
pub struct Rule;
impl rule::StyleSheet for Rule {
fn style(&self) -> rule::Style {
rule::Style {
color: SURFACE,
width: 2,
radius: 1.0,
fill_mode: rule::FillMode::Percent(30.0),
}
}
}
}