Struct zng_app::widget::node::EditableUiNodeListRef

source ·
pub struct EditableUiNodeListRef(/* private fields */);
Expand description

Represents a sender to an EditableUiNodeList.

Implementations§

source§

impl EditableUiNodeListRef

source

pub fn dummy() -> Self

New reference to no list.

alive is always false for the returned list.

source

pub fn alive(&self) -> bool

Returns true if the EditableUiNodeList still exists.

source

pub fn insert(&self, index: usize, widget: impl UiNode)

Request an update for the insertion of the widget.

The index is resolved after all remove requests, if it is out-of-bounds the widget is pushed.

The widget will be inserted, inited and the info tree updated.

source

pub fn push(&self, widget: impl UiNode)

Request an update for the insertion of the widget at the end of the list.

The widget will be pushed after all insert requests.

The widget will be inserted, inited and the info tree updated.

source

pub fn remove(&self, id: impl Into<WidgetId>)

Request an update for the removal of the widget identified by id.

The widget will be deinited, dropped and the info tree will update. Nothing happens if the widget is not found.

source

pub fn retain( &self, predicate: impl FnMut(&mut BoxedUiNode) -> bool + Send + 'static, )

Request a filtered mass removal of nodes in the list.

Each node not retained will be deinited, dropped and the info tree will update if any was removed.

Note that the predicate may be called on the same node multiple times or called in any order.

source

pub fn move_index(&self, remove_index: usize, insert_index: usize)

Request a widget remove and re-insert.

If the remove_index is out of bounds nothing happens, if the insert_index is out-of-bounds the widget is pushed to the end of the vector, if remove_index and insert_index are equal nothing happens.

Move requests happen after all other requests.

source

pub fn move_id( &self, id: impl Into<WidgetId>, get_move_to: fn(_: usize, _: usize) -> usize, )

Request a widget move, the widget is searched by id, if found get_move_to id called with the index of the widget and length of the vector, it must return the index the widget is inserted after it is removed.

If the widget is not found nothing happens, if the returned index is the same nothing happens, if the returned index is out-of-bounds the widget if pushed to the end of the vector.

Move requests happen after all other requests.

§Examples

If the widget vectors is layout as a vertical stack to move the widget up by one stopping at the top:

items.move_id("my-widget", |i, _len| i.saturating_sub(1));

And to move down stopping at the bottom:

items.move_id("my-widget", |i, _len| i.saturating_add(1));

Note that if the returned index overflows the length the widget is pushed as the last item.

The length can be used for implementing wrapping move down:

items.move_id("my-widget", |i, len| {
    let next = i + 1;
    if next < len { next } else { 0 }
});
source

pub fn clear(&self)

Request a removal of all current widgets.

All other requests will happen after the clear.

Trait Implementations§

source§

impl Clone for EditableUiNodeListRef

source§

fn clone(&self) -> EditableUiNodeListRef

Returns a copy 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 Debug for EditableUiNodeListRef

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. 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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> StateValue for T
where T: Any + Send + Sync,