Struct egui::Layout

source ·
pub struct Layout {
    pub main_dir: Direction,
    pub main_wrap: bool,
    pub main_align: Align,
    pub main_justify: bool,
    pub cross_align: Align,
    pub cross_justify: bool,
}
Expand description

The layout of a Ui, e.g. “vertical & centered”.

ui.with_layout(egui::Layout::right_to_left(egui::Align::TOP), |ui| {
    ui.label("world!");
    ui.label("Hello");
});

Fields§

§main_dir: Direction

Main axis direction

§main_wrap: bool

If true, wrap around when reading the end of the main direction. For instance, for main_dir == Direction::LeftToRight this will wrap to a new row when we reach the right side of the max_rect.

§main_align: Align

How to align things on the main axis.

§main_justify: bool

Justify the main axis?

§cross_align: Align

How to align things on the cross axis. For vertical layouts: put things to left, center or right? For horizontal layouts: put things to top, center or bottom?

§cross_justify: bool

Justify the cross axis? For vertical layouts justify mean all widgets get maximum width. For horizontal layouts justify mean all widgets get maximum height.

Implementations§

source§

impl Layout

source

pub fn left_to_right(valign: Align) -> Self

Place elements horizontally, left to right.

The valign parameter controls how to align elements vertically.

source

pub fn right_to_left(valign: Align) -> Self

Place elements horizontally, right to left.

The valign parameter controls how to align elements vertically.

source

pub fn top_down(halign: Align) -> Self

Place elements vertically, top to bottom.

Use the provided horizontal alignment.

source

pub fn top_down_justified(halign: Align) -> Self

Top-down layout justified so that buttons etc fill the full available width.

source

pub fn bottom_up(halign: Align) -> Self

Place elements vertically, bottom up.

Use the provided horizontal alignment.

source

pub fn from_main_dir_and_cross_align( main_dir: Direction, cross_align: Align ) -> Self

source

pub fn centered_and_justified(main_dir: Direction) -> Self

For when you want to add a single widget to a layout, and that widget should use up all available space.

Only one widget may be added to the inner Ui!

source

pub fn with_main_wrap(self, main_wrap: bool) -> Self

Wrap widgets when we overflow the main axis?

For instance, for left-to-right layouts, setting this to true will put widgets on a new row if we would overflow the right side of crate::Ui::max_rect.

source

pub fn with_main_align(self, main_align: Align) -> Self

The alignment to use on the main axis.

source

pub fn with_cross_align(self, cross_align: Align) -> Self

The alignment to use on the cross axis.

The “cross” axis is the one orthogonal to the main axis. For instance: in left-to-right layout, the main axis is horizontal and the cross axis is vertical.

source

pub fn with_main_justify(self, main_justify: bool) -> Self

Justify widgets on the main axis?

Justify here means “take up all available space”.

source

pub fn with_cross_justify(self, cross_justify: bool) -> Self

Justify widgets along the cross axis?

Justify here means “take up all available space”.

The “cross” axis is the one orthogonal to the main axis. For instance: in left-to-right layout, the main axis is horizontal and the cross axis is vertical.

source§

impl Layout

source

pub fn main_dir(&self) -> Direction

source

pub fn main_wrap(&self) -> bool

source

pub fn cross_align(&self) -> Align

source

pub fn cross_justify(&self) -> bool

source

pub fn is_horizontal(&self) -> bool

source

pub fn is_vertical(&self) -> bool

source

pub fn prefer_right_to_left(&self) -> bool

source

pub fn horizontal_placement(&self) -> Align

e.g. for adjusting the placement of something.

source

pub fn horizontal_align(&self) -> Align

e.g. for when aligning text within a button.

source

pub fn vertical_align(&self) -> Align

e.g. for when aligning text within a button.

source

pub fn horizontal_justify(&self) -> bool

source

pub fn vertical_justify(&self) -> bool

source§

impl Layout

source

pub fn align_size_within_rect(&self, size: Vec2, outer: Rect) -> Rect

Trait Implementations§

source§

impl Clone for Layout

source§

fn clone(&self) -> Layout

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Layout

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Layout

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl PartialEq for Layout

source§

fn eq(&self, other: &Layout) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for Layout

source§

impl Eq for Layout

source§

impl StructuralEq for Layout

source§

impl StructuralPartialEq for Layout

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,