Draft first-class Theme support

RFC: https://github.com/iced-rs/rfcs/pull/6
This commit is contained in:
Héctor Ramón Jiménez 2022-05-14 01:47:55 +02:00
parent 5de337f214
commit 664251f3f5
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
113 changed files with 767 additions and 878 deletions

View file

@ -1,7 +1,13 @@
use iced::alignment;
use iced::button;
use iced::scrollable;
use iced::slider;
use iced::text_input;
use iced::theme;
use iced::{
alignment, button, scrollable, slider, text_input, Button, Checkbox, Color,
Column, Container, ContentFit, Element, Image, Length, Radio, Row, Sandbox,
Scrollable, Settings, Slider, Space, Text, TextInput, Toggler,
Button, Checkbox, Color, Column, Container, ContentFit, Element, Image,
Length, Radio, Row, Sandbox, Scrollable, Settings, Slider, Space, Text,
TextInput, Toggler,
};
pub fn main() -> iced::Result {
@ -64,7 +70,7 @@ impl Sandbox for Tour {
controls = controls.push(
button(back_button, "Back")
.on_press(Message::BackPressed)
.style(style::Button::Secondary),
.style(theme::Button::Secondary),
);
}
@ -74,7 +80,7 @@ impl Sandbox for Tour {
controls = controls.push(
button(next_button, "Next")
.on_press(Message::NextPressed)
.style(style::Button::Primary),
.style(theme::Button::Primary),
);
}
@ -818,36 +824,3 @@ pub enum Layout {
Row,
Column,
}
mod style {
use iced::button;
use iced::{Background, Color, Vector};
pub enum Button {
Primary,
Secondary,
}
impl button::StyleSheet for Button {
fn active(&self) -> button::Style {
button::Style {
background: Some(Background::Color(match self {
Button::Primary => Color::from_rgb(0.11, 0.42, 0.87),
Button::Secondary => Color::from_rgb(0.5, 0.5, 0.5),
})),
border_radius: 12.0,
shadow_offset: Vector::new(1.0, 1.0),
text_color: Color::from_rgb8(0xEE, 0xEE, 0xEE),
..button::Style::default()
}
}
fn hovered(&self) -> button::Style {
button::Style {
text_color: Color::WHITE,
shadow_offset: Vector::new(1.0, 2.0),
..self.active()
}
}
}
}