/* Generated by wayland-scanner 1.25.0 */ #ifndef XX_TEXT_INPUT_UNSTABLE_V3_ENUM_PROTOCOL_H #define XX_TEXT_INPUT_UNSTABLE_V3_ENUM_PROTOCOL_H #ifdef __cplusplus extern "C" { #endif #ifndef XX_TEXT_INPUT_V3_CHANGE_CAUSE_ENUM #define XX_TEXT_INPUT_V3_CHANGE_CAUSE_ENUM /** * @ingroup iface_xx_text_input_v3 * text change reason * * Reason for the change of surrounding text or cursor posision. */ enum xx_text_input_v3_change_cause { /** * input method caused the change */ XX_TEXT_INPUT_V3_CHANGE_CAUSE_INPUT_METHOD = 0, /** * something else than the input method caused the change */ XX_TEXT_INPUT_V3_CHANGE_CAUSE_OTHER = 1, }; #endif /* XX_TEXT_INPUT_V3_CHANGE_CAUSE_ENUM */ #ifndef XX_TEXT_INPUT_V3_CONTENT_HINT_ENUM #define XX_TEXT_INPUT_V3_CONTENT_HINT_ENUM /** * @ingroup iface_xx_text_input_v3 * content hint * * Content hint is a bitmask to allow to modify the behavior of the text * input. */ enum xx_text_input_v3_content_hint { /** * no special behavior */ XX_TEXT_INPUT_V3_CONTENT_HINT_NONE = 0x0, /** * suggest word completions */ XX_TEXT_INPUT_V3_CONTENT_HINT_COMPLETION = 0x1, /** * suggest word corrections */ XX_TEXT_INPUT_V3_CONTENT_HINT_SPELLCHECK = 0x2, /** * switch to uppercase letters at the start of a sentence */ XX_TEXT_INPUT_V3_CONTENT_HINT_AUTO_CAPITALIZATION = 0x4, /** * prefer lowercase letters */ XX_TEXT_INPUT_V3_CONTENT_HINT_LOWERCASE = 0x8, /** * prefer uppercase letters */ XX_TEXT_INPUT_V3_CONTENT_HINT_UPPERCASE = 0x10, /** * prefer casing for titles and headings (can be language dependent) */ XX_TEXT_INPUT_V3_CONTENT_HINT_TITLECASE = 0x20, /** * characters should be hidden */ XX_TEXT_INPUT_V3_CONTENT_HINT_HIDDEN_TEXT = 0x40, /** * typed text should not be stored */ XX_TEXT_INPUT_V3_CONTENT_HINT_SENSITIVE_DATA = 0x80, /** * just Latin characters should be entered */ XX_TEXT_INPUT_V3_CONTENT_HINT_LATIN = 0x100, /** * the text input is multiline */ XX_TEXT_INPUT_V3_CONTENT_HINT_MULTILINE = 0x200, }; #endif /* XX_TEXT_INPUT_V3_CONTENT_HINT_ENUM */ #ifndef XX_TEXT_INPUT_V3_CONTENT_PURPOSE_ENUM #define XX_TEXT_INPUT_V3_CONTENT_PURPOSE_ENUM /** * @ingroup iface_xx_text_input_v3 * content purpose * * The content purpose allows to specify the primary purpose of a text * input. * * This allows an input method to show special purpose input panels with * extra characters or to disallow some characters. */ enum xx_text_input_v3_content_purpose { /** * default input, allowing all characters */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL = 0, /** * allow only alphabetic characters */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_ALPHA = 1, /** * allow only digits */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_DIGITS = 2, /** * input a number (including decimal separator and sign) */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_NUMBER = 3, /** * input a phone number */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_PHONE = 4, /** * input an URL */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_URL = 5, /** * input an email address */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_EMAIL = 6, /** * input a name of a person */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_NAME = 7, /** * input a password (combine with sensitive_data hint) */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_PASSWORD = 8, /** * input is a numeric password (combine with sensitive_data hint) */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_PIN = 9, /** * input a date */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_DATE = 10, /** * input a time */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_TIME = 11, /** * input a date and time */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_DATETIME = 12, /** * input for a terminal */ XX_TEXT_INPUT_V3_CONTENT_PURPOSE_TERMINAL = 13, }; #endif /* XX_TEXT_INPUT_V3_CONTENT_PURPOSE_ENUM */ #ifndef XX_TEXT_INPUT_V3_ACTION_ENUM #define XX_TEXT_INPUT_V3_ACTION_ENUM /** * @ingroup iface_xx_text_input_v3 * action * * A possible action to perform on a text input. */ enum xx_text_input_v3_action { /** * no action * * This enum value exists only to provide a default to make * double-buffering implementation easier. It should not be used * explicitly. */ XX_TEXT_INPUT_V3_ACTION_NONE = 1, /** * trigger appropriate action for the completion of editing * * This should be triggered when the user is done with editing * the field and wants to move on. For example, the query was typed * and the user wants the search result. Or the name was entered * and the address needs to be typed next. * * The action to perform depends on the application, and should * match the value of the current content_purpose. * * All clients SHOULD implement this action. Without it, on-screen * keyboards don't work as expected. */ XX_TEXT_INPUT_V3_ACTION_FINISH = 0, }; #endif /* XX_TEXT_INPUT_V3_ACTION_ENUM */ #ifndef XX_TEXT_INPUT_V3_SUPPORTED_FEATURES_ENUM #define XX_TEXT_INPUT_V3_SUPPORTED_FEATURES_ENUM /** * @ingroup iface_xx_text_input_v3 * possible supported features * * Client functionality over the baseline that isn't indicated implicitly. * * This does not include events coming with .enable: when the input method receives such an event, it is clear the text input supports it, e.g. content_type, available_actions. * * Baseline functionality like commit_string, set_preedit_string must always be supported for the protocol to be useful. * * The flags match text-input protocol versions, but should be kept general enough to support other protocols. */ enum xx_text_input_v3_supported_features { /** * no extra functionality supported */ XX_TEXT_INPUT_V3_SUPPORTED_FEATURES_NONE = 0x0, /** * the move_cursor request */ XX_TEXT_INPUT_V3_SUPPORTED_FEATURES_MOVE_CURSOR = 0x1, }; #endif /* XX_TEXT_INPUT_V3_SUPPORTED_FEATURES_ENUM */ #ifdef __cplusplus } #endif #endif