Kanzi  3.9.4
Kanzi Engine API
kanzi::InputMethod Class Referenceabstract

The InputMethod class defines the interface of the Kanzi input methods. More...

#include <kanzi/core.ui/input_method/input_method.hpp>

Inheritance diagram for kanzi::InputMethod:
[legend]

Public Member Functions

void connect (InputMethodListener &listener, Node &attachedNode)
 Connects an input method listener to this input method. More...
 
void disconnect (InputMethodListener &listener)
 Disconnects the listener passed as argument. More...
 
void ensureAvailable (InputMethodListener &listener)
 Ensures that the input method is available for the input method listener. More...
 
InputMethodListenergetListener () const
 Returns the active listener of the input method. More...
 
bool isBlocked () const
 Checks whether the input method is blocked by another input method that is in the text composition state. More...
 
void notifyCompositionEnd (InputMethodListener &listener)
 Notifies the input method that text composition is completed or canceled on the listener. More...
 
void notifyCompositionStart (InputMethodListener &listener)
 Notifies the input method that text composition is started on the listener. More...
 
void notifyCursorMove (InputMethodListener &listener, size_t position)
 Notifies the input method about the cursor position change in a listener. More...
 
void notifyInputMethodActionChange (InputMethodListener &listener, InputMethodAction action)
 Notifies the input method that the input method action associated with the input method listener changed. More...
 
bool notifyInputTypeAttributesChange (InputMethodListener &listener, EchoMode echoMode, InputType inputType)
 Notifies the input method that the input type attributes of the listener changed. More...
 
void notifyReadOnlyChange (InputMethodListener &listener, bool readOnly)
 Notifies the input method that the input method listener read-only state is changed. More...
 
void notifySelectionChange (InputMethodListener &listener, size_t start, size_t end)
 Notifies the input method about changes in text selection in a listener. More...
 
void notifyTextChange (InputMethodListener &listener, string_view text, size_t position)
 Notifies the input method about the text change in a listener passed as argument. More...
 
virtual ~InputMethod ()=default
 Destructor. More...
 
Input Method Listener notification interface

Use these methods to notify the active Input Method Listener about the events occurring on the Input Method.

bool disconnectListener ()
 Disconnects the input method from its active input method listener. More...
 
void setText (string_view text)
 Tells the active input method listener to replace its cached text with the content passed in the text argument. More...
 
void insertText (size_t position, string_view text)
 Tells the active input method listener to add a text to its cached text. More...
 
void deleteText (size_t start, size_t end)
 Tells the active input method listener to remove the text between the start and end positions. More...
 
void startTextComposition ()
 Tells the active input method listener to enter text composition state at the current cursor position. More...
 
void updateCompositionText (string_view text)
 Tells the active input method listener to update the composition text. More...
 
void commitCompositionText ()
 Tells the active input method listener to add the composition text received by previous calls of updateCompositionText() into the cached text. More...
 
void cancelTextComposition ()
 Tells the active input method listener to cancel the text composition and discard the composition text. More...
 
void moveCursor (size_t position)
 Tells the active input method listener to update the cursor position. More...
 
void updateSelection (size_t start, size_t end)
 Tells the active input method listener to update the cursor positions at the start and end of the text selection. More...
 
void updateInputType (InputType inputType)
 Tells the active input method listener to update its input type. More...
 
void executeInputMethodAction ()
 Tells the active input method listener to execute the input method action. More...
 

Protected Member Functions

NodeSharedPtr getAttachedNode () const
 Returns the node to which the input method is attached. More...
 
 InputMethod ()=default
 Default constructor. More...
 
Overridables
virtual void connectOverride ()=0
 To connect the active input method listener, override this method. More...
 
virtual void disconnectOverride ()=0
 To clear the state of the input method from previously active input method listener, override this method. More...
 
virtual void ensureAvailableOverride ()
 To esure the input method is available for the active input method listener, override this method. More...
 
