Struct 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

§Constructors
Source

pub fn left_to_right(valign: Align) -> Layout

Place elements horizontally, left to right.

The valign parameter controls how to align elements vertically.

Source

pub fn right_to_left(valign: Align) -> Layout

Place elements horizontally, right to left.

The valign parameter controls how to align elements vertically.

Source

pub fn top_down(halign: Align) -> Layout

Place elements vertically, top to bottom.

Use the provided horizontal alignment.

Source

pub fn top_down_justified(halign: Align) -> Layout

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

Source

pub fn bottom_up(halign: Align) -> Layout

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, ) -> Layout

Source

pub fn centered_and_justified(main_dir: Direction) -> Layout

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) -> Layout

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) -> Layout

The alignment to use on the main axis.

Source

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

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) -> Layout

Justify widgets on the main axis?

Justify here means “take up all available space”.

Source

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

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

§Inspectors
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

§Doing layout
Source

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

Source§

impl Layout

This impl block contains no items.
§Debug stuff

Trait Implementations§

Source§

impl Clone for Layout

Source§

fn clone(&self) -> Layout

Returns a duplicate 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<(), Error>

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

impl Default for Layout

Source§

fn default() -> Layout

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

impl PartialEq for Layout

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

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 StructuralPartialEq for Layout

Auto Trait Implementations§

§

impl Freeze for Layout

§

impl RefUnwindSafe for Layout

§

impl Send for Layout

§

impl Sync for Layout

§

impl Unpin for Layout

§

impl UnwindSafe for Layout

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Content for T
where T: Copy,

Source§

type Owned = T

A type that holds a sized version of the content.
Source§

unsafe fn read<F, E>(size: usize, f: F) -> Result<T, E>
where F: FnOnce(&mut T) -> Result<(), E>,

Prepares an output buffer, then turns this buffer into an Owned. User-provided closure F must only write to and not read from &mut Self.
Source§

fn get_elements_size() -> usize

Returns the size of each element.
Source§

fn to_void_ptr(&self) -> *const ()

Produces a pointer to the data.
Source§

fn ref_from_ptr<'a>(ptr: *mut (), size: usize) -> Option<*mut T>

Builds a pointer to this type from a raw pointer.
Source§

fn is_size_suitable(size: usize) -> bool

Returns true if the size is suitable to store a type like this.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

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

Source§

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> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

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

Source§

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>,

Source§

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<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

Source§

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