1#[path = "support/mod.rs"]
2mod support;
3
4use embedded_graphics::{
5 pixelcolor::Rgb565,
6 prelude::{Point, RgbColor, Size},
7 primitives::Rectangle,
8};
9use faststep::{Button, ButtonKind, ButtonSpec, Localized, TouchEvent, TouchPhase};
10
11fn main() {
12 let mut canvas = support::NullCanvas::new(Size::new(320, 240));
13 let theme = support::theme();
14 let i18n = support::i18n();
15
16 let mut primary = Button::new(
17 Rectangle::new(Point::new(16, 16), Size::new(132, 56)),
18 ButtonSpec {
19 key: 1_u8,
20 icon: Some("+"),
21 label: Localized::new("button.add", "Add device"),
22 kind: ButtonKind::Primary,
23 },
24 );
25 let secondary = Button::new(
26 Rectangle::new(Point::new(16, 84), Size::new(132, 48)),
27 ButtonSpec {
28 key: 2_u8,
29 icon: None,
30 label: Localized::new("button.more", "More"),
31 kind: ButtonKind::Secondary,
32 },
33 );
34 let destructive = Button::new(
35 Rectangle::new(Point::new(16, 144), Size::new(132, 48)),
36 ButtonSpec {
37 key: 3_u8,
38 icon: None,
39 label: Localized::new("button.delete", "Delete"),
40 kind: ButtonKind::Destructive,
41 },
42 );
43
44 primary.draw(&mut canvas, &theme, &i18n);
45 secondary.draw(&mut canvas, &theme, &i18n);
46 destructive.draw(&mut canvas, &theme, &i18n);
47
48 let _ = primary.handle_touch(TouchEvent::new(Point::new(24, 24), TouchPhase::Start, 1));
49 let response = primary.handle_touch(TouchEvent::new(Point::new(24, 24), TouchPhase::End, 2));
50 let _pressed = response.action == Some(1);
51
52 let _ = Rgb565::BLACK;
53}