mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-09 05:06:43 +01:00
scene and track colors; random_color_near
This commit is contained in:
parent
f500c717a2
commit
6bee5b0bcd
5 changed files with 80 additions and 38 deletions
|
|
@ -169,14 +169,16 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
|||
//let height = rows.last().map(|(w,y)|(y+w)/PPQ).unwrap_or(16);
|
||||
let tracks: &[ArrangementTrack<Tui>] = state.tracks.as_ref();
|
||||
let scenes: &[Scene] = state.scenes.as_ref();
|
||||
let offset = 4 + Scene::longest_name(scenes) as u16;
|
||||
let offset = 3 + Scene::longest_name(scenes) as u16;
|
||||
let content = Layers::new(move |add|{
|
||||
let rows: &[(usize, usize)] = rows.as_ref();
|
||||
let cols: &[(usize, usize)] = cols.as_ref();
|
||||
|
||||
let track_titles = row!((track, (w, _)) in tracks.iter().zip(cols) =>
|
||||
(&track.name.read().unwrap().as_str() as &dyn Widget<Engine = Tui>)
|
||||
.min_xy(*w as u16, 2).push_x(offset));
|
||||
.min_xy(*w as u16, 2)
|
||||
.bg(track.color)
|
||||
.push_x(offset));
|
||||
|
||||
let scene_name = |scene, playing: bool, height|row!(
|
||||
if playing { "▶ " } else { " " },
|
||||
|
|
@ -186,7 +188,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
|||
let scene_clip = |scene, track: usize, w: u16, h: u16|Layers::new(move |add|{
|
||||
let mut color = Color::Rgb(40, 50, 30);
|
||||
match (tracks.get(track), (scene as &Scene).clips.get(track)) {
|
||||
(Some(track), Some(Some(phrase))) => {
|
||||
(Some(_), Some(Some(phrase))) => {
|
||||
let name = &(phrase as &Arc<RwLock<Phrase>>).read().unwrap().name;
|
||||
let name = format!("{}", name);
|
||||
add(&name.as_str().push_x(1).fixed_x(w))?;
|
||||
|
|
@ -206,7 +208,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
|||
let height = 1.max((pulses / PPQ) as u16);
|
||||
let playing = scene.is_playing(tracks);
|
||||
Stack::right(move |add| {
|
||||
add(&scene_name(scene, playing, height))?;
|
||||
add(&scene_name(scene, playing, height).bg(scene.color))?;
|
||||
for (track, (w, _)) in cols.iter().enumerate() {
|
||||
add(&scene_clip(scene, track, *w as u16, height))?;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue