mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
align track/scene selectors
This commit is contained in:
parent
2ad5b27db6
commit
5bf1bad7be
1 changed files with 23 additions and 16 deletions
|
|
@ -510,10 +510,11 @@ impl Tek {
|
|||
} else {
|
||||
("⏹ ".to_string(), TuiTheme::g(64), TuiTheme::g(32))
|
||||
};
|
||||
let selected = selected_scene == Some(s) && selected_track == Some(t);
|
||||
let active = editing && selected;
|
||||
let label = move||Tui::fg(fg, Push::x(1, Tui::bold(true, name.to_string())));
|
||||
let neighbor = selected_track == Some(t) && selected_scene.map(|s|s+1) == Some(s);
|
||||
let same_track = selected_track == Some(t+1);
|
||||
let selected = same_track && Some(s+1) == selected_scene;
|
||||
let neighbor = same_track && Some(s) == selected_scene;
|
||||
let active = editing && selected;
|
||||
let label = move||Tui::fg(fg, Push::x(1, Tui::bold(true, name.to_string())));
|
||||
map_south(y1 as u16, h, Push::y(1, Fixed::y(h, Either::new(
|
||||
active,
|
||||
Thunk::new(||Bsp::a(
|
||||
|
|
@ -559,13 +560,6 @@ impl Tek {
|
|||
}
|
||||
Ok(())
|
||||
}
|
||||
fn button (&self, key: String, label: String) -> impl Content<TuiOut> {
|
||||
let compact = !self.is_editing();
|
||||
Tui::bold(true, Bsp::e(
|
||||
Margin::x(1, Tui::fg_bg(TuiTheme::g(0), TuiTheme::orange(), key)),
|
||||
When::new(compact, Margin::x(1, Tui::fg_bg(TuiTheme::g(255), TuiTheme::g(96), label))),
|
||||
))
|
||||
}
|
||||
fn input_header <'a> (&'a self) -> BoxThunk<'a, TuiOut> {
|
||||
let fg = TuiTheme::g(224);
|
||||
let bg = TuiTheme::g(64);
|
||||
|
|
@ -585,11 +579,24 @@ impl Tek {
|
|||
))).boxed()).into()
|
||||
}
|
||||
fn track_header <'a> (&'a self) -> BoxThunk<'a, TuiOut> {
|
||||
(||Tui::bg(TuiTheme::g(32), Bsp::s(
|
||||
Fill::x(Align::w(self.button(" C-a ".to_string(), format!(" add scene ({})", self.scenes().len())))),
|
||||
Fill::x(Align::w(self.button(" C-t ".to_string(), format!(" add track ({})", self.tracks().len())))),
|
||||
let add_scene = ||self.button(" C-a ".to_string(), format!(" add scene ({}/{})",
|
||||
self.selected.scene().unwrap_or(0),
|
||||
self.scenes().len()));
|
||||
let add_track = ||self.button(" C-t ".to_string(), format!(" add track ({}/{})",
|
||||
self.selected.track().unwrap_or(0),
|
||||
self.tracks().len()));
|
||||
(move||Tui::bg(TuiTheme::g(32), Bsp::s(
|
||||
Fill::x(Align::w(add_scene())),
|
||||
Fill::x(Align::w(add_track())),
|
||||
)).boxed()).into()
|
||||
}
|
||||
fn button (&self, key: String, label: String) -> impl Content<TuiOut> {
|
||||
let compact = !self.is_editing();
|
||||
Tui::bold(true, Bsp::e(
|
||||
Margin::x(1, Tui::fg_bg(TuiTheme::g(0), TuiTheme::orange(), key)),
|
||||
When::new(compact, Margin::x(1, Tui::fg_bg(TuiTheme::g(255), TuiTheme::g(96), label))),
|
||||
))
|
||||
}
|
||||
}
|
||||
const KEYS_APP: &str = include_str!("keys.edn");
|
||||
const KEYS_CLIP: &str = include_str!("keys_clip.edn");
|
||||
|
|
@ -901,7 +908,7 @@ trait HasTracks: HasSelection + HasClock + HasJack + HasEditor + Send + Sync {
|
|||
let color = track.color;
|
||||
let fg = color.lightest.rgb;
|
||||
let bg = color.base.rgb;
|
||||
let active = self.selected().track() == Some(i);
|
||||
let active = self.selected().track() == Some(i + 1);
|
||||
let bfg = if active { Color::Rgb(255,255,255) } else { Color::Rgb(0,0,0) };
|
||||
let border = Style::default().fg(bfg).bg(bg);
|
||||
Tui::bg(bg, map_east(x1 as u16, (x2 - x1) as u16,
|
||||
|
|
@ -1069,7 +1076,7 @@ trait HasScenes: HasSelection + HasEditor + Send + Sync {
|
|||
let h = (1 + y2 - y1) as u16;
|
||||
let name = format!("🭬{}", &scene.name);
|
||||
let color = scene.color;
|
||||
let active = selected == Some(i);
|
||||
let active = selected == Some(i + 1);
|
||||
let mid = if active { color.light } else { color.base };
|
||||
let top = Some(last_color.read().unwrap().base.rgb);
|
||||
let cell = phat_sel_3(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue