Introduce and use CrossAlign enum for Column and Row
This commit is contained in:
parent
95e4791a1e
commit
5fae6e59ff
33 changed files with 166 additions and 115 deletions
|
|
@ -9,11 +9,34 @@ pub enum Align {
|
||||||
|
|
||||||
/// Align at the end of the axis.
|
/// Align at the end of the axis.
|
||||||
End,
|
End,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Alignment on the cross axis of a container.
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
|
pub enum CrossAlign {
|
||||||
|
/// Align at the start of the axis.
|
||||||
|
Start,
|
||||||
|
|
||||||
|
/// Align at the center of the axis.
|
||||||
|
Center,
|
||||||
|
|
||||||
|
/// Align at the end of the axis.
|
||||||
|
End,
|
||||||
|
|
||||||
/// Fill the entire axis.
|
/// Fill the entire axis.
|
||||||
Fill,
|
Fill,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<Align> for CrossAlign {
|
||||||
|
fn from(align: Align) -> Self {
|
||||||
|
match align {
|
||||||
|
Align::Start => Self::Start,
|
||||||
|
Align::Center => Self::Center,
|
||||||
|
Align::End => Self::End,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// The horizontal alignment of some resource.
|
/// The horizontal alignment of some resource.
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum HorizontalAlignment {
|
pub enum HorizontalAlignment {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ mod rectangle;
|
||||||
mod size;
|
mod size;
|
||||||
mod vector;
|
mod vector;
|
||||||
|
|
||||||
pub use align::{Align, HorizontalAlignment, VerticalAlignment};
|
pub use align::{Align, CrossAlign, HorizontalAlignment, VerticalAlignment};
|
||||||
pub use background::Background;
|
pub use background::Background;
|
||||||
pub use color::Color;
|
pub use color::Color;
|
||||||
pub use font::Font;
|
pub use font::Font;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
//! This example showcases an interactive `Canvas` for drawing Bézier curves.
|
//! This example showcases an interactive `Canvas` for drawing Bézier curves.
|
||||||
use iced::{
|
use iced::{
|
||||||
button, Align, Button, Column, Element, Length, Sandbox, Settings, Text,
|
button, Button, Column, CrossAlign, Element, Length, Sandbox, Settings,
|
||||||
|
Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -51,7 +52,7 @@ impl Sandbox for Example {
|
||||||
Column::new()
|
Column::new()
|
||||||
.padding(20)
|
.padding(20)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(
|
.push(
|
||||||
Text::new("Bezier tool example")
|
Text::new("Bezier tool example")
|
||||||
.width(Length::Shrink)
|
.width(Length::Shrink)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
use iced::canvas::{self, Cursor, Frame, Geometry, Path};
|
use iced::canvas::{self, Cursor, Frame, Geometry, Path};
|
||||||
use iced::{
|
use iced::{
|
||||||
slider, Align, Canvas, Color, Column, Element, HorizontalAlignment, Length,
|
slider, Canvas, Color, Column, CrossAlign, Element, HorizontalAlignment,
|
||||||
Point, Rectangle, Row, Sandbox, Settings, Size, Slider, Text, Vector,
|
Length, Point, Rectangle, Row, Sandbox, Settings, Size, Slider, Text,
|
||||||
VerticalAlignment,
|
Vector, VerticalAlignment,
|
||||||
};
|
};
|
||||||
use palette::{self, Hsl, Limited, Srgb};
|
use palette::{self, Hsl, Limited, Srgb};
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
|
@ -298,7 +298,7 @@ impl<C: 'static + ColorSpace + Copy> ColorPicker<C> {
|
||||||
|
|
||||||
Row::new()
|
Row::new()
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(Text::new(C::LABEL).width(Length::Units(50)))
|
.push(Text::new(C::LABEL).width(Length::Units(50)))
|
||||||
.push(slider(s1, cr1, c1, move |v| C::new(v, c2, c3)))
|
.push(slider(s1, cr1, c1, move |v| C::new(v, c2, c3)))
|
||||||
.push(slider(s2, cr2, c2, move |v| C::new(c1, v, c3)))
|
.push(slider(s2, cr2, c2, move |v| C::new(c1, v, c3)))
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
use iced::{button, Align, Button, Column, Element, Sandbox, Settings, Text};
|
use iced::{
|
||||||
|
button, Button, Column, CrossAlign, Element, Sandbox, Settings, Text,
|
||||||
|
};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
Counter::run(Settings::default())
|
Counter::run(Settings::default())
|
||||||
|
|
@ -42,7 +44,7 @@ impl Sandbox for Counter {
|
||||||
fn view(&mut self) -> Element<Message> {
|
fn view(&mut self) -> Element<Message> {
|
||||||
Column::new()
|
Column::new()
|
||||||
.padding(20)
|
.padding(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(
|
.push(
|
||||||
Button::new(&mut self.increment_button, Text::new("Increment"))
|
Button::new(&mut self.increment_button, Text::new("Increment"))
|
||||||
.on_press(Message::IncrementPressed),
|
.on_press(Message::IncrementPressed),
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ mod circle {
|
||||||
|
|
||||||
use circle::Circle;
|
use circle::Circle;
|
||||||
use iced::{
|
use iced::{
|
||||||
slider, Align, Column, Container, Element, Length, Sandbox, Settings,
|
slider, Column, Container, CrossAlign, Element, Length, Sandbox, Settings,
|
||||||
Slider, Text,
|
Slider, Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -129,7 +129,7 @@ impl Sandbox for Example {
|
||||||
.padding(20)
|
.padding(20)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.max_width(500)
|
.max_width(500)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(Circle::new(self.radius))
|
.push(Circle::new(self.radius))
|
||||||
.push(Text::new(format!("Radius: {:.2}", self.radius)))
|
.push(Text::new(format!("Radius: {:.2}", self.radius)))
|
||||||
.push(
|
.push(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
button, executor, Align, Application, Button, Column, Command, Container,
|
button, executor, Application, Button, Column, Command, Container,
|
||||||
Element, Length, ProgressBar, Settings, Subscription, Text,
|
CrossAlign, Element, Length, ProgressBar, Settings, Subscription, Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
mod download;
|
mod download;
|
||||||
|
|
@ -83,7 +83,7 @@ impl Application for Example {
|
||||||
.on_press(Message::Add)
|
.on_press(Message::Add)
|
||||||
.padding(10),
|
.padding(10),
|
||||||
)
|
)
|
||||||
.align_items(Align::End);
|
.align_items(CrossAlign::End);
|
||||||
|
|
||||||
Container::new(downloads)
|
Container::new(downloads)
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
|
|
@ -182,7 +182,7 @@ impl Download {
|
||||||
}
|
}
|
||||||
State::Finished { button } => Column::new()
|
State::Finished { button } => Column::new()
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(Text::new("Download finished!"))
|
.push(Text::new("Download finished!"))
|
||||||
.push(
|
.push(
|
||||||
Button::new(button, Text::new("Start again"))
|
Button::new(button, Text::new("Start again"))
|
||||||
|
|
@ -195,7 +195,7 @@ impl Download {
|
||||||
}
|
}
|
||||||
State::Errored { button } => Column::new()
|
State::Errored { button } => Column::new()
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(Text::new("Something went wrong :("))
|
.push(Text::new("Something went wrong :("))
|
||||||
.push(
|
.push(
|
||||||
Button::new(button, Text::new("Try again"))
|
Button::new(button, Text::new("Try again"))
|
||||||
|
|
@ -207,7 +207,7 @@ impl Download {
|
||||||
Column::new()
|
Column::new()
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.padding(10)
|
.padding(10)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(progress_bar)
|
.push(progress_bar)
|
||||||
.push(control)
|
.push(control)
|
||||||
.into()
|
.into()
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
button, executor, Align, Application, Button, Checkbox, Column, Command,
|
button, executor, Application, Button, Checkbox, Column, Command,
|
||||||
Container, Element, HorizontalAlignment, Length, Settings, Subscription,
|
Container, CrossAlign, Element, HorizontalAlignment, Length, Settings,
|
||||||
Text,
|
Subscription, Text,
|
||||||
};
|
};
|
||||||
use iced_native::{window, Event};
|
use iced_native::{window, Event};
|
||||||
|
|
||||||
|
|
@ -98,7 +98,7 @@ impl Application for Events {
|
||||||
.on_press(Message::Exit);
|
.on_press(Message::Exit);
|
||||||
|
|
||||||
let content = Column::new()
|
let content = Column::new()
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.push(events)
|
.push(events)
|
||||||
.push(toggle)
|
.push(toggle)
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ use iced::slider::{self, Slider};
|
||||||
use iced::time;
|
use iced::time;
|
||||||
use iced::window;
|
use iced::window;
|
||||||
use iced::{
|
use iced::{
|
||||||
Align, Application, Checkbox, Column, Command, Container, Element, Length,
|
Application, Checkbox, Column, Command, Container, CrossAlign, Element,
|
||||||
Row, Settings, Subscription, Text,
|
Length, Row, Settings, Subscription, Text,
|
||||||
};
|
};
|
||||||
use preset::Preset;
|
use preset::Preset;
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
@ -844,7 +844,7 @@ impl Controls {
|
||||||
|
|
||||||
let speed_controls = Row::new()
|
let speed_controls = Row::new()
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.push(
|
.push(
|
||||||
Slider::new(
|
Slider::new(
|
||||||
|
|
@ -860,7 +860,7 @@ impl Controls {
|
||||||
Row::new()
|
Row::new()
|
||||||
.padding(10)
|
.padding(10)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(playback_controls)
|
.push(playback_controls)
|
||||||
.push(speed_controls)
|
.push(speed_controls)
|
||||||
.push(
|
.push(
|
||||||
|
|
|
||||||
|
|
@ -161,8 +161,8 @@ mod rainbow {
|
||||||
}
|
}
|
||||||
|
|
||||||
use iced::{
|
use iced::{
|
||||||
scrollable, Align, Column, Container, Element, Length, Sandbox, Scrollable,
|
scrollable, Column, Container, CrossAlign, Element, Length, Sandbox,
|
||||||
Settings, Text,
|
Scrollable, Settings, Text,
|
||||||
};
|
};
|
||||||
use rainbow::Rainbow;
|
use rainbow::Rainbow;
|
||||||
|
|
||||||
|
|
@ -194,7 +194,7 @@ impl Sandbox for Example {
|
||||||
.padding(20)
|
.padding(20)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.max_width(500)
|
.max_width(500)
|
||||||
.align_items(Align::Start)
|
.align_items(CrossAlign::Start)
|
||||||
.push(Rainbow::new())
|
.push(Rainbow::new())
|
||||||
.push(Text::new(
|
.push(Text::new(
|
||||||
"In this example we draw a custom widget Rainbow, using \
|
"In this example we draw a custom widget Rainbow, using \
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced_glow::Renderer;
|
use iced_glow::Renderer;
|
||||||
use iced_glutin::{
|
use iced_glutin::{
|
||||||
slider, Align, Color, Column, Command, Element, Length, Program, Row,
|
slider, Color, Column, Command, CrossAlign, Element, Length, Program, Row,
|
||||||
Slider, Text,
|
Slider, Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -79,11 +79,11 @@ impl Program for Controls {
|
||||||
Row::new()
|
Row::new()
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.height(Length::Fill)
|
.height(Length::Fill)
|
||||||
.align_items(Align::End)
|
.align_items(CrossAlign::End)
|
||||||
.push(
|
.push(
|
||||||
Column::new()
|
Column::new()
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.align_items(Align::End)
|
.align_items(CrossAlign::End)
|
||||||
.push(
|
.push(
|
||||||
Column::new()
|
Column::new()
|
||||||
.padding(10)
|
.padding(10)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced_wgpu::Renderer;
|
use iced_wgpu::Renderer;
|
||||||
use iced_winit::{
|
use iced_winit::{
|
||||||
slider, Align, Color, Column, Command, Element, Length, Program, Row,
|
slider, Color, Column, Command, CrossAlign, Element, Length, Program, Row,
|
||||||
Slider, Text,
|
Slider, Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -79,11 +79,11 @@ impl Program for Controls {
|
||||||
Row::new()
|
Row::new()
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.height(Length::Fill)
|
.height(Length::Fill)
|
||||||
.align_items(Align::End)
|
.align_items(CrossAlign::End)
|
||||||
.push(
|
.push(
|
||||||
Column::new()
|
Column::new()
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.align_items(Align::End)
|
.align_items(CrossAlign::End)
|
||||||
.push(
|
.push(
|
||||||
Column::new()
|
Column::new()
|
||||||
.padding(10)
|
.padding(10)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
button, executor, keyboard, pane_grid, scrollable, Align, Application,
|
button, executor, keyboard, pane_grid, scrollable, Application, Button,
|
||||||
Button, Color, Column, Command, Container, Element, HorizontalAlignment,
|
Color, Column, Command, Container, CrossAlign, Element,
|
||||||
Length, PaneGrid, Row, Scrollable, Settings, Subscription, Text,
|
HorizontalAlignment, Length, PaneGrid, Row, Scrollable, Settings,
|
||||||
|
Subscription, Text,
|
||||||
};
|
};
|
||||||
use iced_native::{event, subscription, Event};
|
use iced_native::{event, subscription, Event};
|
||||||
|
|
||||||
|
|
@ -329,7 +330,7 @@ impl Content {
|
||||||
let content = Scrollable::new(scroll)
|
let content = Scrollable::new(scroll)
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(controls);
|
.push(controls);
|
||||||
|
|
||||||
Container::new(content)
|
Container::new(content)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
pick_list, scrollable, Align, Container, Element, Length, PickList,
|
pick_list, scrollable, Container, CrossAlign, Element, Length, PickList,
|
||||||
Sandbox, Scrollable, Settings, Space, Text,
|
Sandbox, Scrollable, Settings, Space, Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@ impl Sandbox for Example {
|
||||||
|
|
||||||
let mut content = Scrollable::new(&mut self.scroll)
|
let mut content = Scrollable::new(&mut self.scroll)
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.push(Space::with_height(Length::Units(600)))
|
.push(Space::with_height(Length::Units(600)))
|
||||||
.push(Text::new("Which is your favorite language?"))
|
.push(Text::new("Which is your favorite language?"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
button, futures, image, Align, Application, Button, Column, Command,
|
button, futures, image, Application, Button, Column, Command, Container,
|
||||||
Container, Element, Length, Row, Settings, Text,
|
CrossAlign, Element, Length, Row, Settings, Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -85,14 +85,14 @@ impl Application for Pokedex {
|
||||||
Pokedex::Loaded { pokemon, search } => Column::new()
|
Pokedex::Loaded { pokemon, search } => Column::new()
|
||||||
.max_width(500)
|
.max_width(500)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::End)
|
.align_items(CrossAlign::End)
|
||||||
.push(pokemon.view())
|
.push(pokemon.view())
|
||||||
.push(
|
.push(
|
||||||
button(search, "Keep searching!").on_press(Message::Search),
|
button(search, "Keep searching!").on_press(Message::Search),
|
||||||
),
|
),
|
||||||
Pokedex::Errored { try_again, .. } => Column::new()
|
Pokedex::Errored { try_again, .. } => Column::new()
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::End)
|
.align_items(CrossAlign::End)
|
||||||
.push(Text::new("Whoops! Something went wrong...").size(40))
|
.push(Text::new("Whoops! Something went wrong...").size(40))
|
||||||
.push(button(try_again, "Try again").on_press(Message::Search)),
|
.push(button(try_again, "Try again").on_press(Message::Search)),
|
||||||
};
|
};
|
||||||
|
|
@ -121,7 +121,7 @@ impl Pokemon {
|
||||||
fn view(&mut self) -> Element<Message> {
|
fn view(&mut self) -> Element<Message> {
|
||||||
Row::new()
|
Row::new()
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(image::Viewer::new(
|
.push(image::Viewer::new(
|
||||||
&mut self.image_viewer,
|
&mut self.image_viewer,
|
||||||
self.image.clone(),
|
self.image.clone(),
|
||||||
|
|
@ -131,7 +131,7 @@ impl Pokemon {
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.push(
|
.push(
|
||||||
Row::new()
|
Row::new()
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.push(
|
.push(
|
||||||
Text::new(&self.name)
|
Text::new(&self.name)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::qr_code::{self, QRCode};
|
use iced::qr_code::{self, QRCode};
|
||||||
use iced::text_input::{self, TextInput};
|
use iced::text_input::{self, TextInput};
|
||||||
use iced::{
|
use iced::{
|
||||||
Align, Column, Container, Element, Length, Sandbox, Settings, Text,
|
Column, Container, CrossAlign, Element, Length, Sandbox, Settings, Text,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -62,7 +62,7 @@ impl Sandbox for QRGenerator {
|
||||||
let mut content = Column::new()
|
let mut content = Column::new()
|
||||||
.width(Length::Units(700))
|
.width(Length::Units(700))
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(title)
|
.push(title)
|
||||||
.push(input);
|
.push(input);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
button, executor, time, Align, Application, Button, Column, Command,
|
button, executor, time, Application, Button, Column, Command, Container,
|
||||||
Container, Element, HorizontalAlignment, Length, Row, Settings,
|
CrossAlign, Element, HorizontalAlignment, Length, Row, Settings,
|
||||||
Subscription, Text,
|
Subscription, Text,
|
||||||
};
|
};
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
@ -130,7 +130,7 @@ impl Application for Stopwatch {
|
||||||
.push(reset_button);
|
.push(reset_button);
|
||||||
|
|
||||||
let content = Column::new()
|
let content = Column::new()
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.push(duration)
|
.push(duration)
|
||||||
.push(controls);
|
.push(controls);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
button, scrollable, slider, text_input, Align, Button, Checkbox, Column,
|
button, scrollable, slider, text_input, Button, Checkbox, Column,
|
||||||
Container, Element, Length, ProgressBar, Radio, Row, Rule, Sandbox,
|
Container, CrossAlign, Element, Length, ProgressBar, Radio, Row, Rule,
|
||||||
Scrollable, Settings, Slider, Space, Text, TextInput, Toggler,
|
Sandbox, Scrollable, Settings, Slider, Space, Text, TextInput, Toggler,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() -> iced::Result {
|
pub fn main() -> iced::Result {
|
||||||
|
|
@ -132,7 +132,7 @@ impl Sandbox for Styling {
|
||||||
Row::new()
|
Row::new()
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
.height(Length::Units(100))
|
.height(Length::Units(100))
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(scrollable)
|
.push(scrollable)
|
||||||
.push(Rule::vertical(38).style(self.theme))
|
.push(Rule::vertical(38).style(self.theme))
|
||||||
.push(
|
.push(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use iced::{
|
use iced::{
|
||||||
button, scrollable, text_input, Align, Application, Button, Checkbox,
|
button, scrollable, text_input, Application, Button, Checkbox, Column,
|
||||||
Column, Command, Container, Element, Font, HorizontalAlignment, Length,
|
Command, Container, CrossAlign, Element, Font, HorizontalAlignment, Length,
|
||||||
Row, Scrollable, Settings, Text, TextInput,
|
Row, Scrollable, Settings, Text, TextInput,
|
||||||
};
|
};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
@ -295,7 +295,7 @@ impl Task {
|
||||||
|
|
||||||
Row::new()
|
Row::new()
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(checkbox)
|
.push(checkbox)
|
||||||
.push(
|
.push(
|
||||||
Button::new(edit_button, edit_icon())
|
Button::new(edit_button, edit_icon())
|
||||||
|
|
@ -320,7 +320,7 @@ impl Task {
|
||||||
|
|
||||||
Row::new()
|
Row::new()
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(text_input)
|
.push(text_input)
|
||||||
.push(
|
.push(
|
||||||
Button::new(
|
Button::new(
|
||||||
|
|
@ -369,7 +369,7 @@ impl Controls {
|
||||||
|
|
||||||
Row::new()
|
Row::new()
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(
|
.push(
|
||||||
Text::new(&format!(
|
Text::new(&format!(
|
||||||
"{} {} left",
|
"{} {} left",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
use iced::tooltip::{self, Tooltip};
|
use iced::tooltip::{self, Tooltip};
|
||||||
use iced::{
|
use iced::{
|
||||||
button, Button, Column, Container, Element, HorizontalAlignment, Length,
|
button, Button, Column, Container, CrossAlign, Element,
|
||||||
Row, Sandbox, Settings, Text, VerticalAlignment,
|
HorizontalAlignment, Length, Row, Sandbox, Settings, Text,
|
||||||
|
VerticalAlignment,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() {
|
pub fn main() {
|
||||||
|
|
@ -60,7 +61,7 @@ impl Sandbox for Example {
|
||||||
])
|
])
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.height(Length::Fill)
|
.height(Length::Fill)
|
||||||
.align_items(iced::Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.spacing(50);
|
.spacing(50);
|
||||||
|
|
||||||
let follow_cursor = tooltip(
|
let follow_cursor = tooltip(
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
layout::{Limits, Node},
|
layout::{Limits, Node},
|
||||||
Align, Element, Padding, Point, Size,
|
CrossAlign, Element, Padding, Point, Size,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// The main axis of a flex layout.
|
/// The main axis of a flex layout.
|
||||||
|
|
@ -65,7 +65,7 @@ pub fn resolve<Message, Renderer>(
|
||||||
limits: &Limits,
|
limits: &Limits,
|
||||||
padding: Padding,
|
padding: Padding,
|
||||||
spacing: f32,
|
spacing: f32,
|
||||||
align_items: Align,
|
align_items: CrossAlign,
|
||||||
items: &[Element<'_, Message, Renderer>],
|
items: &[Element<'_, Message, Renderer>],
|
||||||
) -> Node
|
) -> Node
|
||||||
where
|
where
|
||||||
|
|
@ -82,7 +82,7 @@ where
|
||||||
let mut nodes: Vec<Node> = Vec::with_capacity(items.len());
|
let mut nodes: Vec<Node> = Vec::with_capacity(items.len());
|
||||||
nodes.resize(items.len(), Node::default());
|
nodes.resize(items.len(), Node::default());
|
||||||
|
|
||||||
if align_items == Align::Fill {
|
if align_items == CrossAlign::Fill {
|
||||||
let mut fill_cross = axis.cross(limits.min());
|
let mut fill_cross = axis.cross(limits.min());
|
||||||
|
|
||||||
items.iter().for_each(|child| {
|
items.iter().for_each(|child| {
|
||||||
|
|
@ -116,13 +116,13 @@ where
|
||||||
.fill_factor();
|
.fill_factor();
|
||||||
|
|
||||||
if fill_factor == 0 {
|
if fill_factor == 0 {
|
||||||
let (min_width, min_height) = if align_items == Align::Fill {
|
let (min_width, min_height) = if align_items == CrossAlign::Fill {
|
||||||
axis.pack(0.0, cross)
|
axis.pack(0.0, cross)
|
||||||
} else {
|
} else {
|
||||||
axis.pack(0.0, 0.0)
|
axis.pack(0.0, 0.0)
|
||||||
};
|
};
|
||||||
|
|
||||||
let (max_width, max_height) = if align_items == Align::Fill {
|
let (max_width, max_height) = if align_items == CrossAlign::Fill {
|
||||||
axis.pack(available, cross)
|
axis.pack(available, cross)
|
||||||
} else {
|
} else {
|
||||||
axis.pack(available, max_cross)
|
axis.pack(available, max_cross)
|
||||||
|
|
@ -138,7 +138,7 @@ where
|
||||||
|
|
||||||
available -= axis.main(size);
|
available -= axis.main(size);
|
||||||
|
|
||||||
if align_items != Align::Fill {
|
if align_items != CrossAlign::Fill {
|
||||||
cross = cross.max(axis.cross(size));
|
cross = cross.max(axis.cross(size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -165,13 +165,13 @@ where
|
||||||
max_main
|
max_main
|
||||||
};
|
};
|
||||||
|
|
||||||
let (min_width, min_height) = if align_items == Align::Fill {
|
let (min_width, min_height) = if align_items == CrossAlign::Fill {
|
||||||
axis.pack(min_main, cross)
|
axis.pack(min_main, cross)
|
||||||
} else {
|
} else {
|
||||||
axis.pack(min_main, axis.cross(limits.min()))
|
axis.pack(min_main, axis.cross(limits.min()))
|
||||||
};
|
};
|
||||||
|
|
||||||
let (max_width, max_height) = if align_items == Align::Fill {
|
let (max_width, max_height) = if align_items == CrossAlign::Fill {
|
||||||
axis.pack(max_main, cross)
|
axis.pack(max_main, cross)
|
||||||
} else {
|
} else {
|
||||||
axis.pack(max_main, max_cross)
|
axis.pack(max_main, max_cross)
|
||||||
|
|
@ -184,7 +184,7 @@ where
|
||||||
|
|
||||||
let layout = child.layout(renderer, &child_limits);
|
let layout = child.layout(renderer, &child_limits);
|
||||||
|
|
||||||
if align_items != Align::Fill {
|
if align_items != CrossAlign::Fill {
|
||||||
cross = cross.max(axis.cross(layout.size()));
|
cross = cross.max(axis.cross(layout.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -206,10 +206,18 @@ where
|
||||||
|
|
||||||
match axis {
|
match axis {
|
||||||
Axis::Horizontal => {
|
Axis::Horizontal => {
|
||||||
node.align(Align::Start, align_items, Size::new(0.0, cross));
|
node.align(
|
||||||
|
CrossAlign::Start,
|
||||||
|
align_items,
|
||||||
|
Size::new(0.0, cross),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
Axis::Vertical => {
|
Axis::Vertical => {
|
||||||
node.align(align_items, Align::Start, Size::new(cross, 0.0));
|
node.align(
|
||||||
|
align_items,
|
||||||
|
CrossAlign::Start,
|
||||||
|
Size::new(cross, 0.0),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use crate::{Align, Point, Rectangle, Size};
|
use crate::{CrossAlign, Point, Rectangle, Size};
|
||||||
|
|
||||||
/// The bounds of an element and its children.
|
/// The bounds of an element and its children.
|
||||||
#[derive(Debug, Clone, Default)]
|
#[derive(Debug, Clone, Default)]
|
||||||
|
|
@ -44,32 +44,32 @@ impl Node {
|
||||||
/// Aligns the [`Node`] in the given space.
|
/// Aligns the [`Node`] in the given space.
|
||||||
pub fn align(
|
pub fn align(
|
||||||
&mut self,
|
&mut self,
|
||||||
horizontal_alignment: Align,
|
horizontal_alignment: CrossAlign,
|
||||||
vertical_alignment: Align,
|
vertical_alignment: CrossAlign,
|
||||||
space: Size,
|
space: Size,
|
||||||
) {
|
) {
|
||||||
match horizontal_alignment {
|
match horizontal_alignment {
|
||||||
Align::Start => {}
|
CrossAlign::Start => {}
|
||||||
Align::Center => {
|
CrossAlign::Center => {
|
||||||
self.bounds.x += (space.width - self.bounds.width) / 2.0;
|
self.bounds.x += (space.width - self.bounds.width) / 2.0;
|
||||||
}
|
}
|
||||||
Align::End => {
|
CrossAlign::End => {
|
||||||
self.bounds.x += space.width - self.bounds.width;
|
self.bounds.x += space.width - self.bounds.width;
|
||||||
}
|
}
|
||||||
Align::Fill => {
|
CrossAlign::Fill => {
|
||||||
self.bounds.width = space.width;
|
self.bounds.width = space.width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
match vertical_alignment {
|
match vertical_alignment {
|
||||||
Align::Start => {}
|
CrossAlign::Start => {}
|
||||||
Align::Center => {
|
CrossAlign::Center => {
|
||||||
self.bounds.y += (space.height - self.bounds.height) / 2.0;
|
self.bounds.y += (space.height - self.bounds.height) / 2.0;
|
||||||
}
|
}
|
||||||
Align::End => {
|
CrossAlign::End => {
|
||||||
self.bounds.y += space.height - self.bounds.height;
|
self.bounds.y += space.height - self.bounds.height;
|
||||||
}
|
}
|
||||||
Align::Fill => {
|
CrossAlign::Fill => {
|
||||||
self.bounds.height = space.height;
|
self.bounds.height = space.height;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,8 +62,8 @@ mod debug;
|
||||||
mod debug;
|
mod debug;
|
||||||
|
|
||||||
pub use iced_core::{
|
pub use iced_core::{
|
||||||
Align, Background, Color, Font, HorizontalAlignment, Length, Padding,
|
Align, Background, Color, CrossAlign, Font, HorizontalAlignment, Length,
|
||||||
Point, Rectangle, Size, Vector, VerticalAlignment,
|
Padding, Point, Rectangle, Size, Vector, VerticalAlignment,
|
||||||
};
|
};
|
||||||
pub use iced_futures::{executor, futures};
|
pub use iced_futures::{executor, futures};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ use crate::row;
|
||||||
use crate::text;
|
use crate::text;
|
||||||
use crate::touch;
|
use crate::touch;
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Color, Element, Hasher, HorizontalAlignment, Layout,
|
Clipboard, Color, CrossAlign, Element, Hasher, HorizontalAlignment, Layout,
|
||||||
Length, Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
Length, Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -138,7 +138,7 @@ where
|
||||||
Row::<(), Renderer>::new()
|
Row::<(), Renderer>::new()
|
||||||
.width(self.width)
|
.width(self.width)
|
||||||
.spacing(self.spacing)
|
.spacing(self.spacing)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(
|
.push(
|
||||||
Row::new()
|
Row::new()
|
||||||
.width(Length::Units(self.size))
|
.width(Length::Units(self.size))
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ use crate::event::{self, Event};
|
||||||
use crate::layout;
|
use crate::layout;
|
||||||
use crate::overlay;
|
use crate::overlay;
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Element, Hasher, Layout, Length, Padding, Point,
|
Clipboard, CrossAlign, Element, Hasher, Layout, Length, Padding, Point,
|
||||||
Rectangle, Widget,
|
Rectangle, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -20,7 +20,7 @@ pub struct Column<'a, Message, Renderer> {
|
||||||
height: Length,
|
height: Length,
|
||||||
max_width: u32,
|
max_width: u32,
|
||||||
max_height: u32,
|
max_height: u32,
|
||||||
align_items: Align,
|
align_items: CrossAlign,
|
||||||
children: Vec<Element<'a, Message, Renderer>>,
|
children: Vec<Element<'a, Message, Renderer>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -41,7 +41,7 @@ impl<'a, Message, Renderer> Column<'a, Message, Renderer> {
|
||||||
height: Length::Shrink,
|
height: Length::Shrink,
|
||||||
max_width: u32::MAX,
|
max_width: u32::MAX,
|
||||||
max_height: u32::MAX,
|
max_height: u32::MAX,
|
||||||
align_items: Align::Start,
|
align_items: CrossAlign::Start,
|
||||||
children,
|
children,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -87,7 +87,7 @@ impl<'a, Message, Renderer> Column<'a, Message, Renderer> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the horizontal alignment of the contents of the [`Column`] .
|
/// Sets the horizontal alignment of the contents of the [`Column`] .
|
||||||
pub fn align_items(mut self, align: Align) -> Self {
|
pub fn align_items(mut self, align: CrossAlign) -> Self {
|
||||||
self.align_items = align;
|
self.align_items = align;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ use crate::event::{self, Event};
|
||||||
use crate::layout;
|
use crate::layout;
|
||||||
use crate::overlay;
|
use crate::overlay;
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Element, Hasher, Layout, Length, Padding, Point,
|
Align, Clipboard, CrossAlign, Element, Hasher, Layout, Length, Padding,
|
||||||
Rectangle, Widget,
|
Point, Rectangle, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
use std::u32;
|
use std::u32;
|
||||||
|
|
@ -143,7 +143,11 @@ where
|
||||||
self.padding.left.into(),
|
self.padding.left.into(),
|
||||||
self.padding.top.into(),
|
self.padding.top.into(),
|
||||||
));
|
));
|
||||||
content.align(self.horizontal_alignment, self.vertical_alignment, size);
|
content.align(
|
||||||
|
CrossAlign::from(self.horizontal_alignment),
|
||||||
|
CrossAlign::from(self.vertical_alignment),
|
||||||
|
size,
|
||||||
|
);
|
||||||
|
|
||||||
layout::Node::with_children(size.pad(self.padding), vec![content])
|
layout::Node::with_children(size.pad(self.padding), vec![content])
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ use crate::text;
|
||||||
use crate::touch;
|
use crate::touch;
|
||||||
use crate::{layout, Color};
|
use crate::{layout, Color};
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Element, Hasher, HorizontalAlignment, Layout, Length,
|
Clipboard, CrossAlign, Element, Hasher, HorizontalAlignment, Layout,
|
||||||
Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
Length, Point, Rectangle, Row, Text, VerticalAlignment, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A circular button representing a choice.
|
/// A circular button representing a choice.
|
||||||
|
|
@ -153,7 +153,7 @@ where
|
||||||
Row::<(), Renderer>::new()
|
Row::<(), Renderer>::new()
|
||||||
.width(self.width)
|
.width(self.width)
|
||||||
.spacing(self.spacing)
|
.spacing(self.spacing)
|
||||||
.align_items(Align::Center)
|
.align_items(CrossAlign::Center)
|
||||||
.push(
|
.push(
|
||||||
Row::new()
|
Row::new()
|
||||||
.width(Length::Units(self.size))
|
.width(Length::Units(self.size))
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ use crate::event::{self, Event};
|
||||||
use crate::layout;
|
use crate::layout;
|
||||||
use crate::overlay;
|
use crate::overlay;
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Element, Hasher, Layout, Length, Padding, Point,
|
Clipboard, CrossAlign, Element, Hasher, Layout, Length, Padding, Point,
|
||||||
Rectangle, Widget,
|
Rectangle, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ pub struct Row<'a, Message, Renderer> {
|
||||||
height: Length,
|
height: Length,
|
||||||
max_width: u32,
|
max_width: u32,
|
||||||
max_height: u32,
|
max_height: u32,
|
||||||
align_items: Align,
|
align_items: CrossAlign,
|
||||||
children: Vec<Element<'a, Message, Renderer>>,
|
children: Vec<Element<'a, Message, Renderer>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -40,7 +40,7 @@ impl<'a, Message, Renderer> Row<'a, Message, Renderer> {
|
||||||
height: Length::Shrink,
|
height: Length::Shrink,
|
||||||
max_width: u32::MAX,
|
max_width: u32::MAX,
|
||||||
max_height: u32::MAX,
|
max_height: u32::MAX,
|
||||||
align_items: Align::Start,
|
align_items: CrossAlign::Start,
|
||||||
children,
|
children,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -86,7 +86,7 @@ impl<'a, Message, Renderer> Row<'a, Message, Renderer> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the vertical alignment of the contents of the [`Row`] .
|
/// Sets the vertical alignment of the contents of the [`Row`] .
|
||||||
pub fn align_items(mut self, align: Align) -> Self {
|
pub fn align_items(mut self, align: CrossAlign) -> Self {
|
||||||
self.align_items = align;
|
self.align_items = align;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ use crate::mouse;
|
||||||
use crate::overlay;
|
use crate::overlay;
|
||||||
use crate::touch;
|
use crate::touch;
|
||||||
use crate::{
|
use crate::{
|
||||||
Align, Clipboard, Column, Element, Hasher, Layout, Length, Padding, Point,
|
Clipboard, Column, CrossAlign, Element, Hasher, Layout, Length, Padding,
|
||||||
Rectangle, Size, Vector, Widget,
|
Point, Rectangle, Size, Vector, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
use std::{f32, hash::Hash, u32};
|
use std::{f32, hash::Hash, u32};
|
||||||
|
|
@ -84,7 +84,7 @@ impl<'a, Message, Renderer: self::Renderer> Scrollable<'a, Message, Renderer> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the horizontal alignment of the contents of the [`Scrollable`] .
|
/// Sets the horizontal alignment of the contents of the [`Scrollable`] .
|
||||||
pub fn align_items(mut self, align_items: Align) -> Self {
|
pub fn align_items(mut self, align_items: CrossAlign) -> Self {
|
||||||
self.content = self.content.align_items(align_items);
|
self.content = self.content.align_items(align_items);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
use std::hash::Hash;
|
use std::hash::Hash;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
event, layout, mouse, row, text, Align, Clipboard, Element, Event, Hasher,
|
event, layout, mouse, row, text, Clipboard, CrossAlign, Element, Event,
|
||||||
HorizontalAlignment, Layout, Length, Point, Rectangle, Row, Text,
|
Hasher, HorizontalAlignment, Layout, Length, Point, Rectangle, Row, Text,
|
||||||
VerticalAlignment, Widget,
|
VerticalAlignment, Widget,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -132,7 +132,7 @@ where
|
||||||
let mut row = Row::<(), Renderer>::new()
|
let mut row = Row::<(), Renderer>::new()
|
||||||
.width(self.width)
|
.width(self.width)
|
||||||
.spacing(self.spacing)
|
.spacing(self.spacing)
|
||||||
.align_items(Align::Center);
|
.align_items(CrossAlign::Center);
|
||||||
|
|
||||||
if let Some(label) = &self.label {
|
if let Some(label) = &self.label {
|
||||||
row = row.push(
|
row = row.push(
|
||||||
|
|
|
||||||
|
|
@ -246,6 +246,7 @@ pub use sandbox::Sandbox;
|
||||||
pub use settings::Settings;
|
pub use settings::Settings;
|
||||||
|
|
||||||
pub use runtime::{
|
pub use runtime::{
|
||||||
futures, Align, Background, Color, Command, Font, HorizontalAlignment,
|
futures, Align, Background, Color, Command, CrossAlign, Font,
|
||||||
Length, Point, Rectangle, Size, Subscription, Vector, VerticalAlignment,
|
HorizontalAlignment, Length, Point, Rectangle, Size, Subscription, Vector,
|
||||||
|
VerticalAlignment,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
//! Style your widgets.
|
//! Style your widgets.
|
||||||
use crate::{bumpalo, Align, Background, Color, Length, Padding};
|
use crate::{bumpalo, Align, Background, Color, CrossAlign, Length, Padding};
|
||||||
|
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
|
|
@ -201,7 +201,16 @@ pub fn align(align: Align) -> &'static str {
|
||||||
Align::Start => "flex-start",
|
Align::Start => "flex-start",
|
||||||
Align::Center => "center",
|
Align::Center => "center",
|
||||||
Align::End => "flex-end",
|
Align::End => "flex-end",
|
||||||
Align::Fill => "stretch",
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns the style value for the given [`CrossAlign`].
|
||||||
|
pub fn cross_align(align: CrossAlign) -> &'static str {
|
||||||
|
match align {
|
||||||
|
CrossAlign::Start => "flex-start",
|
||||||
|
CrossAlign::Center => "center",
|
||||||
|
CrossAlign::End => "flex-end",
|
||||||
|
CrossAlign::Fill => "stretch",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,8 +74,9 @@ pub use dodrio;
|
||||||
pub use element::Element;
|
pub use element::Element;
|
||||||
pub use hasher::Hasher;
|
pub use hasher::Hasher;
|
||||||
pub use iced_core::{
|
pub use iced_core::{
|
||||||
keyboard, mouse, Align, Background, Color, Font, HorizontalAlignment,
|
keyboard, mouse, Align, Background, Color, CrossAlign, Font,
|
||||||
Length, Padding, Point, Rectangle, Size, Vector, VerticalAlignment,
|
HorizontalAlignment, Length, Padding, Point, Rectangle, Size, Vector,
|
||||||
|
VerticalAlignment,
|
||||||
};
|
};
|
||||||
pub use iced_futures::{executor, futures};
|
pub use iced_futures::{executor, futures};
|
||||||
pub use subscription::Subscription;
|
pub use subscription::Subscription;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue