implement fixed Split

This commit is contained in:
🪞👃🪞 2024-09-28 19:51:10 +03:00
parent e555074bdf
commit cd0b8a6812
4 changed files with 50 additions and 15 deletions

View file

@ -72,30 +72,24 @@ struct ArrangerStandalone<E: Engine> {
impl Content for ArrangerStandalone<Tui> {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
Layers::new(|add|{
Layers::new(move|add|{
add(&Stack::down(move|add|{
add(&(&self.transport as &dyn Widget<Engine = Tui>).debug())?;
if let (Some(direction), Some(sequencer)) = (
self.show_sequencer,
self.arranger.sequencer(),
) {
add(&Stack::new(direction, move|add|{
add(&(&self.arranger as &dyn Widget<Engine = Tui>)
.shrink_y(30)
.debug())?;
add(&(sequencer as &dyn Widget<Engine = Tui>)
.min_y(20)
.debug())?;
Ok(())
}))
let arranger = &self.arranger as &dyn Widget<Engine = Tui>;
let sequencer = sequencer as &dyn Widget<Engine = Tui>;
add(&Split::new(direction, 40, arranger, sequencer.min_y(20)))
} else {
add(&self.arranger)
}
}));
}))?;
if let Some(ref modal) = self.arranger.modal {
add(&Background(COLOR_BG1))?;
add(&Foreground(COLOR_BG2))?;
add(&modal as &dyn Widget<Engine = Tui>)?;
//add(modal as &dyn Widget<Engine = Tui>)?;
}
Ok(())
})