hover state

This commit is contained in:
2025-01-23 13:55:36 +01:00
parent 42db070f48
commit 05c3376a52
4 changed files with 203 additions and 28 deletions
+20 -4
View File
@@ -3,17 +3,33 @@ use std::sync::Arc;
use osmium_engine::prelude::*;
fn main() -> Result<()> {
let mut console = init(false)?;
let mut console = init(true)?;
console.render(app())?;
let ui = app();
crossterm::event::read()?;
loop {
console.render(ui.clone())?;
if let crossterm::event::Event::Mouse(crossterm::event::MouseEvent {
kind: crossterm::event::MouseEventKind::Moved,
row,
column,
..
}) = crossterm::event::read()?
{
console.mouse_position = Some((column, row));
} else {
break;
}
}
console.close()
}
pub fn app() -> Ui {
Arc::new(|frame| {
frame.draw(&"Hello, World", &Props::center());
frame.draw(
&"Hello, World",
&Props::center().state("hover", Style { color: Color::Blue }),
);
})
}