mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 13:16:44 +01:00
add align_s/n; position playhead
This commit is contained in:
parent
61992ab2a2
commit
9cd9131d5d
5 changed files with 79 additions and 104 deletions
|
|
@ -43,42 +43,45 @@ impl Content for ArrangerStatusBar {
|
|||
["", "<>", "resize view"],
|
||||
]),
|
||||
Self::ArrangementClip => command(&[
|
||||
["", "g", "et"],
|
||||
["", "s", "et"],
|
||||
["", "a", "dd"],
|
||||
["", "i", "ns"],
|
||||
["", "d", "up"],
|
||||
["", "e", "dit"],
|
||||
["", "c", "olor"],
|
||||
["re", "n", "ame"],
|
||||
["", ",.", "select"],
|
||||
["", "g", "et"],
|
||||
["", "s", "et"],
|
||||
["", "a", "dd"],
|
||||
["", "i", "ns"],
|
||||
["", "d", "up"],
|
||||
["", "e", "dit"],
|
||||
["", "c", "olor"],
|
||||
["re", "n", "ame"],
|
||||
["", ",.", "select"],
|
||||
]),
|
||||
Self::ArrangementTrack => command(&[
|
||||
["", ",.", "resize"],
|
||||
["", "<>", "move"],
|
||||
["", "i", "nput"],
|
||||
["", "o", "utput"],
|
||||
["", "m", "ute"],
|
||||
["", "s", "olo"],
|
||||
["", "i", "nput"],
|
||||
["", "o", "utput"],
|
||||
["", "m", "ute"],
|
||||
["", "s", "olo"],
|
||||
]),
|
||||
Self::PhrasePool => command(&[
|
||||
["", "a", "ppend"],
|
||||
["", "i", "nsert"],
|
||||
["", "d", "uplicate"],
|
||||
["", "c", "olor"],
|
||||
["re", "n", "ame"],
|
||||
["leng", "t", "h"],
|
||||
["", ",.", "move"],
|
||||
["", "<>", "resize view"],
|
||||
["", "a", "ppend"],
|
||||
["", "i", "nsert"],
|
||||
["", "d", "uplicate"],
|
||||
["", "c", "olor"],
|
||||
["re", "n", "ame"],
|
||||
["leng", "t", "h"],
|
||||
["", ",.", "move"],
|
||||
["", "<>", "resize view"],
|
||||
]),
|
||||
Self::PhraseView => command(&[
|
||||
["", "enter", " edit"],
|
||||
["", "enter", " edit"],
|
||||
["", "arrows/pgup/pgdn", " scroll"],
|
||||
["", ",.", "zoom"],
|
||||
]),
|
||||
Self::PhraseEdit => command(&[
|
||||
["", "esc", " exit"],
|
||||
["", "a", "ppend"],
|
||||
["", "s", "et"],
|
||||
["", "a", "ppend"],
|
||||
["", "s", "et"],
|
||||
["", ",.", "length"],
|
||||
["", "<>", "zoom"],
|
||||
]),
|
||||
_ => command(&[])
|
||||
};
|
||||
|
|
@ -101,20 +104,11 @@ impl Content for Arrangement<Tui> {
|
|||
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||
Layers::new(move |add|{
|
||||
match self.mode {
|
||||
ArrangementViewMode::Horizontal => add(&HorizontalArranger(&self)),
|
||||
ArrangementViewMode::Vertical(factor) => add(&VerticalArranger(&self, factor))
|
||||
ArrangementViewMode::Horizontal => add(&HorizontalArranger(&self)),
|
||||
ArrangementViewMode::Vertical(factor) => add(&VerticalArranger(&self, factor)),
|
||||
}?;
|
||||
let color = if self.focused{Color::Rgb(150, 160, 90)}else{Color::Rgb(120, 130, 100)};
|
||||
//if self.focused {
|
||||
//let commands = "[G]et [S]et [A]dd [I]nsert [D]uplicate [E]dit [C]olor";
|
||||
//let lower_left = Align::SW(TuiStyle::fg(commands, color).push_x(1));
|
||||
//add(&lower_left)?;
|
||||
//}
|
||||
//let description = self.selected.description(&self.tracks, &self.scenes);
|
||||
//let lower_right = Align::SE(TuiStyle::fg(description.as_str(), color).pull_x(1));
|
||||
//add(&lower_right)?;
|
||||
let upper_left = TuiStyle::fg("Session", color).push_x(1);
|
||||
add(&upper_left)
|
||||
add(&TuiStyle::fg("Session", color).push_x(1))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -122,22 +116,22 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
|||
type Engine = Tui;
|
||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||
let Self(state, factor) = self;
|
||||
let (cols, rows) = if *factor == 0 {(
|
||||
state.track_widths(), Scene::ppqs(state.scenes.as_slice()),
|
||||
)} else {(
|
||||
state.track_widths(),
|
||||
(0..=state.scenes.len()).map(|i|(factor*PPQ, factor*PPQ*i)).collect::<Vec<_>>(),
|
||||
)};
|
||||
let cols = state.track_widths();
|
||||
let rows = if *factor == 0 {
|
||||
Scene::ppqs(state.scenes.as_slice())
|
||||
} else {
|
||||
(0..=state.scenes.len()).map(|i|(factor*PPQ, factor*PPQ*i)).collect::<Vec<_>>()
|
||||
};
|
||||
let tracks: &[ArrangementTrack<Tui>] = state.tracks.as_ref();
|
||||
let scenes: &[Scene] = state.scenes.as_ref();
|
||||
let offset = 3 + Scene::longest_name(scenes) as u16; // x of 1st track
|
||||
let bg = state.color;
|
||||
let clip_bg = Color::Rgb(40, 50, 30);
|
||||
let offset = 3 + Scene::longest_name(scenes) as u16; // x of 1st track
|
||||
let bg = state.color;
|
||||
let clip_bg = Color::Rgb(40, 50, 30);
|
||||
let border_bg = Color::Rgb(40, 50, 30);
|
||||
let border_hi = Color::Rgb(100, 110, 40);
|
||||
let border_lo = Color::Rgb(70, 80, 50);
|
||||
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));
|
||||
Layers::new(move |add|{
|
||||
let rows: &[(usize, usize)] = rows.as_ref();
|
||||
let cols: &[(usize, usize)] = cols.as_ref();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue