diff --git a/crates/tek/src/app.rs b/crates/tek/src/app.rs index 8a525d8a..f3266261 100644 --- a/crates/tek/src/app.rs +++ b/crates/tek/src/app.rs @@ -100,12 +100,12 @@ render!( App | self, buf, area | { - Split::down() + Stack::down() .add_ref(&self.transport) .add_ref(&self.arranger) .add(If( self.arranger.selected.is_clip(), - &Split::right() + &Stack::right() .add(tek_mixer::TrackView { direction: Direction::Down, entered: self.entered, diff --git a/crates/tek_core/examples/demo.rs b/crates/tek_core/examples/demo.rs index 7058b2c0..5673f73f 100644 --- a/crates/tek_core/examples/demo.rs +++ b/crates/tek_core/examples/demo.rs @@ -41,7 +41,7 @@ impl Content for Demo { add(&Background(Color::Rgb(0,128,128)))?; - add(&Outset::XY(1, 1, Split::down(|add|{ + add(&Outset::XY(1, 1, Stack::down(|add|{ add(&Layers::new(|add|{ add(&Background(Color::Rgb(128,96,0)))?; @@ -72,7 +72,7 @@ impl Content for Demo { })) //Align::Center(Outset::X(1, Layers::new(|add|{ //add(&Background(Color::Rgb(128,0,0)))?; - //add(&Split::down(|add|{ + //add(&Stack::down(|add|{ //add(&Outset::Y(1, Layers::new(|add|{ //add(&Background(Color::Rgb(0,128,0)))?; //add(&Align::Center("12345"))?; @@ -88,7 +88,7 @@ impl Content for Demo { //Align::Y(Layers::new(|add|{ //add(&Background(Color::Rgb(128,0,0)))?; - //add(&Outset::X(1, Align::Center(Split::down(|add|{ + //add(&Outset::X(1, Align::Center(Stack::down(|add|{ //add(&Align::X(Outset::Y(1, Layers::new(|add|{ //add(&Background(Color::Rgb(0,128,0)))?; //add(&Align::Center("12345"))?; diff --git a/crates/tek_core/src/space.rs b/crates/tek_core/src/space.rs index ea96d55b..ce17cada 100644 --- a/crates/tek_core/src/space.rs +++ b/crates/tek_core/src/space.rs @@ -711,7 +711,7 @@ impl> Widget for Pull { } } -pub struct Split< +pub struct Stack< E: Engine, F: Send + Sync + Fn(&mut dyn FnMut(&dyn Widget)->Usually<()>)->Usually<()> >(pub F, pub Direction, PhantomData); @@ -719,7 +719,7 @@ pub struct Split< impl< E: Engine, F: Send + Sync + Fn(&mut dyn FnMut(&dyn Widget)->Usually<()>)->Usually<()> -> Split { +> Stack { #[inline] pub fn new (direction: Direction, build: F) -> Self { Self(build, direction, Default::default()) } @@ -731,7 +731,7 @@ impl< } } -impl Widget for Split +impl Widget for Stack where F: Send + Sync + Fn(&mut dyn FnMut(&dyn Widget)->Usually<()>)->Usually<()> { @@ -824,8 +824,8 @@ where ($($expr:expr),* $(,)?) => { Layers::new(move|add|{ $(add(&$expr)?;)* Ok(()) }) } } #[macro_export] macro_rules! col { - ($($expr:expr),* $(,)?) => { Split::down(move|add|{ $(add(&$expr)?;)* Ok(()) }) } + ($($expr:expr),* $(,)?) => { Stack::down(move|add|{ $(add(&$expr)?;)* Ok(()) }) } } #[macro_export] macro_rules! row { - ($($expr:expr),* $(,)?) => { Split::right(move|add|{ $(add(&$expr)?;)* Ok(()) }) } + ($($expr:expr),* $(,)?) => { Stack::right(move|add|{ $(add(&$expr)?;)* Ok(()) }) } } diff --git a/crates/tek_core/src/test.rs b/crates/tek_core/src/test.rs index 857e8fc5..211233b2 100644 --- a/crates/tek_core/src/test.rs +++ b/crates/tek_core/src/test.rs @@ -72,28 +72,28 @@ fn test_outset_align () -> Usually<()> { //Some([0, 0, 4, 4])); //assert_eq!(Align::Center(test).layout(area)?, //Some([3, 3, 4, 4])); - //assert_eq!(Align::Center(Split::down(|add|{ + //assert_eq!(Align::Center(Stack::down(|add|{ //add(&test)?; //add(&test) //})).layout(area)?, //Some([3, 1, 4, 8])); - //assert_eq!(Align::Center(Split::down(|add|{ + //assert_eq!(Align::Center(Stack::down(|add|{ //add(&Outset::XY(2, 2, test))?; //add(&test) //})).layout(area)?, //Some([2, 0, 6, 10])); - //assert_eq!(Align::Center(Split::down(|add|{ + //assert_eq!(Align::Center(Stack::down(|add|{ //add(&Outset::XY(2, 2, test))?; //add(&Inset::XY(2, 2, test)) //})).layout(area)?, //Some([2, 1, 6, 8])); - //assert_eq!(Split::down(|add|{ + //assert_eq!(Stack::down(|add|{ //add(&Outset::XY(2, 2, test))?; //add(&Inset::XY(2, 2, test)) //}).layout(area)?, //Some([0, 0, 6, 8])); - //assert_eq!(Split::right(|add|{ - //add(&Split::down(|add|{ + //assert_eq!(Stack::right(|add|{ + //add(&Stack::down(|add|{ //add(&Outset::XY(2, 2, test))?; //add(&Inset::XY(2, 2, test)) //}))?; @@ -142,34 +142,34 @@ fn test_outset_align () -> Usually<()> { //Some([0, 0, 3, 1])); //assert_eq!(Layers::new(|add|{add(&"1")?;add(&"333")}).layout(area)?, //Some([0, 0, 3, 1])); - //assert_eq!(Split::down(|add|{add(&"1")?;add(&"333")}).layout(area)?, + //assert_eq!(Stack::down(|add|{add(&"1")?;add(&"333")}).layout(area)?, //Some([0, 0, 3, 2])); - //assert_eq!(Split::right(|add|{add(&"1")?;add(&"333")}).layout(area)?, + //assert_eq!(Stack::right(|add|{add(&"1")?;add(&"333")}).layout(area)?, //Some([0, 0, 4, 1])); - //assert_eq!(Split::down(|add|{ - //add(&Split::right(|add|{add(&"1")?;add(&"333")}))?; + //assert_eq!(Stack::down(|add|{ + //add(&Stack::right(|add|{add(&"1")?;add(&"333")}))?; //add(&"55555") //}).layout(area)?, //Some([0, 0, 5, 2])); //let area: [u16;4] = [1, 1, 100, 100]; - //assert_eq!(Outset::X(1, Split::right(|add|{add(&"1")?;add(&"333")})).layout(area)?, + //assert_eq!(Outset::X(1, Stack::right(|add|{add(&"1")?;add(&"333")})).layout(area)?, //Some([0, 1, 6, 1])); - //assert_eq!(Outset::Y(1, Split::right(|add|{add(&"1")?;add(&"333")})).layout(area)?, + //assert_eq!(Outset::Y(1, Stack::right(|add|{add(&"1")?;add(&"333")})).layout(area)?, //Some([1, 0, 4, 3])); - //assert_eq!(Outset::XY(1, 1, Split::right(|add|{add(&"1")?;add(&"333")})).layout(area)?, + //assert_eq!(Outset::XY(1, 1, Stack::right(|add|{add(&"1")?;add(&"333")})).layout(area)?, //Some([0, 0, 6, 3])); - //assert_eq!(Split::down(|add|{ + //assert_eq!(Stack::down(|add|{ //add(&Outset::XY(1, 1, "1"))?; //add(&Outset::XY(1, 1, "333")) //}).layout(area)?, //Some([1, 1, 5, 6])); //let area: [u16;4] = [1, 1, 95, 100]; - //assert_eq!(Align::Center(Split::down(|add|{ + //assert_eq!(Align::Center(Stack::down(|add|{ //add(&Outset::XY(1, 1, "1"))?; //add(&Outset::XY(1, 1, "333")) //})).layout(area)?, //Some([46, 48, 5, 6])); - //assert_eq!(Align::Center(Split::down(|add|{ + //assert_eq!(Align::Center(Stack::down(|add|{ //add(&Layers::new(|add|{ ////add(&Outset::XY(1, 1, Background(Color::Rgb(0,128,0))))?; //add(&Outset::XY(1, 1, "1"))?; diff --git a/crates/tek_mixer/src/mixer.rs b/crates/tek_mixer/src/mixer.rs index 1642c57b..1c9db6e2 100644 --- a/crates/tek_mixer/src/mixer.rs +++ b/crates/tek_mixer/src/mixer.rs @@ -33,7 +33,7 @@ impl Audio for Mixer { impl Content for Mixer { type Engine = Tui; fn content (&self) -> impl Widget { - Split::right(|add| { + Stack::right(|add| { for channel in self.tracks.iter() { add(channel)?; } diff --git a/crates/tek_mixer/src/track.rs b/crates/tek_mixer/src/track.rs index a5d7c71b..6d30821a 100644 --- a/crates/tek_mixer/src/track.rs +++ b/crates/tek_mixer/src/track.rs @@ -188,7 +188,7 @@ impl<'a> Widget for TrackView<'a, Tui> { //_ => { unimplemented!() }, //} //to.fill_bg(to.area(), Nord::bg_lo(self.focused, self.entered)); - //let mut split = Split::new(self.direction); + //let mut split = Stack::new(self.direction); //for device in chain.devices.as_slice().iter() { //split = split.add_ref(device); //} diff --git a/crates/tek_sequencer/src/main_arranger.rs b/crates/tek_sequencer/src/main_arranger.rs index 55df5e3a..c3c0c47c 100644 --- a/crates/tek_sequencer/src/main_arranger.rs +++ b/crates/tek_sequencer/src/main_arranger.rs @@ -73,13 +73,13 @@ impl Content for ArrangerStandalone { type Engine = Tui; fn content (&self) -> impl Widget { Layers::new(|add|{ - add(&Split::down(move|add|{ + add(&Stack::down(move|add|{ add(&(&self.transport as &dyn Widget).debug())?; if let (Some(direction), Some(sequencer)) = ( self.show_sequencer, self.arranger.sequencer(), ) { - add(&Split::new(direction, move|add|{ + add(&Stack::new(direction, move|add|{ add(&(&self.arranger as &dyn Widget) .shrink_y(30) .debug())?; diff --git a/crates/tek_sequencer/src/sequencer.rs b/crates/tek_sequencer/src/sequencer.rs index 0c7e04c7..250967c2 100644 --- a/crates/tek_sequencer/src/sequencer.rs +++ b/crates/tek_sequencer/src/sequencer.rs @@ -491,8 +491,8 @@ impl<'a> Content for VerticalArranger<'a, Tui> { let cols = cols.as_ref(); add(&VerticalArrangerGrid(offset, &rows, &cols))?; add(&VerticalArrangerCursor(state.focused, state.selected, offset, &cols, &rows))?; - add(&Split::down(|add|{ - add(&Split::right(move |add|{ + add(&Stack::down(|add|{ + add(&Stack::right(move |add|{ for (track, (w, _)) in tracks.iter().zip(cols) { add(&Layers::new(|add|{ add(&Background(COLOR_BG1))?; @@ -501,12 +501,12 @@ impl<'a> Content for VerticalArranger<'a, Tui> { } Ok(()) }).push_x(offset))?; - add(&Split::down(move |add| { + add(&Stack::down(move |add| { for (scene, (pulses, _)) in scenes.iter().zip(rows) { let height = 1.max((pulses / 96) as u16); let playing = scene.is_playing(tracks); - add(&Split::right(move |add| { - add(&Split::right(|add|{ + add(&Stack::right(move |add| { + add(&Stack::right(|add|{ add(&if playing { "▶ " } else { " " })?; add(&scene.name.read().unwrap().as_str()) }).fixed_xy(offset.saturating_sub(1), height))?; @@ -671,7 +671,7 @@ impl<'a> Content for HorizontalArranger<'a, Tui> { let tracks = tracks.as_slice(); Layers::new(|add|{ add(&focused.then_some(Background(COLOR_BG0)))?; - add(&Split::right(|add|{ + add(&Stack::right(|add|{ add(&TrackNameColumn(tracks, *selected))?; add(&TrackMonitorColumn(tracks))?; add(&TrackRecordColumn(tracks))?; @@ -1578,7 +1578,7 @@ struct SequenceNoteRange; impl Content for SequenceNoteRange { type Engine = Tui; fn content (&self) -> impl Widget { - Split::down(|add|{ + Stack::down(|add|{ //Lozenge(Style::default().fg(Nord::BG2)).draw(to.with_rect(range))?; add(&"Notes: ")?;//Some(STYLE_LABEL)); add(&"C#0-C#9 ")?;//Some(STYLE_VALUE)); @@ -2086,7 +2086,7 @@ impl Handle for TransportToolbar { impl Content for TransportToolbar { type Engine = Tui; fn content (&self) -> impl Widget { - Split::right(|add|{ + Stack::right(|add|{ let focus_wrap = |focused, component|Layers::new(move |add|{ if focused { add(&CORNERS)?; @@ -2232,7 +2232,7 @@ impl Content for TransportBPM { type Engine = Tui; fn content (&self) -> impl Widget { let Self { value, .. } = self; - Outset::X(1u16, Split::down(move |add|{ + Outset::X(1u16, Stack::down(move |add|{ add(&"BPM")?; add(&format!("{}.{:03}", *value as usize, (value * 1000.0) % 1000.0).as_str()) })) @@ -2273,7 +2273,7 @@ impl Content for TransportQuantize { type Engine = Tui; fn content (&self) -> impl Widget { let Self { value, .. } = self; - Outset::X(1u16, Split::down(|add|{ + Outset::X(1u16, Stack::down(|add|{ add(&"QUANT")?; add(&ppq_to_name(*value as usize)) })) @@ -2314,7 +2314,7 @@ impl Content for TransportSync { type Engine = Tui; fn content (&self) -> impl Widget { let Self { value, .. } = self; - Outset::X(1u16, Split::down(|add|{ + Outset::X(1u16, Stack::down(|add|{ add(&"SYNC")?; add(&ppq_to_name(*value as usize)) })) @@ -2353,7 +2353,7 @@ impl Content for TransportClock { let (bars, beats) = ((beats / 4) + 1, (beats % 4) + 1); let (seconds, msecs) = (usecs / 1000000, usecs / 1000 % 1000); let (minutes, seconds) = (seconds / 60, seconds % 60); - add(&Outset::X(1u16, Split::down(|add|{ + add(&Outset::X(1u16, Stack::down(|add|{ add(&format!("{bars}.{beats}.{pulses:02}").as_str())?; add(&format!("{minutes}:{seconds:02}:{msecs:03}").as_str()) })))