pub struct ElementInputHandler<V> { /* private fields */ }Expand description
The canonical implementation of [crate::PlatformInputHandler]. Call Window::handle_input
with an instance during your element’s paint.
Implementations§
Source§impl<V: 'static> ElementInputHandler<V>
impl<V: 'static> ElementInputHandler<V>
Trait Implementations§
Source§impl<V: EntityInputHandler> InputHandler for ElementInputHandler<V>
impl<V: EntityInputHandler> InputHandler for ElementInputHandler<V>
Source§fn selected_text_range(
&mut self,
ignore_disabled_input: bool,
window: &mut Window,
cx: &mut App,
) -> Option<UTF16Selection>
fn selected_text_range( &mut self, ignore_disabled_input: bool, window: &mut Window, cx: &mut App, ) -> Option<UTF16Selection>
Get the range of the user’s currently selected text, if any
Corresponds to selectedRange() Read more
Source§fn marked_text_range(
&mut self,
window: &mut Window,
cx: &mut App,
) -> Option<Range<usize>>
fn marked_text_range( &mut self, window: &mut Window, cx: &mut App, ) -> Option<Range<usize>>
Get the range of the currently marked text, if any
Corresponds to markedRange() Read more
Source§fn text_for_range(
&mut self,
range_utf16: Range<usize>,
adjusted_range: &mut Option<Range<usize>>,
window: &mut Window,
cx: &mut App,
) -> Option<String>
fn text_for_range( &mut self, range_utf16: Range<usize>, adjusted_range: &mut Option<Range<usize>>, window: &mut Window, cx: &mut App, ) -> Option<String>
Get the text for the given document range in UTF-16 characters
Corresponds to attributedSubstring(forProposedRange: actualRange:) Read more
Source§fn replace_text_in_range(
&mut self,
replacement_range: Option<Range<usize>>,
text: &str,
window: &mut Window,
cx: &mut App,
)
fn replace_text_in_range( &mut self, replacement_range: Option<Range<usize>>, text: &str, window: &mut Window, cx: &mut App, )
Replace the text in the given document range with the given text
Corresponds to insertText(_:replacementRange:) Read more
Source§fn replace_and_mark_text_in_range(
&mut self,
range_utf16: Option<Range<usize>>,
new_text: &str,
new_selected_range: Option<Range<usize>>,
window: &mut Window,
cx: &mut App,
)
fn replace_and_mark_text_in_range( &mut self, range_utf16: Option<Range<usize>>, new_text: &str, new_selected_range: Option<Range<usize>>, window: &mut Window, cx: &mut App, )
Replace the text in the given document range with the given text,
and mark the given text as part of an IME ‘composing’ state
Corresponds to setMarkedText(_:selectedRange:replacementRange:) Read more
Source§fn unmark_text(&mut self, window: &mut Window, cx: &mut App)
fn unmark_text(&mut self, window: &mut Window, cx: &mut App)
Remove the IME ‘composing’ state from the document
Corresponds to unmarkText()
Source§fn bounds_for_range(
&mut self,
range_utf16: Range<usize>,
window: &mut Window,
cx: &mut App,
) -> Option<Bounds<Pixels>>
fn bounds_for_range( &mut self, range_utf16: Range<usize>, window: &mut Window, cx: &mut App, ) -> Option<Bounds<Pixels>>
Get the bounds of the given document range in screen coordinates
Corresponds to firstRect(forCharacterRange:actualRange:) Read more
Source§fn character_index_for_point(
&mut self,
point: Point<Pixels>,
window: &mut Window,
cx: &mut App,
) -> Option<usize>
fn character_index_for_point( &mut self, point: Point<Pixels>, window: &mut Window, cx: &mut App, ) -> Option<usize>
Get the character offset for the given point in terms of UTF16 characters Read more
Source§fn accepts_text_input(&mut self, window: &mut Window, cx: &mut App) -> bool
fn accepts_text_input(&mut self, window: &mut Window, cx: &mut App) -> bool
Returns whether this handler is accepting text input to be inserted.
Source§fn apple_press_and_hold_enabled(&mut self) -> bool
fn apple_press_and_hold_enabled(&mut self) -> bool
Allows a given input context to opt into getting raw key repeats instead of
sending these to the platform.
TODO: Ideally we should be able to set ApplePressAndHoldEnabled in NSUserDefaults
(which is how iTerm does it) but it doesn’t seem to work for me.
Auto Trait Implementations§
impl<V> Freeze for ElementInputHandler<V>
impl<V> !RefUnwindSafe for ElementInputHandler<V>
impl<V> Send for ElementInputHandler<V>
impl<V> Sync for ElementInputHandler<V>
impl<V> Unpin for ElementInputHandler<V>
impl<V> !UnwindSafe for ElementInputHandler<V>
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
Mutably borrows from an owned value. Read more
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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>
Converts
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>
Converts
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