Struct egui::memory::InteractionState

source ·
pub(crate) struct InteractionState {
    pub potential_click_id: Option<Id>,
    pub potential_drag_id: Option<Id>,
}
Expand description

The state of the interaction in egui, i.e. what is being dragged.

Say there is a button in a scroll area. If the user clicks the button, the button should click. If the user drags the button we should scroll the scroll area. So what we do is that when the mouse is pressed we register both the button and the scroll area (as click_id/drag_id). If the user releases the button without moving the mouse we register it as a click on click_id. If the cursor moves too much we clear the click_id and start passing move events to drag_id.

Fields§

§potential_click_id: Option<Id>

A widget interested in clicks that has a mouse press on it.

§potential_drag_id: Option<Id>

A widget interested in drags that has a mouse press on it.

Note that this is set as soon as the mouse is pressed, so the widget may not yet be marked as “dragged”, as that can only happen after the mouse has moved a bit (at least if the widget is interesated in both clicks and drags).

Implementations§

source§

impl InteractionState

source

pub fn is_using_pointer(&self) -> bool

Are we currently clicking or dragging an egui widget?

Trait Implementations§

source§

impl Clone for InteractionState

source§

fn clone(&self) -> InteractionState

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for InteractionState

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for InteractionState

source§

fn default() -> InteractionState

Returns the “default value” for a type. Read more
source§

impl Widget for &InteractionState

source§

fn ui(self, ui: &mut Ui) -> Response

Allocate space, interact, paint, and return a Response. Read more

Auto Trait Implementations§

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<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,