## IBusPanelService

IBusPanelService — Panel service back-end.

## Stability Level

Stable, unless otherwise indicated

## Functions

IBusPanelService * | ibus_panel_service_new ()
void | ibus_panel_service_candidate_clicked ()
void | ibus_panel_service_cursor_down ()
void | ibus_panel_service_cursor_up ()
void | ibus_panel_service_page_down ()
void | ibus_panel_service_page_up ()
void | ibus_panel_service_property_activate ()
void | ibus_panel_service_property_show ()
void | ibus_panel_service_property_hide ()
void | ibus_panel_service_commit_text ()
void | ibus_panel_service_panel_extension ()
void | ibus_panel_service_panel_extension_register_keys ()
void | ibus_panel_service_update_preedit_text_received ()
void | ibus_panel_service_show_preedit_text_received ()
void | ibus_panel_service_hide_preedit_text_received ()
void | ibus_panel_service_update_auxiliary_text_received ()
void | ibus_panel_service_update_lookup_table_received ()
void | ibus_panel_service_forward_process_key_event ()

## Signals

void | candidate-clicked-lookup-table | Run Last
void | commit-text-received | Run Last
void | cursor-down-lookup-table | Run Last
void | cursor-up-lookup-table | Run Last
void | destroy-context | Run Last
void | focus-in | Run Last
void | focus-out | Run Last
void | hide-auxiliary-text | Run Last
void | hide-language-bar | Run Last
void | hide-lookup-table | Run Last
void | hide-preedit-text | Run Last
void | page-down-lookup-table | Run Last
void | page-up-lookup-table | Run Last
void | panel-extension-received | Run Last
gboolean | process-key-event | Run Last
void | register-properties | Run Last
void | reset | Run Last
void | set-content-type | Run Last
void | set-cursor-location | Run Last
void | set-cursor-location-relative | Run Last
void | show-auxiliary-text | Run Last
void | show-language-bar | Run Last
void | show-lookup-table | Run Last
void | show-preedit-text | Run Last
void | start-setup | Run Last
void | state-changed | Run Last
void | update-auxiliary-text | Run Last
void | update-lookup-table | Run Last
void | update-preedit-text | Run Last
void | update-property | Run Last

## Types and Values

struct | IBusPanelService

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── IBusObject
                ╰── IBusService
                    ╰── IBusPanelService

## Description

An IBusPanelService is a base class for UI services. Developers can "extend" this class for panel UI development.

## Functions

### ibus_panel_service_new ()

    IBusPanelService *
    ibus_panel_service_new (GDBusConnection *connection);

Creates a new IBusPanelService from an GDBusConnection.

#### Parameters

connection | An GDBusConnection. |

#### Returns

A newly allocated IBusPanelService.

### ibus_panel_service_candidate_clicked ()

    void
    ibus_panel_service_candidate_clicked (IBusPanelService *panel,
                                          guint index,
                                          guint button,
                                          guint state);

Notify that a candidate is clicked by sending a "CandidateClicked" to IBus service.

#### Parameters

panel | An IBusPanelService |
index | Index in the Lookup table |
button | GdkEventButton::button (1: left button, etc.) |
state | GdkEventButton::state (key modifier flags) |

### ibus_panel_service_cursor_down ()

    void
    ibus_panel_service_cursor_down (IBusPanelService *panel);

Notify that the cursor is down by sending a "CursorDown" to IBus service.

#### Parameters

panel | An IBusPanelService |

### ibus_panel_service_cursor_up ()

    void
    ibus_panel_service_cursor_up (IBusPanelService *panel);

Notify that the cursor is up by sending a "CursorUp" to IBus service.

#### Parameters

panel | An IBusPanelService |

### ibus_panel_service_page_down ()

    void
    ibus_panel_service_page_down (IBusPanelService *panel);

Notify that the page is down by sending a "PageDown" to IBus service.

#### Parameters

panel | An IBusPanelService |

### ibus_panel_service_page_up ()

    void
    ibus_panel_service_page_up (IBusPanelService *panel);

Notify that the page is up by sending a "PageUp" to IBus service.

#### Parameters

panel | An IBusPanelService |

### ibus_panel_service_property_activate ()

    void
    ibus_panel_service_property_activate (IBusPanelService *panel,
                                          const gchar *prop_name,
                                          guint prop_state);

