summaryrefslogtreecommitdiffstats
path: root/examples/styling
diff options
context:
space:
mode:
authorLibravatar Ashley Wulber <ashley@system76.com>2022-09-07 12:04:56 -0400
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-11-03 03:23:35 +0100
commitbc26dff2ca1d3bcc431d489c5958df5e864f1863 (patch)
treead1127f2052dd62f0b6c6b13a9082bf4931a9d2c /examples/styling
parente2166ecad020662d246b364637efc4e6ee3bc1db (diff)
downloadiced-bc26dff2ca1d3bcc431d489c5958df5e864f1863.tar.gz
iced-bc26dff2ca1d3bcc431d489c5958df5e864f1863.tar.bz2
iced-bc26dff2ca1d3bcc431d489c5958df5e864f1863.zip
refactor: undo changes to radio
Diffstat (limited to 'examples/styling')
-rw-r--r--examples/styling/src/main.rs29
1 files changed, 20 insertions, 9 deletions
diff --git a/examples/styling/src/main.rs b/examples/styling/src/main.rs
index 36ab0c0c..69827130 100644
--- a/examples/styling/src/main.rs
+++ b/examples/styling/src/main.rs
@@ -23,6 +23,13 @@ pub fn main() -> iced::Result {
static CUSTOM_THEME: OnceCell<Theme> = OnceCell::new();
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+enum ThemeType {
+ Light,
+ Dark,
+ Custom,
+}
+
#[derive(Default)]
struct Styling {
theme: Theme,
@@ -34,7 +41,7 @@ struct Styling {
#[derive(Debug, Clone)]
enum Message {
- ThemeChanged(Theme),
+ ThemeChanged(ThemeType),
InputChanged(String),
ButtonPressed,
SliderChanged(f32),
@@ -55,7 +62,11 @@ impl Sandbox for Styling {
fn update(&mut self, message: Message) {
match message {
- Message::ThemeChanged(theme) => self.theme = theme,
+ Message::ThemeChanged(theme) => self.theme = match theme {
+ ThemeType::Light => Theme::Light,
+ ThemeType::Dark => Theme::Dark,
+ ThemeType::Custom => *CUSTOM_THEME.get().unwrap(),
+ },
Message::InputChanged(value) => self.input_value = value,
Message::ButtonPressed => {}
Message::SliderChanged(value) => self.slider_value = value,
@@ -65,17 +76,17 @@ impl Sandbox for Styling {
}
fn view(&self) -> Element<Message> {
- let choose_theme = [Theme::Light, Theme::Dark, *CUSTOM_THEME.get().unwrap()].iter().fold(
+ let choose_theme = [ThemeType::Light, ThemeType::Dark, ThemeType::Custom].iter().fold(
column![text("Choose a theme:")].spacing(10),
|column, theme| {
column.push(radio(
- match theme {
- Theme::Light => "Light",
- Theme::Dark => "Dark",
- Theme::Custom { .. } => "Custom",
- },
+ format!("{:?}", theme),
*theme,
- Some(self.theme),
+ Some(match self.theme {
+ Theme::Light => ThemeType::Light,
+ Theme::Dark => ThemeType::Dark,
+ Theme::Custom { .. } => ThemeType::Custom,
+ }),
Message::ThemeChanged,
))
},