Struct egui::PointerState
source · pub struct PointerState { /* private fields */ }
Expand description
Mouse or touch state.
Implementations§
source§impl PointerState
impl PointerState
sourcepub fn motion(&self) -> Option<Vec2>
pub fn motion(&self) -> Option<Vec2>
How much the mouse moved since the last frame, in unspecified units. Represents the actual movement of the mouse, without acceleration or clamped by screen edges. May be unavailable on some integrations.
sourcepub fn velocity(&self) -> Vec2
pub fn velocity(&self) -> Vec2
Current velocity of pointer.
This is smoothed over a few frames, but can be ZERO when frame-rate is bad.
sourcepub fn direction(&self) -> Vec2
pub fn direction(&self) -> Vec2
Current direction of the pointer.
This is less sensitive to bad framerate than Self::velocity
.
sourcepub fn press_origin(&self) -> Option<Pos2>
pub fn press_origin(&self) -> Option<Pos2>
Where did the current click/drag originate?
None
if no mouse button is down.
sourcepub fn press_start_time(&self) -> Option<f64>
pub fn press_start_time(&self) -> Option<f64>
When did the current click/drag originate?
None
if no mouse button is down.
sourcepub fn latest_pos(&self) -> Option<Pos2>
pub fn latest_pos(&self) -> Option<Pos2>
Latest reported pointer position.
When tapping a touch screen, this will be None
.
sourcepub fn hover_pos(&self) -> Option<Pos2>
pub fn hover_pos(&self) -> Option<Pos2>
If it is a good idea to show a tooltip, where is pointer?
sourcepub fn interact_pos(&self) -> Option<Pos2>
pub fn interact_pos(&self) -> Option<Pos2>
If you detect a click or drag and wants to know where it happened, use this.
Latest position of the mouse, but ignoring any Event::PointerGone
if there were interactions this frame.
When tapping a touch screen, this will be the location of the touch.
sourcepub fn has_pointer(&self) -> bool
pub fn has_pointer(&self) -> bool
Do we have a pointer?
false
if the mouse is not over the egui area, or if no touches are down on touch screens.
sourcepub fn is_still(&self) -> bool
pub fn is_still(&self) -> bool
Is the pointer currently still?
This is smoothed so a few frames of stillness is required before this returns true
.
sourcepub fn is_moving(&self) -> bool
pub fn is_moving(&self) -> bool
Is the pointer currently moving?
This is smoothed so a few frames of stillness is required before this returns false
.
sourcepub fn time_since_last_movement(&self) -> f32
pub fn time_since_last_movement(&self) -> f32
How long has it been (in seconds) since the pointer was last moved?
sourcepub fn time_since_last_click(&self) -> f32
pub fn time_since_last_click(&self) -> f32
How long has it been (in seconds) since the pointer was clicked?
sourcepub fn any_pressed(&self) -> bool
pub fn any_pressed(&self) -> bool
Was any pointer button pressed (!down -> down
) this frame?
This can sometimes return true
even if any_down() == false
because a press can be shorted than one frame.
sourcepub fn any_released(&self) -> bool
pub fn any_released(&self) -> bool
Was any pointer button released (down -> !down
) this frame?
Was the button given pressed this frame?
Was the button given released this frame?
sourcepub fn primary_pressed(&self) -> bool
pub fn primary_pressed(&self) -> bool
Was the primary button pressed this frame?
sourcepub fn secondary_pressed(&self) -> bool
pub fn secondary_pressed(&self) -> bool
Was the secondary button pressed this frame?
sourcepub fn primary_released(&self) -> bool
pub fn primary_released(&self) -> bool
Was the primary button released this frame?
sourcepub fn secondary_released(&self) -> bool
pub fn secondary_released(&self) -> bool
Was the secondary button released this frame?
Was the given pointer button given clicked this frame?
Returns true on double- and triple- clicks too.
Was the button given double clicked this frame?
Was the button given triple clicked this frame?
sourcepub fn primary_clicked(&self) -> bool
pub fn primary_clicked(&self) -> bool
Was the primary button clicked this frame?
sourcepub fn secondary_clicked(&self) -> bool
pub fn secondary_clicked(&self) -> bool
Was the secondary button clicked this frame?
Is this button currently down?
If the pointer button is down, will it register as a click when released?
See also Self::is_decidedly_dragging
.
sourcepub fn is_decidedly_dragging(&self) -> bool
pub fn is_decidedly_dragging(&self) -> bool
Just because the mouse is down doesn’t mean we are dragging. We could be at the start of a click. But if the mouse is down long enough, or has moved far enough, then we consider it a drag.
This function can return true on the same frame the drag is released, but NOT on the first frame it was started.
See also Self::could_any_button_be_click
.
sourcepub fn primary_down(&self) -> bool
pub fn primary_down(&self) -> bool
Is the primary button currently down?
sourcepub fn secondary_down(&self) -> bool
pub fn secondary_down(&self) -> bool
Is the secondary button currently down?
sourcepub fn middle_down(&self) -> bool
pub fn middle_down(&self) -> bool
Is the middle button currently down?
Trait Implementations§
source§impl Clone for PointerState
impl Clone for PointerState
source§fn clone(&self) -> PointerState
fn clone(&self) -> PointerState
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PointerState
impl Debug for PointerState
source§impl Default for PointerState
impl Default for PointerState
source§impl<'de> Deserialize<'de> for PointerState
impl<'de> Deserialize<'de> for PointerState
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for PointerState
impl RefUnwindSafe for PointerState
impl Send for PointerState
impl Sync for PointerState
impl Unpin for PointerState
impl UnwindSafe for PointerState
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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>
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>
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