summaryrefslogtreecommitdiffstats
path: root/web/src/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-30 19:20:59 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-30 19:20:59 +0100
commit8426bf953cb50f3b7fcb1e0ec8c2fdf22d2b01af (patch)
tree81f2ccbab0eba1fec581abc6d0ec0531fd9113f4 /web/src/widget
parent7163e1d8b669b61d6fba6528c2a28fde3bfb72a0 (diff)
downloadiced-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.rs70
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)
+ }
+}