Struct UiBuilder

Source
pub struct UiBuilder {
    pub id_salt: Option<Id>,
    pub global_scope: bool,
    pub ui_stack_info: UiStackInfo,
    pub layer_id: Option<LayerId>,
    pub max_rect: Option<Rect>,
    pub layout: Option<Layout>,
    pub disabled: bool,
    pub invisible: bool,
    pub sizing_pass: bool,
    pub style: Option<Arc<Style>>,
    pub sense: Option<Sense>,
}
Expand description

Build a Ui as the child of another Ui.

By default, everything is inherited from the parent, except for max_rect which by default is set to the parent Ui::available_rect_before_wrap.

Fields§

§id_salt: Option<Id>§global_scope: bool§ui_stack_info: UiStackInfo§layer_id: Option<LayerId>§max_rect: Option<Rect>§layout: Option<Layout>§disabled: bool§invisible: bool§sizing_pass: bool§style: Option<Arc<Style>>§sense: Option<Sense>

Implementations§

Source§

impl UiBuilder

Source

pub fn new() -> Self

Source

pub fn id_salt(self, id_salt: impl Hash) -> Self

Seed the child Ui with this id_salt, which will be mixed with the Ui::id of the parent.

You should give each Ui an id_salt that is unique within the parent, or give it none at all.

Source

pub fn id(self, id: impl Hash) -> Self

Set an id of the new Ui that is independent of the parent Ui. This way child widgets can be moved in the ui tree without losing state. You have to ensure that in a frame the child widgets do not get rendered in multiple places.

You should set the same unique id at every place in the ui tree where you want the child widgets to share state. If the child widgets are not moved in the ui tree, use UiBuilder::id_salt instead.

This is a shortcut for .id_salt(my_id).global_scope(true).

Source

pub fn global_scope(self, global_scope: bool) -> Self

Make the new Ui child ids independent of the parent Ui. This way child widgets can be moved in the ui tree without losing state. You have to ensure that in a frame the child widgets do not get rendered in multiple places.

You should set the same globally unique id_salt at every place in the ui tree where you want the child widgets to share state.

Source

pub fn ui_stack_info(self, ui_stack_info: UiStackInfo) -> Self

Provide some information about the new Ui being built.

Source

pub fn layer_id(self, layer_id: LayerId) -> Self

Show the Ui in a different LayerId from its parent.

Source

pub fn max_rect(self, max_rect: Rect) -> Self

Set the max rectangle, within which widgets will go.

New widgets will try to fit within this rectangle.

Text labels will wrap to fit within max_rect. Separator lines will span the max_rect.

If a new widget doesn’t fit within the max_rect then the Ui will make room for it by expanding both min_rect and

If not set, this will be set to the parent Ui::available_rect_before_wrap.

Source

pub fn layout(self, layout: Layout) -> Self

Override the layout.

Will otherwise be inherited from the parent.

Source

pub fn disabled(self) -> Self

Make the new Ui disabled, i.e. grayed-out and non-interactive.

Note that if the parent Ui is disabled, the child will always be disabled.

Source

pub fn invisible(self) -> Self

Make the contents invisible.

Will also disable the Ui (see Self::disabled).

If the parent Ui is invisible, the child will always be invisible.

Source

pub fn sizing_pass(self) -> Self

Set to true in special cases where we do one frame where we size up the contents of the Ui, without actually showing it.

If the sizing_pass flag is set on the parent, the child will inherit it automatically.

Source

pub fn style(self, style: impl Into<Arc<Style>>) -> Self

Override the style.

Otherwise will inherit the style of the parent.

Source

pub fn sense(self, sense: Sense) -> Self

Set if you want sense clicks and/or drags. Default is Sense::hover.

The sense will be registered below the Senses of any widgets contained in this Ui, so if the user clicks a button contained within this Ui, that button will receive the click instead.

The response can be read early with Ui::response.

Source

pub fn closable(self) -> Self

Make this Ui closable.

Calling Ui::close in a child Ui will mark this Ui for closing. After Ui::close was called, Ui::should_close and crate::Response::should_close will return true (for this frame).

This works by adding a ClosableTag to the UiStackInfo.

Source

pub fn accessibility_parent(self, parent_id: Id) -> Self

Set the accessibility parent for this Ui.

This will override the automatic parent assignment for accessibility purposes. If not set, the parent Ui’s ID will be used as the accessibility parent.

This does nothing if the accesskit feature is not enabled.

Trait Implementations§

Source§

impl Clone for UiBuilder

Source§

fn clone(&self) -> UiBuilder

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 Default for UiBuilder

Source§

fn default() -> UiBuilder

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

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

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> 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<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,