A model for text input. Adds support for text input and input methods to applications. A text_model object is created from a text_model_factory and corresponds typically to a text entry in an application. Requests are used to activate/deactivate the model and set information like surrounding and selected text or the content type. The information about entered text is sent to the model via the pre-edit and commit events. Using this interface removes the need for applications to directly process hardware key events and compose text out of them. Requests the model to be activated (typically when the text entry gets focus). The seat argument is a wl_seat which maintains the focus for this activation. The surface argument is a wl_surface assigned to the model and tracked for focus lost. The activated event is emitted on successful activation. Requests the model to be deactivated (typically when the text entry lost focus). The seat argument is a wl_seat which was used for activation. Notify the model when it is activated. Typically in response to an activate request. Notify the model when it is deactivated. Either in response to a deactivate request or when the assigned surface lost focus or was destroyed. A factory for text models. This object is a singleton global. Creates a new text model object. Corresponds to a text model on input method side. An input method context is created on text mode activation on the input method side. It allows to receive information about the text model from the application via events. Input method contexts do not keep state after deactivation and should be destroyed after deactivation is handled. Send the commit string text to the applications text model. The surrounding text from the model. An input method object is responsible to compose text in response to input from hardware or virtual keyboards. There is one input method object per seat. On activate there is a new input method context object created which allows the input method to communicate with the text model. A text model was activated. Creates an input method context object which allows communication with the text model. The text model corresponding to the context argument was deactivated. The input method context should be destroyed after deactivation is handled.