## ibustypes

ibustypes — Generic types for IBus.

## Stability Level

Stable, unless otherwise indicated

## Functions

void | (*IBusFreeFunc) ()

## Types and Values

enum | IBusModifierType
enum | IBusCapabilite
enum | IBusPreeditFocusMode
enum | IBusOrientation
enum | IBusBusNameFlag
enum | IBusBusRequestNameReply
enum | IBusBusStartServiceByNameReply
enum | IBusError
struct | IBusRectangle
typedef | IBusRGBA
struct | _IBusRGBA
enum | IBusInputPurpose
enum | IBusInputHints
#define | IBUS_MODIFIER_FILTER
enum | IBusMessageDomain
enum | IBusPreeditFormat

## Object Hierarchy

        GEnum
        ╰── IBusOrientation
        GFlags
        ├── IBusCapabilite
        ╰── IBusModifierType

## Description

This section consists generic types for IBus, including shift/control key modifiers, and a rectangle structure.

## Functions

### IBusFreeFunc ()

    void
    (*IBusFreeFunc) (gpointer object);

Free function prototype.

#### Parameters

object | object to be freed. |

## Types and Values

### enum IBusModifierType

Handles key modifier such as control, shift and alt and release event. Note that nits 15 - 25 are currently unused, while bit 29 is used internally.

#### Members

IBUS_SHIFT_MASK | Shift is activated. |
IBUS_LOCK_MASK | Cap Lock is locked. |
IBUS_CONTROL_MASK | Control key is activated. |
IBUS_MOD1_MASK | Modifier 1 (Usually Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)) activated. |
IBUS_MOD2_MASK | Modifier 2 (Usually Num_Lock (0x4d)) activated. |
IBUS_MOD3_MASK | Modifier 3 activated. |
IBUS_MOD4_MASK | Modifier 4 (Usually Super_L (0xce), Hyper_L (0xcf)) activated. |
IBUS_MOD5_MASK | Modifier 5 (ISO_Level3_Shift (0x5c), Mode_switch (0xcb)) activated. |
IBUS_BUTTON1_MASK | Mouse button 1 (left) is activated. |
IBUS_BUTTON2_MASK | Mouse button 2 (middle) is activated. |
IBUS_BUTTON3_MASK | Mouse button 3 (right) is activated. |
IBUS_BUTTON4_MASK | Mouse button 4 (scroll up) is activated. |
IBUS_BUTTON5_MASK | Mouse button 5 (scroll down) is activated. |
IBUS_HANDLED_MASK | Handled mask indicates the event has been handled by ibus. |
IBUS_FORWARD_MASK | Forward mask indicates the event has been forward from ibus. |
IBUS_IGNORED_MASK | It is an alias of IBUS_FORWARD_MASK. |
IBUS_SUPER_MASK | Super (Usually Win) key is activated. |
IBUS_HYPER_MASK | Hyper key is activated. |
IBUS_META_MASK | Meta key is activated. |
IBUS_RELEASE_MASK | Key is released. |
IBUS_MODIFIER_MASK | Modifier mask for the all the masks above. |

### enum IBusCapabilite

Capability flags of UI.

#### Members

IBUS_CAP_PREEDIT_TEXT | UI is capable to show pre-edit text. |
IBUS_CAP_AUXILIARY_TEXT | UI is capable to show auxiliary text. |
IBUS_CAP_LOOKUP_TABLE | UI is capable to show the lookup table. |
IBUS_CAP_FOCUS | UI is capable to get focus. |
IBUS_CAP_PROPERTY | UI is capable to have property. |
IBUS_CAP_SURROUNDING_TEXT | Client can provide surround text, or IME can handle surround text. |
IBUS_CAP_OSK | UI is owned by on-screen keyboard. |
IBUS_CAP_SYNC_PROCESS_KEY | Asynchronous process key events are not supported and the `ibus_engine_forward_key_event()` should not be used for the return value of IBusEngine::`process_key_event()`. |
IBUS_CAP_SYNC_PROCESS_KEY_V2 |  |

### enum IBusPreeditFocusMode

