summaryrefslogtreecommitdiffstats
path: root/web/src/widget/container.rs
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/widget/container.rs')
-rw-r--r--web/src/widget/container.rs29
1 files changed, 12 insertions, 17 deletions
diff --git a/web/src/widget/container.rs b/web/src/widget/container.rs
index 8e4318f9..7187a4f0 100644
--- a/web/src/widget/container.rs
+++ b/web/src/widget/container.rs
@@ -8,6 +8,7 @@ pub use iced_style::container::{Style, StyleSheet};
/// It is normally used for alignment purposes.
#[allow(missing_debug_implementations)]
pub struct Container<'a, Message> {
+ padding: u16,
width: Length,
height: Length,
max_width: u32,
@@ -20,8 +21,6 @@ pub struct Container<'a, Message> {
impl<'a, Message> Container<'a, Message> {
/// Creates an empty [`Container`].
- ///
- /// [`Container`]: struct.Container.html
pub fn new<T>(content: T) -> Self
where
T: Into<Element<'a, Message>>,
@@ -29,6 +28,7 @@ impl<'a, Message> Container<'a, Message> {
use std::u32;
Container {
+ padding: 0,
width: Length::Shrink,
height: Length::Shrink,
max_width: u32::MAX,
@@ -40,41 +40,37 @@ impl<'a, Message> Container<'a, Message> {
}
}
+ /// Sets the padding of the [`Container`].
+ pub fn padding(mut self, units: u16) -> Self {
+ self.padding = units;
+ self
+ }
+
/// Sets the width of the [`Container`].
- ///
- /// [`Container`]: struct.Container.html
pub fn width(mut self, width: Length) -> Self {
self.width = width;
self
}
/// Sets the height of the [`Container`].
- ///
- /// [`Container`]: struct.Container.html
pub fn height(mut self, height: Length) -> Self {
self.height = height;
self
}
/// Sets the maximum width of the [`Container`].
- ///
- /// [`Container`]: struct.Container.html
pub fn max_width(mut self, max_width: u32) -> Self {
self.max_width = max_width;
self
}
/// Sets the maximum height of the [`Container`] in pixels.
- ///
- /// [`Container`]: struct.Container.html
pub fn max_height(mut self, max_height: u32) -> Self {
self.max_height = max_height;
self
}
/// Centers the contents in the horizontal axis of the [`Container`].
- ///
- /// [`Container`]: struct.Container.html
pub fn center_x(mut self) -> Self {
self.horizontal_alignment = Align::Center;
@@ -82,8 +78,6 @@ impl<'a, Message> Container<'a, Message> {
}
/// Centers the contents in the vertical axis of the [`Container`].
- ///
- /// [`Container`]: struct.Container.html
pub fn center_y(mut self) -> Self {
self.vertical_alignment = Align::Center;
@@ -91,8 +85,6 @@ impl<'a, Message> Container<'a, Message> {
}
/// Sets the style of the [`Container`].
- ///
- /// [`Container`]: struct.Container.html
pub fn style(mut self, style: impl Into<Box<dyn StyleSheet>>) -> Self {
self.style_sheet = style.into();
self
@@ -113,12 +105,15 @@ where
let column_class = style_sheet.insert(bump, css::Rule::Column);
+ let padding_class =
+ style_sheet.insert(bump, css::Rule::Padding(self.padding));
+
let style = self.style_sheet.style();
let node = div(bump)
.attr(
"class",
- bumpalo::format!(in bump, "{}", column_class).into_bump_str(),
+ bumpalo::format!(in bump, "{} {}", column_class, padding_class).into_bump_str(),
)
.attr(
"style",