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,
impl<State, T> DraggableView<State, T>where
State: 'static,
T: 'static,
Sourcepub fn policy(self, policy: DragPolicy) -> DraggableView<State, T>
pub fn policy(self, policy: DragPolicy) -> DraggableView<State, T>
How a press becomes a drag (default DragPolicy::Auto).
Sourcepub fn threshold(self, px: f64) -> DraggableView<State, T>
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.
Sourcepub fn hold_threshold_ms(self, ms: u64) -> DraggableView<State, T>
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.
Sourcepub fn ghost<F, V>(self, ghost: F) -> DraggableView<State, T>
pub fn ghost<F, V>(self, ghost: F) -> DraggableView<State, T>
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"))Sourcepub fn ghost_opacity(self, opacity: f32) -> DraggableView<State, T>
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.
Sourcepub fn while_dragging(self, feedback: SourceFeedback) -> DraggableView<State, T>
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,
impl<State, T> View<State> for DraggableView<State, T>where
State: 'static,
T: 'static,
Source§type Element = DraggableWidget<State, T>
type Element = DraggableWidget<State, T>
Source§fn build(
&self,
ctx: &mut BuildCtx<'_>,
) -> <DraggableView<State, T> as View<State>>::Element
fn build( &self, ctx: &mut BuildCtx<'_>, ) -> <DraggableView<State, T> as View<State>>::Element
Source§fn rebuild(
&self,
prev: &DraggableView<State, T>,
element: &mut <DraggableView<State, T> as View<State>>::Element,
ctx: &mut BuildCtx<'_>,
) -> ChangeFlags
fn rebuild( &self, prev: &DraggableView<State, T>, element: &mut <DraggableView<State, T> as View<State>>::Element, ctx: &mut BuildCtx<'_>, ) -> ChangeFlags
prev (the previous view of the same type) against the live
element, mutating it in place and reporting what changed.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>
impl<State, T> Unpin for DraggableView<State, T>
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> 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
Source§fn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
Source§fn into_taken(self) -> T
fn into_taken(self) -> T
Source§impl<State, V> ViewSeq<State, One> for Vwhere
State: 'static,
V: View<State>,
impl<State, V> ViewSeq<State, One> for Vwhere
State: 'static,
V: View<State>,
Source§fn extend_views(self, out: &mut Vec<AnyView<State>>)
fn extend_views(self, out: &mut Vec<AnyView<State>>)
out — erasing each
with AnyView::new (a no-op for an element already an AnyView).