Pre-edit commit mode when the focus is lost.

#### Members

IBUS_ENGINE_PREEDIT_CLEAR | pre-edit text is cleared. |
IBUS_ENGINE_PREEDIT_COMMIT | pre-edit text is committed. |

### enum IBusOrientation

Orientation of UI.

#### Members

IBUS_ORIENTATION_HORIZONTAL | Horizontal orientation. |
IBUS_ORIENTATION_VERTICAL | Vertival orientation. |
IBUS_ORIENTATION_SYSTEM | Use ibus global orientation setup. |

### enum IBusBusNameFlag

#### Members

IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT | same as DBUS_NAME_FLAG_ALLOW_REPLACEMENT |
IBUS_BUS_NAME_FLAG_REPLACE_EXISTING | same as DBUS_NAME_FLAG_REPLACE_EXISTING |
IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE | same as DBUS_NAME_FLAG_DO_NOT_QUEUE |

### enum IBusBusRequestNameReply

#### Members

IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER | same as DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER |
IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE | same as DBUS_REQUEST_NAME_REPLY_IN_QUEUE |
IBUS_BUS_REQUEST_NAME_REPLY_EXISTS | same as DBUS_REQUEST_NAME_REPLY_EXISTS |
IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER | same as DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER |

### enum IBusBusStartServiceByNameReply

#### Members

IBUS_BUS_START_REPLY_SUCCESS | same as DBUS_START_REPLY_SUCCESS |
IBUS_BUS_START_REPLY_ALREADY_RUNNING | same as DBUS_START_REPLY_ALREADY_RUNNING |

### enum IBusError

#### Members

IBUS_ERROR_NO_ENGINE | There is no engine associated with input context. |
IBUS_ERROR_NO_CONFIG | There is no config module running. |
IBUS_ERROR_FAILED | General failure. |

### struct IBusRectangle

    struct IBusRectangle {
        gint x;
        gint y;
        gint width;
        gint height;
    };

Rectangle definition.

#### Members

gint `x`; | x coordinate. |
gint `y`; | y coordinate. |
gint `width`; | width of the rectangle. |
gint `height`; | height of the renctangl. |

### IBusRGBA

    typedef struct __IBusRGBA IBusRGBA;

RGBA definition.

Since: 1.5.33

Stability Level: Unstable

### struct _IBusRGBA

    struct _IBusRGBA {
        float red;
        float green;
        float blue;
        float alpha;
    };

### enum IBusInputPurpose

Describes primary purpose of the input context. This information is particularly useful to implement intelligent behavior in engines, such as automatic input-mode switch and text prediction.

Note that the purpose is not meant to impose a totally strict rule about allowed characters, and does not replace input validation. It is fine for an on-screen keyboard to let the user override the character set restriction that is expressed by the purpose. The application is expected to validate the entry contents, even if it specified a purpose.

The difference between `IBUS_INPUT_PURPOSE_DIGITS` and `IBUS_INPUT_PURPOSE_NUMBER` is that the former accepts only digits while the latter also some punctuation (like commas or points, plus, minus) and “e” or “E” as in 3.14E+000.

This enumeration may be extended in the future; engines should interpret unknown values as 'free form'.

#### Members

IBUS_INPUT_PURPOSE_FREE_FORM | Allow any character |
IBUS_INPUT_PURPOSE_ALPHA | Allow only alphabetic characters |
IBUS_INPUT_PURPOSE_DIGITS | Allow only digits |
IBUS_INPUT_PURPOSE_NUMBER | Edited field expects numbers |
IBUS_INPUT_PURPOSE_PHONE | Edited field expects phone number |
IBUS_INPUT_PURPOSE_URL | Edited field expects URL |
IBUS_INPUT_PURPOSE_EMAIL | Edited field expects email address |
IBUS_INPUT_PURPOSE_NAME | Edited field expects the name of a person |
IBUS_INPUT_PURPOSE_PASSWORD | Like `IBUS_INPUT_PURPOSE_FREE_FORM` , but characters are hidden |
IBUS_INPUT_PURPOSE_PIN | Like `IBUS_INPUT_PURPOSE_DIGITS` , but characters are hidden |
IBUS_INPUT_PURPOSE_TERMINAL | Allow any character, in addition to control codes. Since 1.5.24 |
IBUS_INPUT_PURPOSE_DATE | Input a date for the Wayland text-input protocol V1/V3. Since 1.5.34 |
IBUS_INPUT_PURPOSE_TIME | Input a time for the Wayland text-input protocol V1/V3. Since 1.5.34 |
IBUS_INPUT_PURPOSE_DATETIME | Input a date and time for the Wayland text-input protocol V1/V3. Since 1.5.34 |

