restruct: 65e

This commit is contained in:
i do not exist 2026-06-23 22:02:09 +03:00
parent ae347eeef7
commit b3e9cde8a1
4 changed files with 38 additions and 49 deletions

View file

@ -202,28 +202,28 @@ pub fn view_io_ports <'a, T: PortsSizes<'a>> (
})
}
pub fn view_scenes_clips (
scenes: impl ScenesSizes<'_>,
tracks: impl TracksSizes<'_>,
pub fn view_scenes_clips <'a> (
scenes: impl ScenesSizes<'a>,
tracks: impl TracksSizes<'a>,
select: &Selection,
editor: Option<&MidiEditor>,
size: &Size,
is_editing: bool,
) -> impl Draw<Tui> {
size.of(wh_full(above(wh_full(origin_se(fg(Green, format!("{}x{}", size.w(), size.h())))),
thunk(|to: &mut Tui|{
thunk(move |to: &mut Tui|{
for (index, track, _, _) in tracks {
let clips = view_track_clips(scenes, select, editor, index, track, is_editing);
let clips = view_track_clips(&scenes, select, editor, index, track, is_editing);
w_exact(track.width as u16, h_full(clips)).draw(to);
}
Ok(XYWH(0, 0, 0, 0))
}))))
}
pub fn view_track_clips (
scenes: impl ScenesSizes<'_>,
pub fn view_track_clips <'a> (
scenes: &impl ScenesSizes<'a>,
select: &Selection,
editor: &Option<MidiEditor>,
editor: Option<&MidiEditor>,
index: usize,
track: &Track,
is_editing: bool,
@ -320,7 +320,7 @@ pub fn view_track_names (
pub fn view_track_outputs (
theme: ItemTheme,
tracks: impl TracksSizes<'_>,
midi_outs: impl Iterator<Item = ()>,
midi_outs: impl Iterator<Item = &MidiOutput>,
) -> impl Draw<Tui> {
view_track_row_section(theme,
south(w_full(origin_w(button_2("o", "utput", false))),
@ -345,14 +345,14 @@ pub fn view_track_outputs (
}
pub fn view_track_inputs (
theme: ItemTheme,
theme: ItemTheme,
tracks: impl TracksSizes<'_>,
h: u16,
height: u16,
) -> impl Draw<Tui> {
view_track_row_section(theme, button_2("i", "nput", false), button_2("I", "+", false),
bg(theme.darker.term, origin_w(thunk(move|to: &mut Tui|{
for (index, track, _x1, _x2) in tracks {
wh_exact(Some(track_width(index, track)), Some(h + 1),
wh_exact(Some(track_width(index, track)), Some(height + 1),
origin_nw(south(
bg(track.color.base.term,
w_full(origin_w(east!(
@ -370,18 +370,21 @@ pub fn view_track_inputs (
}
pub fn view_scenes_names (
scenes: &impl ScenesSizes<'_>
scenes: impl ScenesSizes<'_>,
select: &Selection,
editor: Option<&MidiEditor>,
editing: bool,
) -> impl Draw<Tui> {
w_exact(20, thunk(|to: &mut Tui|{
w_exact(20, thunk(move |to: &mut Tui|{
for (index, scene, ..) in scenes {
view_scene_name(index, scene).draw(to);
view_scene_name(select, editor, index, scene, editing).draw(to);
}
Ok(XYWH(1, 1, 1, 1))
}))
}
pub fn view_scene_name (
select: Option<&Selection>,
select: &Selection,
editor: Option<&MidiEditor>,
index: usize,
scene: &Scene,
@ -422,8 +425,9 @@ pub fn view_audio_outs_status (theme: ItemTheme, track: Option<&Track>) -> impl
track.map(move|track|view_ports_status(theme, "Audio outs:", &track.audio_outs()))
}
pub fn view_track_per (
tracks: impl TracksSizes<'_>
pub fn view_track_per <'a, T: Draw<Tui> + 'a, U: TracksSizes<'a>> (
tracks: impl Fn() -> U + Send + Sync + 'a,
callback: impl Fn(usize, &'a Track)->T + Send + Sync + 'a
) -> impl Draw<Tui> {
iter_east(tracks, move|(index, track, x1, x2): (usize, &Track, usize, usize), _|{
w_exact((x2 - x1) as u16, fg_bg(
@ -437,12 +441,9 @@ pub fn view_per_track () -> impl Draw<Tui> {}
pub fn view_per_track_top () -> impl Draw<Tui> {}
pub fn view_inputs (
tracks: impl TracksSizes<'_>,
midi_ins: &[MidiIn],
) -> impl Draw<Tui> {
let header = h_exact(1, view_inputs_header(tracks));
south(header, thunk(|to: &mut Tui|{
pub fn view_inputs (tracks: impl TracksSizes<'_>, midi_ins: &[MidiInput]) -> impl Draw<Tui> {
let header = h_exact(1, view_inputs_header(tracks, midi_ins));
south(header, thunk(move |to: &mut Tui|{
for (index, port) in midi_ins.iter().enumerate() {
x_push(index as u16 * 10, h_exact(1, view_inputs_row(tracks, port))).draw(to);
}
@ -450,10 +451,7 @@ pub fn view_inputs (
}))
}
pub fn view_inputs_header (
tracks: impl TracksSizes<'_>,
midi_ins: &[MidiIn],
) -> impl Draw<Tui> {
pub fn view_inputs_header (tracks: impl TracksSizes<'_>, midi_ins: &[MidiInput]) -> impl Draw<Tui> {
east(w_exact(20, origin_w(button_3("i", "nput ", format!("{}", midi_ins.len()), false))),
west(w_exact(4, button_2("I", "+", false)), thunk(move|to: &mut Tui|{
for (_index, track, x1, _x2) in tracks {
@ -468,10 +466,7 @@ pub fn view_inputs_header (
})))
}
pub fn view_inputs_row (
tracks: impl TracksSizes<'_>,
port: ()
) -> impl Draw<Tui> {
pub fn view_inputs_row (tracks: impl TracksSizes<'_>, port: &MidiInput) -> impl Draw<Tui> {
east(w_exact(20, origin_w(east("", bold(true, fg(Rgb(255,255,255), port.port_name()))))),
west(w_exact(4, ()), thunk(move|to: &mut Tui|{
for (_index, track, _x1, _x2) in tracks {