mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
50 lines
1.6 KiB
Rust
50 lines
1.6 KiB
Rust
use crate::prelude::*;
|
|
use super::Sequencer;
|
|
|
|
pub fn render (
|
|
state: &mut Sequencer,
|
|
stdout: &mut Stdout,
|
|
offset: (u16, u16)
|
|
) -> Result<(), Box<dyn Error>> {
|
|
//render_toolbar(state, stdout, offset)?;
|
|
render_grid(state, stdout, offset)?;
|
|
render_events(state, stdout, offset)?;
|
|
Ok(())
|
|
}
|
|
|
|
fn render_grid (
|
|
state: &mut Sequencer,
|
|
stdout: &mut Stdout,
|
|
offset: (u16, u16)
|
|
) -> Result<(), Box<dyn Error>> {
|
|
let move_to = |col, row| crossterm::cursor::MoveTo(offset.0 + col, offset.1 + row);
|
|
let bg = "┊···············┊···············┊···············┊···············";
|
|
let cursor: String = if state.cursor.2 == 0 {
|
|
"X".into()
|
|
} else {
|
|
std::iter::repeat("·")
|
|
.take(state.cursor.2 as usize)
|
|
.collect()
|
|
};
|
|
stdout
|
|
.queue(move_to(1, 3))?.queue(Print("1.1"))?
|
|
.queue(move_to(17, 3))?.queue(Print("1.2"))?
|
|
.queue(move_to(33, 3))?.queue(Print("1.3"))?
|
|
.queue(move_to(49, 3))?.queue(Print("1.4"))?
|
|
.queue(move_to(1, 4))?.queue(PrintStyledContent(bg.grey()))?
|
|
.queue(move_to(1, 5))?.queue(PrintStyledContent(bg.grey()))?
|
|
.queue(move_to(1, 6))?.queue(PrintStyledContent(bg.grey()))?
|
|
.queue(move_to(1, 7))?.queue(PrintStyledContent(bg.grey()))?
|
|
.queue(move_to(1 + state.cursor.0, 4 + state.cursor.1))?
|
|
.queue(PrintStyledContent(cursor.reverse()))?;
|
|
Ok(())
|
|
}
|
|
|
|
fn render_events (
|
|
state: &mut Sequencer,
|
|
stdout: &mut Stdout,
|
|
offset: (u16, u16)
|
|
) -> Result<(), Box<dyn Error>> {
|
|
Ok(())
|
|
}
|
|
|