mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
let's deal with the centering later
This commit is contained in:
parent
9ca872cb98
commit
a6643ab990
2 changed files with 29 additions and 23 deletions
|
|
@ -48,9 +48,9 @@ pub enum TekMode {
|
|||
/// Multi-track MIDI sequencer.
|
||||
Arranger {
|
||||
/// Number of tracks
|
||||
#[arg(short = 'x', long, default_value_t = 16)] tracks: usize,
|
||||
#[arg(short = 'x', long, default_value_t = 4)] tracks: usize,
|
||||
/// Width of tracks
|
||||
#[arg(short = 'w', long, default_value_t = 10)] track_width: usize,
|
||||
#[arg(short = 'w', long, default_value_t = 8)] track_width: usize,
|
||||
/// Number of scenes
|
||||
#[arg(short = 'y', long, default_value_t = 16)] scenes: usize,
|
||||
},
|
||||
|
|
@ -183,7 +183,7 @@ pub fn main () -> Usually<()> {
|
|||
splits: [12, 20],
|
||||
midi_buf: vec![vec![];65536],
|
||||
note_buf: vec![],
|
||||
compact: true,
|
||||
compact: false,
|
||||
color,
|
||||
perf,
|
||||
size,
|
||||
|
|
|
|||
|
|
@ -2,26 +2,30 @@ use crate::*;
|
|||
pub(crate) const HEADER_H: u16 = 0; // 5
|
||||
pub(crate) const SCENES_W_OFFSET: u16 = 0;
|
||||
render!(TuiOut: (self: Arranger) => {
|
||||
let toolbar = |x|Bsp::s(self.toolbar_view(), x);
|
||||
let pool = |x|Bsp::w(self.pool_view(), x);
|
||||
let editing = |x|Bsp::n(Bsp::e(self.editor.clip_status(), self.editor.edit_status()), x);
|
||||
//let enclosed = |x|Outer(Style::default().fg(Color::Rgb(72,72,72))).enclose(x);
|
||||
let scenes_w = 16;//.max(SCENES_W_OFFSET + ArrangerScene::longest_name(&self.scenes) as u16);
|
||||
//Bsp::s(arrrrrr, enclosed(&self.editor))
|
||||
self.size.of(toolbar(pool(editing(Map::new(
|
||||
move||[
|
||||
(0, 2, self.output_row_header(), self.output_row_cells()),
|
||||
(2, 3, self.elapsed_row_header(), self.elapsed_row_cells()),
|
||||
(4, 3, self.next_row_header(), self.next_row_cells()),
|
||||
(6, 3, self.track_row_header(), self.track_row_cells()),
|
||||
(8, 20, self.scene_row_headers(), self.scene_row_cells()),
|
||||
((self.size.h() as u16).saturating_sub(6), 2, self.input_row_header(), self.input_row_cells()),
|
||||
].into_iter(),
|
||||
move|(y, h, header, cells), index|map_south_west(y, h, Align::w(Bsp::a(
|
||||
Align::w(Fixed::xy(scenes_w, h, header)),
|
||||
Align::w(Push::x(scenes_w, Fixed::xy(self.tracks.len() as u16*12, h, cells)))
|
||||
))))))))
|
||||
let scenes_w = 16;
|
||||
let row = move|h, header, cells|Align::w(Bsp::e(
|
||||
Align::w(Fixed::xy(scenes_w, h, header)),
|
||||
Fixed::xy(self.tracks.len() as u16*12, h, cells)
|
||||
));
|
||||
let toolbar = |x|Bsp::s(self.toolbar_view(), x);
|
||||
let pool = |x|Bsp::w(self.pool_view(), x);
|
||||
let editing = |x|Bsp::n(Bsp::e(self.editor.clip_status(), self.editor.edit_status()), x);
|
||||
let outputs = |x|Bsp::s(row(2, self.output_row_header(), self.output_row_cells()), Fill::y(x));
|
||||
let playing = |x|Bsp::s(row(2, self.elapsed_row_header(), self.elapsed_row_cells()), Fill::y(x));
|
||||
let next = |x|Bsp::s(row(2, self.next_row_header(), self.next_row_cells()), Fill::y(x));
|
||||
let tracks = |x|Bsp::s(row(3, self.track_row_header(), self.track_row_cells()), Fill::y(x));
|
||||
let scenes = |x|Bsp::s(row((self.size.h() as u16).saturating_sub(13),
|
||||
self.scene_row_headers(),
|
||||
self.scene_row_cells()), x);
|
||||
let inputs = |x|Bsp::n(
|
||||
row(2, self.input_row_header(), self.input_row_cells()),
|
||||
Fill::y(x));
|
||||
self.size.of(
|
||||
toolbar(pool(editing(inputs(outputs(playing(next(tracks(scenes(Fill::xy("")))))))))))
|
||||
|
||||
//let enclosed = |x|Outer(Style::default().fg(Color::Rgb(72,72,72))).enclose(x);
|
||||
//.max(SCENES_W_OFFSET + ArrangerScene::longest_name(&self.scenes) as u16);
|
||||
//Bsp::s(arrrrrr, enclosed(&self.editor))
|
||||
});
|
||||
impl Arranger {
|
||||
pub const LEFT_SEP: char = '▎';
|
||||
|
|
@ -77,7 +81,9 @@ impl Arranger {
|
|||
}
|
||||
|
||||
fn output_row_header <'a> (&'a self) -> BoxThunk<'a, TuiOut> {
|
||||
(||Tui::bold(true, Tui::fg_bg(TuiTheme::g(0), TuiTheme::g(200), "[ ] Out 1: NI")).boxed()).into()
|
||||
let fg = TuiTheme::g(192);
|
||||
let bg = TuiTheme::g(48);
|
||||
(move||Tui::bold(true, Tui::fg_bg(fg, bg, "[ ] Out 1: NI")).boxed()).into()
|
||||
}
|
||||
fn output_row_cells <'a> (&'a self) -> BoxThunk<'a, TuiOut> {
|
||||
//let scenes_w = 16;//.max(SCENES_W_OFFSET + ArrangerScene::longest_name(&self.scenes) as u16);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue