[−][src]Struct egui::Ui
Represents a region of the screen with a type of layout (horizontal or vertical).
Implementations
impl Ui
[src]
pub fn new(ctx: Arc<Context>, layer: Layer, id: Id, rect: Rect) -> Self
[src]
pub fn child_ui(&mut self, child_rect: Rect) -> Self
[src]
pub fn id(&self) -> Id
[src]
pub fn style(&self) -> &Style
[src]
Style options for this Ui
and its children.
pub fn set_style(&mut self, style: Style)
[src]
pub fn ctx(&self) -> &Arc<Context>
[src]
pub fn painter(&self) -> &Painter
[src]
Use this to paint stuff within this Ui
.
pub fn painter_at(&self, rect: Rect) -> Painter
[src]
Create a painter for a sub-region of this Ui.
The clip-rect of the returned Painter
will be the intersection
of the given rectangle and the clip_rect()
of this Ui
.
pub fn layer(&self) -> Layer
[src]
Use this to paint stuff within this Ui
.
pub fn input(&self) -> &InputState
[src]
pub fn memory(&self) -> MutexGuard<Memory>
[src]
pub fn output(&self) -> MutexGuard<Output>
[src]
pub fn fonts(&self) -> &Fonts
[src]
pub fn clip_rect(&self) -> Rect
[src]
Screen-space rectangle for clipping what we paint in this ui. This is used, for instance, to avoid painting outside a window that is smaller than its contents.
pub fn set_clip_rect(&mut self, clip_rect: Rect)
[src]
Screen-space rectangle for clipping what we paint in this ui. This is used, for instance, to avoid painting outside a window that is smaller than its contents.
pub fn top_left(&self) -> Pos2
[src]
Screen-space position of this Ui. This may have moved from its original if a child overflowed to the left or up (rare).
pub fn bottom_right(&self) -> Pos2
[src]
Screen-space position of the current bottom right corner of this Ui. This may move when we add children that overflow our desired rectangle bounds. This position may be at inifnity if the desired rect is initinite, which mappens when a parent widget says "be as big as you want to be".
pub fn rect(&self) -> Rect
[src]
Position and current size of the ui. The size is the maximum of the origional (minimum/desired) size and the size of the containted children.
pub fn rect_finite(&self) -> Rect
[src]
This is like rect()
, but will never be infinite.
If the desired rect is infinite ("be as big as you want")
this will be bounded by child bounds.
pub fn set_desired_width(&mut self, width: f32)
[src]
Set the width of the ui. You won't be able to shrink it beyond its current child bounds.
pub fn set_desired_height(&mut self, height: f32)
[src]
Set the height of the ui. You won't be able to shrink it beyond its current child bounds.
pub fn bounding_size(&self) -> Vec2
[src]
Size of content
pub fn expand_to_include_child(&mut self, rect: Rect)
[src]
Expand the bounding rect of this ui to include a child at the given rect.
pub fn expand_to_size(&mut self, size: Vec2)
[src]
pub fn child_bounds(&self) -> Rect
[src]
Bounding box of all contained children
pub fn force_set_child_bounds(&mut self, child_bounds: Rect)
[src]
pub fn available(&self) -> Rect
[src]
The available space at the moment, given the current cursor.
This how much more space we can take up without overflowing our parent.
Shrinks as widgets allocate space and the cursor moves.
A small rectangle should be intepreted as "as little as possible".
An infinite rectangle should be interpred as "as much as you want".
In most layouts the next widget will be put in the top left corner of this Rect
.
pub fn available_finite(&self) -> Rect
[src]
This is like available()
, but will never be infinite.
Use this for components that want to grow without bounds (but shouldn't).
In most layouts the next widget will be put in the top left corner of this Rect
.
pub fn layout(&self) -> &Layout
[src]
pub fn set_layout(&mut self, layout: Layout)
[src]
pub fn contains_mouse(&self, rect: Rect) -> bool
[src]
impl Ui
[src]
pub fn make_unique_child_id<IdSource>(&self, id_source: IdSource) -> Id where
IdSource: Hash + Debug,
[src]
IdSource: Hash + Debug,
Will warn if the returned id is not guaranteed unique.
Use this to generate widget ids for widgets that have persistent state in Memory.
If the id_source
is not unique within this ui
then an error will be printed at the current cursor position.
pub fn make_unique_child_id_full(
&mut self,
explicit_id_source: Option<Id>,
default_id_source: Option<&str>
) -> Id
[src]
&mut self,
explicit_id_source: Option<Id>,
default_id_source: Option<&str>
) -> Id
Ideally, all widgets should use this. TODO Widgets can set an explicit id source (user picked, e.g. some loop index), and a defualt id source (e.g. label). If they fail to be unique, a positional id will be used instead.
pub fn make_position_id(&self) -> Id
[src]
Make an Id that is unique to this positon. Can be used for widgets that do NOT persist state in Memory but you still need to interact with (e.g. buttons, sliders).
pub fn make_child_id(&self, id_seed: impl Hash) -> Id
[src]
impl Ui
[src]
pub fn interact(&self, rect: Rect, id: Id, sense: Sense) -> InteractInfo
[src]
pub fn interact_hover(&self, rect: Rect) -> InteractInfo
[src]
pub fn hovered(&self, rect: Rect) -> bool
[src]
#[must_use]pub fn response(&mut self, interact: InteractInfo) -> GuiResponse
[src]
pub fn allocate_space(&mut self, desired_size: Vec2) -> Rect
[src]
Reserve this much space and move the cursor. Returns where to put the widget.
How sizes are negotiated
Each widget should have a minimum desired size and a desired size.
When asking for space, ask AT LEAST for you minimum, and don't ask for more than you need.
If you want to fill the space, ask about available().size()
and use that.
You may get MORE space than you asked for, for instance
for Justified
aligned layouts, like in menus.
You may get LESS space than you asked for if the current layout won't fit what you asked for.
pub fn allocate_canvas(&mut self, desired_size: Vec2) -> Painter
[src]
Ask to allocate a certain amount of space and return a Painter for that region.
You may get back a Painter
with a smaller or larger size than what you desired,
depending on the avilable space and the current layout.
impl Ui
[src]
pub fn add(&mut self, widget: impl Widget) -> GuiResponse
[src]
pub fn label(&mut self, label: impl Into<Label>) -> GuiResponse
[src]
Shortcut for add(Label::new(text))
pub fn hyperlink(&mut self, url: impl Into<String>) -> GuiResponse
[src]
Shortcut for add(Hyperlink::new(url))
pub fn button(&mut self, text: impl Into<String>) -> GuiResponse
[src]
Shortcut for add(Button::new(text))
pub fn checkbox(
&mut self,
text: impl Into<String>,
checked: &mut bool
) -> GuiResponse
[src]
&mut self,
text: impl Into<String>,
checked: &mut bool
) -> GuiResponse
Show a checkbox.
pub fn radio(&mut self, text: impl Into<String>, checked: bool) -> GuiResponse
[src]
Show a radio button.
pub fn radio_value<Value: PartialEq>(
&mut self,
text: impl Into<String>,
curr_value: &mut Value,
radio_value: Value
) -> GuiResponse
[src]
&mut self,
text: impl Into<String>,
curr_value: &mut Value,
radio_value: Value
) -> GuiResponse
Show a radio button. It is selected if *curr_value == radio_value
.
If clicked, radio_value
is assigned to *curr_value
;
pub fn separator(&mut self) -> GuiResponse
[src]
Shortcut for add(Separator::new())
impl Ui
[src]
pub fn collapsing<R>(
&mut self,
text: impl Into<String>,
add_contents: impl FnOnce(&mut Ui) -> R
) -> Option<R>
[src]
&mut self,
text: impl Into<String>,
add_contents: impl FnOnce(&mut Ui) -> R
) -> Option<R>
pub fn add_custom_contents(
&mut self,
size: Vec2,
add_contents: impl FnOnce(&mut Ui)
) -> Rect
[src]
&mut self,
size: Vec2,
add_contents: impl FnOnce(&mut Ui)
) -> Rect
Create a child ui at the current cursor.
size
is the desired size.
Actual size may be much smaller if avilable_size()
is not enough.
Set size
to Vec::infinity()
to get as much space as possible.
Just because you ask for a lot of space does not mean you have to use it!
After add_contents
is called the contents of bounding_size
will decide how much space will be used in the parent ui.
pub fn add_custom<R>(
&mut self,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
[src]
&mut self,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
Create a child ui
pub fn indent<R>(
&mut self,
id_source: impl Hash,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
[src]
&mut self,
id_source: impl Hash,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
Create a child ui which is indented to the right
pub fn left_column(&mut self, width: f32) -> Ui
[src]
pub fn centered_column(&mut self, width: f32) -> Ui
[src]
pub fn right_column(&mut self, width: f32) -> Ui
[src]
pub fn column(&mut self, column_position: Align, width: f32) -> Ui
[src]
A column ui with a given width.
pub fn horizontal<R>(
&mut self,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
[src]
&mut self,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
Start a ui with horizontal layout
pub fn vertical<R>(
&mut self,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
[src]
&mut self,
add_contents: impl FnOnce(&mut Ui) -> R
) -> (R, Rect)
Start a ui with vertical layout
pub fn inner_layout<R>(
&mut self,
layout: Layout,
add_contents: impl FnOnce(&mut Self) -> R
) -> (R, Rect)
[src]
&mut self,
layout: Layout,
add_contents: impl FnOnce(&mut Self) -> R
) -> (R, Rect)
pub fn columns<F, R>(&mut self, num_columns: usize, add_contents: F) -> R where
F: FnOnce(&mut [Self]) -> R,
[src]
F: FnOnce(&mut [Self]) -> R,
Temporarily split split an Ui into several columns.
ui.columns(2, |columns| { columns[0].add(egui::widgets::label!("First column")); columns[1].add(egui::widgets::label!("Second column")); });
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,