virtual void notifyTextChangeOverride (string_view text, size_t position)=0
 To handle the text change in an active input method listener, override this method. More...
 
virtual void notifyCompositionStartOverride ()=0
 To handle the start of the text composition on an active input method listener, override this method. More...
 
virtual void notifyCompositionEndOverride ()=0
 To handle the completion or cancellation of the text composition on an active input method listener, override this method. More...
 
virtual void notifyCursorMoveOverride (size_t position)=0
 To handle the cursor position change in an active input method listener, override this method. More...
 
virtual void notifySelectionChangeOverride (size_t start, size_t end)=0
 To handle the changes in text selection in an active input method listener, override this method. More...
 
virtual bool notifyInputTypeAttributesChangeOverride (EchoMode echoMode, InputType inputType)
 To handle the change in the input type of the active input method listener, override this method. More...
 
virtual void notifyReadOnlyChangeOverride (bool readOnly)
 To handle the change in the read-only state of the active input method listener, override this method. More...
 
virtual void notifyInputMethodActionChangeOverride (InputMethodAction action)
 Notifies the active input method that the input method action associated with the input method listener changed. More...
 

Detailed Description

The InputMethod class defines the interface of the Kanzi input methods.

You must derive your input method implementations from this interface.

Since
Kanzi 3.9.0

Constructor & Destructor Documentation

◆ ~InputMethod()

virtual kanzi::InputMethod::~InputMethod ( )
virtualdefault

Destructor.

◆ InputMethod()

kanzi::InputMethod::InputMethod ( )
explicitprotecteddefault

Default constructor.

Member Function Documentation

◆ connect()

void kanzi::InputMethod::connect ( InputMethodListener listener,
Node attachedNode 
)

Connects an input method listener to this input method.

Passes the node which attaches to the input methods.

Parameters
listenerThe input method listener to connect to the input method.
attachedNodeThe Node to which the input method is attached.

◆ disconnect()

void kanzi::InputMethod::disconnect ( InputMethodListener listener)

Disconnects the listener passed as argument.

Parameters
listenerThe input method listener to disconnect.

◆ ensureAvailable()

void kanzi::InputMethod::ensureAvailable ( InputMethodListener listener)

Ensures that the input method is available for the input method listener.

Parameters
listenerThe input method listener for which the input method is ensured to be available.

◆ getListener()

InputMethodListener* kanzi::InputMethod::getListener ( ) const
inline

Returns the active listener of the input method.

Returns
The active listener of the input method. If the input method has no active listener set, returns nullptr.

◆ isBlocked()

bool kanzi::InputMethod::isBlocked ( ) const
inline

Checks whether the input method is blocked by another input method that is in the text composition state.

◆ notifyTextChange()

void kanzi::InputMethod::notifyTextChange ( InputMethodListener listener,
string_view  text,
size_t  position 
)

Notifies the input method about the text change in a listener passed as argument.

Parameters
listenerThe input method listener in which the text changed.
textThe text in the input method listener to update.
positionThe cursor position in the input method listener.

◆ notifyCompositionStart()

void kanzi::InputMethod::notifyCompositionStart ( InputMethodListener listener)

Notifies the input method that text composition is started on the listener.

Parameters
listenerThe input method listener where text composition is started.

◆ notifyCompositionEnd()

void kanzi::InputMethod::notifyCompositionEnd ( InputMethodListener listener)

Notifies the input method that text composition is completed or canceled on the listener.

Parameters
listenerThe input method listener where text composition is completed or canceled.

◆ notifyCursorMove()

void kanzi::InputMethod::notifyCursorMove ( InputMethodListener listener,
size_t  position 
)

Notifies the input method about the cursor position change in a listener.

Parameters
listenerThe input method listener where the cursor position changed.
positionThe cursor position in the input method listener.

◆ notifySelectionChange()

void kanzi::InputMethod::notifySelectionChange ( InputMethodListener listener,
size_t  start,
size_t  end 
)

