Struct egui::memory::Interaction

source ·
pub(crate) struct Interaction {
    pub click_id: Option<Id>,
    pub drag_id: Option<Id>,
    pub focus: Focus,
    pub drag_is_window: bool,
    pub click_interest: bool,
    pub drag_interest: bool,
}
Expand description

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§

§click_id: Option<Id>

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

§drag_id: Option<Id>

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

§focus: Focus§drag_is_window: bool

HACK: windows have low priority on dragging. This is so that if you drag a slider in a window, the slider will steal the drag away from the window. This is needed because we do window interaction first (to prevent frame delay), and then do content layout.

§click_interest: bool

Any interest in catching clicks this frame? Cleared to false at start of each frame.

§drag_interest: bool

Any interest in catching clicks this frame? Cleared to false at start of each frame.

Implementations§

source§

impl Interaction

source

pub fn is_using_pointer(&self) -> bool

Are we currently clicking or dragging an egui widget?

source

fn begin_frame(&mut self, prev_input: &InputState, new_input: &RawInput)

Trait Implementations§

source§

impl Clone for Interaction

source§

fn clone(&self) -> Interaction

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 Interaction

source§

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

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

impl Default for Interaction

source§

fn default() -> Interaction

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

impl Widget for &Interaction

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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere 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 Twhere 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 Twhere 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 Twhere T: 'static + Any + Clone + Send + Sync,