pub struct GrabBuilder { /* private fields */ }
Expand description
Bulider pattern (see PressStart::grab
)
Conclude by calling Self::complete
.
Implementations§
Source§impl GrabBuilder
impl GrabBuilder
Sourcepub fn with_icon(self, icon: CursorIcon) -> Self
pub fn with_icon(self, icon: CursorIcon) -> Self
Set cursor icon (default: do not set)
Sourcepub fn with_opt_icon(self, icon: Option<CursorIcon>) -> Self
pub fn with_opt_icon(self, icon: Option<CursorIcon>) -> Self
Optionally set cursor icon (default: do not set)
Sourcepub fn complete(self, cx: &mut EventCx<'_>) -> IsUsed
pub fn complete(self, cx: &mut EventCx<'_>) -> IsUsed
Complete the grab, providing the EventCx
In case of an existing grab for the same source
,
- If the
Id
differs this fails (returnsUnused
) - If the
MouseButton
differs this fails (technically this is a differentsource
, but simultaneous grabs of multiple mouse buttons are not supported). - If one grab is a pan and the other is not, this fails
GrabMode::Click
may be upgraded toGrabMode::Grab
- Changing from one pan mode to another is an error
- Mouse button repetitions may be increased; decreasing is an error
- A
CursorIcon
may be set - The depress target is re-set to the grabbing widget
Note: error conditions are only checked in debug builds. These cases may need revision.
Auto Trait Implementations§
impl Freeze for GrabBuilder
impl RefUnwindSafe for GrabBuilder
impl !Send for GrabBuilder
impl !Sync for GrabBuilder
impl Unpin for GrabBuilder
impl UnwindSafe for GrabBuilder
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
Mutably borrows from an owned value. Read more
Source§impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
Source§fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
Source§fn cast_approx(self) -> T
fn cast_approx(self) -> T
Source§impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
Source§fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Cast to integer, truncating Read more
Source§fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Cast to the nearest integer Read more
Source§fn cast_floor(self) -> T
fn cast_floor(self) -> T
Cast the floor to an integer Read more
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>
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>
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)
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)
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> 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>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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