Make horizontal_space and vertical_space fill by default

This commit is contained in:
Héctor Ramón Jiménez 2024-02-15 02:08:22 +01:00
parent 9dd20ead08
commit e8049af23d
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
16 changed files with 54 additions and 46 deletions

View file

@ -68,7 +68,7 @@ impl Sandbox for Example {
text(&self.text),
"What is your language?",
combo_box,
vertical_space(150),
vertical_space().height(150),
]
.width(Length::Fill)
.align_items(Alignment::Center)

View file

@ -155,7 +155,7 @@ impl Application for Editor {
"Save file",
self.is_dirty.then_some(Message::SaveFile)
),
horizontal_space(Length::Fill),
horizontal_space(),
pick_list(
highlighter::Theme::ALL,
Some(self.theme),
@ -179,7 +179,7 @@ impl Application for Editor {
} else {
String::from("New file")
}),
horizontal_space(Length::Fill),
horizontal_space(),
text({
let (line, column) = self.content.cursor_position();

View file

@ -71,7 +71,7 @@ impl Sandbox for Gradient {
transparent,
} = *self;
let gradient_box = container(horizontal_space(Length::Fill))
let gradient_box = container(horizontal_space())
.width(Length::Fill)
.height(Length::Fill)
.style(move |_: &_| {

View file

@ -85,7 +85,7 @@ impl Application for Layout {
fn view(&self) -> Element<Message> {
let header = row![
text(self.example.title).size(20).font(Font::MONOSPACE),
horizontal_space(Length::Fill),
horizontal_space(),
checkbox("Explain", self.explain)
.on_toggle(Message::ExplainToggled),
pick_list(Theme::ALL, Some(&self.theme), Message::ThemeSelected),
@ -117,7 +117,7 @@ impl Application for Layout {
.on_press(Message::Previous)
.into(),
),
Some(horizontal_space(Length::Fill).into()),
Some(horizontal_space().into()),
(!self.example.is_last()).then_some(
button("Next →")
.padding([5, 10])
@ -251,16 +251,16 @@ fn row_<'a>() -> Element<'a, Message> {
}
fn space<'a>() -> Element<'a, Message> {
row!["Left!", horizontal_space(Length::Fill), "Right!"].into()
row!["Left!", horizontal_space(), "Right!"].into()
}
fn application<'a>() -> Element<'a, Message> {
let header = container(
row![
square(40),
horizontal_space(Length::Fill),
horizontal_space(),
"Header!",
horizontal_space(Length::Fill),
horizontal_space(),
square(40),
]
.padding(10)

View file

@ -186,7 +186,7 @@ impl Sandbox for App {
row![
text(&item.name)
.style(theme::Text::Color(item.color.into())),
horizontal_space(Length::Fill),
horizontal_space(),
pick_list(Color::ALL, Some(item.color), move |color| {
Message::ItemColorChanged(item.clone(), color)
}),

View file

@ -111,11 +111,7 @@ impl Application for App {
fn view(&self) -> Element<Message> {
let content = container(
column![
row![
text("Top Left"),
horizontal_space(Length::Fill),
text("Top Right")
]
row![text("Top Left"), horizontal_space(), text("Top Right")]
.align_items(Alignment::Start)
.height(Length::Fill),
container(
@ -127,7 +123,7 @@ impl Application for App {
.height(Length::Fill),
row![
text("Bottom Left"),
horizontal_space(Length::Fill),
horizontal_space(),
text("Bottom Right")
]
.align_items(Alignment::End)

View file

@ -43,10 +43,10 @@ impl Sandbox for Example {
.placeholder("Choose a language...");
let content = column![
vertical_space(600),
vertical_space().height(600),
"Which is your favorite language?",
pick_list,
vertical_space(600),
vertical_space().height(600),
]
.width(Length::Fill)
.align_items(Alignment::Center)

View file

@ -216,9 +216,9 @@ impl Application for ScrollableDemo {
column![
scroll_to_end_button(),
text("Beginning!"),
vertical_space(1200),
vertical_space().height(1200),
text("Middle!"),
vertical_space(1200),
vertical_space().height(1200),
text("End!"),
scroll_to_beginning_button(),
]
@ -241,9 +241,9 @@ impl Application for ScrollableDemo {
row![
scroll_to_end_button(),
text("Beginning!"),
horizontal_space(1200),
horizontal_space().width(1200),
text("Middle!"),
horizontal_space(1200),
horizontal_space().width(1200),
text("End!"),
scroll_to_beginning_button(),
]
@ -268,25 +268,25 @@ impl Application for ScrollableDemo {
row![
column![
text("Let's do some scrolling!"),
vertical_space(2400)
vertical_space().height(2400)
],
scroll_to_end_button(),
text("Horizontal - Beginning!"),
horizontal_space(1200),
horizontal_space().width(1200),
//vertical content
column![
text("Horizontal - Middle!"),
scroll_to_end_button(),
text("Vertical - Beginning!"),
vertical_space(1200),
vertical_space().height(1200),
text("Vertical - Middle!"),
vertical_space(1200),
vertical_space().height(1200),
text("Vertical - End!"),
scroll_to_beginning_button(),
vertical_space(40),
vertical_space().height(40),
]
.spacing(40),
horizontal_space(1200),
horizontal_space().width(1200),
text("Horizontal - End!"),
scroll_to_beginning_button(),
]

View file

@ -76,7 +76,7 @@ impl Sandbox for Styling {
let scrollable = scrollable(column![
"Scroll me!",
vertical_space(800),
vertical_space().height(800),
"You did it!"
])
.width(Length::Fill)

View file

@ -274,7 +274,7 @@ mod toast {
container(
row![
text(toast.title.as_str()),
horizontal_space(Length::Fill),
horizontal_space(),
button("X")
.on_press((on_close)(index))
.padding(3),

View file

@ -66,7 +66,7 @@ impl Sandbox for Tour {
);
}
controls = controls.push(horizontal_space(Length::Fill));
controls = controls.push(horizontal_space());
if steps.can_continue() {
controls =
@ -574,14 +574,14 @@ impl<'a> Step {
text("Tip: You can use the scrollbar to scroll down faster!")
.size(16),
)
.push(vertical_space(4096))
.push(vertical_space().height(4096))
.push(
text("You are halfway there!")
.width(Length::Fill)
.size(30)
.horizontal_alignment(alignment::Horizontal::Center),
)
.push(vertical_space(4096))
.push(vertical_space().height(4096))
.push(ferris(300, image::FilterMethod::Linear))
.push(
text("You made it!")

View file

@ -64,7 +64,7 @@ impl Sandbox for VectorialText {
column![
row![
text(label),
horizontal_space(Length::Fill),
horizontal_space(),
text(format!("{:.2}", value))
],
slider(range, value, message).step(0.01)

View file

@ -81,7 +81,7 @@ impl Application for Example {
let data_row = |label, value, color| {
row![
text(label),
horizontal_space(Length::Fill),
horizontal_space(),
text(value).font(Font::MONOSPACE).size(14).style(color),
]
.height(40)
@ -127,21 +127,21 @@ impl Application for Example {
scrollable(
column![
text("Scroll me!"),
vertical_space(400),
vertical_space().height(400),
container(text("I am the outer container!"))
.id(OUTER_CONTAINER.clone())
.padding(40)
.style(theme::Container::Box),
vertical_space(400),
vertical_space().height(400),
scrollable(
column![
text("Scroll me!"),
vertical_space(400),
vertical_space().height(400),
container(text("I am the inner container!"))
.id(INNER_CONTAINER.clone())
.padding(40)
.style(theme::Container::Box),
vertical_space(400)
vertical_space().height(400),
]
.padding(20)
)

View file

@ -305,15 +305,15 @@ where
/// Creates a new horizontal [`Space`] with the given [`Length`].
///
/// [`Space`]: crate::Space
pub fn horizontal_space(width: impl Into<Length>) -> Space {
Space::with_width(width)
pub fn horizontal_space() -> Space {
Space::with_width(Length::Fill)
}
/// Creates a new vertical [`Space`] with the given [`Length`].
///
/// [`Space`]: crate::Space
pub fn vertical_space(height: impl Into<Length>) -> Space {
Space::with_height(height)
pub fn vertical_space() -> Space {
Space::with_height(Length::Fill)
}
/// Creates a horizontal [`Rule`] with the given height.

View file

@ -50,7 +50,7 @@ where
content: RefCell::new(Content {
size: Size::ZERO,
layout: None,
element: Element::new(horizontal_space(0)),
element: Element::new(horizontal_space().width(0)),
}),
}
}

View file

@ -39,6 +39,18 @@ impl Space {
height: height.into(),
}
}
/// Sets the width of the [`Space`].
pub fn width(mut self, width: impl Into<Length>) -> Self {
self.width = width.into();
self
}
/// Sets the height of the [`Space`].
pub fn height(mut self, height: impl Into<Length>) -> Self {
self.height = height.into();
self
}
}
impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer> for Space