Notifies the input method about changes in text selection in a listener.

If both the start and the end position have the same value, the selection is cleared.

Parameters
listenerThe input method listener where text selection changed.
startThe position of the start of text selection in the input method listener.
endThe position of the end of text selection in the input method listener.

◆ notifyInputTypeAttributesChange()

bool kanzi::InputMethod::notifyInputTypeAttributesChange ( InputMethodListener listener,
EchoMode  echoMode,
InputType  inputType 
)

Notifies the input method that the input type attributes of the listener changed.

Parameters
listenerThe input method listener whose input type changed.
echoModeThe echo mode of the input method listener.
inputTypeThe input type of the input method listener.
Returns
If the attributes are updated without the input method changing those, returns true, otherwise false.

◆ notifyReadOnlyChange()

void kanzi::InputMethod::notifyReadOnlyChange ( InputMethodListener listener,
bool  readOnly 
)

Notifies the input method that the input method listener read-only state is changed.

Parameters
listenerThe input method listener whose read-only state changed.
readOnlyThe read-only state of the input method listener.

◆ notifyInputMethodActionChange()

void kanzi::InputMethod::notifyInputMethodActionChange ( InputMethodListener listener,
InputMethodAction  action 
)

Notifies the input method that the input method action associated with the input method listener changed.

Override this method if the input method supports changing the input method action.

Parameters
listenerThe input method listener whose input method action changed.
actionThe input method action associated to the input method listener.

◆ disconnectListener()

bool kanzi::InputMethod::disconnectListener ( )

Disconnects the input method from its active input method listener.

Do not call this method from disconnectOverride().

◆ setText()

void kanzi::InputMethod::setText ( string_view  text)

Tells the active input method listener to replace its cached text with the content passed in the text argument.

Parameters
textThe new text to set.

◆ insertText()

void kanzi::InputMethod::insertText ( size_t  position,
string_view  text 
)

Tells the active input method listener to add a text to its cached text.

Parameters
positionThe position at which to add the text.
textThe text to append to the cached text.

◆ deleteText()

void kanzi::InputMethod::deleteText ( size_t  start,
size_t  end 
)

Tells the active input method listener to remove the text between the start and end positions.

Parameters
startThe start position of the text to remove.
endThe end position of the text to remove.

◆ startTextComposition()

void kanzi::InputMethod::startTextComposition ( )

Tells the active input method listener to enter text composition state at the current cursor position.

◆ updateCompositionText()

void kanzi::InputMethod::updateCompositionText ( string_view  text)

Tells the active input method listener to update the composition text.

Parameters
textThe text to append to the cached text.

◆ commitCompositionText()

void kanzi::InputMethod::commitCompositionText ( )

Tells the active input method listener to add the composition text received by previous calls of updateCompositionText() into the cached text.

◆ cancelTextComposition()

void kanzi::InputMethod::cancelTextComposition ( )

Tells the active input method listener to cancel the text composition and discard the composition text.

◆ moveCursor()

void kanzi::InputMethod::moveCursor ( size_t  position)

Tells the active input method listener to update the cursor position.

Parameters
positionThe position of the cursor to set.

◆ updateSelection()

void kanzi::InputMethod::updateSelection ( size_t  start,
size_t  end 
)

Tells the active input method listener to update the cursor positions at the start and end of the text selection.

Parameters
startThe cursor position at the start of the text selection to set.
endThe cursor position at the end of the text selection to set.

◆ updateInputType()

void kanzi::InputMethod::updateInputType ( InputType  inputType)

Tells the active input method listener to update its input type.

Parameters
inputTypeThe input type to set.

◆ executeInputMethodAction()

void kanzi::InputMethod::executeInputMethodAction ( )

Tells the active input method listener to execute the input method action.

◆ getAttachedNode()

NodeSharedPtr kanzi::InputMethod::getAttachedNode ( ) const
inlineprotected

Returns the node to which the input method is attached.

Returns
The shared pointer to the node to which the input method is attached.

