mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
split Outset into 2 phases
This commit is contained in:
parent
00da7de142
commit
a0fbbc6257
3 changed files with 76 additions and 22 deletions
|
|
@ -37,25 +37,66 @@ impl Content for Demo<Tui> {
|
||||||
type Engine = Tui;
|
type Engine = Tui;
|
||||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||||
Layers::new(|add|{
|
Layers::new(|add|{
|
||||||
add(&FillBg(Color::Rgb(128,0,0)))?;
|
|
||||||
add(&Outset::X(1, "foo"))?;
|
add(&FillBg(Color::Rgb(0,128,128)))?;
|
||||||
|
|
||||||
|
add(&Outset::XY(1, 1, Split::down(|add|{
|
||||||
|
|
||||||
|
add(&Layers::new(|add|{
|
||||||
|
add(&FillBg(Color::Rgb(255,0,0)))?;
|
||||||
|
add(&Outset::X(1, "."))?;
|
||||||
|
Ok(())
|
||||||
|
}))?;
|
||||||
|
|
||||||
|
add(&Layers::new(|add|{
|
||||||
|
add(&FillBg(Color::Rgb(255,128,0)))?;
|
||||||
|
add(&Outset::Y(1, "---"))?;
|
||||||
|
Ok(())
|
||||||
|
}))?;
|
||||||
|
|
||||||
|
add(&Layers::new(|add|{
|
||||||
|
add(&FillBg(Color::Rgb(128,0,0)))?;
|
||||||
|
add(&Outset::XY(0, 0, "~~~"))?;
|
||||||
|
Ok(())
|
||||||
|
}))?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
})))?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
||||||
})
|
})
|
||||||
|
//Align::Center(Outset::X(1, Layers::new(|add|{
|
||||||
|
//add(&FillBg(Color::Rgb(128,0,0)))?;
|
||||||
|
//add(&Split::down(|add|{
|
||||||
|
//add(&Outset::Y(1, Layers::new(|add|{
|
||||||
|
//add(&FillBg(Color::Rgb(0,128,0)))?;
|
||||||
|
//add(&Align::Center("12345"))?;
|
||||||
|
//add(&Align::Center("FOO"))
|
||||||
|
//})))?;
|
||||||
|
//add(&Outset::XY(1, 1, Layers::new(|add|{
|
||||||
|
//add(&Align::Center("1234567"))?;
|
||||||
|
//add(&Align::Center("BAR"))?;
|
||||||
|
//add(&FillBg(Color::Rgb(0,0,128)))
|
||||||
|
//})))
|
||||||
|
//}))
|
||||||
|
//})))
|
||||||
|
|
||||||
//Align::Y(Layers::new(|add|{
|
//Align::Y(Layers::new(|add|{
|
||||||
//add(&FillBg(Color::Rgb(128,0,0)))?;
|
//add(&FillBg(Color::Rgb(128,0,0)))?;
|
||||||
//add(&Outset::X(1, Align::Center(Split::down(|add|{
|
//add(&Outset::X(1, Align::Center(Split::down(|add|{
|
||||||
//add(&Align::X(Layers::new(|add|{
|
//add(&Align::X(Outset::Y(1, Layers::new(|add|{
|
||||||
//add(&FillBg(Color::Rgb(0,128,0)))?;
|
//add(&FillBg(Color::Rgb(0,128,0)))?;
|
||||||
//add(&Outset::Y(1, Align::Center("12345")))?;
|
//add(&Align::Center("12345"))?;
|
||||||
//add(&Align::Center("FOO"))
|
//add(&Align::Center("FOO"))
|
||||||
//})))?;
|
//})))?;
|
||||||
//add(&Layers::new(|add|{
|
//add(&Outset::XY(1, 1, Layers::new(|add|{
|
||||||
//add(&Outset::XY(1, 1, Align::Center("1234567")))?;
|
//add(&Align::Center("1234567"))?;
|
||||||
//add(&Align::Center("BAR"))?;
|
//add(&Align::Center("BAR"))?;
|
||||||
//add(&FillBg(Color::Rgb(0,0,128)))
|
//add(&FillBg(Color::Rgb(0,0,128)))
|
||||||
//}))?;
|
//})))?;
|
||||||
//Ok(())
|
//Ok(())
|
||||||
//}))))
|
//})))))
|
||||||
//}))
|
//}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -568,12 +568,8 @@ where
|
||||||
Ok(Some([x, y, w, h]))
|
Ok(Some([x, y, w, h]))
|
||||||
}
|
}
|
||||||
fn render (&self, to: &mut Tui) -> Perhaps<[u16;4]> {
|
fn render (&self, to: &mut Tui) -> Perhaps<[u16;4]> {
|
||||||
let layout = self.layout(to.area())?;
|
|
||||||
self.layout(to.area())?
|
self.layout(to.area())?
|
||||||
.map(|area|(self.0)(&mut |layer| {
|
.map(|area|(self.0)(&mut |layer|to.render_in(area, &layer).map(|_|())).map(|_|area))
|
||||||
to.render_in(area, &layer)?;
|
|
||||||
Ok(())
|
|
||||||
}).map(|_|area))
|
|
||||||
.transpose()
|
.transpose()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -606,19 +602,36 @@ impl<T: Widget<Engine = Tui>> Content for Inset<u16, T> {
|
||||||
//}
|
//}
|
||||||
//}
|
//}
|
||||||
|
|
||||||
impl<T: Widget<Engine = Tui>> Content for Outset<u16, T> {
|
impl<T: Widget<Engine = Tui>> Widget for Outset<u16, T> {
|
||||||
type Engine = Tui;
|
type Engine = Tui;
|
||||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
fn layout (&self, to: [u16;4]) -> Perhaps<[u16;4]> {
|
||||||
match *self {
|
match *self {
|
||||||
Self::X(x, ref inner) =>
|
Self::X(x, ref inner) => Grow::X(x + x, inner as &dyn Widget<Engine = Tui>),
|
||||||
Grow::X(x + x, inner as &dyn Widget<Engine = Tui>),
|
Self::Y(y, ref inner) => Grow::Y(y + y, inner as &dyn Widget<Engine = Tui>),
|
||||||
Self::Y(y, ref inner) =>
|
Self::XY(x, y, ref inner) => Grow::XY(x + x, y + y, inner as &dyn Widget<Engine = Tui>),
|
||||||
Grow::Y(y + y, inner as &dyn Widget<Engine = Tui>),
|
}.layout(to)
|
||||||
Self::XY(x, y, ref inner) =>
|
}
|
||||||
Grow::XY(x, y, inner as &dyn Widget<Engine = Tui>),
|
fn render (&self, to: &mut Tui) -> Perhaps<[u16;4]> {
|
||||||
}
|
match *self {
|
||||||
|
Self::X(x, ref inner) => Plus::X(x, inner as &dyn Widget<Engine = Tui>),
|
||||||
|
Self::Y(y, ref inner) => Plus::Y(y, inner as &dyn Widget<Engine = Tui>),
|
||||||
|
Self::XY(x, y, ref inner) => Plus::XY(x, y, inner as &dyn Widget<Engine = Tui>),
|
||||||
|
}.render(to)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//impl<T: Widget<Engine = Tui>> Content for Outset<u16, T> {
|
||||||
|
//type Engine = Tui;
|
||||||
|
//fn content (&self) -> impl Widget<Engine = Tui> {
|
||||||
|
//match *self {
|
||||||
|
//Self::X(x, ref inner) =>
|
||||||
|
//Grow::X(x + x, inner as &dyn Widget<Engine = Tui>),
|
||||||
|
//Self::Y(y, ref inner) =>
|
||||||
|
//Grow::Y(y + y, inner as &dyn Widget<Engine = Tui>),
|
||||||
|
//Self::XY(x, y, ref inner) =>
|
||||||
|
//Grow::XY(x, y, inner as &dyn Widget<Engine = Tui>),
|
||||||
|
//}
|
||||||
|
//}
|
||||||
|
//}
|
||||||
|
|
||||||
pub trait BorderStyle {
|
pub trait BorderStyle {
|
||||||
const NW: &'static str = "";
|
const NW: &'static str = "";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue