Files
g13/g13-os/src/app/mod.rs
2026-02-14 20:13:16 +01:00

37 lines
787 B
Rust

pub(super) mod pages;
pub(super) mod widgets;
use std::collections::VecDeque;
use g13_driver::{G13, G13Event};
use crate::app::pages::StartPage;
use super::app::pages::Page;
pub struct App {
pages: VecDeque<Box<dyn Page<Display = G13>>>,
}
impl App {
pub fn new() -> Self {
let mut pages: VecDeque<Box<dyn Page<Display = G13>>> = VecDeque::new();
pages.push_back(Box::new(StartPage::new()));
Self { pages }
}
pub fn update(&mut self, event: G13Event) {
if let Some(last_page) = self.pages.iter_mut().last() {
last_page.update(event);
}
}
pub fn draw(&mut self, display: &mut G13) {
if let Some(last_page) = self.pages.iter_mut().last() {
last_page.draw(display);
}
}
}