mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
fix arranger inverse border
This commit is contained in:
parent
0a59594730
commit
d07ed00034
3 changed files with 32 additions and 42 deletions
|
|
@ -26,58 +26,48 @@ from_jack!(|jack| ArrangerTui {
|
|||
)));
|
||||
Self {
|
||||
clock,
|
||||
phrases: PhraseListModel::from(&phrase),
|
||||
editor: PhraseEditorModel::from(&phrase),
|
||||
selected: ArrangerSelection::Clip(0, 0),
|
||||
scenes: vec![],
|
||||
tracks: vec![],
|
||||
color: TuiTheme::bg().into(),
|
||||
mode: ArrangerMode::V(1),
|
||||
size: Measure::new(),
|
||||
splits: [12, 20],
|
||||
midi_buf: vec![vec![];65536],
|
||||
note_buf: vec![],
|
||||
perf: PerfModel::default(),
|
||||
jack: jack.clone(),
|
||||
phrases: PhraseListModel::from(&phrase),
|
||||
editor: PhraseEditorModel::from(&phrase),
|
||||
selected: ArrangerSelection::Clip(0, 0),
|
||||
scenes: vec![],
|
||||
tracks: vec![],
|
||||
color: TuiTheme::bg().into(),
|
||||
mode: ArrangerMode::V(1),
|
||||
size: Measure::new(),
|
||||
splits: [12, 20],
|
||||
midi_buf: vec![vec![];65536],
|
||||
note_buf: vec![],
|
||||
perf: PerfModel::default(),
|
||||
jack: jack.clone(),
|
||||
}
|
||||
});
|
||||
render!(<Tui>|self: ArrangerTui|{
|
||||
let arranger = ||lay!(|add|{
|
||||
let color = self.color;
|
||||
//add(&Fill::wh(Lozenge(Style::default().bg(color.light.rgb).fg(color.darker.rgb))))?;
|
||||
add(&self.size)?;
|
||||
add(&Fill::wh(Tui::bg(color.darkest.rgb, "x")))?;
|
||||
add(&Fill::wh(Lozenge(Style::default().fg(color.light.rgb).bg(color.darker.rgb))))?;
|
||||
match self.mode {
|
||||
ArrangerMode::H => todo!("horizontal arranger"),
|
||||
ArrangerMode::V(factor) => add(&lay!([
|
||||
Align::se(Fill::wh(Tui::pull_x(1, Tui::fg(TuiTheme::title_fg(true),
|
||||
format!("{}x{}", self.size.w(), self.size.h()))
|
||||
))),
|
||||
Tui::bg(color.darkest.rgb, lay!(![
|
||||
ArrangerVColumnSeparator::from(self),
|
||||
ArrangerVRowSeparator::from((self, factor)),
|
||||
col!(![
|
||||
ArrangerVHeader::from(self),
|
||||
ArrangerVContent::from((self, factor)),
|
||||
]),
|
||||
ArrangerVCursor::from((self, factor)),
|
||||
])),
|
||||
ArrangerMode::V(factor) => add(&lay!(![
|
||||
ArrangerVColumnSeparator::from(self),
|
||||
ArrangerVRowSeparator::from((self, factor)),
|
||||
col!(![
|
||||
ArrangerVHeader::from(self),
|
||||
ArrangerVContent::from((self, factor)),
|
||||
]),
|
||||
ArrangerVCursor::from((self, factor)),
|
||||
])),
|
||||
}
|
||||
});
|
||||
let with_pool = |x|Split::left(false, self.splits[1], PhraseListView(&self.phrases), x);
|
||||
let play = Fixed::wh(5, 2, PlayPause(self.clock.is_rolling()));
|
||||
let transport = TransportView::from((self, None, true));
|
||||
let with_transport = |x|col!([row!(![&play, &transport]), &x]);
|
||||
let color = self.color;
|
||||
let with_frame = |x|lay!([
|
||||
Fill::wh(Tui::bg(color.darkest.rgb, " ")),
|
||||
Fill::wh(Lozenge(Style::default().bg(color.light.rgb).fg(color.darker.rgb))),
|
||||
x
|
||||
]);
|
||||
with_transport(with_pool(with_frame(row!([
|
||||
Fixed::w(30, arranger()),
|
||||
Fill::wh(&self.editor)
|
||||
]))))
|
||||
let with_pool = |x|Split::left(false, self.splits[1], PhraseListView(&self.phrases), x);
|
||||
with_transport(with_pool(col!([
|
||||
&self.size,
|
||||
Fill::w(Fixed::h(20, arranger())),
|
||||
Fill::w(Fixed::h(25, &self.editor)),
|
||||
])))
|
||||
});
|
||||
audio!(|self: ArrangerTui, client, scope|{
|
||||
// Start profiling cycle
|
||||
|
|
|
|||
|
|
@ -198,8 +198,8 @@ render!(<Tui>|self: ArrangerVHeader<'a>|row!(
|
|||
.unwrap_or("(none)".into()));
|
||||
Tui::push_x(self.scenes_w,
|
||||
Tui::bg(track.color().base.rgb,
|
||||
Tui::min_xy(w as u16, self.header_h,
|
||||
col!([name, timer]))))
|
||||
Tui::min_xy(w as u16, self.header_h,
|
||||
col!([name, timer]))))
|
||||
}
|
||||
));
|
||||
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ impl ArrangerTui {
|
|||
Ok(&mut self.scenes_mut()[index])
|
||||
}
|
||||
fn scene_default_name (&self) -> String {
|
||||
format!("S{:3>0}", self.scenes().len() + 1)
|
||||
format!("S{:3>}", self.scenes().len() + 1)
|
||||
}
|
||||
pub fn selected_scene (&self) -> Option<&ArrangerScene> {
|
||||
self.selected.scene().map(|s|self.scenes().get(s)).flatten()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue