pub struct InputHandlerInput<'a> {
pub computed_data: ComputedData,
pub cursor_position_rel: Option<PxPosition>,
pub cursor_events: &'a mut Vec<CursorEvent>,
pub keyboard_events: &'a mut Vec<KeyEvent>,
pub ime_events: &'a mut Vec<Ime>,
pub key_modifiers: ModifiersState,
pub requests: &'a mut WindowRequests,
pub clipboard: &'a mut Clipboard,
/* private fields */
}Expand description
Input for the input handler function (InputHandlerFn).
Note that you can modify the cursor_events and keyboard_events vectors
for exmaple block some keyboard events or cursor events to prevent them from propagating
to parent components and older brother components.
Fields§
§computed_data: ComputedDataThe size of the component node, computed during the measure stage.
cursor_position_rel: Option<PxPosition>The position of the cursor, if available. Relative to the root position of the component.
cursor_events: &'a mut Vec<CursorEvent>Cursor events from the event loop, if any.
keyboard_events: &'a mut Vec<KeyEvent>Keyboard events from the event loop, if any.
ime_events: &'a mut Vec<Ime>IME events from the event loop, if any.
key_modifiers: ModifiersStateThe current state of the keyboard modifiers at the time of the event. This allows for implementing keyboard shortcuts (e.g., Ctrl+C).
requests: &'a mut WindowRequestsA context for making requests to the window for the current frame.
clipboard: &'a mut ClipboardClipboard
Implementations§
Source§impl InputHandlerInput<'_>
impl InputHandlerInput<'_>
Sourcepub fn block_cursor(&mut self)
pub fn block_cursor(&mut self)
Blocks the cursor to other components.
Sourcepub fn block_keyboard(&mut self)
pub fn block_keyboard(&mut self)
Blocks the keyboard events to other components.
Sourcepub fn accessibility(&self) -> AccessibilityBuilderGuard<'_>
pub fn accessibility(&self) -> AccessibilityBuilderGuard<'_>
Provides a fluent API for setting accessibility information for the current component.
This method returns a builder that allows you to set various accessibility properties
like role, label, actions, and state. The accessibility information is automatically
committed when the builder is dropped or when .commit() is called explicitly.
§Example
use accesskit::{Action, Role};
use tessera_ui::tessera;
#[tessera]
fn accessible_button() {
input_handler(Box::new(|input| {
input.accessibility()
.role(Role::Button)
.label("Click me")
.focusable()
.action(Action::Click);
// Handle clicks...
}));
}Note: The builder should be committed with .commit() or allowed to drop,
which will automatically store the accessibility information in the metadata.
Sourcepub fn set_accessibility_action_handler(
&self,
handler: impl Fn(Action) + Send + Sync + 'static,
)
pub fn set_accessibility_action_handler( &self, handler: impl Fn(Action) + Send + Sync + 'static, )
Sets an action handler for accessibility actions.
This handler will be called when assistive technologies request actions like clicking, focusing, or changing values.
§Example
use accesskit::Action;
use tessera_ui::tessera;
#[tessera]
fn interactive_button() {
input_handler(Box::new(|input| {
input.set_accessibility_action_handler(|action| {
if action == Action::Click {
// Handle click from assistive technology
}
});
}));
}Auto Trait Implementations§
impl<'a> Freeze for InputHandlerInput<'a>
impl<'a> !RefUnwindSafe for InputHandlerInput<'a>
impl<'a> Send for InputHandlerInput<'a>
impl<'a> Sync for InputHandlerInput<'a>
impl<'a> Unpin for InputHandlerInput<'a>
impl<'a> !UnwindSafe for InputHandlerInput<'a>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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