rename Plus and Minus to Push and Pull

This commit is contained in:
🪞👃🪞 2024-09-19 02:24:53 +03:00
parent 4c640301c6
commit 7063ae90d1
3 changed files with 25 additions and 25 deletions

View file

@ -495,9 +495,9 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Inset<E::Unit, T> {
}
fn render (&self, to: &mut E::Output) -> Usually<()> {
match *self {
Self::X(x, ref inner) => Plus::X(x, inner as &dyn Widget<Engine = E>),
Self::Y(y, ref inner) => Plus::Y(y, inner as &dyn Widget<Engine = E>),
Self::XY(x, y, ref inner) => Plus::XY(x, y, inner as &dyn Widget<Engine = E>),
Self::X(x, ref inner) => Push::X(x, inner as &dyn Widget<Engine = E>),
Self::Y(y, ref inner) => Push::Y(y, inner as &dyn Widget<Engine = E>),
Self::XY(x, y, ref inner) => Push::XY(x, y, inner as &dyn Widget<Engine = E>),
}.render(to)
}
}
@ -513,15 +513,15 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Outset<E::Unit, T> {
}
fn render (&self, to: &mut E::Output) -> Usually<()> {
match *self {
Self::X(x, ref inner) => Plus::X(x, inner as &dyn Widget<Engine = E>),
Self::Y(y, ref inner) => Plus::Y(y, inner as &dyn Widget<Engine = E>),
Self::XY(x, y, ref inner) => Plus::XY(x, y, inner as &dyn Widget<Engine = E>),
Self::X(x, ref inner) => Push::X(x, inner as &dyn Widget<Engine = E>),
Self::Y(y, ref inner) => Push::Y(y, inner as &dyn Widget<Engine = E>),
Self::XY(x, y, ref inner) => Push::XY(x, y, inner as &dyn Widget<Engine = E>),
}.render(to)
}
}
/// Move origin point of drawing area
pub enum Plus<N: Number, T: Widget> {
pub enum Push<N: Number, T: Widget> {
/// Move origin to the right
X(N, T),
/// Move origin downwards
@ -530,7 +530,7 @@ pub enum Plus<N: Number, T: Widget> {
XY(N, N, T),
}
impl<N: Number, T: Widget> Plus<N, T> {
impl<N: Number, T: Widget> Push<N, T> {
fn inner (&self) -> &T {
match self { Self::X(_, i) => i, Self::Y(_, i) => i, Self::XY(_, _, i) => i, }
}
@ -542,7 +542,7 @@ impl<N: Number, T: Widget> Plus<N, T> {
}
}
impl<E: Engine, T: Widget<Engine = E>> Widget for Plus<E::Unit, T> {
impl<E: Engine, T: Widget<Engine = E>> Widget for Push<E::Unit, T> {
type Engine = E;
fn layout (&self, to: E::Size) -> Perhaps<E::Size> {
self.inner().layout(to)
@ -559,7 +559,7 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Plus<E::Unit, T> {
}
/// Move origin point of drawing area
pub enum Minus<N: Number, T: Widget> {
pub enum Pull<N: Number, T: Widget> {
/// Move origin to the right
X(N, T),
/// Move origin downwards
@ -568,7 +568,7 @@ pub enum Minus<N: Number, T: Widget> {
XY(N, N, T),
}
impl<N: Number, T: Widget> Minus<N, T> {
impl<N: Number, T: Widget> Pull<N, T> {
fn inner (&self) -> &T {
match self { Self::X(_, i) => i, Self::Y(_, i) => i, Self::XY(_, _, i) => i, }
}
@ -580,7 +580,7 @@ impl<N: Number, T: Widget> Minus<N, T> {
}
}
impl<E: Engine, T: Widget<Engine = E>> Widget for Minus<E::Unit, T> {
impl<E: Engine, T: Widget<Engine = E>> Widget for Pull<E::Unit, T> {
type Engine = E;
fn layout (&self, to: E::Size) -> Perhaps<E::Size> {
self.inner().layout(to)
@ -610,7 +610,7 @@ where
if h >= to.h() {
return Ok(())
}
let size = Plus::Y(h, component as &dyn Widget<Engine = E>)
let size = Push::Y(h, component as &dyn Widget<Engine = E>)
.layout(to)?;
if let Some([width, height]) = size.map(|size|size.wh()) {
h = h + height.into();
@ -626,7 +626,7 @@ where
if w >= to.w() {
return Ok(())
}
let size = Plus::X(w, component as &dyn Widget<Engine = E>)
let size = Push::X(w, component as &dyn Widget<Engine = E>)
.layout(to)?;
if let Some([width, height]) = size.map(|size|size.wh()) {
w = w + width.into();
@ -652,10 +652,10 @@ where
return Ok(())
}
// FIXME -> ???
let size = Plus::Y(h, component as &dyn Widget<Engine = E>)
let size = Push::Y(h, component as &dyn Widget<Engine = E>)
.layout(area.wh().into())?;
if let Some([width, height]) = size.map(|size|size.wh()) {
Plus::Y(h, component as &dyn Widget<Engine = E>).render(to)?;
Push::Y(h, component as &dyn Widget<Engine = E>).render(to)?;
h = h + height;
if width > w {
w = width
@ -669,10 +669,10 @@ where
if w >= area.w() {
return Ok(())
}
let size = Plus::X(w, component as &dyn Widget<Engine = E>)
let size = Push::X(w, component as &dyn Widget<Engine = E>)
.layout(area.wh().into())?;
if let Some([width, height]) = size.map(|size|size.wh()) {
Plus::X(w, component as &dyn Widget<Engine = E>).render(to)?;
Push::X(w, component as &dyn Widget<Engine = E>).render(to)?;
w = width + w;
h = h.max(height)
};

View file

@ -47,7 +47,7 @@ fn test_plus_minus () -> Usually<()> {
let engine = TestEngine(area, vec![vec![' ';10];10]);
let test = TestArea(4, 4);
assert_eq!(test.layout(area)?, Some([0, 0, 4, 4]));
assert_eq!(Plus::X(1, test).layout(area)?, Some([1, 0, 4, 4]));
assert_eq!(Push::X(1, test).layout(area)?, Some([1, 0, 4, 4]));
Ok(())
}
@ -107,9 +107,9 @@ fn test_outset_align () -> Usually<()> {
//fn test_offset () -> Usually<()> {
//let area: [u16;4] = [50, 50, 100, 100];
//let test = TestArea(3, 3);
//assert_eq!(Plus::X(1, test).layout(area)?, Some([51, 50, 3, 3]));
//assert_eq!(Plus::Y(1, test).layout(area)?, Some([50, 51, 3, 3]));
//assert_eq!(Plus::XY(1, 1, test).layout(area)?, Some([51, 51, 3, 3]));
//assert_eq!(Push::X(1, test).layout(area)?, Some([51, 50, 3, 3]));
//assert_eq!(Push::Y(1, test).layout(area)?, Some([50, 51, 3, 3]));
//assert_eq!(Push::XY(1, 1, test).layout(area)?, Some([51, 51, 3, 3]));
//Ok(())
//}

View file

@ -504,7 +504,7 @@ impl<'a, 'b> Content for ArrangerViewVertical<'a, 'b, Tui> {
add(&RowSeparators(rows))?;
add(&CursorFocus(state.focused, state.selected, offset, cols, rows))?;
add(&Split::down(|add|{
add(&Plus::X(offset, Split::right(move |add|{
add(&Push::X(offset, Split::right(move |add|{
for (track, (w, _)) in tracks.iter().zip(*cols) {
add(&Min::XY(*w as u16, 2, Layers::new(|add|{
add(&Background(COLOR_BG1))?;
@ -530,7 +530,7 @@ impl<'a, 'b> Content for ArrangerViewVertical<'a, 'b, Tui> {
scene.clips.get(track),
) {
if let Some(phrase) = track.phrases.get(*clip) {
add(&Plus::X(1, format!(
add(&Push::X(1, format!(
"{clip:02} {}",
phrase.read().unwrap().name.read().unwrap()
).as_str()))?;
@ -2246,7 +2246,7 @@ impl Content for TransportPlayPauseButton<Tui> {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
Layers::new(|add|{
add(&Plus::X(1, Min::XY(11, 2, Styled(match self.value {
add(&Push::X(1, Min::XY(11, 2, Styled(match self.value {
Some(TransportState::Stopped) => Some(GRAY_DIM.bold()),
Some(TransportState::Starting) => Some(GRAY_NOT_DIM_BOLD),
Some(TransportState::Rolling) => Some(WHITE_NOT_DIM_BOLD),