Rename space_{x,y} to space::{horizontal,vertical}
This commit is contained in:
parent
299eb54d6f
commit
611f89fc59
25 changed files with 143 additions and 142 deletions
|
|
@ -24,7 +24,7 @@ use crate::runtime::task::{self, Task};
|
||||||
use crate::time_machine::TimeMachine;
|
use crate::time_machine::TimeMachine;
|
||||||
use crate::widget::{
|
use crate::widget::{
|
||||||
bottom_right, button, center, column, container, opaque, row, scrollable,
|
bottom_right, button, center, column, container, opaque, row, scrollable,
|
||||||
space_x, stack, text, themer,
|
space, stack, text, themer,
|
||||||
};
|
};
|
||||||
|
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
@ -447,7 +447,7 @@ where
|
||||||
.width(100)
|
.width(100)
|
||||||
.on_press(Message::CancelSetup)
|
.on_press(Message::CancelSetup)
|
||||||
.style(button::danger),
|
.style(button::danger),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
button(
|
button(
|
||||||
text(match goal {
|
text(match goal {
|
||||||
Goal::Installation => "Install",
|
Goal::Installation => "Install",
|
||||||
|
|
@ -497,13 +497,13 @@ where
|
||||||
let comparison = column![
|
let comparison = column![
|
||||||
row![
|
row![
|
||||||
"Installed revision:",
|
"Installed revision:",
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
inline_code(revision.as_deref().unwrap_or("Unknown"))
|
inline_code(revision.as_deref().unwrap_or("Unknown"))
|
||||||
]
|
]
|
||||||
.align_y(Center),
|
.align_y(Center),
|
||||||
row![
|
row![
|
||||||
"Compatible revision:",
|
"Compatible revision:",
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
inline_code(comet::COMPATIBLE_REVISION),
|
inline_code(comet::COMPATIBLE_REVISION),
|
||||||
]
|
]
|
||||||
.align_y(Center)
|
.align_y(Center)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
//! This example showcases an interactive `Canvas` for drawing Bézier curves.
|
//! This example showcases an interactive `Canvas` for drawing Bézier curves.
|
||||||
use iced::widget::{button, container, hover, right, space_x};
|
use iced::widget::{button, container, hover, right, space};
|
||||||
use iced::{Element, Theme};
|
use iced::{Element, Theme};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -38,7 +38,7 @@ impl Example {
|
||||||
container(hover(
|
container(hover(
|
||||||
self.bezier.view(&self.curves).map(Message::AddCurve),
|
self.bezier.view(&self.curves).map(Message::AddCurve),
|
||||||
if self.curves.is_empty() {
|
if self.curves.is_empty() {
|
||||||
container(space_x())
|
container(space::horizontal())
|
||||||
} else {
|
} else {
|
||||||
right(
|
right(
|
||||||
button("Clear")
|
button("Clear")
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use iced::widget::{center, column, combo_box, scrollable, space_y, text};
|
use iced::widget::{center, column, combo_box, scrollable, space, text};
|
||||||
use iced::{Center, Element, Fill};
|
use iced::{Center, Element, Fill};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -60,7 +60,7 @@ impl Example {
|
||||||
text(&self.text),
|
text(&self.text),
|
||||||
"What is your language?",
|
"What is your language?",
|
||||||
combo_box,
|
combo_box,
|
||||||
space_y().height(150),
|
space().height(150),
|
||||||
]
|
]
|
||||||
.width(Fill)
|
.width(Fill)
|
||||||
.align_x(Center)
|
.align_x(Center)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::highlighter;
|
use iced::highlighter;
|
||||||
use iced::keyboard;
|
use iced::keyboard;
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, center_x, column, container, operation, pick_list, row, space_x,
|
button, center_x, column, container, operation, pick_list, row, space,
|
||||||
text, text_editor, toggler, tooltip,
|
text, text_editor, toggler, tooltip,
|
||||||
};
|
};
|
||||||
use iced::{Center, Element, Fill, Font, Task, Theme};
|
use iced::{Center, Element, Fill, Font, Task, Theme};
|
||||||
|
|
@ -157,7 +157,7 @@ impl Editor {
|
||||||
"Save file",
|
"Save file",
|
||||||
self.is_dirty.then_some(Message::SaveFile)
|
self.is_dirty.then_some(Message::SaveFile)
|
||||||
),
|
),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
toggler(self.word_wrap)
|
toggler(self.word_wrap)
|
||||||
.label("Word Wrap")
|
.label("Word Wrap")
|
||||||
.on_toggle(Message::WordWrapToggled),
|
.on_toggle(Message::WordWrapToggled),
|
||||||
|
|
@ -184,7 +184,7 @@ impl Editor {
|
||||||
} else {
|
} else {
|
||||||
String::from("New file")
|
String::from("New file")
|
||||||
}),
|
}),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
text({
|
text({
|
||||||
let (line, column) = self.content.cursor_position();
|
let (line, column) = self.content.cursor_position();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ pub struct Image {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Image {
|
impl Image {
|
||||||
pub const LIMIT: usize = 99;
|
pub const LIMIT: usize = 96;
|
||||||
|
|
||||||
pub async fn list() -> Result<Vec<Self>, Error> {
|
pub async fn list() -> Result<Vec<Self>, Error> {
|
||||||
let client = reqwest::Client::new();
|
let client = reqwest::Client::new();
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ use iced::animation;
|
||||||
use iced::time::{Instant, milliseconds};
|
use iced::time::{Instant, milliseconds};
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, container, float, grid, image, mouse_area, opaque, scrollable,
|
button, container, float, grid, image, mouse_area, opaque, scrollable,
|
||||||
sensor, space_x, stack,
|
sensor, space, stack,
|
||||||
};
|
};
|
||||||
use iced::window;
|
use iced::window;
|
||||||
use iced::{
|
use iced::{
|
||||||
|
|
@ -227,7 +227,7 @@ fn card<'a>(
|
||||||
})
|
})
|
||||||
.into()
|
.into()
|
||||||
} else {
|
} else {
|
||||||
space_x().into()
|
space::horizontal().into()
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(blurhash) = preview.blurhash(now) {
|
if let Some(blurhash) = preview.blurhash(now) {
|
||||||
|
|
@ -241,7 +241,7 @@ fn card<'a>(
|
||||||
thumbnail
|
thumbnail
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
space_x().into()
|
space::horizontal().into()
|
||||||
};
|
};
|
||||||
|
|
||||||
let card = mouse_area(container(image).style(container::dark))
|
let card = mouse_area(container(image).style(container::dark))
|
||||||
|
|
@ -264,7 +264,7 @@ fn card<'a>(
|
||||||
}
|
}
|
||||||
|
|
||||||
fn placeholder<'a>() -> Element<'a, Message> {
|
fn placeholder<'a>() -> Element<'a, Message> {
|
||||||
container(space_x()).style(container::dark).into()
|
container(space()).style(container::dark).into()
|
||||||
}
|
}
|
||||||
|
|
||||||
enum Preview {
|
enum Preview {
|
||||||
|
|
@ -415,35 +415,32 @@ impl Viewer {
|
||||||
|| self.image_fade_in.is_animating(now)
|
|| self.image_fade_in.is_animating(now)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn view(&self, now: Instant) -> Element<'_, Message> {
|
fn view(&self, now: Instant) -> Option<Element<'_, Message>> {
|
||||||
let opacity = self.background_fade_in.interpolate(0.0, 0.8, now);
|
let opacity = self.background_fade_in.interpolate(0.0, 0.8, now);
|
||||||
|
|
||||||
let image: Element<'_, _> = if let Some(handle) = &self.image {
|
if opacity <= 0.0 {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
let image = self.image.as_ref().map(|handle| {
|
||||||
image(handle)
|
image(handle)
|
||||||
.width(Fill)
|
.width(Fill)
|
||||||
.height(Fill)
|
.height(Fill)
|
||||||
.opacity(self.image_fade_in.interpolate(0.0, 1.0, now))
|
.opacity(self.image_fade_in.interpolate(0.0, 1.0, now))
|
||||||
.scale(self.image_fade_in.interpolate(1.5, 1.0, now))
|
.scale(self.image_fade_in.interpolate(1.5, 1.0, now))
|
||||||
.into()
|
});
|
||||||
} else {
|
|
||||||
space_x().into()
|
|
||||||
};
|
|
||||||
|
|
||||||
if opacity > 0.0 {
|
Some(opaque(
|
||||||
opaque(
|
mouse_area(
|
||||||
mouse_area(
|
container(image)
|
||||||
container(image)
|
.center(Fill)
|
||||||
.center(Fill)
|
.style(move |_theme| {
|
||||||
.style(move |_theme| {
|
container::Style::default()
|
||||||
container::Style::default()
|
.background(color!(0x000000, opacity))
|
||||||
.background(color!(0x000000, opacity))
|
})
|
||||||
})
|
.padding(20),
|
||||||
.padding(20),
|
|
||||||
)
|
|
||||||
.on_press(Message::Close),
|
|
||||||
)
|
)
|
||||||
} else {
|
.on_press(Message::Close),
|
||||||
space_x().into()
|
))
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::gradient;
|
use iced::gradient;
|
||||||
use iced::theme;
|
use iced::theme;
|
||||||
use iced::widget::{checkbox, column, container, row, slider, space_x, text};
|
use iced::widget::{checkbox, column, container, row, slider, space, text};
|
||||||
use iced::{Center, Color, Element, Fill, Radians, Theme, color};
|
use iced::{Center, Color, Element, Fill, Radians, Theme, color};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -57,7 +57,7 @@ impl Gradient {
|
||||||
transparent,
|
transparent,
|
||||||
} = *self;
|
} = *self;
|
||||||
|
|
||||||
let gradient_box = container(space_x())
|
let gradient_box = container(space())
|
||||||
.style(move |_theme| {
|
.style(move |_theme| {
|
||||||
let gradient = gradient::Linear::new(angle)
|
let gradient = gradient::Linear::new(angle)
|
||||||
.add_stop(0.0, start)
|
.add_stop(0.0, start)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ use iced::keyboard;
|
||||||
use iced::mouse;
|
use iced::mouse;
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, canvas, center, center_y, checkbox, column, container, pick_list,
|
button, canvas, center, center_y, checkbox, column, container, pick_list,
|
||||||
pin, row, rule, scrollable, space_x, stack, text,
|
pin, row, rule, scrollable, space, stack, text,
|
||||||
};
|
};
|
||||||
use iced::{
|
use iced::{
|
||||||
Center, Element, Fill, Font, Length, Point, Rectangle, Renderer, Shrink,
|
Center, Element, Fill, Font, Length, Point, Rectangle, Renderer, Shrink,
|
||||||
|
|
@ -70,7 +70,7 @@ impl Layout {
|
||||||
fn view(&self) -> Element<'_, Message> {
|
fn view(&self) -> Element<'_, Message> {
|
||||||
let header = row![
|
let header = row![
|
||||||
text(self.example.title).size(20).font(Font::MONOSPACE),
|
text(self.example.title).size(20).font(Font::MONOSPACE),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
checkbox("Explain", self.explain)
|
checkbox("Explain", self.explain)
|
||||||
.on_toggle(Message::ExplainToggled),
|
.on_toggle(Message::ExplainToggled),
|
||||||
pick_list(Theme::ALL, self.theme.as_ref(), Message::ThemeSelected)
|
pick_list(Theme::ALL, self.theme.as_ref(), Message::ThemeSelected)
|
||||||
|
|
@ -92,23 +92,19 @@ impl Layout {
|
||||||
})
|
})
|
||||||
.padding(4);
|
.padding(4);
|
||||||
|
|
||||||
let controls = row([
|
let controls = row![
|
||||||
(!self.example.is_first()).then_some(
|
(!self.example.is_first()).then_some(
|
||||||
button(text("← Previous"))
|
button(text("← Previous"))
|
||||||
.padding([5, 10])
|
.padding([5, 10])
|
||||||
.on_press(Message::Previous)
|
.on_press(Message::Previous)
|
||||||
.into(),
|
|
||||||
),
|
),
|
||||||
Some(space_x().into()),
|
space::horizontal(),
|
||||||
(!self.example.is_last()).then_some(
|
(!self.example.is_last()).then_some(
|
||||||
button(text("Next →"))
|
button(text("Next →"))
|
||||||
.padding([5, 10])
|
.padding([5, 10])
|
||||||
.on_press(Message::Next)
|
.on_press(Message::Next)
|
||||||
.into(),
|
|
||||||
),
|
),
|
||||||
]
|
];
|
||||||
.into_iter()
|
|
||||||
.flatten());
|
|
||||||
|
|
||||||
column![header, example, controls]
|
column![header, example, controls]
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
|
|
@ -143,7 +139,7 @@ impl Example {
|
||||||
},
|
},
|
||||||
Self {
|
Self {
|
||||||
title: "Space",
|
title: "Space",
|
||||||
view: space,
|
view: space_,
|
||||||
},
|
},
|
||||||
Self {
|
Self {
|
||||||
title: "Application",
|
title: "Application",
|
||||||
|
|
@ -237,15 +233,21 @@ fn row_<'a>() -> Element<'a, Message> {
|
||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn space<'a>() -> Element<'a, Message> {
|
fn space_<'a>() -> Element<'a, Message> {
|
||||||
row!["Left!", space_x(), "Right!"].into()
|
row!["Left!", space::horizontal(), "Right!"].into()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn application<'a>() -> Element<'a, Message> {
|
fn application<'a>() -> Element<'a, Message> {
|
||||||
let header = container(
|
let header = container(
|
||||||
row![square(40), space_x(), "Header!", space_x(), square(40),]
|
row![
|
||||||
.padding(10)
|
square(40),
|
||||||
.align_y(Center),
|
space::horizontal(),
|
||||||
|
"Header!",
|
||||||
|
space::horizontal(),
|
||||||
|
square(40),
|
||||||
|
]
|
||||||
|
.padding(10)
|
||||||
|
.align_y(Center),
|
||||||
)
|
)
|
||||||
.style(|theme| {
|
.style(|theme| {
|
||||||
let palette = theme.extended_palette();
|
let palette = theme.extended_palette();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, column, lazy, pick_list, row, scrollable, space_x, text, text_input,
|
button, column, lazy, pick_list, row, scrollable, space, text, text_input,
|
||||||
};
|
};
|
||||||
use iced::{Element, Fill};
|
use iced::{Element, Fill};
|
||||||
|
|
||||||
|
|
@ -173,7 +173,7 @@ impl App {
|
||||||
|
|
||||||
row![
|
row![
|
||||||
text(item.name.clone()).color(item.color),
|
text(item.name.clone()).color(item.color),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
pick_list(Color::ALL, Some(item.color), move |color| {
|
pick_list(Color::ALL, Some(item.color), move |color| {
|
||||||
Message::ItemColorChanged(item.clone(), color)
|
Message::ItemColorChanged(item.clone(), color)
|
||||||
}),
|
}),
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ use iced::highlighter;
|
||||||
use iced::time::{self, Instant, milliseconds};
|
use iced::time::{self, Instant, milliseconds};
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, center_x, container, hover, image, markdown, operation, right, row,
|
button, center_x, container, hover, image, markdown, operation, right, row,
|
||||||
scrollable, sensor, space_x, text_editor, toggler,
|
scrollable, sensor, space, text_editor, toggler,
|
||||||
};
|
};
|
||||||
use iced::window;
|
use iced::window;
|
||||||
use iced::{
|
use iced::{
|
||||||
|
|
@ -264,7 +264,7 @@ impl<'a> markdown::Viewer<'a, Message> for CustomViewer<'a> {
|
||||||
)
|
)
|
||||||
.into()
|
.into()
|
||||||
} else {
|
} else {
|
||||||
sensor(space_x())
|
sensor(space())
|
||||||
.key_ref(url.as_str())
|
.key_ref(url.as_str())
|
||||||
.delay(milliseconds(500))
|
.delay(milliseconds(500))
|
||||||
.on_show(|_size| Message::ImageShown(url.clone()))
|
.on_show(|_size| Message::ImageShown(url.clone()))
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ use iced::keyboard;
|
||||||
use iced::keyboard::key;
|
use iced::keyboard::key;
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, center, column, container, mouse_area, opaque, operation,
|
button, center, column, container, mouse_area, opaque, operation,
|
||||||
pick_list, row, space_x, stack, text, text_input,
|
pick_list, row, space, stack, text, text_input,
|
||||||
};
|
};
|
||||||
use iced::{Bottom, Color, Element, Fill, Subscription, Task};
|
use iced::{Bottom, Color, Element, Fill, Subscription, Task};
|
||||||
|
|
||||||
|
|
@ -95,12 +95,16 @@ impl App {
|
||||||
fn view(&self) -> Element<'_, Message> {
|
fn view(&self) -> Element<'_, Message> {
|
||||||
let content = container(
|
let content = container(
|
||||||
column![
|
column![
|
||||||
row![text("Top Left"), space_x(), text("Top Right")]
|
row![text("Top Left"), space::horizontal(), text("Top Right")]
|
||||||
.height(Fill),
|
.height(Fill),
|
||||||
center(button(text("Show Modal")).on_press(Message::ShowModal)),
|
center(button(text("Show Modal")).on_press(Message::ShowModal)),
|
||||||
row![text("Bottom Left"), space_x(), text("Bottom Right")]
|
row![
|
||||||
.align_y(Bottom)
|
text("Bottom Left"),
|
||||||
.height(Fill),
|
space::horizontal(),
|
||||||
|
text("Bottom Right")
|
||||||
|
]
|
||||||
|
.align_y(Bottom)
|
||||||
|
.height(Fill),
|
||||||
]
|
]
|
||||||
.height(Fill),
|
.height(Fill),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, center, center_x, column, container, operation, scrollable,
|
button, center, center_x, column, container, operation, scrollable, space,
|
||||||
space_x, text, text_input,
|
text, text_input,
|
||||||
};
|
};
|
||||||
use iced::window;
|
use iced::window;
|
||||||
use iced::{
|
use iced::{
|
||||||
|
|
@ -134,7 +134,7 @@ impl Example {
|
||||||
if let Some(window) = self.windows.get(&window_id) {
|
if let Some(window) = self.windows.get(&window_id) {
|
||||||
center(window.view(window_id)).into()
|
center(window.view(window_id)).into()
|
||||||
} else {
|
} else {
|
||||||
space_x().into()
|
space().into()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use iced::widget::{column, pick_list, scrollable, space_y};
|
use iced::widget::{column, pick_list, scrollable, space};
|
||||||
use iced::{Center, Element, Fill};
|
use iced::{Center, Element, Fill};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -33,10 +33,10 @@ impl Example {
|
||||||
.placeholder("Choose a language...");
|
.placeholder("Choose a language...");
|
||||||
|
|
||||||
let content = column![
|
let content = column![
|
||||||
space_y().height(600),
|
space().height(600),
|
||||||
"Which is your favorite language?",
|
"Which is your favorite language?",
|
||||||
pick_list,
|
pick_list,
|
||||||
space_y().height(600),
|
space().height(600),
|
||||||
]
|
]
|
||||||
.width(Fill)
|
.width(Fill)
|
||||||
.align_x(Center)
|
.align_x(Center)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, column, container, operation, progress_bar, radio, row, scrollable,
|
button, column, container, operation, progress_bar, radio, row, scrollable,
|
||||||
slider, space_x, space_y, text,
|
slider, space, text,
|
||||||
};
|
};
|
||||||
use iced::{Border, Center, Color, Element, Fill, Task, Theme};
|
use iced::{Border, Center, Color, Element, Fill, Task, Theme};
|
||||||
|
|
||||||
|
|
@ -190,9 +190,9 @@ impl ScrollableDemo {
|
||||||
column![
|
column![
|
||||||
scroll_to_end_button(),
|
scroll_to_end_button(),
|
||||||
text("Beginning!"),
|
text("Beginning!"),
|
||||||
space_y().height(1200),
|
space().height(1200),
|
||||||
text("Middle!"),
|
text("Middle!"),
|
||||||
space_y().height(1200),
|
space().height(1200),
|
||||||
text("End!"),
|
text("End!"),
|
||||||
scroll_to_beginning_button(),
|
scroll_to_beginning_button(),
|
||||||
]
|
]
|
||||||
|
|
@ -215,9 +215,9 @@ impl ScrollableDemo {
|
||||||
row![
|
row![
|
||||||
scroll_to_end_button(),
|
scroll_to_end_button(),
|
||||||
text("Beginning!"),
|
text("Beginning!"),
|
||||||
space_x().width(1200),
|
space().width(1200),
|
||||||
text("Middle!"),
|
text("Middle!"),
|
||||||
space_x().width(1200),
|
space().width(1200),
|
||||||
text("End!"),
|
text("End!"),
|
||||||
scroll_to_beginning_button(),
|
scroll_to_beginning_button(),
|
||||||
]
|
]
|
||||||
|
|
@ -242,25 +242,25 @@ impl ScrollableDemo {
|
||||||
row![
|
row![
|
||||||
column![
|
column![
|
||||||
text("Let's do some scrolling!"),
|
text("Let's do some scrolling!"),
|
||||||
space_y().height(2400)
|
space().height(2400)
|
||||||
],
|
],
|
||||||
scroll_to_end_button(),
|
scroll_to_end_button(),
|
||||||
text("Horizontal - Beginning!"),
|
text("Horizontal - Beginning!"),
|
||||||
space_x().width(1200),
|
space().width(1200),
|
||||||
//vertical content
|
//vertical content
|
||||||
column![
|
column![
|
||||||
text("Horizontal - Middle!"),
|
text("Horizontal - Middle!"),
|
||||||
scroll_to_end_button(),
|
scroll_to_end_button(),
|
||||||
text("Vertical - Beginning!"),
|
text("Vertical - Beginning!"),
|
||||||
space_y().height(1200),
|
space().height(1200),
|
||||||
text("Vertical - Middle!"),
|
text("Vertical - Middle!"),
|
||||||
space_y().height(1200),
|
space().height(1200),
|
||||||
text("Vertical - End!"),
|
text("Vertical - End!"),
|
||||||
scroll_to_beginning_button(),
|
scroll_to_beginning_button(),
|
||||||
space_y().height(40),
|
space().height(40),
|
||||||
]
|
]
|
||||||
.spacing(40),
|
.spacing(40),
|
||||||
space_x().width(1200),
|
space().width(1200),
|
||||||
text("Horizontal - End!"),
|
text("Horizontal - End!"),
|
||||||
scroll_to_beginning_button(),
|
scroll_to_beginning_button(),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::keyboard;
|
use iced::keyboard;
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, center_x, center_y, checkbox, column, container, pick_list,
|
button, center_x, center_y, checkbox, column, container, pick_list,
|
||||||
progress_bar, row, rule, scrollable, slider, space_y, text, text_input,
|
progress_bar, row, rule, scrollable, slider, space, text, text_input,
|
||||||
toggler,
|
toggler,
|
||||||
};
|
};
|
||||||
use iced::{Center, Element, Fill, Shrink, Subscription, Theme};
|
use iced::{Center, Element, Fill, Shrink, Subscription, Theme};
|
||||||
|
|
@ -127,7 +127,7 @@ impl Styling {
|
||||||
|
|
||||||
let scroll_me = scrollable(column![
|
let scroll_me = scrollable(column![
|
||||||
"Scroll me!",
|
"Scroll me!",
|
||||||
space_y().height(800),
|
space().height(800),
|
||||||
"You did it!"
|
"You did it!"
|
||||||
])
|
])
|
||||||
.width(Fill)
|
.width(Fill)
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,7 @@ mod toast {
|
||||||
use iced::mouse;
|
use iced::mouse;
|
||||||
use iced::theme;
|
use iced::theme;
|
||||||
use iced::time::{self, Duration, Instant};
|
use iced::time::{self, Duration, Instant};
|
||||||
use iced::widget::{button, column, container, row, rule, space_x, text};
|
use iced::widget::{button, column, container, row, rule, space, text};
|
||||||
use iced::window;
|
use iced::window;
|
||||||
use iced::{
|
use iced::{
|
||||||
Alignment, Center, Element, Event, Fill, Length, Point, Rectangle,
|
Alignment, Center, Element, Event, Fill, Length, Point, Rectangle,
|
||||||
|
|
@ -237,7 +237,7 @@ mod toast {
|
||||||
container(
|
container(
|
||||||
row![
|
row![
|
||||||
text(toast.title.as_str()),
|
text(toast.title.as_str()),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
button("X")
|
button("X")
|
||||||
.on_press((on_close)(index))
|
.on_press((on_close)(index))
|
||||||
.padding(3),
|
.padding(3),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::widget::{Button, Column, Container, Slider};
|
use iced::widget::{Button, Column, Container, Slider};
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
button, center_x, center_y, checkbox, column, image, radio, rich_text, row,
|
button, center_x, center_y, checkbox, column, image, radio, rich_text, row,
|
||||||
scrollable, slider, space_x, space_y, span, text, text_input, toggler,
|
scrollable, slider, space, span, text, text_input, toggler,
|
||||||
};
|
};
|
||||||
use iced::{Center, Color, Element, Fill, Font, Pixels, color};
|
use iced::{Center, Color, Element, Fill, Font, Pixels, color};
|
||||||
|
|
||||||
|
|
@ -146,7 +146,7 @@ impl Tour {
|
||||||
.on_press(Message::BackPressed)
|
.on_press(Message::BackPressed)
|
||||||
.style(button::secondary)
|
.style(button::secondary)
|
||||||
}),
|
}),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
self.can_continue().then(|| {
|
self.can_continue().then(|| {
|
||||||
padded_button("Next").on_press(Message::NextPressed)
|
padded_button("Next").on_press(Message::NextPressed)
|
||||||
})
|
})
|
||||||
|
|
@ -405,14 +405,14 @@ impl Tour {
|
||||||
text("Tip: You can use the scrollbar to scroll down faster!")
|
text("Tip: You can use the scrollbar to scroll down faster!")
|
||||||
.size(16),
|
.size(16),
|
||||||
)
|
)
|
||||||
.push(space_y().height(4096))
|
.push(space().height(4096))
|
||||||
.push(
|
.push(
|
||||||
text("You are halfway there!")
|
text("You are halfway there!")
|
||||||
.width(Fill)
|
.width(Fill)
|
||||||
.size(30)
|
.size(30)
|
||||||
.align_x(Center),
|
.align_x(Center),
|
||||||
)
|
)
|
||||||
.push(space_y().height(4096))
|
.push(space().height(4096))
|
||||||
.push(ferris(300, image::FilterMethod::Linear))
|
.push(ferris(300, image::FilterMethod::Linear))
|
||||||
.push(text("You made it!").width(Fill).size(50).align_x(Center))
|
.push(text("You made it!").width(Fill).size(50).align_x(Center))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::alignment;
|
use iced::alignment;
|
||||||
use iced::mouse;
|
use iced::mouse;
|
||||||
use iced::widget::{canvas, checkbox, column, row, slider, space_x, text};
|
use iced::widget::{canvas, checkbox, column, row, slider, space, text};
|
||||||
use iced::{Center, Element, Fill, Point, Rectangle, Renderer, Theme, Vector};
|
use iced::{Center, Element, Fill, Point, Rectangle, Renderer, Theme, Vector};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -49,7 +49,7 @@ impl VectorialText {
|
||||||
fn view(&self) -> Element<'_, Message> {
|
fn view(&self) -> Element<'_, Message> {
|
||||||
let slider_with_label = |label, range, value, message: fn(f32) -> _| {
|
let slider_with_label = |label, range, value, message: fn(f32) -> _| {
|
||||||
column![
|
column![
|
||||||
row![text(label), space_x(), text!("{:.2}", value)],
|
row![text(label), space::horizontal(), text!("{:.2}", value)],
|
||||||
slider(range, value, message).step(0.01)
|
slider(range, value, message).step(0.01)
|
||||||
]
|
]
|
||||||
.spacing(2)
|
.spacing(2)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::event::{self, Event};
|
use iced::event::{self, Event};
|
||||||
use iced::mouse;
|
use iced::mouse;
|
||||||
use iced::widget::{
|
use iced::widget::{
|
||||||
self, column, container, row, scrollable, selector, space_x, space_y, text,
|
self, column, container, row, scrollable, selector, space, text,
|
||||||
};
|
};
|
||||||
use iced::window;
|
use iced::window;
|
||||||
use iced::{
|
use iced::{
|
||||||
|
|
@ -63,7 +63,7 @@ impl Example {
|
||||||
let data_row = |label, value, color| {
|
let data_row = |label, value, color| {
|
||||||
row![
|
row![
|
||||||
text(label),
|
text(label),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
text(value)
|
text(value)
|
||||||
.font(Font::MONOSPACE)
|
.font(Font::MONOSPACE)
|
||||||
.size(14)
|
.size(14)
|
||||||
|
|
@ -111,21 +111,21 @@ impl Example {
|
||||||
scrollable(
|
scrollable(
|
||||||
column![
|
column![
|
||||||
text("Scroll me!"),
|
text("Scroll me!"),
|
||||||
space_y().height(400),
|
space().height(400),
|
||||||
container(text("I am the outer container!"))
|
container(text("I am the outer container!"))
|
||||||
.id(OUTER_CONTAINER)
|
.id(OUTER_CONTAINER)
|
||||||
.padding(40)
|
.padding(40)
|
||||||
.style(container::rounded_box),
|
.style(container::rounded_box),
|
||||||
space_y().height(400),
|
space().height(400),
|
||||||
scrollable(
|
scrollable(
|
||||||
column![
|
column![
|
||||||
text("Scroll me!"),
|
text("Scroll me!"),
|
||||||
space_y().height(400),
|
space().height(400),
|
||||||
container(text("I am the inner container!"))
|
container(text("I am the inner container!"))
|
||||||
.id(INNER_CONTAINER)
|
.id(INNER_CONTAINER)
|
||||||
.padding(40)
|
.padding(40)
|
||||||
.style(container::rounded_box),
|
.style(container::rounded_box),
|
||||||
space_y().height(400),
|
space().height(400),
|
||||||
]
|
]
|
||||||
.padding(20)
|
.padding(20)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ use crate::test::instruction;
|
||||||
use crate::test::{Emulator, Ice, Instruction};
|
use crate::test::{Emulator, Ice, Instruction};
|
||||||
use crate::widget::{
|
use crate::widget::{
|
||||||
button, center, column, combo_box, container, pick_list, row, rule,
|
button, center, column, combo_box, container, pick_list, row, rule,
|
||||||
scrollable, space_x, text, text_editor, text_input, themer,
|
scrollable, space, text, text_editor, text_input, themer,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Attaches a [`Tester`] to the given [`Program`].
|
/// Attaches a [`Tester`] to the given [`Program`].
|
||||||
|
|
@ -564,7 +564,7 @@ impl<P: Program + 'static> Tester<P> {
|
||||||
let viewport = container(
|
let viewport = container(
|
||||||
scrollable(
|
scrollable(
|
||||||
container(match &self.state {
|
container(match &self.state {
|
||||||
State::Empty => Element::from(space_x()),
|
State::Empty => Element::from(space()),
|
||||||
State::Idle { state } => {
|
State::Idle { state } => {
|
||||||
let theme = program.theme(state, window);
|
let theme = program.theme(state, window);
|
||||||
|
|
||||||
|
|
@ -795,7 +795,7 @@ impl<P: Program + 'static> Tester<P> {
|
||||||
};
|
};
|
||||||
|
|
||||||
let edit = if self.is_busy() {
|
let edit = if self.is_busy() {
|
||||||
Element::from(space_x())
|
Element::from(space::horizontal())
|
||||||
} else if self.edit.is_none() {
|
} else if self.edit.is_none() {
|
||||||
button(icon::pencil().size(14))
|
button(icon::pencil().size(14))
|
||||||
.padding(0)
|
.padding(0)
|
||||||
|
|
@ -849,7 +849,7 @@ where
|
||||||
column![
|
column![
|
||||||
row![
|
row![
|
||||||
text(fragment).size(14).font(Font::MONOSPACE),
|
text(fragment).size(14).font(Font::MONOSPACE),
|
||||||
space_x(),
|
space::horizontal(),
|
||||||
control.into()
|
control.into()
|
||||||
]
|
]
|
||||||
.spacing(5)
|
.spacing(5)
|
||||||
|
|
|
||||||
|
|
@ -1017,7 +1017,7 @@ where
|
||||||
/// # mod iced { pub mod widget { pub use iced_widget::*; } }
|
/// # mod iced { pub mod widget { pub use iced_widget::*; } }
|
||||||
/// # pub type State = ();
|
/// # pub type State = ();
|
||||||
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
||||||
/// use iced::widget::{column, scrollable, space_y};
|
/// use iced::widget::{column, scrollable, space};
|
||||||
///
|
///
|
||||||
/// enum Message {
|
/// enum Message {
|
||||||
/// // ...
|
/// // ...
|
||||||
|
|
@ -1026,7 +1026,7 @@ where
|
||||||
/// fn view(state: &State) -> Element<'_, Message> {
|
/// fn view(state: &State) -> Element<'_, Message> {
|
||||||
/// scrollable(column![
|
/// scrollable(column![
|
||||||
/// "Scroll me!",
|
/// "Scroll me!",
|
||||||
/// space_y().height(3000),
|
/// space().height(3000),
|
||||||
/// "You did it!",
|
/// "You did it!",
|
||||||
/// ]).into()
|
/// ]).into()
|
||||||
/// }
|
/// }
|
||||||
|
|
@ -1729,20 +1729,12 @@ where
|
||||||
ComboBox::new(state, placeholder, selection, on_selected)
|
ComboBox::new(state, placeholder, selection, on_selected)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new [`Space`] widget that fills the available
|
/// Creates some empty [`Space`] with no size.
|
||||||
/// horizontal space.
|
|
||||||
///
|
///
|
||||||
/// This can be useful to separate widgets in a [`Row`].
|
/// This is considered the "identity" widget. It will take
|
||||||
pub fn space_x() -> Space {
|
/// no space and do nothing.
|
||||||
Space::with_width(Length::Fill)
|
pub fn space() -> Space {
|
||||||
}
|
Space::new()
|
||||||
|
|
||||||
/// Creates a new [`Space`] widget that fills the available
|
|
||||||
/// vertical space.
|
|
||||||
///
|
|
||||||
/// This can be useful to separate widgets in a [`Column`].
|
|
||||||
pub fn space_y() -> Space {
|
|
||||||
Space::with_height(Length::Fill)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a horizontal [`Rule`] with the given height.
|
/// Creates a horizontal [`Rule`] with the given height.
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ mod column;
|
||||||
mod mouse_area;
|
mod mouse_area;
|
||||||
mod pin;
|
mod pin;
|
||||||
mod responsive;
|
mod responsive;
|
||||||
mod space;
|
|
||||||
mod stack;
|
mod stack;
|
||||||
mod themer;
|
mod themer;
|
||||||
|
|
||||||
|
|
@ -35,6 +34,7 @@ pub mod rule;
|
||||||
pub mod scrollable;
|
pub mod scrollable;
|
||||||
pub mod sensor;
|
pub mod sensor;
|
||||||
pub mod slider;
|
pub mod slider;
|
||||||
|
pub mod space;
|
||||||
pub mod table;
|
pub mod table;
|
||||||
pub mod text;
|
pub mod text;
|
||||||
pub mod text_editor;
|
pub mod text_editor;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ use crate::core::{
|
||||||
self, Clipboard, Element, Event, Length, Rectangle, Shell, Size, Vector,
|
self, Clipboard, Element, Event, Length, Rectangle, Shell, Size, Vector,
|
||||||
Widget,
|
Widget,
|
||||||
};
|
};
|
||||||
use crate::space_x;
|
use crate::space;
|
||||||
|
|
||||||
/// A widget that is aware of its dimensions.
|
/// A widget that is aware of its dimensions.
|
||||||
///
|
///
|
||||||
|
|
@ -43,7 +43,7 @@ where
|
||||||
view: Box::new(view),
|
view: Box::new(view),
|
||||||
width: Length::Fill,
|
width: Length::Fill,
|
||||||
height: Length::Fill,
|
height: Length::Fill,
|
||||||
content: Element::new(space_x().width(0)),
|
content: Element::new(space()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
//! # mod iced { pub mod widget { pub use iced_widget::*; } }
|
//! # mod iced { pub mod widget { pub use iced_widget::*; } }
|
||||||
//! # pub type State = ();
|
//! # pub type State = ();
|
||||||
//! # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
//! # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
||||||
//! use iced::widget::{column, scrollable, space_y};
|
//! use iced::widget::{column, scrollable, space};
|
||||||
//!
|
//!
|
||||||
//! enum Message {
|
//! enum Message {
|
||||||
//! // ...
|
//! // ...
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
//! fn view(state: &State) -> Element<'_, Message> {
|
//! fn view(state: &State) -> Element<'_, Message> {
|
||||||
//! scrollable(column![
|
//! scrollable(column![
|
||||||
//! "Scroll me!",
|
//! "Scroll me!",
|
||||||
//! space_y().height(3000),
|
//! space().height(3000),
|
||||||
//! "You did it!",
|
//! "You did it!",
|
||||||
//! ]).into()
|
//! ]).into()
|
||||||
//! }
|
//! }
|
||||||
|
|
@ -48,7 +48,7 @@ pub use operation::scrollable::{AbsoluteOffset, RelativeOffset};
|
||||||
/// # mod iced { pub mod widget { pub use iced_widget::*; } }
|
/// # mod iced { pub mod widget { pub use iced_widget::*; } }
|
||||||
/// # pub type State = ();
|
/// # pub type State = ();
|
||||||
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
|
||||||
/// use iced::widget::{column, scrollable, space_y};
|
/// use iced::widget::{column, scrollable, space};
|
||||||
///
|
///
|
||||||
/// enum Message {
|
/// enum Message {
|
||||||
/// // ...
|
/// // ...
|
||||||
|
|
@ -57,7 +57,7 @@ pub use operation::scrollable::{AbsoluteOffset, RelativeOffset};
|
||||||
/// fn view(state: &State) -> Element<'_, Message> {
|
/// fn view(state: &State) -> Element<'_, Message> {
|
||||||
/// scrollable(column![
|
/// scrollable(column![
|
||||||
/// "Scroll me!",
|
/// "Scroll me!",
|
||||||
/// space_y().height(3000),
|
/// space().height(3000),
|
||||||
/// "You did it!",
|
/// "You did it!",
|
||||||
/// ]).into()
|
/// ]).into()
|
||||||
/// }
|
/// }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
//! Distribute content vertically.
|
//! Add some explicit spacing between elements.
|
||||||
use crate::core;
|
use crate::core;
|
||||||
use crate::core::layout;
|
use crate::core::layout;
|
||||||
use crate::core::mouse;
|
use crate::core::mouse;
|
||||||
|
|
@ -6,6 +6,22 @@ use crate::core::renderer;
|
||||||
use crate::core::widget::Tree;
|
use crate::core::widget::Tree;
|
||||||
use crate::core::{Element, Layout, Length, Rectangle, Size, Widget};
|
use crate::core::{Element, Layout, Length, Rectangle, Size, Widget};
|
||||||
|
|
||||||
|
/// Creates a new [`Space`] widget that fills the available
|
||||||
|
/// horizontal space.
|
||||||
|
///
|
||||||
|
/// This can be useful to separate widgets in a [`Row`](crate::Row).
|
||||||
|
pub fn horizontal() -> Space {
|
||||||
|
Space::new().width(Length::Fill)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Creates a new [`Space`] widget that fills the available
|
||||||
|
/// vertical space.
|
||||||
|
///
|
||||||
|
/// This can be useful to separate widgets in a [`Column`](crate::Column).
|
||||||
|
pub fn vertical() -> Space {
|
||||||
|
Space::new().height(Length::Fill)
|
||||||
|
}
|
||||||
|
|
||||||
/// An amount of empty space.
|
/// An amount of empty space.
|
||||||
///
|
///
|
||||||
/// It can be useful if you want to fill some space with nothing.
|
/// It can be useful if you want to fill some space with nothing.
|
||||||
|
|
@ -16,27 +32,11 @@ pub struct Space {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Space {
|
impl Space {
|
||||||
/// Creates an amount of empty [`Space`] with the given width and height.
|
/// Creates some empty [`Space`] with no size.
|
||||||
pub fn new(width: impl Into<Length>, height: impl Into<Length>) -> Self {
|
pub fn new() -> Self {
|
||||||
Space {
|
|
||||||
width: width.into(),
|
|
||||||
height: height.into(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates an amount of horizontal [`Space`].
|
|
||||||
pub fn with_width(width: impl Into<Length>) -> Self {
|
|
||||||
Space {
|
|
||||||
width: width.into(),
|
|
||||||
height: Length::Shrink,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates an amount of vertical [`Space`].
|
|
||||||
pub fn with_height(height: impl Into<Length>) -> Self {
|
|
||||||
Space {
|
Space {
|
||||||
width: Length::Shrink,
|
width: Length::Shrink,
|
||||||
height: height.into(),
|
height: Length::Shrink,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,6 +53,12 @@ impl Space {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Default for Space {
|
||||||
|
fn default() -> Self {
|
||||||
|
Space::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer> for Space
|
impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer> for Space
|
||||||
where
|
where
|
||||||
Renderer: core::Renderer,
|
Renderer: core::Renderer,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue