40 lines
913 B
Rust
40 lines
913 B
Rust
use std::sync::Arc;
|
|
|
|
use osmium_engine::prelude::*;
|
|
|
|
fn main() -> Result<()> {
|
|
let mut console = init(true)?;
|
|
|
|
let ui = app();
|
|
|
|
loop {
|
|
console.render(ui.clone())?;
|
|
match crossterm::event::read()? {
|
|
crossterm::event::Event::Mouse(crossterm::event::MouseEvent {
|
|
kind: crossterm::event::MouseEventKind::Moved,
|
|
row,
|
|
column,
|
|
..
|
|
}) => console.mouse_position = Some((column, row)),
|
|
crossterm::event::Event::Resize(_, _) => {}
|
|
_ => break,
|
|
}
|
|
}
|
|
|
|
console.close()
|
|
}
|
|
|
|
pub fn app() -> Ui {
|
|
Arc::new(|frame| {
|
|
frame.draw(
|
|
&"Hello, World",
|
|
&Props::center().state("hover", Style {
|
|
color: Color::Red,
|
|
background: Color::Red,
|
|
px: 1,
|
|
py: 0,
|
|
}),
|
|
);
|
|
})
|
|
}
|