diff options
author | 2019-12-30 19:20:59 +0100 | |
---|---|---|
committer | 2019-12-30 19:20:59 +0100 | |
commit | 8426bf953cb50f3b7fcb1e0ec8c2fdf22d2b01af (patch) | |
tree | 81f2ccbab0eba1fec581abc6d0ec0531fd9113f4 /web/src/widget | |
parent | 7163e1d8b669b61d6fba6528c2a28fde3bfb72a0 (diff) | |
download | iced-8426bf953cb50f3b7fcb1e0ec8c2fdf22d2b01af.tar.gz iced-8426bf953cb50f3b7fcb1e0ec8c2fdf22d2b01af.tar.bz2 iced-8426bf953cb50f3b7fcb1e0ec8c2fdf22d2b01af.zip |
Implement `Empty` widget
It can be useful if you want to fill some space with nothing.
Diffstat (limited to 'web/src/widget')
-rw-r--r-- | web/src/widget/empty.rs | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/web/src/widget/empty.rs b/web/src/widget/empty.rs new file mode 100644 index 00000000..dda17efe --- /dev/null +++ b/web/src/widget/empty.rs @@ -0,0 +1,70 @@ +use crate::{style, Bus, Element, Length, Widget}; +use dodrio::bumpalo; + +/// An amount of empty space. +/// +/// It can be useful if you want to fill some space with nothing. +/// +/// [`Empty`]: struct.Empty.html +#[derive(Debug)] +pub struct Empty { + width: Length, + height: Length, +} + +impl Empty { + /// Creates an amount of [`Empty`] space. + /// + /// [`Empty`]: struct.Empty.html + pub fn new() -> Self { + Empty { + width: Length::Shrink, + height: Length::Shrink, + } + } + + /// Sets the width of the [`Empty`] space. + /// + /// [`Empty`]: struct..html + pub fn width(mut self, width: Length) -> Self { + self.width = width; + self + } + + /// Sets the height of the [`Empty`] space. + /// + /// [`Empty`]: struct.Column.html + pub fn height(mut self, height: Length) -> Self { + self.height = height; + self + } +} + +impl<'a, Message> Widget<Message> for Empty { + fn node<'b>( + &self, + bump: &'b bumpalo::Bump, + _publish: &Bus<Message>, + _style_sheet: &mut style::Sheet<'b>, + ) -> dodrio::Node<'b> { + use dodrio::builder::*; + + let width = style::length(self.width); + let height = style::length(self.height); + + let style = bumpalo::format!( + in bump, + "width: {}; height: {};", + width, + height + ); + + div(bump).attr("style", style.into_bump_str()).finish() + } +} + +impl<'a, Message> From<Empty> for Element<'a, Message> { + fn from(empty: Empty) -> Element<'a, Message> { + Element::new(empty) + } +} |