Notify that a property is active by sending a "PropertyActivate" message to IBus service.

#### Parameters

panel | An IBusPanelService |
prop_name | A property name |
prop_state | State of the property |

### ibus_panel_service_property_show ()

    void
    ibus_panel_service_property_show (IBusPanelService *panel,
                                      const gchar *prop_name);

Notify that a property is shown by sending a "ValueChanged" message to IBus service.

#### Parameters

panel | An IBusPanelService |
prop_name | A property name |

### ibus_panel_service_property_hide ()

    void
    ibus_panel_service_property_hide (IBusPanelService *panel,
                                      const gchar *prop_name);

Notify that a property is hidden by sending a "ValueChanged" message to IBus service.

#### Parameters

panel | An IBusPanelService |
prop_name | A property name |

### ibus_panel_service_commit_text ()

    void
    ibus_panel_service_commit_text (IBusPanelService *panel,
                                    IBusText *text);

Notify that a text is sent by sending a "CommitText" message to IBus service.

#### Parameters

panel | An IBusPanelService |
text | An IBusText |

### ibus_panel_service_panel_extension ()

    void
    ibus_panel_service_panel_extension (IBusPanelService *panel,
                                        IBusExtensionEvent *event);

Enable or disable a panel extension with IBusExtensionEvent. Notify that a data is sent by sending a "PanelExtension" message to IBus panel extension service.

#### Parameters

panel | An IBusPanelService |
event | A PanelExtensionEvent which is sent to a panel extension. | [transfer full]

### ibus_panel_service_panel_extension_register_keys ()

    void
    ibus_panel_service_panel_extension_register_keys
                                   (IBusPanelService *panel,
                                    const gchar *first_property_name,
                                    ...);

Register shortcut keys to enable panel extensions with IBusExtensionEvent. Notify that a data is sent by sending a "PanelExtensionRegisterKeys" message to IBus panel extension service. Seems Vala does not support uint and use IBusProcessKeyEventData[]. E.g. IBusProcessKeyEventData[] keys = {{ IBUS_KEY_e, 0, IBUS_SHIFT_MASK | IBUS_SUPER_MASK }}; ibus_panel_service_panel_extension_register_keys(panel, "emoji", keys, NULL);

#### Parameters

panel | An IBusPanelService |
first_property_name | the first name of the shortcut keys. This is `NULL` " terminated. |

### ibus_panel_service_update_preedit_text_received ()

    void
    ibus_panel_service_update_preedit_text_received
                                   (IBusPanelService *panel,
                                    IBusText *text,
                                    guint cursor_pos,
                                    gboolean visible);

Notify that the preedit is updated by the panel extension

(Note: The table object will be released, if it is floating. If caller want to keep the object, caller should make the object sink by g_object_ref_sink.)

#### Parameters

panel | An IBusPanelService |
text | Update content. |
cursor_pos | Current position of cursor |
visible | Whether the pre-edit buffer is visible. |

### ibus_panel_service_show_preedit_text_received ()

    void
    ibus_panel_service_show_preedit_text_received
                                   (IBusPanelService *panel);

Notify that the preedit is shown by the panel extension

#### Parameters

panel | An IBusPanelService |

### ibus_panel_service_hide_preedit_text_received ()

    void
    ibus_panel_service_hide_preedit_text_received
                                   (IBusPanelService *panel);

Notify that the preedit is hidden by the panel extension

#### Parameters

panel | An IBusPanelService |

### ibus_panel_service_update_auxiliary_text_received ()

    void
    ibus_panel_service_update_auxiliary_text_received
                                   (IBusPanelService *panel,
                                    IBusText *text,
                                    gboolean visible);

Notify that the auxilirary is updated by the panel extension.

(Note: The table object will be released, if it is floating. If caller want to keep the object, caller should make the object sink by g_object_ref_sink.)

#### Parameters

panel | An IBusPanelService |
text | An IBusText |
visible | Whether the auxilirary text is visible. |

### ibus_panel_service_update_lookup_table_received ()

    void
    ibus_panel_service_update_lookup_table_received
                                   (IBusPanelService *panel,
                                    IBusLookupTable *table,
                                    gboolean visible);

Notify that the lookup table is updated by the panel extension.

(Note: The table object will be released, if it is floating. If caller want to keep the object, caller should make the object sink by g_object_ref_sink.)

#### Parameters

panel | An IBusPanelService |
table | An IBusLookupTable |
visible | Whether the lookup table is visible. |

### ibus_panel_service_forward_process_key_event ()

    void
    ibus_panel_service_forward_process_key_event
                                   (IBusPanelService *panel,
                                    guint32 keyval,
                                    guint32 keycode,
                                    guint32 state);

Forward key events when an IBus popup takes the focus and the events needs to be forwared to the target IBus engine.

#### Parameters

panel | An IBusPanelService. |
keyval | Key symbol of a key event. |
keycode | Keycode of a key event. |
state | Key modifier flags. |

## Types and Values

### struct IBusPanelService

    struct IBusPanelService;

An opaque data type representing an IBusPanelService.

## Signal Details

### The `“candidate-clicked-lookup-table”` signal

    void
    user_function (IBusPanelService *ibuspanelservice,
                   guint             arg1,
                   guint             arg2,
                   guint             arg3,
                   gpointer          user_data)

Flags: Run Last

### The `“commit-text-received”` signal

    void
    user_function (IBusPanelService *panel,
                   IBusText         *text,
                   gpointer          user_data)

Emitted when the client application get the ::commit-text-received. Implement the member function IBusPanelServiceClass::commit_text_received in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
text | A IBusText |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“cursor-down-lookup-table”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::cursor-down-lookup-table. Implement the member function IBusPanelServiceClass::cursor_down_lookup_table in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“cursor-up-lookup-table”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::cursor-up-lookup-table. Implement the member function IBusPanelServiceClass::cursor_up_lookup_table in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“destroy-context”` signal

    void
    user_function (IBusPanelService *panel,
                   char             *input_context_path,
                   gpointer          user_data)

Emitted when the client application destroys. Implement the member function IBusPanelServiceClass::destroy_context in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
input_context_path | Object path of InputContext. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“focus-in”` signal

    void
    user_function (IBusPanelService *panel,
                   char             *input_context_path,
                   gpointer          user_data)

Emitted when the client application get the ::focus-in. Implement the member function IBusPanelServiceClass::focus_in in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
input_context_path | Object path of InputContext. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“focus-out”` signal

    void
    user_function (IBusPanelService *panel,
                   char             *input_context_path,
                   gpointer          user_data)

Emitted when the client application get the ::focus-out. Implement the member function IBusPanelServiceClass::focus_out in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
input_context_path | Object path of InputContext. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“hide-auxiliary-text”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::hide-auxiliary-text. Implement the member function IBusPanelServiceClass::hide_auxiliary_text in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“hide-language-bar”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::hide-language-bar. Implement the member function IBusPanelServiceClass::hide_language_bar in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“hide-lookup-table”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::hide-lookup-table. Implement the member function IBusPanelServiceClass::hide_lookup_table in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“hide-preedit-text”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::hide-preedit-text. Implement the member function IBusPanelServiceClass::hide_preedit_text in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“page-down-lookup-table”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::page-down-lookup-table. Implement the member function IBusPanelServiceClass::page_down_lookup_table in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“page-up-lookup-table”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::page-up-lookup-table. Implement the member function IBusPanelServiceClass::page_up_lookup_table in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“panel-extension-received”` signal

    void
    user_function (IBusPanelService   *panel,
                   IBusExtensionEvent *data,
                   gpointer            user_data)

