ZwpInputMethodContextV1

Struct ZwpInputMethodContextV1 

Source
pub struct ZwpInputMethodContextV1 { /* private fields */ }
Available on crate feature input-method-unstable-v1 only.
Expand description

input method context

Corresponds to a text input on the input method side. An input method context is created on text input activation on the input method side. It allows receiving information about the text input from the application via events. Input method contexts do not keep state after deactivation and should be destroyed after deactivation is handled.

Text is generally UTF-8 encoded, indices and lengths are in bytes.

Serials are used to synchronize the state between the text input and an input method. New serials are sent by the text input in the commit_state request and are used by the input method to indicate the known text input state in events like preedit_string, commit_string, and keysym. The text input can then ignore events from the input method which are based on an outdated state (for example after a reset).

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

See Event for the list of possible events.

Implementations§

Source§

impl ZwpInputMethodContextV1

Source

pub fn commit_string<D>( self, conn: &mut Connection<D>, serial: u32, text: CString, )

commit string

Send the commit string text for insertion to the application.

The text to commit could be either just a single character after a key press or the result of some composing (pre-edit). It could be also an empty text when some text should be removed (see delete_surrounding_text) or when the input cursor should be moved (see cursor_position).

Any previously set composing text will be removed.

Since version 1.

Source

pub fn preedit_string<D>( self, conn: &mut Connection<D>, serial: u32, text: CString, commit: CString, )

pre-edit string

Send the pre-edit string text to the application text input.

The commit text can be used to replace the pre-edit text on reset (for example on unfocus).

Previously sent preedit_style and preedit_cursor requests are also processed by the text_input.

Since version 1.

Source

pub fn preedit_styling<D>( self, conn: &mut Connection<D>, index: u32, length: u32, style: u32, )

pre-edit styling

Set the styling information on composing text. The style is applied for length in bytes from index relative to the beginning of the composing text (as byte offset). Multiple styles can be applied to a composing text.

This request should be sent before sending a preedit_string request.

Since version 1.

Source

pub fn preedit_cursor<D>(self, conn: &mut Connection<D>, index: i32)

pre-edit cursor

Set the cursor position inside the composing text (as byte offset) relative to the start of the composing text.

When index is negative no cursor should be displayed.

This request should be sent before sending a preedit_string request.

Since version 1.

Source

pub fn delete_surrounding_text<D>( self, conn: &mut Connection<D>, index: i32, length: u32, )

delete text

Remove the surrounding text.

This request will be handled on the text_input side directly following a commit_string request.

Since version 1.

Source

pub fn cursor_position<D>( self, conn: &mut Connection<D>, index: i32, anchor: i32, )

set cursor to a new position

Set the cursor and anchor to a new position. Index is the new cursor position in bytes (when >= 0 this is relative to the end of the inserted text, otherwise it is relative to the beginning of the inserted text). Anchor is the new anchor position in bytes (when >= 0 this is relative to the end of the inserted text, otherwise it is relative to the beginning of the inserted text). When there should be no selected text, anchor should be the same as index.

This request will be handled on the text_input side directly following a commit_string request.

Since version 1.

Source

pub fn modifiers_map<D>(self, conn: &mut Connection<D>, map: Vec<u8>)

Since version 1.

Source

pub fn keysym<D>( self, conn: &mut Connection<D>, serial: u32, time: u32, sym: u32, state: u32, modifiers: u32, )

keysym

Notify when a key event was sent. Key events should not be used for normal text input operations, which should be done with commit_string, delete_surrounding_text, etc. The key event follows the wl_keyboard key event convention. Sym is an XKB keysym, state is a wl_keyboard key_state.

Since version 1.

Source

pub fn grab_keyboard<D>(self, conn: &mut Connection<D>) -> WlKeyboard

grab hardware keyboard

Allow an input method to receive hardware keyboard input and process key events to generate text events (with pre-edit) over the wire. This allows input methods which compose multiple key events for inputting text like it is done for CJK languages.

Since version 1.

Source

pub fn grab_keyboard_with_cb<D>( self, conn: &mut Connection<D>, cb: impl FnMut(EventCtx<'_, D, WlKeyboard>) + Send + 'static, ) -> WlKeyboard

grab hardware keyboard

Allow an input method to receive hardware keyboard input and process key events to generate text events (with pre-edit) over the wire. This allows input methods which compose multiple key events for inputting text like it is done for CJK languages.

Since version 1.

Source

pub fn key<D>( self, conn: &mut Connection<D>, serial: u32, time: u32, key: u32, state: u32, )

forward key event

Forward a wl_keyboard::key event to the client that was not processed by the input method itself. Should be used when filtering key events with grab_keyboard. The arguments should be the ones from the wl_keyboard::key event.

For generating custom key events use the keysym request instead.

Since version 1.

Source

pub fn modifiers<D>( self, conn: &mut Connection<D>, serial: u32, mods_depressed: u32, mods_latched: u32, mods_locked: u32, group: u32, )

forward modifiers event

Forward a wl_keyboard::modifiers event to the client that was not processed by the input method itself. Should be used when filtering key events with grab_keyboard. The arguments should be the ones from the wl_keyboard::modifiers event.

Since version 1.

Source

pub fn language<D>( self, conn: &mut Connection<D>, serial: u32, language: CString, )

Since version 1.

Source

pub fn text_direction<D>( self, conn: &mut Connection<D>, serial: u32, direction: u32, )

Since version 1.

Trait Implementations§

Source§

impl Borrow<ObjectId> for ZwpInputMethodContextV1

Source§

fn borrow(&self) -> &ObjectId

Immutably borrows from an owned value. Read more
Source§

impl Clone for ZwpInputMethodContextV1

Source§

fn clone(&self) -> ZwpInputMethodContextV1

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 ZwpInputMethodContextV1

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Hash for ZwpInputMethodContextV1

Source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for ZwpInputMethodContextV1

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq<ObjectId> for ZwpInputMethodContextV1

Source§

fn eq(&self, other: &ObjectId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<ZwpInputMethodContextV1> for ObjectId

Source§

fn eq(&self, other: &ZwpInputMethodContextV1) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq for ZwpInputMethodContextV1

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for ZwpInputMethodContextV1

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Proxy for ZwpInputMethodContextV1

Source§

impl TryFrom<Object> for ZwpInputMethodContextV1

Source§

type Error = WrongObject

The type returned in the event of a conversion error.
Source§

fn try_from(object: Object) -> Result<Self, WrongObject>

Performs the conversion.
Source§

impl Copy for ZwpInputMethodContextV1

Source§

impl Eq for ZwpInputMethodContextV1

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.