Since: 1.5.4

### enum IBusInputHints

Describes hints that might be taken into account by engines. Note that engines may already tailor their behaviour according to the IBusInputPurpose of the entry.

Some common sense is expected when using these flags - mixing `IBUS_INPUT_HINT_LOWERCASE` with any of the uppercase hints makes no sense.

This enumeration may be extended in the future; engines should ignore unknown values.

#### Members

IBUS_INPUT_HINT_NONE | No special behaviour suggested |
IBUS_INPUT_HINT_SPELLCHECK | Suggest checking for typos |
IBUS_INPUT_HINT_NO_SPELLCHECK | Suggest not checking for typos |
IBUS_INPUT_HINT_WORD_COMPLETION | Suggest word completion |
IBUS_INPUT_HINT_LOWERCASE | Suggest to convert all text to lowercase |
IBUS_INPUT_HINT_UPPERCASE_CHARS | Suggest to capitalize all text |
IBUS_INPUT_HINT_UPPERCASE_WORDS | Suggest to capitalize the first character of each word |
IBUS_INPUT_HINT_UPPERCASE_SENTENCES | Suggest to capitalize the first word of each sentence |
IBUS_INPUT_HINT_INHIBIT_OSK | Suggest to not show an onscreen keyboard (e.g for a calculator that already has all the keys). |
IBUS_INPUT_HINT_VERTICAL_WRITING | The text is vertical. Since 1.5.11 |
IBUS_INPUT_HINT_EMOJI | Suggest offering Emoji support. Since 1.5.24 |
IBUS_INPUT_HINT_NO_EMOJI | Suggest not offering Emoji support. Since 1.5.24 |
IBUS_INPUT_HINT_PRIVATE | Request that the input method should not update personalized data (like typing history). Since 1.5.26 |
IBUS_INPUT_HINT_HIDDEN_TEXT | The text is hidden (e.g. password fields). Since 1.5.34 |
IBUS_INPUT_HINT_LATIN | Just latin characters should be entered for the text-input protocol V1/V3. Since 1.5.34 |
IBUS_INPUT_HINT_MULTILINE | Suggest the text input is multiline for the text-input protocol V1/V3. Since 1.5.34 |

Since: 1.5.4

### IBUS_MODIFIER_FILTER

    #define             IBUS_MODIFIER_FILTER

This is a filter for shortcut keys.

Since: 1.5.32

### enum IBusMessageDomain

#### Members

IBUS_MESSAGE_DOMAIN_NONE |  |
IBUS_MESSAGE_DOMAIN_ENGINE |  |
IBUS_MESSAGE_DOMAIN_PANEL |  |

Since: 1.5.33

Stability Level: Unstable

### enum IBusPreeditFormat

You can set the "preedit-format" property of the constructor of IBusInputContext or IBusPanelService.

#### Members

IBUS_PREEDIT_FORMAT_RGBA | Use IBusAttribute with the RGBA. This has been a default usage and `ibus_attribute_get_attr_type()` returns `IBUS_ATTR_TYPE_UNDERLINE` , `IBUS_ATTR_TYPE_FOREGROUND` , `IBUS_ATTR_TYPE_BACKGROUND` . |
IBUS_PREEDIT_FORMAT_HINT | Use IBusAttribute with the hints. This let IBusPanelService decides the actual RGBA values to follow the current desktop theme and `ibus_attribute_get_attr_type()` returns `IBUS_ATTR_TYPE_HINT` . |

Since: 1.5.33

Stability Level: Unstable