mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
move all track controls to header
This commit is contained in:
parent
0c850913f9
commit
98cf8da424
1 changed files with 10 additions and 18 deletions
|
|
@ -139,8 +139,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
||||||
//let border_bg = Color::Rgb(40, 50, 30);
|
//let border_bg = Color::Rgb(40, 50, 30);
|
||||||
//let border_fg = if self.0.focused { border_hi } else { border_lo };
|
//let border_fg = if self.0.focused { border_hi } else { border_lo };
|
||||||
//let border = Lozenge(Style::default().bg(border_bg).fg(border_fg));
|
//let border = Lozenge(Style::default().bg(border_bg).fg(border_fg));
|
||||||
let track_title_h = 2u16;
|
let track_title_h = 5u16;
|
||||||
let tracks_footer = 3u16;
|
|
||||||
let scene_title_w = 3 + Scene::longest_name(scenes) as u16; // x of 1st track
|
let scene_title_w = 3 + Scene::longest_name(scenes) as u16; // x of 1st track
|
||||||
let clock = &self.0.clock;
|
let clock = &self.0.clock;
|
||||||
let arrangement = Layers::new(move |add|{
|
let arrangement = Layers::new(move |add|{
|
||||||
|
|
@ -172,23 +171,16 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
||||||
// track titles
|
// track titles
|
||||||
let header = row!((track, w) in tracks.iter().zip(cols.iter().map(|col|col.0))=>{
|
let header = row!((track, w) in tracks.iter().zip(cols.iter().map(|col|col.0))=>{
|
||||||
// name and width of track
|
// name and width of track
|
||||||
let name = track.name.read().unwrap();
|
let name = track.name.read().unwrap();
|
||||||
let max_w = w.saturating_sub(1).min(name.len()).max(2);
|
let player = &track.player;
|
||||||
let name = format!("▎{}", &name[0..max_w]);
|
let max_w = w.saturating_sub(1).min(name.len()).max(2);
|
||||||
let name = TuiStyle::bold(name, true);
|
let name = format!("▎{}", &name[0..max_w]);
|
||||||
|
let name = TuiStyle::bold(name, true);
|
||||||
// name of active MIDI input
|
// name of active MIDI input
|
||||||
let input = format!("▎>{}", track.player.midi_inputs.get(0)
|
let input = format!("▎>{}", track.player.midi_inputs.get(0)
|
||||||
.map(|port|port.short_name())
|
.map(|port|port.short_name())
|
||||||
.transpose()?
|
.transpose()?
|
||||||
.unwrap_or("(none)".into()));
|
.unwrap_or("(none)".into()));
|
||||||
col!(name, input)
|
|
||||||
.min_xy(w as u16, track_title_h)
|
|
||||||
.bg(track.color.rgb)
|
|
||||||
.push_x(scene_title_w)
|
|
||||||
});
|
|
||||||
// track controls
|
|
||||||
let footer = row!((track, w) in tracks.iter().zip(cols.iter().map(|col|col.0))=>{
|
|
||||||
let player = &track.player;
|
|
||||||
// beats elapsed
|
// beats elapsed
|
||||||
let elapsed = if let Some((_, Some(phrase))) = player.phrase.as_ref() {
|
let elapsed = if let Some((_, Some(phrase))) = player.phrase.as_ref() {
|
||||||
let length = phrase.read().unwrap().length;
|
let length = phrase.read().unwrap().length;
|
||||||
|
|
@ -218,8 +210,8 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
||||||
.map(|port|port.short_name())
|
.map(|port|port.short_name())
|
||||||
.transpose()?
|
.transpose()?
|
||||||
.unwrap_or("(none)".into()));
|
.unwrap_or("(none)".into()));
|
||||||
col!(until_next, elapsed, output)
|
col!(name, input, output, until_next, elapsed)
|
||||||
.min_xy(w as u16, tracks_footer)
|
.min_xy(w as u16, track_title_h)
|
||||||
.bg(track.color.rgb)
|
.bg(track.color.rgb)
|
||||||
.push_x(scene_title_w)
|
.push_x(scene_title_w)
|
||||||
});
|
});
|
||||||
|
|
@ -267,9 +259,9 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
||||||
})
|
})
|
||||||
}).fixed_y(height)
|
}).fixed_y(height)
|
||||||
}
|
}
|
||||||
).fixed_y((self.0.size.h() as u16).saturating_sub(track_title_h + tracks_footer));
|
).fixed_y((self.0.size.h() as u16).saturating_sub(track_title_h));
|
||||||
// full grid with header and footer
|
// full grid with header and footer
|
||||||
add(&col!(header, content, footer))?;
|
add(&col!(header, content))?;
|
||||||
// cursor
|
// cursor
|
||||||
add(&CustomWidget::new(any_size, move|to: &mut TuiOutput|{
|
add(&CustomWidget::new(any_size, move|to: &mut TuiOutput|{
|
||||||
let area = to.area();
|
let area = to.area();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue