Add option to stretch Padding
This commit is contained in:
parent
d0b3b9edd4
commit
242a1aed29
1 changed files with 21 additions and 6 deletions
|
|
@ -9,6 +9,7 @@ pub struct Padding<I> {
|
||||||
pub right: u16,
|
pub right: u16,
|
||||||
pub top: u16,
|
pub top: u16,
|
||||||
pub bottom: u16,
|
pub bottom: u16,
|
||||||
|
pub stretch: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<I> Padding<I> {
|
impl<I> Padding<I> {
|
||||||
|
|
@ -19,6 +20,7 @@ impl<I> Padding<I> {
|
||||||
right: 0,
|
right: 0,
|
||||||
top: 0,
|
top: 0,
|
||||||
bottom: 0,
|
bottom: 0,
|
||||||
|
stretch: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -54,6 +56,11 @@ impl<I> Padding<I> {
|
||||||
self.with_horizontal(amount).with_vertical(amount)
|
self.with_horizontal(amount).with_vertical(amount)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn with_stretch(mut self, stretch: bool) -> Self {
|
||||||
|
self.stretch = stretch;
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
fn pad_size(&self) -> Size {
|
fn pad_size(&self) -> Size {
|
||||||
Size::new(self.left + self.right, self.top + self.bottom)
|
Size::new(self.left + self.right, self.top + self.bottom)
|
||||||
}
|
}
|
||||||
|
|
@ -84,9 +91,13 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
fn draw(self, frame: &mut Frame) -> Result<(), E> {
|
fn draw(self, frame: &mut Frame) -> Result<(), E> {
|
||||||
|
if self.stretch {
|
||||||
|
self.inner.draw(frame)?;
|
||||||
|
} else {
|
||||||
self.push_inner(frame);
|
self.push_inner(frame);
|
||||||
self.inner.draw(frame)?;
|
self.inner.draw(frame)?;
|
||||||
frame.pop();
|
frame.pop();
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -110,9 +121,13 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn draw(self, frame: &mut Frame) -> Result<(), E> {
|
async fn draw(self, frame: &mut Frame) -> Result<(), E> {
|
||||||
|
if self.stretch {
|
||||||
|
self.inner.draw(frame).await?;
|
||||||
|
} else {
|
||||||
self.push_inner(frame);
|
self.push_inner(frame);
|
||||||
self.inner.draw(frame).await?;
|
self.inner.draw(frame).await?;
|
||||||
frame.pop();
|
frame.pop();
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue