modularize grid view

This commit is contained in:
i do not exist 2026-09-17 16:53:28 +03:00
parent 922c2e1f2f
commit 5a34025277
4 changed files with 173 additions and 104 deletions

View file

@ -262,13 +262,30 @@ impl View<Tui, App> {
Some("output") => Self::boxed(move|_, to|bg(Rgb(30, 30, 30), "Output Meters".align_s().full_h()).draw(to)),
_ => panic!()
},
Some(":tracks") => match word.split("/").skip(1).next() {
None => Self::boxed(move|_, to|"TODO tracks".draw(to)),
Some("names") => draw!(|app|app.project.view_track_names(app.color.clone())),
Some("inputs") => draw!(|app|app.project.view_track_inputs(app.color.clone())),
Some("devices") => draw!(|app|app.project.view_track_devices(app.color.clone())),
Some("outputs") => draw!(|app|app.project.view_track_outputs(app.color.clone(), 0)),
_ => panic!()
Some(":tracks") => match &word[(":tracks".len()+1)..] {
"" => Self::boxed(move|_, to|"TODO tracks".draw(to)),
"names" => draw!(|app|app.project.view_track_names(app.color.clone())),
"names/count" => draw!(|app|app.project.view_track_names_count()),
"names/cells" => draw!(|app|app.project.view_track_names_cells()),
"names/add" => draw!(|app|app.project.view_track_names_add()),
"devices" => draw!(|app|app.project.view_track_devices(app.color.clone())),
"devices/count" => draw!(|app|app.project.view_track_device_count()),
"devices/cells" => draw!(|app|app.project.view_track_device_cells(app.tracks_devices_height())),
"devices/add" => draw!(|app|app.project.view_track_device_add()),
"inputs" => draw!(|app|app.project.view_track_inputs(app.color.clone())),
"inputs/count" => draw!(|app|app.project.view_track_input_count()),
"inputs/cells" => draw!(|app|app.project.view_track_input_cells(app.tracks_inputs_height())),
"inputs/add" => draw!(|app|app.project.view_track_input_add()),
"outputs" => draw!(|app|app.project.view_track_outputs(app.color.clone(), 0)),
"outputs/count" => draw!(|app|app.project.view_track_output_count()),
"outputs/cells" => draw!(|app|app.project.view_track_output_cells()),
"outputs/add" => draw!(|app|app.project.view_track_output_add()),
_ => panic!("unknown: {word}")
},
Some(":scenes") => match word.split("/").skip(1).next() {
Some("clips") => draw!(|app|app.view_scenes_clips()),