Skip to main content

DraggableView

Struct DraggableView 

Source
pub struct DraggableView<State, T>
where State: 'static, T: 'static,
{ /* private fields */ }
Expand description

A declarative drag source. See the module docs.

Implementations§

Source§

impl<State, T> DraggableView<State, T>
where State: 'static, T: 'static,

Source

pub fn policy(self, policy: DragPolicy) -> DraggableView<State, T>

How a press becomes a drag (default DragPolicy::Auto).

Source

pub fn threshold(self, px: f64) -> DraggableView<State, T>

The distance, in logical px, a press travels before it becomes a drag under the distance policy (default DRAG_THRESHOLD). Negative values clamp to zero.

Source

pub fn hold_threshold_ms(self, ms: u64) -> DraggableView<State, T>

How long, in ms, a press is held before it becomes a drag under the long-press policy (default the gesture detector’s long-press duration, 500 ms). Floored at 1 ms.

Source

pub fn ghost<F, V>(self, ghost: F) -> DraggableView<State, T>
where F: Fn(&State) -> V + 'static, V: View<State>,

Build the ghost from the application state when the drag begins, instead of snapshotting the child. Sized by its own content, laid out loosely against the window, and painted at ghost_opacity. ghost may return any View; it is erased here.

use frust_widgets::{DragCoordinator, DraggableView, draggable, text};
draggable(text("card"), coordinator, |_: &()| 7u32).ghost(|_: &()| text("moving"))
Source

pub fn ghost_opacity(self, opacity: f32) -> DraggableView<State, T>

The opacity the ghost is painted at (default GHOST_OPACITY), clamped to 0.0..=1.0.

Source

pub fn while_dragging(self, feedback: SourceFeedback) -> DraggableView<State, T>

What the source looks like in place while it is dragged (default SourceFeedback::Dim).

Trait Implementations§

Source§

impl<State, T> View<State> for DraggableView<State, T>
where State: 'static, T: 'static,

Source§

type Element = DraggableWidget<State, T>

The retained widget this view produces.
Source§

fn build( &self, ctx: &mut BuildCtx<'_>, ) -> <DraggableView<State, T> as View<State>>::Element

Materialise a fresh widget for this view.
Source§

fn rebuild( &self, prev: &DraggableView<State, T>, element: &mut <DraggableView<State, T> as View<State>>::Element, ctx: &mut BuildCtx<'_>, ) -> ChangeFlags

Reconcile prev (the previous view of the same type) against the live element, mutating it in place and reporting what changed.
Source§

fn teardown( &self, element: &mut <DraggableView<State, T> as View<State>>::Element, ctx: &mut BuildCtx<'_>, )

Tear down element when this view is being removed. Read more
Source§

fn message(&self, _element: &mut Self::Element, _state: &mut State)

Deliver an event message to this view, mutating application state. Read more

Auto Trait Implementations§

§

impl<State, T> !RefUnwindSafe for DraggableView<State, T>

§

impl<State, T> !Send for DraggableView<State, T>

§

impl<State, T> !Sync for DraggableView<State, T>

§

impl<State, T> !UnwindSafe for DraggableView<State, T>

§

impl<State, T> Freeze for DraggableView<State, T>
where AnyView<State>: Freeze, Rc<dyn Fn(&State) -> T>: Freeze, Option<Rc<dyn Fn(&State) -> AnyView<State>>>: Freeze,

§

impl<State, T> Unpin for DraggableView<State, T>
where AnyView<State>: Unpin, Rc<dyn Fn(&State) -> T>: Unpin, Option<Rc<dyn Fn(&State) -> AnyView<State>>>: Unpin,

§

impl<State, T> UnsafeUnpin for DraggableView<State, T>
where AnyView<State>: UnsafeUnpin, Rc<dyn Fn(&State) -> T>: UnsafeUnpin, Option<Rc<dyn Fn(&State) -> AnyView<State>>>: UnsafeUnpin,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> StorageAccess<T> for T

Source§

fn as_borrowed(&self) -> &T

Borrows the value.
Source§

fn into_taken(self) -> T

Takes the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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<State, V> ViewSeq<State, One> for V
where State: 'static, V: View<State>,

Source§

fn extend_views(self, out: &mut Vec<AnyView<State>>)

Push every element of this sequence, in order, onto out — erasing each with AnyView::new (a no-op for an element already an AnyView).
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