Emitted when the client application get the ::panel-extension-received. Implement the member function IBusPanelServiceClass::panel_extension_received in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
data | A GVariant |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“process-key-event”` signal

    gboolean
    user_function (IBusPanelService *panel,
                   guint             keyval,
                   guint             keycode,
                   guint             state,
                   gpointer          user_data)

Emitted when a key event is received. Implement the member function IBusPanelServiceClass::process_key_event in extended class to receive this signal. Both the key symbol and keycode are passed to the member function. See `ibus_input_context_process_key_event()` for further explanation of key symbol, keycode and which to use.

#### Parameters

panel | An IBusPanelService |
keyval | Key symbol of the key press. |
keycode | KeyCode of the key press. |
state | Key modifier flags. |
user_data | user data set when the signal handler was connected. |

#### Returns

`TRUE` for successfully process the key; `FALSE` otherwise. See also: `ibus_input_context_process_key_event()`.

Argument `user_data` is ignored in this function.

Flags: Run Last

### The `“register-properties”` signal

    void
    user_function (IBusPanelService *panel,
                   IBusPropList     *prop_list,
                   gpointer          user_data)

Emitted when the client application get the ::register-properties. Implement the member function IBusPanelServiceClass::register_properties in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
prop_list | An IBusPropList that contains properties. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“reset”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::reset. Implement the member function IBusPanelServiceClass::reset in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“set-content-type”` signal

    void
    user_function (IBusPanelService *panel,
                   guint             purpose,
                   guint             hints,
                   gpointer          user_data)

Emitted when the client application get the ::set-content-type. Implement the member function IBusPanelServiceClass::set_content_type in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
purpose | Input purpose. |
hints | Input hints. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“set-cursor-location”` signal

    void
    user_function (IBusPanelService *panel,
                   int               x,
                   int               y,
                   int               w,
                   int               h,
                   gpointer          user_data)

Emitted when the client application get the ::set-cursor-location. Implement the member function IBusPanelServiceClass::set_cursor_location in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
x | X coordinate of the cursor. |
y | Y coordinate of the cursor. |
w | Width of the cursor. |
h | Height of the cursor. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“set-cursor-location-relative”` signal

    void
    user_function (IBusPanelService *panel,
                   int               x,
                   int               y,
                   int               w,
                   int               h,
                   gpointer          user_data)

Emitted when the client application get the set-cursor-location-relative. Implement the member function `set_cursor_location_relative()` in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
x | X coordinate of the cursor. |
y | Y coordinate of the cursor. |
w | Width of the cursor. |
h | Height of the cursor. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“show-auxiliary-text”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::show-auxiliary-text. Implement the member function IBusPanelServiceClass::show_auxiliary_text in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“show-language-bar”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::show-language-bar. Implement the member function IBusPanelServiceClass::show_language_bar in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“show-lookup-table”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::show-lookup-table. Implement the member function IBusPanelServiceClass::show_lookup_table in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“show-preedit-text”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::show-preedit-text. Implement the member function IBusPanelServiceClass::show_preedit_text in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“start-setup”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::start-setup. Implement the member function IBusPanelServiceClass::start_setup in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“state-changed”` signal

    void
    user_function (IBusPanelService *panel,
                   gpointer          user_data)

Emitted when the client application get the ::state-changed. Implement the member function IBusPanelServiceClass::state_changed in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“update-auxiliary-text”` signal

    void
    user_function (IBusPanelService *panel,
                   IBusText         *text,
                   gboolean          visible,
                   gpointer          user_data)

Emitted when the client application get the ::update-auxiliary-text. Implement the member function IBusPanelServiceClass::update_auxiliary_text in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
text | A preedit text to be updated. |
visible | Whether the update is visible. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“update-lookup-table”` signal

    void
    user_function (IBusPanelService *panel,
                   IBusLookupTable  *lookup_table,
                   gboolean          visible,
                   gpointer          user_data)

Emitted when the client application get the ::update-lookup-table. Implement the member function IBusPanelServiceClass::update_lookup_table in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
lookup_table | A lookup table to be updated. |
visible | Whether the update is visible. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“update-preedit-text”` signal

    void
    user_function (IBusPanelService *panel,
                   IBusText         *text,
                   guint             cursor_pos,
                   gboolean          visible,
                   gpointer          user_data)

Emitted when the client application get the ::update-preedit-text. Implement the member function IBusPanelServiceClass::update_preedit_text in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
text | A preedit text to be updated. |
cursor_pos | The cursor position of the text. |
visible | Whether the update is visible. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“update-property”` signal

    void
    user_function (IBusPanelService *panel,
                   IBusProperty     *prop,
                   gpointer          user_data)

Emitted when the client application get the ::update-property. Implement the member function IBusPanelServiceClass::update_property in extended class to receive this signal.

Argument `user_data` is ignored in this function.

#### Parameters

panel | An IBusPanelService |
prop | The IBusProperty to be updated. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last