Skip to main content

HitGrid

Struct HitGrid 

Source
pub struct HitGrid { /* private fields */ }
Expand description

Hit testing grid for mouse interaction.

Maps screen positions to widget IDs, enabling widgets to receive mouse events for their regions.

Implementations§

Source§

impl HitGrid

Source

pub fn new(width: u16, height: u16) -> Self

Create a new hit grid with the given dimensions.

Source

pub const fn width(&self) -> u16

Grid width.

Source

pub const fn height(&self) -> u16

Grid height.

Source

pub fn get(&self, x: u16, y: u16) -> Option<&HitCell>

Get the hit cell at (x, y).

Source

pub fn get_mut(&mut self, x: u16, y: u16) -> Option<&mut HitCell>

Get mutable reference to hit cell at (x, y).

Source

pub fn register( &mut self, rect: Rect, widget_id: HitId, region: HitRegion, data: HitData, )

Register a clickable region with the given hit metadata.

All cells within the rectangle will map to this hit cell.

Source

pub fn hit_test(&self, x: u16, y: u16) -> Option<(HitId, HitRegion, HitData)>

Hit test at the given position.

Returns the hit tuple if a region is registered at (x, y).

Source

pub fn hits_in(&self, rect: Rect) -> Vec<(HitId, HitRegion, HitData)>

Return all hits within the given rectangle.

Source

pub fn clear(&mut self)

Clear all hit regions.

Trait Implementations§

Source§

impl Clone for HitGrid

Source§

fn clone(&self) -> HitGrid

Returns a duplicate 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 HitGrid

Source§

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

Formats the value using the given formatter. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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,

Source§

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>,

Source§

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>,

Source§

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.