pub struct HitRegion {Show 28 fields
pub id: u64,
pub rect: Rect,
pub depth: u32,
pub on_click: Option<Rc<dyn Fn()>>,
pub on_scroll: Option<Rc<dyn Fn(Vec2) -> Vec2>>,
pub focusable: bool,
pub on_pointer_down: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_move: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_up: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_cancel: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_enter: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_leave: Option<Rc<dyn Fn(PointerEvent)>>,
pub z_index: f32,
pub on_text_change: Option<Rc<dyn Fn(String)>>,
pub on_text_submit: Option<Rc<dyn Fn(String)>>,
pub tf_state_key: Option<u64>,
pub tf_multiline: bool,
pub on_drag_start: Option<Rc<dyn Fn(DragStart) -> Option<DragPayload>>>,
pub on_drag_end: Option<Rc<dyn Fn(DragEnd)>>,
pub on_drag_enter: Option<Rc<dyn Fn(DragOver)>>,
pub on_drag_over: Option<Rc<dyn Fn(DragOver)>>,
pub on_drag_leave: Option<Rc<dyn Fn(DragOver)>>,
pub on_drop: Option<Rc<dyn Fn(DropEvent) -> bool>>,
pub on_action: Option<Rc<dyn Fn(Action) -> bool>>,
pub on_key_event: Option<Rc<dyn Fn(KeyEvent) -> bool>>,
pub on_preview_key_event: Option<Rc<dyn Fn(KeyEvent) -> bool>>,
pub cursor: Option<CursorIcon>,
pub focus_group_id: Option<u64>,
}Fields§
§id: u64§rect: Rect§depth: u32Tree depth: 0 = root, higher = deeper child. Used for three-pass pointer dispatch to determine ancestor/descendant ordering.
on_click: Option<Rc<dyn Fn()>>§on_scroll: Option<Rc<dyn Fn(Vec2) -> Vec2>>§focusable: bool§on_pointer_down: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_move: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_up: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_cancel: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_enter: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_leave: Option<Rc<dyn Fn(PointerEvent)>>§z_index: f32§on_text_change: Option<Rc<dyn Fn(String)>>§on_text_submit: Option<Rc<dyn Fn(String)>>§tf_state_key: Option<u64>If this hit region belongs to a TextField, this persistent key is used
for looking up platform-managed TextFieldState. Falls back to id if None.
tf_multiline: boolTrue if this hit region corresponds to a multiline text input (TextArea).
on_drag_start: Option<Rc<dyn Fn(DragStart) -> Option<DragPayload>>>§on_drag_end: Option<Rc<dyn Fn(DragEnd)>>§on_drag_enter: Option<Rc<dyn Fn(DragOver)>>§on_drag_over: Option<Rc<dyn Fn(DragOver)>>§on_drag_leave: Option<Rc<dyn Fn(DragOver)>>§on_drop: Option<Rc<dyn Fn(DropEvent) -> bool>>§on_action: Option<Rc<dyn Fn(Action) -> bool>>§on_key_event: Option<Rc<dyn Fn(KeyEvent) -> bool>>Called when a key event is received while this element is focused.
Return true to consume the event.
on_preview_key_event: Option<Rc<dyn Fn(KeyEvent) -> bool>>Called before on_key_event. Return true to consume before normal dispatch.
cursor: Option<CursorIcon>Cursor hint for desktop/web.
focus_group_id: Option<u64>If Some(group_id), this hit region belongs to a focus group with the
given id. Tab navigation will cycle within the group instead of moving
to elements outside it. Set automatically by the layout engine when the
element is a descendant of a node with focus_group: true.
Implementations§
Source§impl HitRegion
impl HitRegion
Sourcepub fn from_modifier(id: u64, rect: Rect, m: &Modifier) -> Self
pub fn from_modifier(id: u64, rect: Rect, m: &Modifier) -> Self
Seed a HitRegion with all the modifier’s event handlers + dnd + cursor.
Call‑sites should only override the fields that differ (on_click, focusable, etc.)
via struct‑update syntax: HitRegion { focusable: true, ..from_modifier(..) }.