pub trait InputMethod<T: IMVisibility + HintPurpose, D: ReceiveSurroundingText> {
// Required methods
fn new(
seat: &WlSeat,
im_manager: Main<ZwpInputMethodManagerV2>,
ui_connector: T,
content_connector: D,
) -> Self;
fn commit_string(&self, text: String) -> Result<(), SubmitError>;
fn delete_surrounding_text(
&self,
before: usize,
after: usize,
) -> Result<(), SubmitError>;
fn commit(&self) -> Result<(), SubmitError>;
fn is_active(&self) -> bool;
fn get_surrounding_text(&self) -> (String, String);
}
Expand description
All input methods must be able to handle these functions This helps write test cases, because they can be generic
Required Methods§
Sourcefn new(
seat: &WlSeat,
im_manager: Main<ZwpInputMethodManagerV2>,
ui_connector: T,
content_connector: D,
) -> Self
fn new( seat: &WlSeat, im_manager: Main<ZwpInputMethodManagerV2>, ui_connector: T, content_connector: D, ) -> Self
Create a new InputMethod. The connectors must implement the traits IMVisibility and HintPurpose
Sourcefn commit_string(&self, text: String) -> Result<(), SubmitError>
fn commit_string(&self, text: String) -> Result<(), SubmitError>
Sends a ‘commit_string’ request to the wayland-server
INPUTS:
text -> Text that will be committed
Sourcefn delete_surrounding_text(
&self,
before: usize,
after: usize,
) -> Result<(), SubmitError>
fn delete_surrounding_text( &self, before: usize, after: usize, ) -> Result<(), SubmitError>
Sends a ‘delete_surrounding_text’ request to the wayland server
INPUTS:
before -> number of chars to delete from the surrounding_text going left from the cursor
after -> number of chars to delete from the surrounding_text going right from the cursor
Sourcefn commit(&self) -> Result<(), SubmitError>
fn commit(&self) -> Result<(), SubmitError>
Sends a ‘commit’ request to the wayland server
This makes the pending changes permanent
Sourcefn get_surrounding_text(&self) -> (String, String)
fn get_surrounding_text(&self) -> (String, String)
Returns a tuple of the current strings left and right of the cursor
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.