Skip to main content

ElementInputHandler

Struct ElementInputHandler 

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

Source

pub fn new(element_bounds: Bounds<Pixels>, view: Entity<V>) -> Self

Used in Element::paint with the element’s bounds, a Window, and a App context.

Trait Implementations§

Source§

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>

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

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>

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

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

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)

Remove the IME ‘composing’ state from the document Corresponds to unmarkText()
Source§

fn paste(&mut self, item: ClipboardItem, window: &mut Window, cx: &mut App)

Insert a platform-initiated paste at the current selection. Read more
Source§

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>

Get the character offset for the given point in terms of UTF16 characters Read more
Source§

fn set_selected_text_range( &mut self, range_utf16: Range<usize>, window: &mut Window, cx: &mut App, )

Set the range of the user’s currently selected text. Read more
Source§

fn element_bounds( &mut self, _window: &mut Window, _cx: &mut App, ) -> Option<Bounds<Pixels>>

Get the bounds of the focused text element in window coordinates, if known. Read more
Source§

fn text_length_utf16( &mut self, window: &mut Window, cx: &mut App, ) -> Option<usize>

Get the length of the document in UTF-16 characters, if known.
Source§

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 prefers_ime_for_printable_keys( &mut self, window: &mut Window, cx: &mut App, ) -> bool

Returns whether printable keys should be routed to the IME before keybinding matching when a non-ASCII input source (e.g. Japanese, Korean, Chinese IME) is active. This prevents multi-stroke keybindings like jj from intercepting keys that the IME should compose. Read more
Source§

fn text_input_configuration( &mut self, window: &mut Window, cx: &mut App, ) -> TextInputConfiguration

Get this handler’s preferences for platform text assistance. Read more
Source§

fn text_input_editable_range( &mut self, window: &mut Window, cx: &mut App, ) -> Option<Range<usize>>

The contiguous range of text, in UTF-16 code units, that platform text input may read and edit around the current selection. Read more
Source§

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> !RefUnwindSafe for ElementInputHandler<V>

§

impl<V> !UnwindSafe for ElementInputHandler<V>

§

impl<V> Freeze for ElementInputHandler<V>
where Entity<V>: Freeze,

§

impl<V> Send for ElementInputHandler<V>
where Entity<V>: Send,

§

impl<V> Sync for ElementInputHandler<V>
where Entity<V>: Sync,

§

impl<V> Unpin for ElementInputHandler<V>
where Entity<V>: Unpin,

§

impl<V> UnsafeUnpin for ElementInputHandler<V>
where Entity<V>: UnsafeUnpin,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more