pub struct ElementBuilder<'ply, CustomElementData: Clone + Default + Debug = ()> { /* private fields */ }Expand description
Builder for creating elements with closure-based syntax.
Methods return self by value for chaining. Finalize with .children() or .empty().
Implementations§
Source§impl<'ply, CustomElementData: Clone + Default + Debug> ElementBuilder<'ply, CustomElementData>
impl<'ply, CustomElementData: Clone + Default + Debug> ElementBuilder<'ply, CustomElementData>
Sourcepub fn background_color(self, color: impl Into<Color>) -> Self
pub fn background_color(self, color: impl Into<Color>) -> Self
Sets the background color of the element.
Sourcepub fn corner_radius(self, radius: impl Into<CornerRadius>) -> Self
pub fn corner_radius(self, radius: impl Into<CornerRadius>) -> Self
Sets the corner radius.
Accepts f32 (all corners) or (f32, f32, f32, f32) in CSS order (top-left, top-right, bottom-right, bottom-left).
Sourcepub fn id(self, id: impl Into<Id>) -> Self
pub fn id(self, id: impl Into<Id>) -> Self
Sets the element’s ID.
Accepts an Id or a &'static str label.
Sourcepub fn aspect_ratio(self, aspect_ratio: f32) -> Self
pub fn aspect_ratio(self, aspect_ratio: f32) -> Self
Sets the aspect ratio of the element.
Sourcepub fn contain(self, aspect_ratio: f32) -> Self
pub fn contain(self, aspect_ratio: f32) -> Self
Sizes the element to the largest box that fits its parent while preserving aspect_ratio.
Sourcepub fn cover(self, aspect_ratio: f32) -> Self
pub fn cover(self, aspect_ratio: f32) -> Self
Sizes the element to completely cover its parent while preserving aspect_ratio.
Sourcepub fn overflow(
self,
f: impl for<'a> FnOnce(&'a mut OverflowBuilder) -> &'a mut OverflowBuilder,
) -> Self
pub fn overflow( self, f: impl for<'a> FnOnce(&'a mut OverflowBuilder) -> &'a mut OverflowBuilder, ) -> Self
Configures overflow (clip and scroll) properties.
Sourcepub fn custom_element(self, data: CustomElementData) -> Self
pub fn custom_element(self, data: CustomElementData) -> Self
Sets custom element data.
Sourcepub fn layout(
self,
f: impl for<'a> FnOnce(&'a mut LayoutBuilder) -> &'a mut LayoutBuilder,
) -> Self
pub fn layout( self, f: impl for<'a> FnOnce(&'a mut LayoutBuilder) -> &'a mut LayoutBuilder, ) -> Self
Configures layout properties using a closure.
Sourcepub fn floating(
self,
f: impl for<'a> FnOnce(&'a mut FloatingBuilder) -> &'a mut FloatingBuilder,
) -> Self
pub fn floating( self, f: impl for<'a> FnOnce(&'a mut FloatingBuilder) -> &'a mut FloatingBuilder, ) -> Self
Configures floating properties using a closure.
Sourcepub fn border(
self,
f: impl for<'a> FnOnce(&'a mut BorderBuilder) -> &'a mut BorderBuilder,
) -> Self
pub fn border( self, f: impl for<'a> FnOnce(&'a mut BorderBuilder) -> &'a mut BorderBuilder, ) -> Self
Configures border properties using a closure.
Sourcepub fn image(self, data: impl Into<ImageSource>) -> Self
pub fn image(self, data: impl Into<ImageSource>) -> Self
Sets the image data for this element.
Accepts anything that implements Into<ImageSource>:
&'static GraphicAsset: static file path or embedded bytesTexture2D: pre-existing GPU texture handletinyvg::format::Image: procedural TinyVG scene graph (requirestinyvgfeature)
Sourcepub fn effect(
self,
asset: &ShaderAsset,
f: impl FnOnce(&mut ShaderBuilder<'_>),
) -> Self
pub fn effect( self, asset: &ShaderAsset, f: impl FnOnce(&mut ShaderBuilder<'_>), ) -> Self
Sourcepub fn shader(
self,
asset: &ShaderAsset,
f: impl FnOnce(&mut ShaderBuilder<'_>),
) -> Self
pub fn shader( self, asset: &ShaderAsset, f: impl FnOnce(&mut ShaderBuilder<'_>), ) -> Self
Adds a group shader that captures the lement and its children to an offscreen buffer, then applies a fragment shader as a post-process.
Multiple .shader() calls are supported, each adds a nesting level.
The first shader is applied innermost (directly to children), subsequent
shaders wrap earlier ones.
§Example
ui.element()
.shader(&FOIL_EFFECT, |s| s
.uniform("time", time)
.uniform("seed", card_seed)
)
.children(|ui| {
// All children captured to offscreen buffer
});Sourcepub fn rotate_visual(
self,
f: impl for<'a> FnOnce(&'a mut VisualRotationBuilder) -> &'a mut VisualRotationBuilder,
) -> Self
pub fn rotate_visual( self, f: impl for<'a> FnOnce(&'a mut VisualRotationBuilder) -> &'a mut VisualRotationBuilder, ) -> Self
Applies a visual rotation to the element and all its children.
This renders the element to an offscreen buffer and draws it back with rotation, flip, and pivot applied.
It does not affect layout.
When combined with .shader(), the rotation shares the same render
target (no extra GPU cost).
§Example
ui.element()
.rotate_visual(|r| r
.degrees(15.0)
.pivot((0.5, 0.5))
.flip_x()
)
.children(|ui| { /* ... */ });Sourcepub fn rotate_shape(
self,
f: impl for<'a> FnOnce(&'a mut ShapeRotationBuilder) -> &'a mut ShapeRotationBuilder,
) -> Self
pub fn rotate_shape( self, f: impl for<'a> FnOnce(&'a mut ShapeRotationBuilder) -> &'a mut ShapeRotationBuilder, ) -> Self
Applies vertex-level shape rotation to this element’s geometry.
Rotates the element’s own rectangle / image / border at the vertex level and adjusts its layout bounding box.
Children, text, and shaders are not affected.
There is no pivot.
§Example
ui.element()
.rotate_shape(|r| r.degrees(45.0).flip_x())
.empty();Sourcepub fn accessibility(
self,
f: impl for<'a> FnOnce(&'a mut AccessibilityBuilder) -> &'a mut AccessibilityBuilder,
) -> Self
pub fn accessibility( self, f: impl for<'a> FnOnce(&'a mut AccessibilityBuilder) -> &'a mut AccessibilityBuilder, ) -> Self
Sourcepub fn preserve_focus(self) -> Self
pub fn preserve_focus(self) -> Self
When set, clicking this element will not steal focus. Use this for toolbar buttons that modify a text input’s content without unfocusing it.
Sourcepub fn on_hover<F>(self, callback: F) -> Self
pub fn on_hover<F>(self, callback: F) -> Self
Registers a callback invoked every frame the pointer is over this element.
Sourcepub fn on_press<F>(self, callback: F) -> Self
pub fn on_press<F>(self, callback: F) -> Self
Registers a callback that fires once when the element is pressed (pointer click or Enter/Space on focused element).
Sourcepub fn on_release<F>(self, callback: F) -> Self
pub fn on_release<F>(self, callback: F) -> Self
Registers a callback that fires once when the element is released (pointer release or key release on focused element).
Sourcepub fn on_focus<F>(self, callback: F) -> Self
pub fn on_focus<F>(self, callback: F) -> Self
Registers a callback that fires when this element receives focus
(via Tab navigation, arrow keys, or programmatic set_focus).
Sourcepub fn on_unfocus<F>(self, callback: F) -> Self
pub fn on_unfocus<F>(self, callback: F) -> Self
Registers a callback that fires when this element loses focus.
Sourcepub fn text_input(
self,
f: impl for<'a> FnOnce(&'a mut TextInputBuilder) -> &'a mut TextInputBuilder,
) -> Self
pub fn text_input( self, f: impl for<'a> FnOnce(&'a mut TextInputBuilder) -> &'a mut TextInputBuilder, ) -> Self
Configures this element as a text input.
The element will capture keyboard input when focused and render text, cursor, and selection internally.
§Example
ui.element()
.id("username")
.text_input(|t| t
.placeholder("Enter username")
.max_length(32)
.font_size(18)
.on_changed(|text| println!("Text changed: {}", text))
.on_submit(|text| println!("Submitted: {}", text))
)
.empty();Auto Trait Implementations§
impl<'ply, CustomElementData> Freeze for ElementBuilder<'ply, CustomElementData>where
CustomElementData: Freeze,
impl<'ply, CustomElementData = ()> !RefUnwindSafe for ElementBuilder<'ply, CustomElementData>
impl<'ply, CustomElementData = ()> !Send for ElementBuilder<'ply, CustomElementData>
impl<'ply, CustomElementData = ()> !Sync for ElementBuilder<'ply, CustomElementData>
impl<'ply, CustomElementData> Unpin for ElementBuilder<'ply, CustomElementData>where
CustomElementData: Unpin,
impl<'ply, CustomElementData> UnsafeUnpin for ElementBuilder<'ply, CustomElementData>where
CustomElementData: UnsafeUnpin,
impl<'ply, CustomElementData = ()> !UnwindSafe for ElementBuilder<'ply, CustomElementData>
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> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
Source§fn round_into(self) -> U
fn round_into(self) -> U
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.