Remove themer use from gradient example 🎉

This commit is contained in:
Héctor Ramón Jiménez 2024-03-12 16:52:53 +01:00
parent b721fd935c
commit 98621aa344
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
2 changed files with 31 additions and 13 deletions

View file

@ -1,6 +1,6 @@
use iced::application; use iced::application;
use iced::widget::{ use iced::widget::{
checkbox, column, container, horizontal_space, row, slider, text, themer, checkbox, column, container, horizontal_space, row, slider, text,
}; };
use iced::{gradient, window}; use iced::{gradient, window};
use iced::{ use iced::{
@ -70,16 +70,16 @@ impl Sandbox for Gradient {
transparent, transparent,
} = *self; } = *self;
let gradient = gradient::Linear::new(angle) let gradient_box = container(horizontal_space())
.add_stop(0.0, start) .style(move |_theme, _status| {
.add_stop(1.0, end); let gradient = gradient::Linear::new(angle)
.add_stop(0.0, start)
.add_stop(1.0, end);
let gradient_box = themer( gradient.into()
gradient, })
container(horizontal_space()) .width(Length::Fill)
.width(Length::Fill) .height(Length::Fill);
.height(Length::Fill),
);
let angle_picker = row![ let angle_picker = row![
text("Angle").width(64), text("Angle").width(64),

View file

@ -539,6 +539,24 @@ impl Appearance {
} }
} }
impl From<Color> for Appearance {
fn from(color: Color) -> Self {
Self::default().with_background(color)
}
}
impl From<Gradient> for Appearance {
fn from(gradient: Gradient) -> Self {
Self::default().with_background(gradient)
}
}
impl From<gradient::Linear> for Appearance {
fn from(gradient: gradient::Linear) -> Self {
Self::default().with_background(gradient)
}
}
/// The possible status of a [`Container`]. /// The possible status of a [`Container`].
#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Status { pub enum Status {
@ -571,19 +589,19 @@ impl DefaultStyle for Appearance {
impl DefaultStyle for Color { impl DefaultStyle for Color {
fn default_style(&self, _status: Status) -> Appearance { fn default_style(&self, _status: Status) -> Appearance {
Appearance::default().with_background(*self) Appearance::from(*self)
} }
} }
impl DefaultStyle for Gradient { impl DefaultStyle for Gradient {
fn default_style(&self, _status: Status) -> Appearance { fn default_style(&self, _status: Status) -> Appearance {
Appearance::default().with_background(*self) Appearance::from(*self)
} }
} }
impl DefaultStyle for gradient::Linear { impl DefaultStyle for gradient::Linear {
fn default_style(&self, _status: Status) -> Appearance { fn default_style(&self, _status: Status) -> Appearance {
Appearance::default().with_background(*self) Appearance::from(*self)
} }
} }