faststep 0.1.0

UIKit-inspired embedded UI framework built on embedded-graphics
Documentation
#[path = "support/mod.rs"]
mod support;

use embedded_graphics::{
    pixelcolor::Rgb565,
    prelude::{Point, RgbColor, Size},
    primitives::Rectangle,
};
use faststep::{AlertHost, AlertSpec, AlertView, Localized, ModalHost, TouchEvent, TouchPhase};

fn main() {
    let bounds = Rectangle::new(Point::zero(), Size::new(320, 240));
    let theme = support::theme();
    let i18n = support::i18n();
    let mut canvas = support::NullCanvas::new(bounds.size);

    let spec = AlertSpec::confirm(
        Localized::new("alert.title", "Delete item?"),
        Localized::new("alert.message", "This action cannot be undone."),
    );
    let mut alert = AlertView::new(spec);
    let panel = alert.panel(bounds, &theme, &i18n);
    alert.draw(&mut canvas, panel, &theme, &i18n);
    let _ = alert.handle_touch(TouchEvent::new(panel.center(), TouchPhase::Start, 1), panel);

    let mut host = AlertHost::<u8, 2>::new();
    let _ = host.present(7, spec);
    let _ = host.layer(bounds, &theme, &i18n);
    host.draw(&mut canvas, bounds, &theme, &i18n);
    let _ = host.handle_touch(
        TouchEvent::new(Point::new(160, 160), TouchPhase::End, 2),
        bounds,
        &theme,
        &i18n,
    );

    let mut modal = ModalHost::new();
    modal.show(3_u8);
    let _ = modal.current(bounds, &theme);
    let _ = Rgb565::BLACK;
}