extern "C" {
#endif
+struct wl_input_method_context;
+
+/* Events */
+extern int WKB_IBUS_CONNECTED;
+extern int WKB_IBUS_DISCONNECTED;
+
int wkb_ibus_init(void);
-void wkb_ibus_shutdown(void);
+Eina_Bool wkb_ibus_shutdown(void);
Eina_Bool wkb_ibus_connect(void);
void wkb_ibus_disconnect(void);
Eina_Bool wkb_ibus_is_connected(void);
-/* Panel */
+/* IBus Input Context */
+void wkb_ibus_input_context_create(struct wl_input_method_context *wl_ctx);
+void wkb_ibus_input_context_destroy(void);
+void wkb_ibus_input_context_process_key_event(const char *key);
+void wkb_ibus_input_context_set_surrounding_text(const char *text, unsigned int cursor, unsigned int anchor);
+unsigned int wkb_ibus_input_context_serial(void);
+void wkb_ibus_input_context_set_serial(unsigned int serial);
+
+/* IBus Panel */
Eldbus_Service_Interface * wkb_ibus_panel_register(Eldbus_Connection *conn);
-/* Config */
-Eldbus_Service_Interface * wkb_ibus_config_register(Eldbus_Connection *conn);
+/* IBus Config */
+Eldbus_Service_Interface * wkb_ibus_config_register(Eldbus_Connection *conn, const char *path);
void wkb_ibus_config_unregister(void);
#ifdef __cplusplus