summaryrefslogtreecommitdiffstats
path: root/examples/game_of_life
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-10 07:41:31 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-10 07:41:31 +0200
commit94383d82a5d080a28de025fadc6b7ba27e37927d (patch)
treeba950201b684401a9e060b6b96f176c9cc7b4138 /examples/game_of_life
parentb64e0ea5e31e718e435b24244119f59f7128bc27 (diff)
downloadiced-94383d82a5d080a28de025fadc6b7ba27e37927d.tar.gz
iced-94383d82a5d080a28de025fadc6b7ba27e37927d.tar.bz2
iced-94383d82a5d080a28de025fadc6b7ba27e37927d.zip
Style `PickList` in `game_of_life` example
Diffstat (limited to 'examples/game_of_life')
-rw-r--r--examples/game_of_life/src/main.rs17
-rw-r--r--examples/game_of_life/src/preset.rs18
-rw-r--r--examples/game_of_life/src/style.rs56
3 files changed, 75 insertions, 16 deletions
diff --git a/examples/game_of_life/src/main.rs b/examples/game_of_life/src/main.rs
index 4663ae72..27d4eec1 100644
--- a/examples/game_of_life/src/main.rs
+++ b/examples/game_of_life/src/main.rs
@@ -842,12 +842,17 @@ impl Controls {
.spacing(5)
.text_size(16),
)
- .push(PickList::new(
- &mut self.preset_list,
- preset::ALL,
- Some(preset),
- Message::PresetPicked,
- ))
+ .push(
+ PickList::new(
+ &mut self.preset_list,
+ preset::ALL,
+ Some(preset),
+ Message::PresetPicked,
+ )
+ .padding(8)
+ .text_size(16)
+ .style(style::PickList),
+ )
.push(
Button::new(&mut self.clear_button, Text::new("Clear"))
.on_press(Message::Clear)
diff --git a/examples/game_of_life/src/preset.rs b/examples/game_of_life/src/preset.rs
index 1a471141..05157b6a 100644
--- a/examples/game_of_life/src/preset.rs
+++ b/examples/game_of_life/src/preset.rs
@@ -8,8 +8,8 @@ pub enum Preset {
TenCellRow,
LightweightSpaceship,
Tumbler,
- Acorn,
GliderGun,
+ Acorn,
}
pub static ALL: &[Preset] = &[
@@ -21,8 +21,8 @@ pub static ALL: &[Preset] = &[
Preset::TenCellRow,
Preset::LightweightSpaceship,
Preset::Tumbler,
- Preset::Acorn,
Preset::GliderGun,
+ Preset::Acorn,
];
impl Preset {
@@ -76,11 +76,6 @@ impl Preset {
"x x x x",
"xx xx",
],
- Preset::Acorn => vec![
- " x ",
- " x ",
- "xx xxx",
- ],
Preset::GliderGun => vec![
" x ",
" x x ",
@@ -91,7 +86,12 @@ impl Preset {
" x x x ",
" x x ",
" xx ",
- ]
+ ],
+ Preset::Acorn => vec![
+ " x ",
+ " x ",
+ "xx xxx",
+ ],
};
let start_row = -(cells.len() as isize / 2);
@@ -134,8 +134,8 @@ impl std::fmt::Display for Preset {
Preset::TenCellRow => "10 Cell Row",
Preset::LightweightSpaceship => "Lightweight spaceship",
Preset::Tumbler => "Tumbler",
- Preset::Acorn => "Acorn",
Preset::GliderGun => "Gosper Glider Gun",
+ Preset::Acorn => "Acorn",
}
)
}
diff --git a/examples/game_of_life/src/style.rs b/examples/game_of_life/src/style.rs
index d59569f2..308ce43c 100644
--- a/examples/game_of_life/src/style.rs
+++ b/examples/game_of_life/src/style.rs
@@ -1,4 +1,4 @@
-use iced::{button, container, slider, Background, Color};
+use iced::{button, container, pick_list, slider, Background, Color};
const ACTIVE: Color = Color::from_rgb(
0x72 as f32 / 255.0,
@@ -18,6 +18,12 @@ const HOVERED: Color = Color::from_rgb(
0xC4 as f32 / 255.0,
);
+const BACKGROUND: Color = Color::from_rgb(
+ 0x2F as f32 / 255.0,
+ 0x31 as f32 / 255.0,
+ 0x36 as f32 / 255.0,
+);
+
pub struct Container;
impl container::StyleSheet for Container {
@@ -132,3 +138,51 @@ impl slider::StyleSheet for Slider {
}
}
}
+
+pub struct PickList;
+
+impl pick_list::StyleSheet for PickList {
+ fn menu(&self) -> pick_list::Menu {
+ pick_list::Menu {
+ text_color: Color::WHITE,
+ background: BACKGROUND.into(),
+ border_width: 1,
+ border_color: Color {
+ a: 0.7,
+ ..Color::BLACK
+ },
+ selected_background: Color {
+ a: 0.5,
+ ..Color::BLACK
+ }
+ .into(),
+ selected_text_color: Color::WHITE,
+ }
+ }
+
+ fn active(&self) -> pick_list::Style {
+ pick_list::Style {
+ text_color: Color::WHITE,
+ background: BACKGROUND.into(),
+ border_width: 1,
+ border_color: Color {
+ a: 0.6,
+ ..Color::BLACK
+ },
+ border_radius: 2,
+ icon_size: 0.5,
+ }
+ }
+
+ fn hovered(&self) -> pick_list::Style {
+ let active = self.active();
+
+ pick_list::Style {
+ border_color: Color {
+ a: 0.9,
+ ..Color::BLACK
+ },
+ ..active
+ }
+ }
+}