fix disappearing phrase list

This commit is contained in:
🪞👃🪞 2024-10-06 07:47:56 +03:00
parent 39edaea47c
commit 5667416d89
3 changed files with 28 additions and 24 deletions

View file

@ -599,7 +599,7 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Shrink<E::Unit, T> {
],
Self::Y(h, _) => [
to.w(),
if to.h() > h { to.h() - h } else { 0.into() }
if to.h() > h { to.h() - h } else { 0.into() }
],
Self::XY(w, h, _) => [
if to.w() > w { to.w() - w } else { 0.into() },
@ -651,11 +651,11 @@ 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) =>
Push::X(x, Shrink::X(x, inner as &dyn Widget<Engine = E>)),
(inner as &dyn Widget<Engine = E>).shrink_x(x).push_x(x),
Self::Y(y, ref inner) =>
Push::Y(y, Shrink::Y(y, inner as &dyn Widget<Engine = E>)),
(inner as &dyn Widget<Engine = E>).shrink_y(y).push_y(y),
Self::XY(x, y, ref inner) =>
Push::XY(x, y, Shrink::XY(x, y, inner as &dyn Widget<Engine = E>)),
(inner as &dyn Widget<Engine = E>).shrink_xy(x, y).push_xy(x, y)
}.render(to)
}
}
@ -664,19 +664,22 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Outset<E::Unit, T> {
type Engine = E;
fn layout (&self, to: E::Size) -> Perhaps<E::Size> {
match *self {
Self::X(x, ref inner) => Grow::X(x + x, inner as &dyn Widget<Engine = E>),
Self::Y(y, ref inner) => Grow::Y(y + y, inner as &dyn Widget<Engine = E>),
Self::XY(x, y, ref inner) => Grow::XY(x + x, y + y, inner as &dyn Widget<Engine = E>),
Self::X(x, ref inner) =>
(inner as &dyn Widget<Engine = E>).grow_x(x + x),
Self::Y(y, ref inner) =>
(inner as &dyn Widget<Engine = E>).grow_y(y + y),
Self::XY(x, y, ref inner) =>
(inner as &dyn Widget<Engine = E>).grow_xy(x + x, y + y),
}.layout(to)
}
fn render (&self, to: &mut E::Output) -> Usually<()> {
match *self {
Self::X(x, ref inner) =>
Push::X(x, inner as &dyn Widget<Engine = E>),
(inner as &dyn Widget<Engine = E>).push_x(x),
Self::Y(y, ref inner) =>
Push::Y(y, inner as &dyn Widget<Engine = E>),
(inner as &dyn Widget<Engine = E>).push_y(y),
Self::XY(x, y, ref inner) =>
Push::XY(x, y, inner as &dyn Widget<Engine = E>),
(inner as &dyn Widget<Engine = E>).push_xy(x, y),
}.render(to)
}
}

View file

@ -727,17 +727,3 @@ impl Handle<Tui> for ArrangerRenameModal<Tui> {
}
}
}
impl Content for PhrasePool<Tui> {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
col!(
"Phrases:",
col!((i, phrase) in self.phrases.iter().enumerate() => format!("{i}"))
)
.bg(Color::Rgb(28, 35, 25))
.border(Lozenge(Style::default()
.bg(Color::Rgb(40, 50, 30))
.fg(Color::Rgb(70, 80, 50))))
}
}

View file

@ -1,5 +1,20 @@
use crate::*;
impl Content for PhrasePool<Tui> {
type Engine = Tui;
fn content (&self) -> impl Widget<Engine = Tui> {
col!(
"Phrases:",
col!((i, phrase) in self.phrases.iter().enumerate() => format!("{i}"))
)
.fill_xy()
.bg(Color::Rgb(28, 35, 25))
.border(Lozenge(Style::default()
.bg(Color::Rgb(40, 50, 30))
.fg(Color::Rgb(70, 80, 50))))
}
}
impl Sequencer<Tui> {
const H_KEYS_OFFSET: usize = 5;
/// Select which pattern to display. This pre-renders it to the buffer at full resolution.