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
impl Layout
§Constructors
Sourcepub fn left_to_right(valign: Align) -> Layout
pub fn left_to_right(valign: Align) -> Layout
Place elements horizontally, left to right.
The valign
parameter controls how to align elements vertically.
Sourcepub fn right_to_left(valign: Align) -> Layout
pub fn right_to_left(valign: Align) -> Layout
Place elements horizontally, right to left.
The valign
parameter controls how to align elements vertically.
Sourcepub fn top_down(halign: Align) -> Layout
pub fn top_down(halign: Align) -> Layout
Place elements vertically, top to bottom.
Use the provided horizontal alignment.
Sourcepub fn top_down_justified(halign: Align) -> Layout
pub fn top_down_justified(halign: Align) -> Layout
Top-down layout justified so that buttons etc fill the full available width.
Sourcepub fn bottom_up(halign: Align) -> Layout
pub fn bottom_up(halign: Align) -> Layout
Place elements vertically, bottom up.
Use the provided horizontal alignment.
pub fn from_main_dir_and_cross_align( main_dir: Direction, cross_align: Align, ) -> Layout
Sourcepub fn centered_and_justified(main_dir: Direction) -> Layout
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
!
Sourcepub fn with_main_wrap(self, main_wrap: bool) -> Layout
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
.
Sourcepub fn with_main_align(self, main_align: Align) -> Layout
pub fn with_main_align(self, main_align: Align) -> Layout
The alignment to use on the main axis.
Sourcepub fn with_cross_align(self, cross_align: Align) -> Layout
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.
Sourcepub fn with_main_justify(self, main_justify: bool) -> Layout
pub fn with_main_justify(self, main_justify: bool) -> Layout
Justify widgets on the main axis?
Justify here means “take up all available space”.
Sourcepub fn with_cross_justify(self, cross_justify: bool) -> Layout
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
impl Layout
§Inspectors
pub fn main_dir(&self) -> Direction
pub fn main_wrap(&self) -> bool
pub fn cross_align(&self) -> Align
pub fn cross_justify(&self) -> bool
pub fn is_horizontal(&self) -> bool
pub fn is_vertical(&self) -> bool
pub fn prefer_right_to_left(&self) -> bool
Sourcepub fn horizontal_placement(&self) -> Align
pub fn horizontal_placement(&self) -> Align
e.g. for adjusting the placement of something.
- in horizontal layout: left or right?
- in vertical layout: same as
Self::horizontal_align
.
Sourcepub fn horizontal_align(&self) -> Align
pub fn horizontal_align(&self) -> Align
e.g. for when aligning text within a button.
Sourcepub fn vertical_align(&self) -> Align
pub fn vertical_align(&self) -> Align
e.g. for when aligning text within a button.
pub fn horizontal_justify(&self) -> bool
pub fn vertical_justify(&self) -> bool
Source§impl Layout
§Doing layout
impl Layout
§Doing layout
pub fn align_size_within_rect(&self, size: Vec2, outer: Rect) -> Rect
impl Layout
§Debug stuff
Trait Implementations§
impl Copy for Layout
impl Eq for Layout
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Content for Twhere
T: Copy,
impl<T> Content for Twhere
T: Copy,
Source§unsafe fn read<F, E>(size: usize, f: F) -> Result<T, E>
unsafe fn read<F, E>(size: usize, f: F) -> Result<T, E>
Owned
.
User-provided closure F
must only write to and not read from &mut Self
.Source§fn get_elements_size() -> usize
fn get_elements_size() -> usize
Source§fn to_void_ptr(&self) -> *const ()
fn to_void_ptr(&self) -> *const ()
Source§fn ref_from_ptr<'a>(ptr: *mut (), size: usize) -> Option<*mut T>
fn ref_from_ptr<'a>(ptr: *mut (), size: usize) -> Option<*mut T>
Source§fn is_size_suitable(size: usize) -> bool
fn is_size_suitable(size: usize) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.