Skip to main content

Ply

Struct Ply 

Source
pub struct Ply<CustomElementData: Clone + Default + Debug = ()> { /* private fields */ }

Implementations§

Source§

impl<CustomElementData: Clone + Default + Debug> Ply<CustomElementData>

Source

pub fn begin(&mut self) -> Ui<'_, CustomElementData>

Starts a new frame, returning a Ui handle for building the element tree.

Source

pub async fn new(default_font: &'static FontAsset) -> Self

Create a new Ply engine with the given default font.

Source

pub fn new_headless(dimensions: Dimensions) -> Self

Create a new Ply engine without text measurement.

Use Ply::set_measure_text_function to configure text measurement before rendering any text elements.

Source

pub fn pointer_over(&self, cfg: impl Into<Id>) -> bool

Returns true if the pointer is currently over the element with the given ID.

Source

pub fn pointer_over_ids(&self) -> Vec<Id>

Z-sorted list of element IDs that the cursor is currently over

Source

pub fn set_measure_text_function<F>(&mut self, callback: F)
where F: Fn(&str, &TextConfig) -> Dimensions + 'static,

Set the callback for text measurement

Source

pub fn max_element_count(&mut self, max_element_count: u32)

Sets the maximum number of elements that ply supports Use only if you know what you are doing or you’re getting errors from ply

Source

pub fn max_measure_text_cache_word_count(&mut self, count: u32)

Sets the capacity of the cache used for text in the measure text function Use only if you know what you are doing or you’re getting errors from ply

Source

pub fn set_debug_mode(&mut self, enable: bool)

Enables or disables the debug mode of ply

Source

pub fn is_debug_mode(&self) -> bool

Returns if debug mode is enabled

Source

pub fn set_culling(&mut self, enable: bool)

Enables or disables culling

Source

pub fn set_layout_dimensions(&mut self, dimensions: Dimensions)

Sets the dimensions of the global layout. Use if, for example the window size you render changed.

Source

pub fn pointer_state(&mut self, position: Vector2, is_down: bool)

Updates the state of the pointer for ply. Used to update scroll containers and for interactions functions.

Source

pub fn update_scroll_containers( &mut self, drag_scrolling_enabled: bool, scroll_delta: Vector2, delta_time: f32, )

Processes scroll containers using the current pointer state and scroll delta.

Source

pub fn focused_element(&self) -> Option<Id>

Returns the ID of the currently focused element, or None.

Source

pub fn set_focus(&mut self, id: impl Into<Id>)

Sets focus to the element with the given ID.

Source

pub fn clear_focus(&mut self)

Clears focus (no element is focused).

Source

pub fn get_text_value(&self, id: impl Into<Id>) -> &str

Returns the text value of a text input element. Returns an empty string if the element is not a text input or doesn’t exist.

Source

pub fn set_text_value(&mut self, id: impl Into<Id>, value: &str)

Sets the text value of a text input element.

Source

pub fn get_cursor_pos(&self, id: impl Into<Id>) -> usize

Returns the cursor position of a text input element. Returns 0 if the element is not a text input or doesn’t exist.

Source

pub fn set_cursor_pos(&mut self, id: impl Into<Id>, pos: usize)

Sets the cursor position of a text input element. Clamps to the text length and clears any selection.

Source

pub fn get_selection_range(&self, id: impl Into<Id>) -> Option<(usize, usize)>

Returns the selection range (start, end) for a text input element, or None.

Source

pub fn set_selection(&mut self, id: impl Into<Id>, anchor: usize, cursor: usize)

Sets the selection range for a text input element. anchor is where selection started, cursor is where it ends.

Source

pub fn is_pressed(&self, id: impl Into<Id>) -> bool

Returns true if the given element is currently pressed.

Source

pub fn bounding_box(&self, id: impl Into<Id>) -> Option<BoundingBox>

Returns the bounding box of the element with the given ID, if it exists.

Source

pub fn scroll_container_data( &self, id: impl Into<Id>, ) -> Option<ScrollContainerData>

Returns scroll container state for the element with the given ID, if it is a scroll container.

Source

pub fn eval(&mut self) -> Vec<RenderCommand<CustomElementData>>

Evaluate the layout and return all render commands.

Source

pub async fn show( &mut self, handle_custom_command: impl Fn(&RenderCommand<CustomElementData>), )

Evaluate the layout and render all commands.

Auto Trait Implementations§

§

impl<CustomElementData> Freeze for Ply<CustomElementData>

§

impl<CustomElementData = ()> !RefUnwindSafe for Ply<CustomElementData>

§

impl<CustomElementData = ()> !Send for Ply<CustomElementData>

§

impl<CustomElementData = ()> !Sync for Ply<CustomElementData>

§

impl<CustomElementData> Unpin for Ply<CustomElementData>
where CustomElementData: Unpin,

§

impl<CustomElementData> UnsafeUnpin for Ply<CustomElementData>

§

impl<CustomElementData = ()> !UnwindSafe for Ply<CustomElementData>

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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> RoundFrom<T> for T

Source§

fn round_from(x: T) -> T

Performs the conversion.
Source§

impl<T, U> RoundInto<U> for T
where U: RoundFrom<T>,

Source§

fn round_into(self) -> U

Performs the conversion.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .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
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .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
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,