pub struct Drake { /* private fields */ }Expand description
Interface provided by Dragula to interact with active drag-and-drop system
§Example:
use dragula::*;
let doc = web_sys::window().unwrap().document().unwrap();
let element_1 = doc.get_element_by_id("drag-container-1").unwrap();
let element_2 = doc.get_element_by_id("drag-container-2").unwrap();
let mut drake = dragula(&[element_1]);
drake.add_container(element_2);
Implementations§
Source§impl Drake
impl Drake
Sourcepub fn end(&self)
pub fn end(&self)
Gracefully end the drag event as if using the last position marked by
the preview shadow as the drop target. The proper cancel or drop
event will be fired, depending on whether the item was dropped back
where it was originally lifted from (which is essentially a no-op
that’s treated as a cancel event).
Source§impl Drake
impl Drake
Sourcepub fn cancel(&self)
pub fn cancel(&self)
If an element managed by Drake is currently being dragged, this method
will gracefully cancel the drag action.
Note that a “cancellation” will result in a cancel event only in
the following scenarios.
revert_on_spillistrue- Drop target (as previewed by the feedback shadow) is the source container and the item is dropped in the same position where it was originally dragged from
Source§impl Drake
impl Drake
Sourcepub fn cancel_with_revert(&self, revert: bool)
pub fn cancel_with_revert(&self, revert: bool)
If an element managed by Drake is currently being dragged, this method
will gracefully cancel the drag action. If true is passed to this
function, it will effectively produce the same result as if
revert_on_spill is true.
revert_on_spillistrue- Drop target (as previewed by the feedback shadow) is the source container and the item is dropped in the same position where it was originally dragged from
Source§impl Drake
impl Drake
Sourcepub fn containers(&self) -> Vec<JsValue>
pub fn containers(&self) -> Vec<JsValue>
Gets the active containers currently allowing dragging
Requires that feature js-sys be turned on (it is on by default)
Sourcepub fn set_containers<T>(&mut self, objs: &[T])
pub fn set_containers<T>(&mut self, objs: &[T])
Sets the list of active containers for dragging. This overrides the list that is currently there.
Sourcepub fn add_container<T>(&mut self, obj: T)where
T: JsCast,
pub fn add_container<T>(&mut self, obj: T)where
T: JsCast,
Adds to the list of active containers for dragging
Requires that feature js-sys be turned on (it is on by default)
Sourcepub fn start<T>(&mut self, item: &T)where
T: JsCast,
pub fn start<T>(&mut self, item: &T)where
T: JsCast,
Enter drag mode without a shadow. This function is most useful when
providing complementary keyboard shortcuts to an existing drag and drop
solution. Even though a shadow won’t be created at first, the user will
get one as soon as they click on item and start dragging it around.
Note that if they click and drag something else, end will be called
before picking up the new item.
Sourcepub fn can_move<T>(&self, item: &T) -> boolwhere
T: JsCast,
pub fn can_move<T>(&self, item: &T) -> boolwhere
T: JsCast,
Returns whether the Drake instance can accept drags for a DOM element
item. This function returns true when all the conditions outlined
below are met, and false otherwise.
itemis a child of one of the specified containers forDrakeitempasses the pertinentinvalidchecksitempasses amovescheck
Sourcepub fn on_drag<F>(&mut self, listener: F)
pub fn on_drag<F>(&mut self, listener: F)
Sets callback for drag event.
Callback will be passed arguments (el, source)
The drag event implies that
el was lifted from source.
Sourcepub fn on_dragend<F>(&mut self, listener: F)
pub fn on_dragend<F>(&mut self, listener: F)
Sets callback for dragend event.
Callback will be passed argument (el)
The dragend event implies that
dragging event for el ended with either cancel, remove, or drop.
Sourcepub fn on_drop<F>(&mut self, listener: F)
pub fn on_drop<F>(&mut self, listener: F)
Sets callback for drop event.
Callback will be passed arguments (el, target, source, sibling)
The drop event implies that
el was dropped into target before a sibling element, and
originally came from source.
Sourcepub fn on_cancel<F>(&mut self, listener: F)
pub fn on_cancel<F>(&mut self, listener: F)
Sets callback for cancel event.
Callback will be passed argument (el, container, source)
The cancel event implies that
el was being dragged but it got nowhere and went back into
container, its last stable parent; el originally came from source.
Sourcepub fn on_remove<F>(&mut self, listener: F)
pub fn on_remove<F>(&mut self, listener: F)
Sets callback for remove event.
Callback will be passed argument (el, container, source)
The remove event implies that
el was being dragged but it got nowhere and it was removed from the
DOM. Its last stable parent was container, and originally came from
source.
Sourcepub fn on_shadow<F>(&mut self, listener: F)
pub fn on_shadow<F>(&mut self, listener: F)
Sets callback for shadow event.
Callback will be passed argument (el, container, source)
The shadow event implies that
el, the visual aid shadow, was moved into container. May trigger
many times as the position of el changes, even within the same
container; el originally came from source.
Sourcepub fn on_over<F>(&mut self, listener: F)
pub fn on_over<F>(&mut self, listener: F)
Sets callback for over event.
Callback will be passed argument (el, container, source)
The over event implies that
el is over container, and originally came from source.
Sourcepub fn on_out<F>(&mut self, listener: F)
pub fn on_out<F>(&mut self, listener: F)
Sets callback for out event.
Callback will be passed argument (el, container, source)
The out event implies that
el was dragged out of container or dropped, and originally came from
source.
Methods from Deref<Target = JsValue>§
pub const NULL: JsValue
pub const UNDEFINED: JsValue
pub const TRUE: JsValue
pub const FALSE: JsValue
Sourcepub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
Returns the f64 value of this JS value if it’s an instance of a
number.
If this JS value is not an instance of a number then this returns
None.
Sourcepub fn as_string(&self) -> Option<String>
pub fn as_string(&self) -> Option<String>
If this JS value is a string value, this function copies the JS string
value into Wasm linear memory, encoded as UTF-8, and returns it as a
Rust String.
To avoid the copying and re-encoding, consider the
JsString::try_from() function from js-sys
instead.
If this JS value is not an instance of a string or if it’s not valid
utf-8 then this returns None.
§UTF-16 vs UTF-8
JavaScript strings in general are encoded as UTF-16, but Rust strings
are encoded as UTF-8. This can cause the Rust string to look a bit
different than the JS string sometimes. For more details see the
documentation about the str type which contains a few
caveats about the encodings.
Sourcepub fn as_bool(&self) -> Option<bool>
pub fn as_bool(&self) -> Option<bool>
Returns the bool value of this JS value if it’s an instance of a
boolean.
If this JS value is not an instance of a boolean then this returns
None.
Sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Tests whether this JS value is undefined
Sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Tests whether the type of this JS value is function.
Sourcepub fn js_in(&self, obj: &JsValue) -> bool
pub fn js_in(&self, obj: &JsValue) -> bool
Applies the binary in JS operator on the two JsValues.
Sourcepub fn loose_eq(&self, other: &JsValue) -> bool
pub fn loose_eq(&self, other: &JsValue) -> bool
Compare two JsValues for equality, using the == operator in JS.
Sourcepub fn unsigned_shr(&self, rhs: &JsValue) -> u32
pub fn unsigned_shr(&self, rhs: &JsValue) -> u32
Applies the binary >>> JS operator on the two JsValues.
Sourcepub fn checked_div(&self, rhs: &JsValue) -> JsValue
pub fn checked_div(&self, rhs: &JsValue) -> JsValue
Applies the binary / JS operator on two JsValues, catching and returning any RangeError thrown.
Sourcepub fn pow(&self, rhs: &JsValue) -> JsValue
pub fn pow(&self, rhs: &JsValue) -> JsValue
Applies the binary ** JS operator on the two JsValues.
Sourcepub fn lt(&self, other: &JsValue) -> bool
pub fn lt(&self, other: &JsValue) -> bool
Applies the binary < JS operator on the two JsValues.
Sourcepub fn le(&self, other: &JsValue) -> bool
pub fn le(&self, other: &JsValue) -> bool
Applies the binary <= JS operator on the two JsValues.
Sourcepub fn ge(&self, other: &JsValue) -> bool
pub fn ge(&self, other: &JsValue) -> bool
Applies the binary >= JS operator on the two JsValues.
Sourcepub fn gt(&self, other: &JsValue) -> bool
pub fn gt(&self, other: &JsValue) -> bool
Applies the binary > JS operator on the two JsValues.
Sourcepub fn unchecked_into_f64(&self) -> f64
pub fn unchecked_into_f64(&self) -> f64
Applies the unary + JS operator on a JsValue. Can throw.
Trait Implementations§
Source§impl FromWasmAbi for Drake
impl FromWasmAbi for Drake
Source§impl<'a> IntoWasmAbi for &'a Drake
impl<'a> IntoWasmAbi for &'a Drake
Source§impl IntoWasmAbi for Drake
impl IntoWasmAbi for Drake
Source§impl JsCast for Drake
impl JsCast for Drake
Source§fn instanceof(val: &JsValue) -> bool
fn instanceof(val: &JsValue) -> bool
instanceof check to see whether the JsValue
provided is an instance of this type. Read moreSource§fn unchecked_from_js(val: JsValue) -> Self
fn unchecked_from_js(val: JsValue) -> Self
Source§fn unchecked_from_js_ref(val: &JsValue) -> &Self
fn unchecked_from_js_ref(val: &JsValue) -> &Self
Source§fn has_type<T>(&self) -> boolwhere
T: JsCast,
fn has_type<T>(&self) -> boolwhere
T: JsCast,
T. Read moreSource§fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
T. Read moreSource§fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
T. Read moreSource§fn unchecked_into<T>(self) -> Twhere
T: JsCast,
fn unchecked_into<T>(self) -> Twhere
T: JsCast,
Source§fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
Source§impl LongRefFromWasmAbi for Drake
impl LongRefFromWasmAbi for Drake
Source§impl OptionFromWasmAbi for Drake
impl OptionFromWasmAbi for Drake
Source§impl<'a> OptionIntoWasmAbi for &'a Drake
impl<'a> OptionIntoWasmAbi for &'a Drake
Source§impl OptionIntoWasmAbi for Drake
impl OptionIntoWasmAbi for Drake
Source§impl RefFromWasmAbi for Drake
impl RefFromWasmAbi for Drake
Source§type Abi = <JsValue as RefFromWasmAbi>::Abi
type Abi = <JsValue as RefFromWasmAbi>::Abi
Self are recovered from.Source§type Anchor = ManuallyDrop<Drake>
type Anchor = ManuallyDrop<Drake>
Self for the duration of the
invocation of the function that has an &Self parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.Auto Trait Implementations§
impl Freeze for Drake
impl RefUnwindSafe for Drake
impl !Send for Drake
impl !Sync for Drake
impl Unpin for Drake
impl UnwindSafe for Drake
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> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::AbiSource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.