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
impl Layout
sourcepub fn left_to_right(valign: Align) -> Self
pub fn left_to_right(valign: Align) -> Self
Place elements horizontally, left to right.
The valign
parameter controls how to align elements vertically.
sourcepub fn right_to_left(valign: Align) -> Self
pub fn right_to_left(valign: Align) -> Self
Place elements horizontally, right to left.
The valign
parameter controls how to align elements vertically.
sourcepub fn top_down(halign: Align) -> Self
pub fn top_down(halign: Align) -> Self
Place elements vertically, top to bottom.
Use the provided horizontal alignment.
sourcepub fn top_down_justified(halign: Align) -> Self
pub fn top_down_justified(halign: Align) -> Self
Top-down layout justified so that buttons etc fill the full available width.
sourcepub fn bottom_up(halign: Align) -> Self
pub fn bottom_up(halign: Align) -> Self
Place elements vertically, bottom up.
Use the provided horizontal alignment.
pub fn from_main_dir_and_cross_align( main_dir: Direction, cross_align: Align ) -> Self
sourcepub fn centered_and_justified(main_dir: Direction) -> Self
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
!
sourcepub fn with_main_wrap(self, main_wrap: bool) -> Self
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
.
sourcepub fn with_main_align(self, main_align: Align) -> Self
pub fn with_main_align(self, main_align: Align) -> Self
The alignment to use on the main axis.
sourcepub fn with_cross_align(self, cross_align: Align) -> Self
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.
sourcepub fn with_main_justify(self, main_justify: bool) -> Self
pub fn with_main_justify(self, main_justify: bool) -> Self
Justify widgets on the main axis?
Justify here means “take up all available space”.
sourcepub fn with_cross_justify(self, cross_justify: bool) -> Self
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
impl Layout
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.