◆ connectOverride()

virtual void kanzi::InputMethod::connectOverride ( )
protectedpure virtual

To connect the active input method listener, override this method.

See also
connect()

Implemented in kanzi::WindowsIme.

◆ disconnectOverride()

virtual void kanzi::InputMethod::disconnectOverride ( )
protectedpure virtual

To clear the state of the input method from previously active input method listener, override this method.

Do not call getListener() or getAttachedNode() inside disconnectOverride(). Kanzi can be already destroying the attached node and previously active listener.

See also
disconnect()

Implemented in kanzi::WindowsIme.

◆ ensureAvailableOverride()

virtual void kanzi::InputMethod::ensureAvailableOverride ( )
inlineprotectedvirtual

To esure the input method is available for the active input method listener, override this method.

See also
ensureAvailable()

◆ notifyTextChangeOverride()

virtual void kanzi::InputMethod::notifyTextChangeOverride ( string_view  text,
size_t  position 
)
protectedpure virtual

To handle the text change in an active input method listener, override this method.

Parameters
textThe text in the input method listener to update.
positionThe cursor position in the input method listener.
See also
notifyTextChange()

Implemented in kanzi::WindowsIme.

◆ notifyCompositionStartOverride()

virtual void kanzi::InputMethod::notifyCompositionStartOverride ( )
protectedpure virtual

To handle the start of the text composition on an active input method listener, override this method.

See also
notifyCompositionStart()

Implemented in kanzi::WindowsIme.

◆ notifyCompositionEndOverride()

virtual void kanzi::InputMethod::notifyCompositionEndOverride ( )
protectedpure virtual

To handle the completion or cancellation of the text composition on an active input method listener, override this method.

See also
notifyCompositionEnd()

Implemented in kanzi::WindowsIme.

◆ notifyCursorMoveOverride()

virtual void kanzi::InputMethod::notifyCursorMoveOverride ( size_t  position)
protectedpure virtual

To handle the cursor position change in an active input method listener, override this method.

Parameters
positionThe cursor position in the input method listener.
See also
notifyCursorMove()

Implemented in kanzi::WindowsIme.

◆ notifySelectionChangeOverride()

virtual void kanzi::InputMethod::notifySelectionChangeOverride ( size_t  start,
size_t  end 
)
protectedpure virtual

To handle the changes in text selection in an active input method listener, override this method.

If both the start and the end position have the same value, Kanzi clears the selection.

Parameters
startThe position of the start of text selection in the input method listener.
endThe position of the end of text selection in the input method listener.
See also
notifySelectionChange()

Implemented in kanzi::WindowsIme.

◆ notifyInputTypeAttributesChangeOverride()

virtual bool kanzi::InputMethod::notifyInputTypeAttributesChangeOverride ( EchoMode  echoMode,
InputType  inputType 
)
inlineprotectedvirtual

To handle the change in the input type of the active input method listener, override this method.

The implementation must validate the input type and echo mode combination. If the combination is not valid, the implementation must update the input type of the input method listener.

Parameters
echoModeThe echo mode of the input method listener.
inputTypeThe input type of the input method listener.
Returns
If the implementation updates the attributes, returns false, otherwise returns true.
See also
notifyInputTypeAttributesChange()

◆ notifyReadOnlyChangeOverride()

virtual void kanzi::InputMethod::notifyReadOnlyChangeOverride ( bool  readOnly)
inlineprotectedvirtual

To handle the change in the read-only state of the active input method listener, override this method.

Parameters
readOnlyThe read-only state of the input method listener.

◆ notifyInputMethodActionChangeOverride()

virtual void kanzi::InputMethod::notifyInputMethodActionChangeOverride ( InputMethodAction  action)
inlineprotectedvirtual

Notifies the active input method that the input method action associated with the input method listener changed.

Override this method if the input method supports changing the input method action.

Parameters
actionThe input method action associated to the input method listener.

The documentation for this class was generated from the following file: