mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
use main loop with input everywhere
This commit is contained in:
parent
d6bf840a1f
commit
7dd5f7f488
16 changed files with 301 additions and 168 deletions
|
|
@ -5,7 +5,6 @@ pub fn render_toolbar_vertical (
|
|||
offset: (u16, u16),
|
||||
actions: &[(&str, &str)],
|
||||
) -> Result<(u16, u16), Box<dyn Error>> {
|
||||
use crossterm::{*, style::{Stylize, PrintStyledContent}, cursor::MoveTo};
|
||||
let move_to = |col, row| MoveTo(offset.0 + col, offset.1 + row);
|
||||
let mut x: u16 = 1;
|
||||
let mut y: u16 = 0;
|
||||
|
|
@ -31,11 +30,20 @@ pub fn render_box (
|
|||
) -> Result<(), Box<dyn Error>> {
|
||||
let edge: String = std::iter::repeat("─").take(w.saturating_sub(2) as usize).collect();
|
||||
let back: String = std::iter::repeat(" ").take(w.saturating_sub(2) as usize).collect();
|
||||
stdout.queue(MoveTo(x, y))?.queue(Print(&format!("┌{edge}┐")))?;
|
||||
for row in y+1..y+h {
|
||||
stdout.queue(MoveTo(x, row))?.queue(Print("│"))?;
|
||||
stdout.queue(MoveTo(x+w-1, row))?.queue(Print("│"))?;
|
||||
if active {
|
||||
stdout.queue(MoveTo(x, y))?.queue(PrintStyledContent(format!("┌{edge}┐").bold().yellow()))?;
|
||||
for row in y+1..y+h {
|
||||
stdout.queue(MoveTo(x, row))?.queue(PrintStyledContent("│".bold().yellow()))?;
|
||||
stdout.queue(MoveTo(x+w-1, row))?.queue(PrintStyledContent("│".bold().yellow()))?;
|
||||
}
|
||||
stdout.queue(MoveTo(x, y+h))?.queue(PrintStyledContent(format!("└{edge}┘").bold().yellow()))?;
|
||||
} else {
|
||||
stdout.queue(MoveTo(x, y))?.queue(Print(&format!("┌{edge}┐")))?;
|
||||
for row in y+1..y+h {
|
||||
stdout.queue(MoveTo(x, row))?.queue(Print("│"))?;
|
||||
stdout.queue(MoveTo(x+w-1, row))?.queue(Print("│"))?;
|
||||
}
|
||||
stdout.queue(MoveTo(x, y+h))?.queue(Print(&format!("└{edge}┘")))?;
|
||||
}
|
||||
stdout.queue(MoveTo(x, y+h))?.queue(Print(&format!("└{edge}┘")))?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue