summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/reference/ibus/Makefile.am13
-rw-r--r--docs/reference/ibus/ibus-docs.sgml98
-rw-r--r--docs/reference/ibus/ibus-sections.txt2708
-rw-r--r--docs/reference/ibus/ibus.types37
-rw-r--r--src/ibusattribute.h121
-rw-r--r--src/ibusbus.c11
-rw-r--r--src/ibusbus.h100
-rw-r--r--src/ibusconfig.h4
-rw-r--r--src/ibusconnection.h10
-rw-r--r--src/ibusengine.c117
-rw-r--r--src/ibusengine.h135
-rw-r--r--src/ibusenginedesc.h67
-rw-r--r--src/ibuslookuptable.h162
-rw-r--r--src/ibusobject.h35
-rw-r--r--src/ibusproperty.h147
-rw-r--r--src/ibustext.h82
-rw-r--r--src/ibustypes.h61
17 files changed, 3842 insertions, 66 deletions
diff --git a/docs/reference/ibus/Makefile.am b/docs/reference/ibus/Makefile.am
index c1991f1..310bdef 100644
--- a/docs/reference/ibus/Makefile.am
+++ b/docs/reference/ibus/Makefile.am
@@ -25,7 +25,8 @@ SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
-SCAN_OPTIONS=--rebuild-sections
+# SCAN_OPTIONS=--rebuild-sections
+SCAN_OPTIONS=
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
@@ -42,7 +43,7 @@ FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
-HFILE_GLOB=
+HFILE_GLOB=$(top_srcdir)/src/*.h
CFILE_GLOB=
# Header files to ignore when scanning.
@@ -97,4 +98,10 @@ EXTRA_DIST +=
# Comment this out if you want your docs-status tested during 'make check'
#TESTS = $(GTKDOC_CHECK)
-# CLEANFILES += ibus*
+
+clean-local:
+ rm -rf tmpl
+
+CLEANFILES+= *.stamp
+
+
diff --git a/docs/reference/ibus/ibus-docs.sgml b/docs/reference/ibus/ibus-docs.sgml
index 35d0bea..a106531 100644
--- a/docs/reference/ibus/ibus-docs.sgml
+++ b/docs/reference/ibus/ibus-docs.sgml
@@ -3,46 +3,76 @@
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
- <title>IBus Reference Manual</title>
+ <title>iBus Reference Manual</title>
<releaseinfo>
- for ibus 1.1.0
+ iBus 1.1.0 reference manual.
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://code.google.com/p/ibus">http://code.google.com/p/ibus</ulink>.
</releaseinfo>
</bookinfo>
<chapter>
- <title>API Reference</title>
- <xi:include href="xml/ibusfactory.xml"/>
- <xi:include href="xml/ibusattribute.xml"/>
- <xi:include href="xml/ibusinputcontext.xml"/>
- <xi:include href="xml/ibusobservedpath.xml"/>
- <xi:include href="xml/ibusengine.xml"/>
- <xi:include href="xml/ibusservice.xml"/>
- <xi:include href="xml/ibuslookuptable.xml"/>
- <xi:include href="xml/ibusproxy.xml"/>
- <xi:include href="xml/ibusserver.xml"/>
- <xi:include href="xml/ibuscomponent.xml"/>
- <xi:include href="xml/ibusconnection.xml"/>
- <xi:include href="xml/ibusproperty.xml"/>
- <xi:include href="xml/ibustext.xml"/>
- <xi:include href="xml/ibusserializable.xml"/>
- <xi:include href="xml/ibushotkey.xml"/>
- <xi:include href="xml/ibusbus.xml"/>
- <xi:include href="xml/ibusenginedesc.xml"/>
- <xi:include href="xml/ibusobject.xml"/>
- <xi:include href="xml/ibusconfig.xml"/>
- <xi:include href="xml/ibusmessage.xml"/>
- <xi:include href="xml/ibusdebug.xml"/>
- <xi:include href="xml/ibusmarshalers.xml"/>
- <xi:include href="xml/keyname-table.xml"/>
- <xi:include href="xml/ibustypes.xml"/>
- <xi:include href="xml/ibuserror.xml"/>
- <xi:include href="xml/ibuspendingcall.xml"/>
- <xi:include href="xml/ibuskeysyms.xml"/>
- <xi:include href="xml/ibusenumtypes.xml"/>
- <xi:include href="xml/ibusxml.xml"/>
- <xi:include href="xml/ibusshare.xml"/>
- <xi:include href="xml/ibusinternal.xml"/>
+ <title>API Overviews</title>
+ <para>The iBus API consists 3 parts:
+ <emphasis>User interfaces</emphasis> for objects and services which
+ are relateed to iBus UI such as language bar;
+ <emphasis>Input method engine</emphasis> for input method main logic and input/output handling;
+ <emphasis>Configure</emphasis> for services for save, load and listening configures.
+ </para>
+ </chapter>
+ <chapter>
+ <title>User Interfaces</title>
+ <para>These APIs directly related to User interfaces, such as
+ pre-edit buffer, auxiliary text, language bar, button,
+ radio boxes, and so on.
+ </para>
+ <xi:include href="xml/ibusattribute.xml"/>
+ <xi:include href="xml/ibuslookuptable.xml"/>
+ <xi:include href="xml/ibusproperty.xml"/>
+ <xi:include href="xml/ibustext.xml"/>
+ </chapter>
+ <chapter>
+ <title>Input method engine</title>
+ <para>
+ </para>
+ <xi:include href="xml/ibusbus.xml"/>
+ <xi:include href="xml/ibuscomponent.xml"/>
+ <xi:include href="xml/ibusconnection.xml"/>
+ <xi:include href="xml/ibusengine.xml"/>
+ <xi:include href="xml/ibusenginedesc.xml"/>
+ <xi:include href="xml/ibusfactory.xml"/>
+ <xi:include href="xml/ibushotkey.xml"/>
+ <xi:include href="xml/ibuskeysyms.xml"/>
+ </chapter>
+ <chapter>
+ <title>Configure</title>
+ <para>
+ </para>
+ <xi:include href="xml/ibusconfig.xml"/>
+ <xi:include href="xml/ibusconfigservice.xml"/>
+ <xi:include href="xml/ibusxml.xml"/>
+ </chapter>
+ <chapter>
+ <title>Others</title>
+ <para>
+ </para>
+ <xi:include href="xml/ibusdebug.xml"/>
+ <xi:include href="xml/ibusenumtypes.xml"/>
+ <xi:include href="xml/ibuserror.xml"/>
+ <xi:include href="xml/ibusinputcontext.xml"/>
+ <xi:include href="xml/ibusinternal.xml"/>
+ <xi:include href="xml/ibusmarshalers.xml"/>
+ <xi:include href="xml/ibusmessage.xml"/>
+ <xi:include href="xml/ibusobject.xml"/>
+ <xi:include href="xml/ibusobservedpath.xml"/>
+ <xi:include href="xml/ibuspendingcall.xml"/>
+ <xi:include href="xml/ibusproxy.xml"/>
+ <xi:include href="xml/ibusserver.xml"/>
+ <xi:include href="xml/ibusservice.xml"/>
+ <xi:include href="xml/ibusserializable.xml"/>
+ <xi:include href="xml/ibusshare.xml"/>
+ <xi:include href="xml/ibustypes.xml"/>
+ <xi:include href="xml/keyname-table.xml"/>
</chapter>
</book>
+
diff --git a/docs/reference/ibus/ibus-sections.txt b/docs/reference/ibus/ibus-sections.txt
new file mode 100644
index 0000000..628dda1
--- /dev/null
+++ b/docs/reference/ibus/ibus-sections.txt
@@ -0,0 +1,2708 @@
+<SECTION>
+<FILE>ibusattribute</FILE>
+IBusAttrType
+IBusAttrUnderline
+<TITLE>IBusAttribute</TITLE>
+IBusAttribute
+IBusAttrList
+ibus_attribute_new
+ibus_attr_underline_new
+ibus_attr_foreground_new
+ibus_attr_background_new
+ibus_attr_list_new
+ibus_attr_list_append
+ibus_attr_list_get
+<SUBSECTION Standard>
+IBUS_ATTRIBUTE
+IBUS_IS_ATTRIBUTE
+IBUS_TYPE_ATTRIBUTE
+ibus_attribute_get_type
+IBUS_ATTRIBUTE_CLASS
+IBUS_IS_ATTRIBUTE_CLASS
+IBUS_ATTRIBUTE_GET_CLASS
+
+IBUS_TYPE_ATTR_LIST
+IBUS_ATTR_LIST
+IBUS_ATTR_LIST_CLASS
+IBUS_IS_ATTR_LIST
+ibus_attr_list_get_type
+IBUS_IS_ATTR_LIST_CLASS
+IBUS_ATTR_LIST_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusproperty</FILE>
+IBusPropType
+IBusPropState
+<TITLE>IBusProperty</TITLE>
+IBusProperty
+IBusPropList
+ibus_property_new
+ibus_property_set_label
+ibus_property_set_visible
+ibus_property_set_sub_props
+ibus_prop_list_new
+ibus_prop_list_append
+ibus_prop_list_get
+ibus_prop_list_update_property
+<SUBSECTION Standard>
+IBUS_PROPERTY
+IBUS_IS_PROPERTY
+IBUS_TYPE_PROPERTY
+ibus_property_get_type
+IBUS_PROPERTY_CLASS
+IBUS_IS_PROPERTY_CLASS
+IBUS_PROPERTY_GET_CLASS
+
+IBUS_TYPE_PROP_LIST
+IBUS_PROP_LIST
+ibus_prop_list_get_type
+IBUS_PROP_LIST_CLASS
+IBUS_IS_PROP_LIST
+IBUS_IS_PROP_LIST_CLASS
+IBUS_PROP_LIST_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusproxy</FILE>
+<TITLE>IBusProxy</TITLE>
+IBusProxy
+ibus_proxy_new
+ibus_proxy_send
+ibus_proxy_call
+ibus_proxy_call_with_reply
+ibus_proxy_call_with_reply_and_block
+ibus_proxy_send_with_reply
+ibus_proxy_send_with_reply_and_block
+ibus_proxy_handle_signal
+ibus_proxy_get_name
+ibus_proxy_get_path
+ibus_proxy_get_interface
+ibus_proxy_get_connection
+<SUBSECTION Standard>
+IBUS_PROXY
+IBUS_IS_PROXY
+IBUS_TYPE_PROXY
+ibus_proxy_get_type
+IBUS_PROXY_CLASS
+IBUS_IS_PROXY_CLASS
+IBUS_PROXY_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibustypes</FILE>
+<TITLE>IBusTypes</TITLE>
+IBusModifierType
+IBusCapabilite
+IBusRectangle
+IBusFreeFunc
+</SECTION>
+
+<SECTION>
+<FILE>ibusconfig</FILE>
+<TITLE>IBusConfig</TITLE>
+IBusConfig
+ibus_config_new
+ibus_config_get_value
+ibus_config_set_value
+<SUBSECTION Standard>
+IBUS_CONFIG
+IBUS_IS_CONFIG
+IBUS_TYPE_CONFIG
+ibus_config_get_type
+IBUS_CONFIG_CLASS
+IBUS_IS_CONFIG_CLASS
+IBUS_CONFIG_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibushotkey</FILE>
+<TITLE>IBusHotkeyProfile</TITLE>
+IBusHotkeyProfile
+ibus_hotkey_profile_add_hotkey
+ibus_hotkey_profile_add_hotkey_from_string
+ibus_hotkey_profile_remove_hotkey
+ibus_hotkey_profile_remove_hotkey_by_event
+ibus_hotkey_profile_filter_key_event
+<SUBSECTION Standard>
+IBUS_HOTKEY_PROFILE
+IBUS_IS_HOTKEY_PROFILE
+IBUS_TYPE_HOTKEY_PROFILE
+ibus_hotkey_profile_get_type
+IBUS_HOTKEY_PROFILE_CLASS
+IBUS_IS_HOTKEY_PROFILE_CLASS
+IBUS_HOTKEY_PROFILE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusenginedesc</FILE>
+BusComponent
+<TITLE>IBusEngineDesc</TITLE>
+IBusEngineDesc
+ibus_engine_desc_new
+ibus_engine_desc_new_from_xml_node
+ibus_engine_desc_output
+<SUBSECTION Standard>
+IBUS_ENGINE_DESC
+IBUS_IS_ENGINE_DESC
+IBUS_TYPE_ENGINE_DESC
+ibus_engine_desc_get_type
+IBUS_ENGINE_DESC_CLASS
+IBUS_IS_ENGINE_DESC_CLASS
+IBUS_ENGINE_DESC_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusfactory</FILE>
+IBUS_TYPE_FACTORY_INFO
+IBUS_FACTORY_INFO
+IBUS_FACTORY_INFO_CLASS
+IBUS_IS_FACTORY_INFO
+IBUS_IS_FACTORY_INFO_CLASS
+IBUS_FACTORY_INFO_GET_CLASS
+<TITLE>IBusFactory</TITLE>
+IBusFactory
+<TITLE>IBusFactoryInfo</TITLE>
+IBusFactoryInfo
+ibus_factory_new
+ibus_factory_add_engine
+ibus_factory_get_info
+ibus_factory_info_get_type
+ibus_factory_info_new
+<SUBSECTION Standard>
+IBUS_FACTORY
+IBUS_IS_FACTORY
+IBUS_TYPE_FACTORY
+ibus_factory_get_type
+IBUS_FACTORY_CLASS
+IBUS_IS_FACTORY_CLASS
+IBUS_FACTORY_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusobject</FILE>
+IBusObjectFlags
+IBUS_OBJECT_FLAGS
+IBUS_OBJECT_SET_FLAGS
+IBUS_OBJECT_UNSET_FLAGS
+IBUS_OBJECT_DESTROYED
+<TITLE>IBusObject</TITLE>
+IBusObject
+ibus_object_new
+ibus_object_destroy
+<SUBSECTION Standard>
+IBUS_OBJECT
+IBUS_IS_OBJECT
+IBUS_TYPE_OBJECT
+ibus_object_get_type
+IBUS_OBJECT_CLASS
+IBUS_IS_OBJECT_CLASS
+IBUS_OBJECT_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusbus</FILE>
+<TITLE>IBusBus</TITLE>
+IBusBus
+ibus_bus_new
+ibus_bus_is_connected
+ibus_bus_hello
+ibus_bus_request_name
+ibus_bus_release_name
+ibus_bus_name_has_owner
+ibus_bus_list_names
+ibus_bus_add_match
+ibus_bus_remove_match
+ibus_bus_get_name_owner
+ibus_bus_exit
+ibus_bus_register_component
+ibus_bus_list_engines
+ibus_bus_list_active_engines
+<SUBSECTION Standard>
+IBUS_BUS
+IBUS_IS_BUS
+IBUS_TYPE_BUS
+ibus_bus_get_type
+IBUS_BUS_CLASS
+IBUS_IS_BUS_CLASS
+IBUS_BUS_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusservice</FILE>
+ServiceIBusMessageFunc
+ServiceIBusSignalFunc
+<TITLE>IBusService</TITLE>
+IBusService
+ibus_service_new
+ibus_service_get_path
+ibus_service_handle_message
+ibus_service_add_to_connection
+ibus_service_get_connections
+ibus_service_remove_from_connection
+ibus_service_remove_from_all_connections
+ibus_service_send_signal
+<SUBSECTION Standard>
+IBUS_SERVICE
+IBUS_IS_SERVICE
+IBUS_TYPE_SERVICE
+ibus_service_get_type
+IBUS_SERVICE_CLASS
+IBUS_IS_SERVICE_CLASS
+IBUS_SERVICE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusserializable</FILE>
+ibus_serializable_set_attachment
+ibus_serializable_get_attachment
+ibus_serializable_remove_attachment
+IBusSerializableSerializeFunc
+IBusSerializableDeserializeFunc
+IBusSerializableCopyFunc
+<TITLE>IBusSerializable</TITLE>
+IBusSerializable
+ibus_serializable_new
+ibus_serializable_set_qattachment
+ibus_serializable_get_qattachment
+ibus_serializable_remove_qattachment
+ibus_serializable_copy
+ibus_serializable_serialize
+ibus_serializable_deserialize
+<SUBSECTION Standard>
+IBUS_SERIALIZABLE
+IBUS_IS_SERIALIZABLE
+IBUS_TYPE_SERIALIZABLE
+ibus_serializable_get_type
+IBUS_SERIALIZABLE_CLASS
+IBUS_IS_SERIALIZABLE_CLASS
+IBUS_SERIALIZABLE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibuslookuptable</FILE>
+<TITLE>IBusLookupTable</TITLE>
+IBusLookupTable
+ibus_lookup_table_new
+ibus_lookup_table_append_candidate
+ibus_lookup_table_get_candidate
+ibus_lookup_table_set_cursor_pos
+ibus_lookup_table_get_cursor_pos
+ibus_lookup_table_set_cursor_visible
+ibus_lookup_table_is_cursor_visible
+ibus_lookup_table_get_cursor_in_page
+ibus_lookup_table_set_page_size
+ibus_lookup_table_get_page_size
+ibus_lookup_table_clear
+ibus_lookup_table_page_up
+ibus_lookup_table_page_down
+ibus_lookup_table_cursor_up
+ibus_lookup_table_cursor_down
+<SUBSECTION Standard>
+IBUS_LOOKUP_TABLE
+IBUS_IS_LOOKUP_TABLE
+IBUS_TYPE_LOOKUP_TABLE
+ibus_lookup_table_get_type
+IBUS_LOOKUP_TABLE_CLASS
+IBUS_IS_LOOKUP_TABLE_CLASS
+IBUS_LOOKUP_TABLE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibustext</FILE>
+<TITLE>IBusText</TITLE>
+IBusText
+ibus_text_new_from_string
+ibus_text_new_from_ucs4
+ibus_text_new_from_static_string
+ibus_text_new_from_printf
+ibus_text_new_from_unichar
+ibus_text_append_attribute
+ibus_text_get_length
+<SUBSECTION Standard>
+IBUS_TEXT
+IBUS_IS_TEXT
+IBUS_TYPE_TEXT
+ibus_text_get_type
+IBUS_TEXT_CLASS
+IBUS_IS_TEXT_CLASS
+IBUS_TEXT_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusconnection</FILE>
+IBusIBusMessageFunc
+IBusIBusSignalFunc
+IBusMessageFunc
+<TITLE>IBusConnection</TITLE>
+IBusConnection
+ibus_connection_new
+ibus_connection_set_connection
+ibus_connection_open
+ibus_connection_open_private
+ibus_connection_close
+ibus_connection_is_connected
+ibus_connection_get_connection
+ibus_connection_read_write_dispatch
+ibus_connection_send
+ibus_connection_send_signal
+ibus_connection_send_signal_valist
+ibus_connection_send_valist
+ibus_connection_send_with_reply
+ibus_connection_send_with_reply_and_block
+ibus_connection_call
+ibus_connection_flush
+ibus_connection_register_object_path
+ibus_connection_unregister_object_path
+<SUBSECTION Standard>
+IBUS_CONNECTION
+IBUS_IS_CONNECTION
+IBUS_TYPE_CONNECTION
+ibus_connection_get_type
+IBUS_CONNECTION_CLASS
+IBUS_IS_CONNECTION_CLASS
+IBUS_CONNECTION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibuscomponent</FILE>
+<TITLE>IBusComponent</TITLE>
+IBusComponent
+ibus_component_new
+ibus_component_new_from_xml_node
+ibus_component_new_from_file
+ibus_component_add_observed_path
+ibus_component_add_engine
+ibus_component_get_engines
+ibus_component_output
+ibus_component_output_engines
+ibus_component_check_modification
+ibus_component_start
+ibus_component_stop
+ibus_component_is_running
+ibus_component_get_from_engine
+<SUBSECTION Standard>
+IBUS_COMPONENT
+IBUS_IS_COMPONENT
+IBUS_TYPE_COMPONENT
+ibus_component_get_type
+IBUS_COMPONENT_CLASS
+IBUS_IS_COMPONENT_CLASS
+IBUS_COMPONENT_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusobservedpath</FILE>
+<TITLE>IBusObservedPath</TITLE>
+IBusObservedPath
+ibus_observed_path_new_from_xml_node
+ibus_observed_path_new
+ibus_observed_path_traverse
+ibus_observed_path_check_modification
+ibus_observed_path_output
+<SUBSECTION Standard>
+IBUS_OBSERVED_PATH
+IBUS_IS_OBSERVED_PATH
+IBUS_TYPE_OBSERVED_PATH
+ibus_observed_path_get_type
+IBUS_OBSERVED_PATH_CLASS
+IBUS_IS_OBSERVED_PATH_CLASS
+IBUS_OBSERVED_PATH_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusserver</FILE>
+IBusNewConnectionFunc
+<TITLE>IBusServer</TITLE>
+IBusServer
+ibus_server_new
+ibus_server_listen
+ibus_server_disconnect
+ibus_server_get_address
+ibus_server_get_id
+ibus_server_is_connected
+<SUBSECTION Standard>
+IBUS_SERVER
+IBUS_IS_SERVER
+IBUS_TYPE_SERVER
+ibus_server_get_type
+IBUS_SERVER_CLASS
+IBUS_IS_SERVER_CLASS
+IBUS_SERVER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusengine</FILE>
+<TITLE>IBusEngine</TITLE>
+IBusEngine
+ibus_engine_new
+ibus_engine_commit_text
+ibus_engine_update_preedit_text
+ibus_engine_show_preedit_text
+ibus_engine_hide_preedit_text
+ibus_engine_update_auxiliary_text
+ibus_engine_show_auxiliary_text
+ibus_engine_hide_auxiliary_text
+ibus_engine_update_lookup_table
+ibus_engine_show_lookup_table
+ibus_engine_hide_lookup_table
+ibus_engine_forward_key_event
+ibus_engine_register_properties
+ibus_engine_update_property
+ibus_engine_get_name
+<SUBSECTION Standard>
+IBUS_ENGINE
+IBUS_IS_ENGINE
+IBUS_TYPE_ENGINE
+ibus_engine_get_type
+IBUS_ENGINE_CLASS
+IBUS_IS_ENGINE_CLASS
+IBUS_ENGINE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusconfigservice</FILE>
+<TITLE>IBusConfigService</TITLE>
+IBusConfigService
+ibus_config_service_new
+ibus_config_service_value_changed
+<SUBSECTION Standard>
+IBUS_CONFIG_SERVICE
+IBUS_IS_CONFIG_SERVICE
+IBUS_TYPE_CONFIG_SERVICE
+ibus_config_service_get_type
+IBUS_CONFIG_SERVICE_CLASS
+IBUS_IS_CONFIG_SERVICE_CLASS
+IBUS_CONFIG_SERVICE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibusinputcontext</FILE>
+<TITLE>IBusInputContext</TITLE>
+IBusInputContext
+ibus_input_context_process_key_event
+ibus_input_context_set_cursor_location
+ibus_input_context_set_capabilities
+ibus_input_context_focus_in
+ibus_input_context_focus_out
+ibus_input_context_reset
+ibus_input_context_enable
+ibus_input_context_disable
+<SUBSECTION Standard>
+IBUS_INPUT_CONTEXT
+IBUS_IS_INPUT_CONTEXT
+IBUS_TYPE_INPUT_CONTEXT
+ibus_input_context_get_type
+IBUS_INPUT_CONTEXT_CLASS
+IBUS_IS_INPUT_CONTEXT_CLASS
+IBUS_INPUT_CONTEXT_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>ibuspendingcall</FILE>
+IBusPendingCall
+IBusPendingCallNotifyFunction
+ibus_pending_call_ref
+ibus_pending_call_unref
+ibus_pending_call_set_notify
+ibus_pending_call_cancel
+ibus_pending_call_get_completed
+ibus_pending_call_steal_reply
+ibus_pending_call_block
+ibus_pending_call_wait
+ibus_pending_call_allocate_data_slot
+ibus_pending_call_free_data_slot
+ibus_pending_call_set_data
+ibus_pending_call_get_data
+</SECTION>
+
+<SECTION>
+<FILE>ibusxml</FILE>
+XMLNode
+ibus_xml_parse_file
+ibus_xml_parse_buffer
+ibus_xml_free
+ibus_xml_output
+</SECTION>
+
+
+<SECTION>
+<FILE>ibusmessage</FILE>
+IBUS_TYPE_OBJECT_PATH
+IBUS_TYPE_ARRAY
+IBUS_TYPE_STRUCT
+IBUS_TYPE_DICT_ENTRY
+IBUS_TYPE_VARIANT
+IBusMessage
+IBusMessageIter
+ibus_type_get_object_path
+ibus_type_get_array
+ibus_type_get_struct
+ibus_type_get_dict_entry
+ibus_type_get_variant
+ibus_message_new
+ibus_message_ref
+ibus_message_unref
+ibus_message_new_method_call
+ibus_message_new_method_return
+ibus_message_new_error
+ibus_message_new_error_printf
+ibus_message_new_signal
+ibus_message_is_method_call
+ibus_message_is_error
+ibus_message_is_signal
+ibus_message_set_destination
+ibus_message_set_sender
+ibus_message_set_error_name
+ibus_message_set_interface
+ibus_message_set_member
+ibus_message_set_path
+ibus_message_set_no_reply
+ibus_message_set_reply_serial
+ibus_message_get_type
+ibus_message_get_destination
+ibus_message_get_sender
+ibus_message_get_error_name
+ibus_message_get_error_message
+ibus_message_get_interface
+ibus_message_get_member
+ibus_message_get_path
+ibus_message_get_no_reply
+ibus_message_get_reply_serial
+ibus_message_get_serial
+ibus_message_append_args
+ibus_message_append_args_valist
+ibus_message_get_args
+ibus_message_get_args_valist
+ibus_message_iter_init_append
+ibus_message_iter_append
+ibus_message_iter_init
+ibus_message_iter_peek
+ibus_message_iter_get_basic
+ibus_message_iter_get
+ibus_message_iter_next
+ibus_message_iter_has_next
+ibus_message_iter_open_container
+ibus_message_iter_close_container
+ibus_message_iter_recurse
+ibus_message_iter_get_arg_type
+ibus_message_iter_get_element_type
+ibus_message_to_string
+</SECTION>
+
+<SECTION>
+<FILE>stamp-ibusenumtypes</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>ibuserror</FILE>
+IBusError
+ibus_error_new
+ibus_error_new_from_text
+ibus_error_new_from_printf
+ibus_error_new_from_message
+ibus_error_free
+</SECTION>
+
+<SECTION>
+<FILE>ibusenumtypes</FILE>
+ibus_object_flags_get_type
+IBUS_TYPE_OBJECT_FLAGS
+ibus_attr_type_get_type
+IBUS_TYPE_ATTR_TYPE
+ibus_attr_underline_get_type
+IBUS_TYPE_ATTR_UNDERLINE
+ibus_prop_type_get_type
+IBUS_TYPE_PROP_TYPE
+ibus_prop_state_get_type
+IBUS_TYPE_PROP_STATE
+ibus_modifier_type_get_type
+IBUS_TYPE_MODIFIER_TYPE
+ibus_capabilite_get_type
+IBUS_TYPE_CAPABILITE
+</SECTION>
+
+<SECTION>
+<FILE>ibusshare</FILE>
+IBUS_SERVICE_IBUS
+IBUS_SERVICE_PANEL
+IBUS_SERVICE_CONFIG
+IBUS_SERVICE_NOTIFICATIONS
+IBUS_PATH_IBUS
+IBUS_PATH_FACTORY
+IBUS_PATH_PANEL
+IBUS_PATH_CONFIG
+IBUS_PATH_NOTIFICATIONS
+IBUS_PATH_INPUT_CONTEXT
+IBUS_INTERFACE_IBUS
+IBUS_INTERFACE_INPUT_CONTEXT
+IBUS_INTERFACE_FACTORY
+IBUS_INTERFACE_ENGINE
+IBUS_INTERFACE_PANEL
+IBUS_INTERFACE_CONFIG
+IBUS_INTERFACE_NOTIFICATIONS
+ibus_get_address
+ibus_get_user_name
+ibus_get_socket_path
+ibus_keyval_name
+ibus_keyval_from_name
+ibus_free_strv
+ibus_key_event_to_string
+ibus_key_event_from_string
+ibus_init
+ibus_main
+ibus_quit
+</SECTION>
+
+<SECTION>
+<FILE>ibusconfigprivate</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>stamp-ibusmarshalers</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>keyname-table</FILE>
+gdk_key
+</SECTION>
+
+<SECTION>
+<FILE>ibusmarshalers</FILE>
+ibus_marshal_VOID__VOID
+ibus_marshal_VOID__NONE
+ibus_marshal_VOID__OBJECT
+ibus_marshal_VOID__POINTER
+ibus_marshal_VOID__STRING
+ibus_marshal_VOID__STRING_INT
+ibus_marshal_VOID__STRING_UINT
+ibus_marshal_BOOLEAN__POINTER
+ibus_marshal_BOOL__POINTER
+ibus_marshal_BOOLEAN__POINTER_POINTER
+ibus_marshal_BOOL__POINTER_POINTER
+ibus_marshal_BOOLEAN__UINT_UINT
+ibus_marshal_BOOL__UINT_UINT
+ibus_marshal_VOID__INT_INT_INT_INT
+ibus_marshal_VOID__UINT_UINT
+ibus_marshal_VOID__OBJECT_UINT_BOOLEAN
+ibus_marshal_VOID__OBJECT_UINT_BOOL
+ibus_marshal_VOID__OBJECT_BOOLEAN
+ibus_marshal_VOID__OBJECT_BOOL
+ibus_marshal_VOID__BOXED_BOOLEAN
+ibus_marshal_VOID__BOXED_BOOL
+ibus_marshal_VOID__BOXED
+ibus_marshal_VOID__STRING_STRING_BOXED
+ibus_marshal_VOID__STRING_STRING_STRING
+ibus_marshal_VOID__UINT
+ibus_marshal_VOID__UINT_POINTER
+</SECTION>
+
+<SECTION>
+<FILE>ibus</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>ibuskeysyms</FILE>
+IBUS_VoidSymbol
+IBUS_BackSpace
+IBUS_Tab
+IBUS_Linefeed
+IBUS_Clear
+IBUS_Return
+IBUS_Pause
+IBUS_Scroll_Lock
+IBUS_Sys_Req
+IBUS_Escape
+IBUS_Delete
+IBUS_Multi_key
+IBUS_Codeinput
+IBUS_SingleCandidate
+IBUS_MultipleCandidate
+IBUS_PreviousCandidate
+IBUS_Kanji
+IBUS_Muhenkan
+IBUS_Henkan_Mode
+IBUS_Henkan
+IBUS_Romaji
+IBUS_Hiragana
+IBUS_Katakana
+IBUS_Hiragana_Katakana
+IBUS_Zenkaku
+IBUS_Hankaku
+IBUS_Zenkaku_Hankaku
+IBUS_Touroku
+IBUS_Massyo
+IBUS_Kana_Lock
+IBUS_Kana_Shift
+IBUS_Eisu_Shift
+IBUS_Eisu_toggle
+IBUS_Kanji_Bangou
+IBUS_Zen_Koho
+IBUS_Mae_Koho
+IBUS_Home
+IBUS_Left
+IBUS_Up
+IBUS_Right
+IBUS_Down
+IBUS_Prior
+IBUS_Page_Up
+IBUS_Next
+IBUS_Page_Down
+IBUS_End
+IBUS_Begin
+IBUS_Select
+IBUS_Print
+IBUS_Execute
+IBUS_Insert
+IBUS_Undo
+IBUS_Redo
+IBUS_Menu
+IBUS_Find
+IBUS_Cancel
+IBUS_Help
+IBUS_Break
+IBUS_Mode_switch
+IBUS_script_switch
+IBUS_Num_Lock
+IBUS_KP_Space
+IBUS_KP_Tab
+IBUS_KP_Enter
+IBUS_KP_F1
+IBUS_KP_F2
+IBUS_KP_F3
+IBUS_KP_F4
+IBUS_KP_Home
+IBUS_KP_Left
+IBUS_KP_Up
+IBUS_KP_Right
+IBUS_KP_Down
+IBUS_KP_Prior
+IBUS_KP_Page_Up
+IBUS_KP_Next
+IBUS_KP_Page_Down
+IBUS_KP_End
+IBUS_KP_Begin
+IBUS_KP_Insert
+IBUS_KP_Delete
+IBUS_KP_Equal
+IBUS_KP_Multiply
+IBUS_KP_Add
+IBUS_KP_Separator
+IBUS_KP_Subtract
+IBUS_KP_Decimal
+IBUS_KP_Divide
+IBUS_KP_0
+IBUS_KP_1
+IBUS_KP_2
+IBUS_KP_3
+IBUS_KP_4
+IBUS_KP_5
+IBUS_KP_6
+IBUS_KP_7
+IBUS_KP_8
+IBUS_KP_9
+IBUS_F1
+IBUS_F2
+IBUS_F3
+IBUS_F4
+IBUS_F5
+IBUS_F6
+IBUS_F7
+IBUS_F8
+IBUS_F9
+IBUS_F10
+IBUS_F11
+IBUS_L1
+IBUS_F12
+IBUS_L2
+IBUS_F13
+IBUS_L3
+IBUS_F14
+IBUS_L4
+IBUS_F15
+IBUS_L5
+IBUS_F16
+IBUS_L6
+IBUS_F17
+IBUS_L7
+IBUS_F18
+IBUS_L8
+IBUS_F19
+IBUS_L9
+IBUS_F20
+IBUS_L10
+IBUS_F21
+IBUS_R1
+IBUS_F22
+IBUS_R2
+IBUS_F23
+IBUS_R3
+IBUS_F24
+IBUS_R4
+IBUS_F25
+IBUS_R5
+IBUS_F26
+IBUS_R6
+IBUS_F27
+IBUS_R7
+IBUS_F28
+IBUS_R8
+IBUS_F29
+IBUS_R9
+IBUS_F30
+IBUS_R10
+IBUS_F31
+IBUS_R11
+IBUS_F32
+IBUS_R12
+IBUS_F33
+IBUS_R13
+IBUS_F34
+IBUS_R14
+IBUS_F35
+IBUS_R15
+IBUS_Shift_L
+IBUS_Shift_R
+IBUS_Control_L
+IBUS_Control_R
+IBUS_Caps_Lock
+IBUS_Shift_Lock
+IBUS_Meta_L
+IBUS_Meta_R
+IBUS_Alt_L
+IBUS_Alt_R
+IBUS_Super_L
+IBUS_Super_R
+IBUS_Hyper_L
+IBUS_Hyper_R
+IBUS_ISO_Lock
+IBUS_ISO_Level2_Latch
+IBUS_ISO_Level3_Shift
+IBUS_ISO_Level3_Latch
+IBUS_ISO_Level3_Lock
+IBUS_ISO_Level5_Shift
+IBUS_ISO_Level5_Latch
+IBUS_ISO_Level5_Lock
+IBUS_ISO_Group_Shift
+IBUS_ISO_Group_Latch
+IBUS_ISO_Group_Lock
+IBUS_ISO_Next_Group
+IBUS_ISO_Next_Group_Lock
+IBUS_ISO_Prev_Group
+IBUS_ISO_Prev_Group_Lock
+IBUS_ISO_First_Group
+IBUS_ISO_First_Group_Lock
+IBUS_ISO_Last_Group
+IBUS_ISO_Last_Group_Lock
+IBUS_ISO_Left_Tab
+IBUS_ISO_Move_Line_Up
+IBUS_ISO_Move_Line_Down
+IBUS_ISO_Partial_Line_Up
+IBUS_ISO_Partial_Line_Down
+IBUS_ISO_Partial_Space_Left
+IBUS_ISO_Partial_Space_Right
+IBUS_ISO_Set_Margin_Left
+IBUS_ISO_Set_Margin_Right
+IBUS_ISO_Release_Margin_Left
+IBUS_ISO_Release_Margin_Right
+IBUS_ISO_Release_Both_Margins
+IBUS_ISO_Fast_Cursor_Left
+IBUS_ISO_Fast_Cursor_Right
+IBUS_ISO_Fast_Cursor_Up
+IBUS_ISO_Fast_Cursor_Down
+IBUS_ISO_Continuous_Underline
+IBUS_ISO_Discontinuous_Underline
+IBUS_ISO_Emphasize
+IBUS_ISO_Center_Object
+IBUS_ISO_Enter
+IBUS_dead_grave
+IBUS_dead_acute
+IBUS_dead_circumflex
+IBUS_dead_tilde
+IBUS_dead_perispomeni
+IBUS_dead_macron
+IBUS_dead_breve
+IBUS_dead_abovedot
+IBUS_dead_diaeresis
+IBUS_dead_abovering
+IBUS_dead_doubleacute
+IBUS_dead_caron
+IBUS_dead_cedilla
+IBUS_dead_ogonek
+IBUS_dead_iota
+IBUS_dead_voiced_sound
+IBUS_dead_semivoiced_sound
+IBUS_dead_belowdot
+IBUS_dead_hook
+IBUS_dead_horn
+IBUS_dead_stroke
+IBUS_dead_abovecomma
+IBUS_dead_psili
+IBUS_dead_abovereversedcomma
+IBUS_dead_dasia
+IBUS_dead_belowring
+IBUS_dead_belowmacron
+IBUS_dead_belowcircumflex
+IBUS_dead_belowtilde
+IBUS_dead_belowbreve
+IBUS_dead_belowdiaeresis
+IBUS_First_Virtual_Screen
+IBUS_Prev_Virtual_Screen
+IBUS_Next_Virtual_Screen
+IBUS_Last_Virtual_Screen
+IBUS_Terminate_Server
+IBUS_AccessX_Enable
+IBUS_AccessX_Feedback_Enable
+IBUS_RepeatKeys_Enable
+IBUS_SlowKeys_Enable
+IBUS_BounceKeys_Enable
+IBUS_StickyKeys_Enable
+IBUS_MouseKeys_Enable
+IBUS_MouseKeys_Accel_Enable
+IBUS_Overlay1_Enable
+IBUS_Overlay2_Enable
+IBUS_AudibleBell_Enable
+IBUS_Pointer_Left
+IBUS_Pointer_Right
+IBUS_Pointer_Up
+IBUS_Pointer_Down
+IBUS_Pointer_UpLeft
+IBUS_Pointer_UpRight
+IBUS_Pointer_DownLeft
+IBUS_Pointer_DownRight
+IBUS_Pointer_Button_Dflt
+IBUS_Pointer_Button1
+IBUS_Pointer_Button2
+IBUS_Pointer_Button3
+IBUS_Pointer_Button4
+IBUS_Pointer_Button5
+IBUS_Pointer_DblClick_Dflt
+IBUS_Pointer_DblClick1
+IBUS_Pointer_DblClick2
+IBUS_Pointer_DblClick3
+IBUS_Pointer_DblClick4
+IBUS_Pointer_DblClick5
+IBUS_Pointer_Drag_Dflt
+IBUS_Pointer_Drag1
+IBUS_Pointer_Drag2
+IBUS_Pointer_Drag3
+IBUS_Pointer_Drag4
+IBUS_Pointer_Drag5
+IBUS_Pointer_EnableKeys
+IBUS_Pointer_Accelerate
+IBUS_Pointer_DfltBtnNext
+IBUS_Pointer_DfltBtnPrev
+IBUS_3270_Duplicate
+IBUS_3270_FieldMark
+IBUS_3270_Right2
+IBUS_3270_Left2
+IBUS_3270_BackTab
+IBUS_3270_EraseEOF
+IBUS_3270_EraseInput
+IBUS_3270_Reset
+IBUS_3270_Quit
+IBUS_3270_PA1
+IBUS_3270_PA2
+IBUS_3270_PA3
+IBUS_3270_Test
+IBUS_3270_Attn
+IBUS_3270_CursorBlink
+IBUS_3270_AltCursor
+IBUS_3270_KeyClick
+IBUS_3270_Jump
+IBUS_3270_Ident
+IBUS_3270_Rule
+IBUS_3270_Copy
+IBUS_3270_Play
+IBUS_3270_Setup
+IBUS_3270_Record
+IBUS_3270_ChangeScreen
+IBUS_3270_DeleteWord
+IBUS_3270_ExSelect
+IBUS_3270_CursorSelect
+IBUS_3270_PrintScreen
+IBUS_3270_Enter
+IBUS_space
+IBUS_exclam
+IBUS_quotedbl
+IBUS_numbersign
+IBUS_dollar
+IBUS_percent
+IBUS_ampersand
+IBUS_apostrophe
+IBUS_quoteright
+IBUS_parenleft
+IBUS_parenright
+IBUS_asterisk
+IBUS_plus
+IBUS_comma
+IBUS_minus
+IBUS_period
+IBUS_slash
+IBUS_0
+IBUS_1
+IBUS_2
+IBUS_3
+IBUS_4
+IBUS_5
+IBUS_6
+IBUS_7
+IBUS_8
+IBUS_9
+IBUS_colon
+IBUS_semicolon
+IBUS_less
+IBUS_equal
+IBUS_greater
+IBUS_question
+IBUS_at
+IBUS_A
+IBUS_B
+IBUS_C
+IBUS_D
+IBUS_E
+IBUS_F
+IBUS_G
+IBUS_H
+IBUS_I
+IBUS_J
+IBUS_K
+IBUS_L
+IBUS_M
+IBUS_N
+IBUS_O
+IBUS_P
+IBUS_Q
+IBUS_R
+IBUS_S
+IBUS_T
+IBUS_U
+IBUS_V
+IBUS_W
+IBUS_X
+IBUS_Y
+IBUS_Z
+IBUS_bracketleft
+IBUS_backslash
+IBUS_bracketright
+IBUS_asciicircum
+IBUS_underscore
+IBUS_grave
+IBUS_quoteleft
+IBUS_a
+IBUS_b
+IBUS_c
+IBUS_d
+IBUS_e
+IBUS_f
+IBUS_g
+IBUS_h
+IBUS_i
+IBUS_j
+IBUS_k
+IBUS_l
+IBUS_m
+IBUS_n
+IBUS_o
+IBUS_p
+IBUS_q
+IBUS_r
+IBUS_s
+IBUS_t
+IBUS_u
+IBUS_v
+IBUS_w
+IBUS_x
+IBUS_y
+IBUS_z
+IBUS_braceleft
+IBUS_bar
+IBUS_braceright
+IBUS_asciitilde
+IBUS_nobreakspace
+IBUS_exclamdown
+IBUS_cent
+IBUS_sterling
+IBUS_currency
+IBUS_yen
+IBUS_brokenbar
+IBUS_section
+IBUS_diaeresis
+IBUS_copyright
+IBUS_ordfeminine
+IBUS_guillemotleft
+IBUS_notsign
+IBUS_hyphen
+IBUS_registered
+IBUS_macron
+IBUS_degree
+IBUS_plusminus
+IBUS_twosuperior
+IBUS_threesuperior
+IBUS_acute
+IBUS_mu
+IBUS_paragraph
+IBUS_periodcentered
+IBUS_cedilla
+IBUS_onesuperior
+IBUS_masculine
+IBUS_guillemotright
+IBUS_onequarter
+IBUS_onehalf
+IBUS_threequarters
+IBUS_questiondown
+IBUS_Agrave
+IBUS_Aacute
+IBUS_Acircumflex
+IBUS_Atilde
+IBUS_Adiaeresis
+IBUS_Aring
+IBUS_AE
+IBUS_Ccedilla
+IBUS_Egrave
+IBUS_Eacute
+IBUS_Ecircumflex
+IBUS_Ediaeresis
+IBUS_Igrave
+IBUS_Iacute
+IBUS_Icircumflex
+IBUS_Idiaeresis
+IBUS_ETH
+IBUS_Eth
+IBUS_Ntilde
+IBUS_Ograve
+IBUS_Oacute
+IBUS_Ocircumflex
+IBUS_Otilde
+IBUS_Odiaeresis
+IBUS_multiply
+IBUS_Oslash
+IBUS_Ooblique
+IBUS_Ugrave
+IBUS_Uacute
+IBUS_Ucircumflex
+IBUS_Udiaeresis
+IBUS_Yacute
+IBUS_THORN
+IBUS_Thorn
+IBUS_ssharp
+IBUS_agrave
+IBUS_aacute
+IBUS_acircumflex
+IBUS_atilde
+IBUS_adiaeresis
+IBUS_aring
+IBUS_ae
+IBUS_ccedilla
+IBUS_egrave
+IBUS_eacute
+IBUS_ecircumflex
+IBUS_ediaeresis
+IBUS_igrave
+IBUS_iacute
+IBUS_icircumflex
+IBUS_idiaeresis
+IBUS_eth
+IBUS_ntilde
+IBUS_ograve
+IBUS_oacute
+IBUS_ocircumflex
+IBUS_otilde
+IBUS_odiaeresis
+IBUS_division
+IBUS_oslash
+IBUS_ooblique
+IBUS_ugrave
+IBUS_uacute
+IBUS_ucircumflex
+IBUS_udiaeresis
+IBUS_yacute
+IBUS_thorn
+IBUS_ydiaeresis
+IBUS_Aogonek
+IBUS_breve
+IBUS_Lstroke
+IBUS_Lcaron
+IBUS_Sacute
+IBUS_Scaron
+IBUS_Scedilla
+IBUS_Tcaron
+IBUS_Zacute
+IBUS_Zcaron
+IBUS_Zabovedot
+IBUS_aogonek
+IBUS_ogonek
+IBUS_lstroke
+IBUS_lcaron
+IBUS_sacute
+IBUS_caron
+IBUS_scaron
+IBUS_scedilla
+IBUS_tcaron
+IBUS_zacute
+IBUS_doubleacute
+IBUS_zcaron
+IBUS_zabovedot
+IBUS_Racute
+IBUS_Abreve
+IBUS_Lacute
+IBUS_Cacute
+IBUS_Ccaron
+IBUS_Eogonek
+IBUS_Ecaron
+IBUS_Dcaron
+IBUS_Dstroke
+IBUS_Nacute
+IBUS_Ncaron
+IBUS_Odoubleacute
+IBUS_Rcaron
+IBUS_Uring
+IBUS_Udoubleacute
+IBUS_Tcedilla
+IBUS_racute
+IBUS_abreve
+IBUS_lacute
+IBUS_cacute
+IBUS_ccaron
+IBUS_eogonek
+IBUS_ecaron
+IBUS_dcaron
+IBUS_dstroke
+IBUS_nacute
+IBUS_ncaron
+IBUS_odoubleacute
+IBUS_udoubleacute
+IBUS_rcaron
+IBUS_uring
+IBUS_tcedilla
+IBUS_abovedot
+IBUS_Hstroke
+IBUS_Hcircumflex
+IBUS_Iabovedot
+IBUS_Gbreve
+IBUS_Jcircumflex
+IBUS_hstroke
+IBUS_hcircumflex
+IBUS_idotless
+IBUS_gbreve
+IBUS_jcircumflex
+IBUS_Cabovedot
+IBUS_Ccircumflex
+IBUS_Gabovedot
+IBUS_Gcircumflex
+IBUS_Ubreve
+IBUS_Scircumflex
+IBUS_cabovedot
+IBUS_ccircumflex
+IBUS_gabovedot
+IBUS_gcircumflex
+IBUS_ubreve
+IBUS_scircumflex
+IBUS_kra
+IBUS_kappa
+IBUS_Rcedilla
+IBUS_Itilde
+IBUS_Lcedilla
+IBUS_Emacron
+IBUS_Gcedilla
+IBUS_Tslash
+IBUS_rcedilla
+IBUS_itilde
+IBUS_lcedilla
+IBUS_emacron
+IBUS_gcedilla
+IBUS_tslash
+IBUS_ENG
+IBUS_eng
+IBUS_Amacron
+IBUS_Iogonek
+IBUS_Eabovedot
+IBUS_Imacron
+IBUS_Ncedilla
+IBUS_Omacron
+IBUS_Kcedilla
+IBUS_Uogonek
+IBUS_Utilde
+IBUS_Umacron
+IBUS_amacron
+IBUS_iogonek
+IBUS_eabovedot
+IBUS_imacron
+IBUS_ncedilla
+IBUS_omacron
+IBUS_kcedilla
+IBUS_uogonek
+IBUS_utilde
+IBUS_umacron
+IBUS_Babovedot
+IBUS_babovedot
+IBUS_Dabovedot
+IBUS_Wgrave
+IBUS_Wacute
+IBUS_dabovedot
+IBUS_Ygrave
+IBUS_Fabovedot
+IBUS_fabovedot
+IBUS_Mabovedot
+IBUS_mabovedot
+IBUS_Pabovedot
+IBUS_wgrave
+IBUS_pabovedot
+IBUS_wacute
+IBUS_Sabovedot
+IBUS_ygrave
+IBUS_Wdiaeresis
+IBUS_wdiaeresis
+IBUS_sabovedot
+IBUS_Wcircumflex
+IBUS_Tabovedot
+IBUS_Ycircumflex
+IBUS_wcircumflex
+IBUS_tabovedot
+IBUS_ycircumflex
+IBUS_OE
+IBUS_oe
+IBUS_Ydiaeresis
+IBUS_overline
+IBUS_kana_fullstop
+IBUS_kana_openingbracket
+IBUS_kana_closingbracket
+IBUS_kana_comma
+IBUS_kana_conjunctive
+IBUS_kana_middledot
+IBUS_kana_WO
+IBUS_kana_a
+IBUS_kana_i
+IBUS_kana_u
+IBUS_kana_e
+IBUS_kana_o
+IBUS_kana_ya
+IBUS_kana_yu
+IBUS_kana_yo
+IBUS_kana_tsu
+IBUS_kana_tu
+IBUS_prolongedsound
+IBUS_kana_A
+IBUS_kana_I
+IBUS_kana_U
+IBUS_kana_E
+IBUS_kana_O
+IBUS_kana_KA
+IBUS_kana_KI
+IBUS_kana_KU
+IBUS_kana_KE
+IBUS_kana_KO
+IBUS_kana_SA
+IBUS_kana_SHI
+IBUS_kana_SU
+IBUS_kana_SE
+IBUS_kana_SO
+IBUS_kana_TA
+IBUS_kana_CHI
+IBUS_kana_TI
+IBUS_kana_TSU
+IBUS_kana_TU
+IBUS_kana_TE
+IBUS_kana_TO
+IBUS_kana_NA
+IBUS_kana_NI
+IBUS_kana_NU
+IBUS_kana_NE
+IBUS_kana_NO
+IBUS_kana_HA
+IBUS_kana_HI
+IBUS_kana_FU
+IBUS_kana_HU
+IBUS_kana_HE
+IBUS_kana_HO
+IBUS_kana_MA
+IBUS_kana_MI
+IBUS_kana_MU
+IBUS_kana_ME
+IBUS_kana_MO
+IBUS_kana_YA
+IBUS_kana_YU
+IBUS_kana_YO
+IBUS_kana_RA
+IBUS_kana_RI
+IBUS_kana_RU
+IBUS_kana_RE
+IBUS_kana_RO
+IBUS_kana_WA
+IBUS_kana_N
+IBUS_voicedsound
+IBUS_semivoicedsound
+IBUS_kana_switch
+IBUS_Farsi_0
+IBUS_Farsi_1
+IBUS_Farsi_2
+IBUS_Farsi_3
+IBUS_Farsi_4
+IBUS_Farsi_5
+IBUS_Farsi_6
+IBUS_Farsi_7
+IBUS_Farsi_8
+IBUS_Farsi_9
+IBUS_Arabic_percent
+IBUS_Arabic_superscript_alef
+IBUS_Arabic_tteh
+IBUS_Arabic_peh
+IBUS_Arabic_tcheh
+IBUS_Arabic_ddal
+IBUS_Arabic_rreh
+IBUS_Arabic_comma
+IBUS_Arabic_fullstop
+IBUS_Arabic_0
+IBUS_Arabic_1
+IBUS_Arabic_2
+IBUS_Arabic_3
+IBUS_Arabic_4
+IBUS_Arabic_5
+IBUS_Arabic_6
+IBUS_Arabic_7
+IBUS_Arabic_8
+IBUS_Arabic_9
+IBUS_Arabic_semicolon
+IBUS_Arabic_question_mark
+IBUS_Arabic_hamza
+IBUS_Arabic_maddaonalef
+IBUS_Arabic_hamzaonalef
+IBUS_Arabic_hamzaonwaw
+IBUS_Arabic_hamzaunderalef
+IBUS_Arabic_hamzaonyeh
+IBUS_Arabic_alef
+IBUS_Arabic_beh
+IBUS_Arabic_tehmarbuta
+IBUS_Arabic_teh
+IBUS_Arabic_theh
+IBUS_Arabic_jeem
+IBUS_Arabic_hah
+IBUS_Arabic_khah
+IBUS_Arabic_dal
+IBUS_Arabic_thal
+IBUS_Arabic_ra
+IBUS_Arabic_zain
+IBUS_Arabic_seen
+IBUS_Arabic_sheen
+IBUS_Arabic_sad
+IBUS_Arabic_dad
+IBUS_Arabic_tah
+IBUS_Arabic_zah
+IBUS_Arabic_ain
+IBUS_Arabic_ghain
+IBUS_Arabic_tatweel
+IBUS_Arabic_feh
+IBUS_Arabic_qaf
+IBUS_Arabic_kaf
+IBUS_Arabic_lam
+IBUS_Arabic_meem
+IBUS_Arabic_noon
+IBUS_Arabic_ha
+IBUS_Arabic_heh
+IBUS_Arabic_waw
+IBUS_Arabic_alefmaksura
+IBUS_Arabic_yeh
+IBUS_Arabic_fathatan
+IBUS_Arabic_dammatan
+IBUS_Arabic_kasratan
+IBUS_Arabic_fatha
+IBUS_Arabic_damma
+IBUS_Arabic_kasra
+IBUS_Arabic_shadda
+IBUS_Arabic_sukun
+IBUS_Arabic_madda_above
+IBUS_Arabic_hamza_above
+IBUS_Arabic_hamza_below
+IBUS_Arabic_jeh
+IBUS_Arabic_veh
+IBUS_Arabic_keheh
+IBUS_Arabic_gaf
+IBUS_Arabic_noon_ghunna
+IBUS_Arabic_heh_doachashmee
+IBUS_Farsi_yeh
+IBUS_Arabic_farsi_yeh
+IBUS_Arabic_yeh_baree
+IBUS_Arabic_heh_goal
+IBUS_Arabic_switch
+IBUS_Cyrillic_GHE_bar
+IBUS_Cyrillic_ghe_bar
+IBUS_Cyrillic_ZHE_descender
+IBUS_Cyrillic_zhe_descender
+IBUS_Cyrillic_KA_descender
+IBUS_Cyrillic_ka_descender
+IBUS_Cyrillic_KA_vertstroke
+IBUS_Cyrillic_ka_vertstroke
+IBUS_Cyrillic_EN_descender
+IBUS_Cyrillic_en_descender
+IBUS_Cyrillic_U_straight
+IBUS_Cyrillic_u_straight
+IBUS_Cyrillic_U_straight_bar
+IBUS_Cyrillic_u_straight_bar
+IBUS_Cyrillic_HA_descender
+IBUS_Cyrillic_ha_descender
+IBUS_Cyrillic_CHE_descender
+IBUS_Cyrillic_che_descender
+IBUS_Cyrillic_CHE_vertstroke
+IBUS_Cyrillic_che_vertstroke
+IBUS_Cyrillic_SHHA
+IBUS_Cyrillic_shha
+IBUS_Cyrillic_SCHWA
+IBUS_Cyrillic_schwa
+IBUS_Cyrillic_I_macron
+IBUS_Cyrillic_i_macron
+IBUS_Cyrillic_O_bar
+IBUS_Cyrillic_o_bar
+IBUS_Cyrillic_U_macron
+IBUS_Cyrillic_u_macron
+IBUS_Serbian_dje
+IBUS_Macedonia_gje
+IBUS_Cyrillic_io
+IBUS_Ukrainian_ie
+IBUS_Ukranian_je
+IBUS_Macedonia_dse
+IBUS_Ukrainian_i
+IBUS_Ukranian_i
+IBUS_Ukrainian_yi
+IBUS_Ukranian_yi
+IBUS_Cyrillic_je
+IBUS_Serbian_je
+IBUS_Cyrillic_lje
+IBUS_Serbian_lje
+IBUS_Cyrillic_nje
+IBUS_Serbian_nje
+IBUS_Serbian_tshe
+IBUS_Macedonia_kje
+IBUS_Ukrainian_ghe_with_upturn
+IBUS_Byelorussian_shortu
+IBUS_Cyrillic_dzhe
+IBUS_Serbian_dze
+IBUS_numerosign
+IBUS_Serbian_DJE
+IBUS_Macedonia_GJE
+IBUS_Cyrillic_IO
+IBUS_Ukrainian_IE
+IBUS_Ukranian_JE
+IBUS_Macedonia_DSE
+IBUS_Ukrainian_I
+IBUS_Ukranian_I
+IBUS_Ukrainian_YI
+IBUS_Ukranian_YI
+IBUS_Cyrillic_JE
+IBUS_Serbian_JE
+IBUS_Cyrillic_LJE
+IBUS_Serbian_LJE
+IBUS_Cyrillic_NJE
+IBUS_Serbian_NJE
+IBUS_Serbian_TSHE
+IBUS_Macedonia_KJE
+IBUS_Ukrainian_GHE_WITH_UPTURN
+IBUS_Byelorussian_SHORTU
+IBUS_Cyrillic_DZHE
+IBUS_Serbian_DZE
+IBUS_Cyrillic_yu
+IBUS_Cyrillic_a
+IBUS_Cyrillic_be
+IBUS_Cyrillic_tse
+IBUS_Cyrillic_de
+IBUS_Cyrillic_ie
+IBUS_Cyrillic_ef
+IBUS_Cyrillic_ghe
+IBUS_Cyrillic_ha
+IBUS_Cyrillic_i
+IBUS_Cyrillic_shorti
+IBUS_Cyrillic_ka
+IBUS_Cyrillic_el
+IBUS_Cyrillic_em
+IBUS_Cyrillic_en
+IBUS_Cyrillic_o
+IBUS_Cyrillic_pe
+IBUS_Cyrillic_ya
+IBUS_Cyrillic_er
+IBUS_Cyrillic_es
+IBUS_Cyrillic_te
+IBUS_Cyrillic_u
+IBUS_Cyrillic_zhe
+IBUS_Cyrillic_ve
+IBUS_Cyrillic_softsign
+IBUS_Cyrillic_yeru
+IBUS_Cyrillic_ze
+IBUS_Cyrillic_sha
+IBUS_Cyrillic_e
+IBUS_Cyrillic_shcha
+IBUS_Cyrillic_che
+IBUS_Cyrillic_hardsign
+IBUS_Cyrillic_YU
+IBUS_Cyrillic_A
+IBUS_Cyrillic_BE
+IBUS_Cyrillic_TSE
+IBUS_Cyrillic_DE
+IBUS_Cyrillic_IE
+IBUS_Cyrillic_EF
+IBUS_Cyrillic_GHE
+IBUS_Cyrillic_HA
+IBUS_Cyrillic_I
+IBUS_Cyrillic_SHORTI
+IBUS_Cyrillic_KA
+IBUS_Cyrillic_EL
+IBUS_Cyrillic_EM
+IBUS_Cyrillic_EN
+IBUS_Cyrillic_O
+IBUS_Cyrillic_PE
+IBUS_Cyrillic_YA
+IBUS_Cyrillic_ER
+IBUS_Cyrillic_ES
+IBUS_Cyrillic_TE
+IBUS_Cyrillic_U
+IBUS_Cyrillic_ZHE
+IBUS_Cyrillic_VE
+IBUS_Cyrillic_SOFTSIGN
+IBUS_Cyrillic_YERU
+IBUS_Cyrillic_ZE
+IBUS_Cyrillic_SHA
+IBUS_Cyrillic_E
+IBUS_Cyrillic_SHCHA
+IBUS_Cyrillic_CHE
+IBUS_Cyrillic_HARDSIGN
+IBUS_Greek_ALPHAaccent
+IBUS_Greek_EPSILONaccent
+IBUS_Greek_ETAaccent
+IBUS_Greek_IOTAaccent
+IBUS_Greek_IOTAdieresis
+IBUS_Greek_IOTAdiaeresis
+IBUS_Greek_OMICRONaccent
+IBUS_Greek_UPSILONaccent
+IBUS_Greek_UPSILONdieresis
+IBUS_Greek_OMEGAaccent
+IBUS_Greek_accentdieresis
+IBUS_Greek_horizbar
+IBUS_Greek_alphaaccent
+IBUS_Greek_epsilonaccent
+IBUS_Greek_etaaccent
+IBUS_Greek_iotaaccent
+IBUS_Greek_iotadieresis
+IBUS_Greek_iotaaccentdieresis
+IBUS_Greek_omicronaccent
+IBUS_Greek_upsilonaccent
+IBUS_Greek_upsilondieresis
+IBUS_Greek_upsilonaccentdieresis
+IBUS_Greek_omegaaccent
+IBUS_Greek_ALPHA
+IBUS_Greek_BETA
+IBUS_Greek_GAMMA
+IBUS_Greek_DELTA
+IBUS_Greek_EPSILON
+IBUS_Greek_ZETA
+IBUS_Greek_ETA
+IBUS_Greek_THETA
+IBUS_Greek_IOTA
+IBUS_Greek_KAPPA
+IBUS_Greek_LAMDA
+IBUS_Greek_LAMBDA
+IBUS_Greek_MU
+IBUS_Greek_NU
+IBUS_Greek_XI
+IBUS_Greek_OMICRON
+IBUS_Greek_PI
+IBUS_Greek_RHO
+IBUS_Greek_SIGMA
+IBUS_Greek_TAU
+IBUS_Greek_UPSILON
+IBUS_Greek_PHI
+IBUS_Greek_CHI
+IBUS_Greek_PSI
+IBUS_Greek_OMEGA
+IBUS_Greek_alpha
+IBUS_Greek_beta
+IBUS_Greek_gamma
+IBUS_Greek_delta
+IBUS_Greek_epsilon
+IBUS_Greek_zeta
+IBUS_Greek_eta
+IBUS_Greek_theta
+IBUS_Greek_iota
+IBUS_Greek_kappa
+IBUS_Greek_lamda
+IBUS_Greek_lambda
+IBUS_Greek_mu
+IBUS_Greek_nu
+IBUS_Greek_xi
+IBUS_Greek_omicron
+IBUS_Greek_pi
+IBUS_Greek_rho
+IBUS_Greek_sigma
+IBUS_Greek_finalsmallsigma
+IBUS_Greek_tau
+IBUS_Greek_upsilon
+IBUS_Greek_phi
+IBUS_Greek_chi
+IBUS_Greek_psi
+IBUS_Greek_omega
+IBUS_Greek_switch
+IBUS_leftradical
+IBUS_topleftradical
+IBUS_horizconnector
+IBUS_topintegral
+IBUS_botintegral
+IBUS_vertconnector
+IBUS_topleftsqbracket
+IBUS_botleftsqbracket
+IBUS_toprightsqbracket
+IBUS_botrightsqbracket
+IBUS_topleftparens
+IBUS_botleftparens
+IBUS_toprightparens
+IBUS_botrightparens
+IBUS_leftmiddlecurlybrace
+IBUS_rightmiddlecurlybrace
+IBUS_topleftsummation
+IBUS_botleftsummation
+IBUS_topvertsummationconnector
+IBUS_botvertsummationconnector
+IBUS_toprightsummation
+IBUS_botrightsummation
+IBUS_rightmiddlesummation
+IBUS_lessthanequal
+IBUS_notequal
+IBUS_greaterthanequal
+IBUS_integral
+IBUS_therefore
+IBUS_variation
+IBUS_infinity
+IBUS_nabla
+IBUS_approximate
+IBUS_similarequal
+IBUS_ifonlyif
+IBUS_implies
+IBUS_identical
+IBUS_radical
+IBUS_includedin
+IBUS_includes
+IBUS_intersection
+IBUS_union
+IBUS_logicaland
+IBUS_logicalor
+IBUS_partialderivative
+IBUS_function
+IBUS_leftarrow
+IBUS_uparrow
+IBUS_rightarrow
+IBUS_downarrow
+IBUS_blank
+IBUS_soliddiamond
+IBUS_checkerboard
+IBUS_ht
+IBUS_ff
+IBUS_cr
+IBUS_lf
+IBUS_nl
+IBUS_vt
+IBUS_lowrightcorner
+IBUS_uprightcorner
+IBUS_upleftcorner
+IBUS_lowleftcorner
+IBUS_crossinglines
+IBUS_horizlinescan1
+IBUS_horizlinescan3
+IBUS_horizlinescan5
+IBUS_horizlinescan7
+IBUS_horizlinescan9
+IBUS_leftt
+IBUS_rightt
+IBUS_bott
+IBUS_topt
+IBUS_vertbar
+IBUS_emspace
+IBUS_enspace
+IBUS_em3space
+IBUS_em4space
+IBUS_digitspace
+IBUS_punctspace
+IBUS_thinspace
+IBUS_hairspace
+IBUS_emdash
+IBUS_endash
+IBUS_signifblank
+IBUS_ellipsis
+IBUS_doubbaselinedot
+IBUS_onethird
+IBUS_twothirds
+IBUS_onefifth
+IBUS_twofifths
+IBUS_threefifths
+IBUS_fourfifths
+IBUS_onesixth
+IBUS_fivesixths
+IBUS_careof
+IBUS_figdash
+IBUS_leftanglebracket
+IBUS_decimalpoint
+IBUS_rightanglebracket
+IBUS_marker
+IBUS_oneeighth
+IBUS_threeeighths
+IBUS_fiveeighths
+IBUS_seveneighths
+IBUS_trademark
+IBUS_signaturemark
+IBUS_trademarkincircle
+IBUS_leftopentriangle
+IBUS_rightopentriangle
+IBUS_emopencircle
+IBUS_emopenrectangle
+IBUS_leftsinglequotemark
+IBUS_rightsinglequotemark
+IBUS_leftdoublequotemark
+IBUS_rightdoublequotemark
+IBUS_prescription
+IBUS_minutes
+IBUS_seconds
+IBUS_latincross
+IBUS_hexagram
+IBUS_filledrectbullet
+IBUS_filledlefttribullet
+IBUS_filledrighttribullet
+IBUS_emfilledcircle
+IBUS_emfilledrect
+IBUS_enopencircbullet
+IBUS_enopensquarebullet
+IBUS_openrectbullet
+IBUS_opentribulletup
+IBUS_opentribulletdown
+IBUS_openstar
+IBUS_enfilledcircbullet
+IBUS_enfilledsqbullet
+IBUS_filledtribulletup
+IBUS_filledtribulletdown
+IBUS_leftpointer
+IBUS_rightpointer
+IBUS_club
+IBUS_diamond
+IBUS_heart
+IBUS_maltesecross
+IBUS_dagger
+IBUS_doubledagger
+IBUS_checkmark
+IBUS_ballotcross
+IBUS_musicalsharp
+IBUS_musicalflat
+IBUS_malesymbol
+IBUS_femalesymbol
+IBUS_telephone
+IBUS_telephonerecorder
+IBUS_phonographcopyright
+IBUS_caret
+IBUS_singlelowquotemark
+IBUS_doublelowquotemark
+IBUS_cursor
+IBUS_leftcaret
+IBUS_rightcaret
+IBUS_downcaret
+IBUS_upcaret
+IBUS_overbar
+IBUS_downtack
+IBUS_upshoe
+IBUS_downstile
+IBUS_underbar
+IBUS_jot
+IBUS_quad
+IBUS_uptack
+IBUS_circle
+IBUS_upstile
+IBUS_downshoe
+IBUS_rightshoe
+IBUS_leftshoe
+IBUS_lefttack
+IBUS_righttack
+IBUS_hebrew_doublelowline
+IBUS_hebrew_aleph
+IBUS_hebrew_bet
+IBUS_hebrew_beth
+IBUS_hebrew_gimel
+IBUS_hebrew_gimmel
+IBUS_hebrew_dalet
+IBUS_hebrew_daleth
+IBUS_hebrew_he
+IBUS_hebrew_waw
+IBUS_hebrew_zain
+IBUS_hebrew_zayin
+IBUS_hebrew_chet
+IBUS_hebrew_het
+IBUS_hebrew_tet
+IBUS_hebrew_teth
+IBUS_hebrew_yod
+IBUS_hebrew_finalkaph
+IBUS_hebrew_kaph
+IBUS_hebrew_lamed
+IBUS_hebrew_finalmem
+IBUS_hebrew_mem
+IBUS_hebrew_finalnun
+IBUS_hebrew_nun
+IBUS_hebrew_samech
+IBUS_hebrew_samekh
+IBUS_hebrew_ayin
+IBUS_hebrew_finalpe
+IBUS_hebrew_pe
+IBUS_hebrew_finalzade
+IBUS_hebrew_finalzadi
+IBUS_hebrew_zade
+IBUS_hebrew_zadi
+IBUS_hebrew_qoph
+IBUS_hebrew_kuf
+IBUS_hebrew_resh
+IBUS_hebrew_shin
+IBUS_hebrew_taw
+IBUS_hebrew_taf
+IBUS_Hebrew_switch
+IBUS_Thai_kokai
+IBUS_Thai_khokhai
+IBUS_Thai_khokhuat
+IBUS_Thai_khokhwai
+IBUS_Thai_khokhon
+IBUS_Thai_khorakhang
+IBUS_Thai_ngongu
+IBUS_Thai_chochan
+IBUS_Thai_choching
+IBUS_Thai_chochang
+IBUS_Thai_soso
+IBUS_Thai_chochoe
+IBUS_Thai_yoying
+IBUS_Thai_dochada
+IBUS_Thai_topatak
+IBUS_Thai_thothan
+IBUS_Thai_thonangmontho
+IBUS_Thai_thophuthao
+IBUS_Thai_nonen
+IBUS_Thai_dodek
+IBUS_Thai_totao
+IBUS_Thai_thothung
+IBUS_Thai_thothahan
+IBUS_Thai_thothong
+IBUS_Thai_nonu
+IBUS_Thai_bobaimai
+IBUS_Thai_popla
+IBUS_Thai_phophung
+IBUS_Thai_fofa
+IBUS_Thai_phophan
+IBUS_Thai_fofan
+IBUS_Thai_phosamphao
+IBUS_Thai_moma
+IBUS_Thai_yoyak
+IBUS_Thai_rorua
+IBUS_Thai_ru
+IBUS_Thai_loling
+IBUS_Thai_lu
+IBUS_Thai_wowaen
+IBUS_Thai_sosala
+IBUS_Thai_sorusi
+IBUS_Thai_sosua
+IBUS_Thai_hohip
+IBUS_Thai_lochula
+IBUS_Thai_oang
+IBUS_Thai_honokhuk
+IBUS_Thai_paiyannoi
+IBUS_Thai_saraa
+IBUS_Thai_maihanakat
+IBUS_Thai_saraaa
+IBUS_Thai_saraam
+IBUS_Thai_sarai
+IBUS_Thai_saraii
+IBUS_Thai_saraue
+IBUS_Thai_sarauee
+IBUS_Thai_sarau
+IBUS_Thai_sarauu
+IBUS_Thai_phinthu
+IBUS_Thai_maihanakat_maitho
+IBUS_Thai_baht
+IBUS_Thai_sarae
+IBUS_Thai_saraae
+IBUS_Thai_sarao
+IBUS_Thai_saraaimaimuan
+IBUS_Thai_saraaimaimalai
+IBUS_Thai_lakkhangyao
+IBUS_Thai_maiyamok
+IBUS_Thai_maitaikhu
+IBUS_Thai_maiek
+IBUS_Thai_maitho
+IBUS_Thai_maitri
+IBUS_Thai_maichattawa
+IBUS_Thai_thanthakhat
+IBUS_Thai_nikhahit
+IBUS_Thai_leksun
+IBUS_Thai_leknung
+IBUS_Thai_leksong
+IBUS_Thai_leksam
+IBUS_Thai_leksi
+IBUS_Thai_lekha
+IBUS_Thai_lekhok
+IBUS_Thai_lekchet
+IBUS_Thai_lekpaet
+IBUS_Thai_lekkao
+IBUS_Hangul
+IBUS_Hangul_Start
+IBUS_Hangul_End
+IBUS_Hangul_Hanja
+IBUS_Hangul_Jamo
+IBUS_Hangul_Romaja
+IBUS_Hangul_Codeinput
+IBUS_Hangul_Jeonja
+IBUS_Hangul_Banja
+IBUS_Hangul_PreHanja
+IBUS_Hangul_PostHanja
+IBUS_Hangul_SingleCandidate
+IBUS_Hangul_MultipleCandidate
+IBUS_Hangul_PreviousCandidate
+IBUS_Hangul_Special
+IBUS_Hangul_switch
+IBUS_Hangul_Kiyeog
+IBUS_Hangul_SsangKiyeog
+IBUS_Hangul_KiyeogSios
+IBUS_Hangul_Nieun
+IBUS_Hangul_NieunJieuj
+IBUS_Hangul_NieunHieuh
+IBUS_Hangul_Dikeud
+IBUS_Hangul_SsangDikeud
+IBUS_Hangul_Rieul
+IBUS_Hangul_RieulKiyeog
+IBUS_Hangul_RieulMieum
+IBUS_Hangul_RieulPieub
+IBUS_Hangul_RieulSios
+IBUS_Hangul_RieulTieut
+IBUS_Hangul_RieulPhieuf
+IBUS_Hangul_RieulHieuh
+IBUS_Hangul_Mieum
+IBUS_Hangul_Pieub
+IBUS_Hangul_SsangPieub
+IBUS_Hangul_PieubSios
+IBUS_Hangul_Sios
+IBUS_Hangul_SsangSios
+IBUS_Hangul_Ieung
+IBUS_Hangul_Jieuj
+IBUS_Hangul_SsangJieuj
+IBUS_Hangul_Cieuc
+IBUS_Hangul_Khieuq
+IBUS_Hangul_Tieut
+IBUS_Hangul_Phieuf
+IBUS_Hangul_Hieuh
+IBUS_Hangul_A
+IBUS_Hangul_AE
+IBUS_Hangul_YA
+IBUS_Hangul_YAE
+IBUS_Hangul_EO
+IBUS_Hangul_E
+IBUS_Hangul_YEO
+IBUS_Hangul_YE
+IBUS_Hangul_O
+IBUS_Hangul_WA
+IBUS_Hangul_WAE
+IBUS_Hangul_OE
+IBUS_Hangul_YO
+IBUS_Hangul_U
+IBUS_Hangul_WEO
+IBUS_Hangul_WE
+IBUS_Hangul_WI
+IBUS_Hangul_YU
+IBUS_Hangul_EU
+IBUS_Hangul_YI
+IBUS_Hangul_I
+IBUS_Hangul_J_Kiyeog
+IBUS_Hangul_J_SsangKiyeog
+IBUS_Hangul_J_KiyeogSios
+IBUS_Hangul_J_Nieun
+IBUS_Hangul_J_NieunJieuj
+IBUS_Hangul_J_NieunHieuh
+IBUS_Hangul_J_Dikeud
+IBUS_Hangul_J_Rieul
+IBUS_Hangul_J_RieulKiyeog
+IBUS_Hangul_J_RieulMieum
+IBUS_Hangul_J_RieulPieub
+IBUS_Hangul_J_RieulSios
+IBUS_Hangul_J_RieulTieut
+IBUS_Hangul_J_RieulPhieuf
+IBUS_Hangul_J_RieulHieuh
+IBUS_Hangul_J_Mieum
+IBUS_Hangul_J_Pieub
+IBUS_Hangul_J_PieubSios
+IBUS_Hangul_J_Sios
+IBUS_Hangul_J_SsangSios
+IBUS_Hangul_J_Ieung
+IBUS_Hangul_J_Jieuj
+IBUS_Hangul_J_Cieuc
+IBUS_Hangul_J_Khieuq
+IBUS_Hangul_J_Tieut
+IBUS_Hangul_J_Phieuf
+IBUS_Hangul_J_Hieuh
+IBUS_Hangul_RieulYeorinHieuh
+IBUS_Hangul_SunkyeongeumMieum
+IBUS_Hangul_SunkyeongeumPieub
+IBUS_Hangul_PanSios
+IBUS_Hangul_KkogjiDalrinIeung
+IBUS_Hangul_SunkyeongeumPhieuf
+IBUS_Hangul_YeorinHieuh
+IBUS_Hangul_AraeA
+IBUS_Hangul_AraeAE
+IBUS_Hangul_J_PanSios
+IBUS_Hangul_J_KkogjiDalrinIeung
+IBUS_Hangul_J_YeorinHieuh
+IBUS_Korean_Won
+IBUS_Armenian_ligature_ew
+IBUS_Armenian_full_stop
+IBUS_Armenian_verjaket
+IBUS_Armenian_separation_mark
+IBUS_Armenian_but
+IBUS_Armenian_hyphen
+IBUS_Armenian_yentamna
+IBUS_Armenian_exclam
+IBUS_Armenian_amanak
+IBUS_Armenian_accent
+IBUS_Armenian_shesht
+IBUS_Armenian_question
+IBUS_Armenian_paruyk
+IBUS_Armenian_AYB
+IBUS_Armenian_ayb
+IBUS_Armenian_BEN
+IBUS_Armenian_ben
+IBUS_Armenian_GIM
+IBUS_Armenian_gim
+IBUS_Armenian_DA
+IBUS_Armenian_da
+IBUS_Armenian_YECH
+IBUS_Armenian_yech
+IBUS_Armenian_ZA
+IBUS_Armenian_za
+IBUS_Armenian_E
+IBUS_Armenian_e
+IBUS_Armenian_AT
+IBUS_Armenian_at
+IBUS_Armenian_TO
+IBUS_Armenian_to
+IBUS_Armenian_ZHE
+IBUS_Armenian_zhe
+IBUS_Armenian_INI
+IBUS_Armenian_ini
+IBUS_Armenian_LYUN
+IBUS_Armenian_lyun
+IBUS_Armenian_KHE
+IBUS_Armenian_khe
+IBUS_Armenian_TSA
+IBUS_Armenian_tsa
+IBUS_Armenian_KEN
+IBUS_Armenian_ken
+IBUS_Armenian_HO
+IBUS_Armenian_ho
+IBUS_Armenian_DZA
+IBUS_Armenian_dza
+IBUS_Armenian_GHAT
+IBUS_Armenian_ghat
+IBUS_Armenian_TCHE
+IBUS_Armenian_tche
+IBUS_Armenian_MEN
+IBUS_Armenian_men
+IBUS_Armenian_HI
+IBUS_Armenian_hi
+IBUS_Armenian_NU
+IBUS_Armenian_nu
+IBUS_Armenian_SHA
+IBUS_Armenian_sha
+IBUS_Armenian_VO
+IBUS_Armenian_vo
+IBUS_Armenian_CHA
+IBUS_Armenian_cha
+IBUS_Armenian_PE
+IBUS_Armenian_pe
+IBUS_Armenian_JE
+IBUS_Armenian_je
+IBUS_Armenian_RA
+IBUS_Armenian_ra
+IBUS_Armenian_SE
+IBUS_Armenian_se
+IBUS_Armenian_VEV
+IBUS_Armenian_vev
+IBUS_Armenian_TYUN
+IBUS_Armenian_tyun
+IBUS_Armenian_RE
+IBUS_Armenian_re
+IBUS_Armenian_TSO
+IBUS_Armenian_tso
+IBUS_Armenian_VYUN
+IBUS_Armenian_vyun
+IBUS_Armenian_PYUR
+IBUS_Armenian_pyur
+IBUS_Armenian_KE
+IBUS_Armenian_ke
+IBUS_Armenian_O
+IBUS_Armenian_o
+IBUS_Armenian_FE
+IBUS_Armenian_fe
+IBUS_Armenian_apostrophe
+IBUS_Georgian_an
+IBUS_Georgian_ban
+IBUS_Georgian_gan
+IBUS_Georgian_don
+IBUS_Georgian_en
+IBUS_Georgian_vin
+IBUS_Georgian_zen
+IBUS_Georgian_tan
+IBUS_Georgian_in
+IBUS_Georgian_kan
+IBUS_Georgian_las
+IBUS_Georgian_man
+IBUS_Georgian_nar
+IBUS_Georgian_on
+IBUS_Georgian_par
+IBUS_Georgian_zhar
+IBUS_Georgian_rae
+IBUS_Georgian_san
+IBUS_Georgian_tar
+IBUS_Georgian_un
+IBUS_Georgian_phar
+IBUS_Georgian_khar
+IBUS_Georgian_ghan
+IBUS_Georgian_qar
+IBUS_Georgian_shin
+IBUS_Georgian_chin
+IBUS_Georgian_can
+IBUS_Georgian_jil
+IBUS_Georgian_cil
+IBUS_Georgian_char
+IBUS_Georgian_xan
+IBUS_Georgian_jhan
+IBUS_Georgian_hae
+IBUS_Georgian_he
+IBUS_Georgian_hie
+IBUS_Georgian_we
+IBUS_Georgian_har
+IBUS_Georgian_hoe
+IBUS_Georgian_fi
+IBUS_Xabovedot
+IBUS_Ibreve
+IBUS_Zstroke
+IBUS_Gcaron
+IBUS_Ocaron
+IBUS_Obarred
+IBUS_xabovedot
+IBUS_ibreve
+IBUS_zstroke
+IBUS_gcaron
+IBUS_ocaron
+IBUS_obarred
+IBUS_SCHWA
+IBUS_schwa
+IBUS_Lbelowdot
+IBUS_lbelowdot
+IBUS_Abelowdot
+IBUS_abelowdot
+IBUS_Ahook
+IBUS_ahook
+IBUS_Acircumflexacute
+IBUS_acircumflexacute
+IBUS_Acircumflexgrave
+IBUS_acircumflexgrave
+IBUS_Acircumflexhook
+IBUS_acircumflexhook
+IBUS_Acircumflextilde
+IBUS_acircumflextilde
+IBUS_Acircumflexbelowdot
+IBUS_acircumflexbelowdot
+IBUS_Abreveacute
+IBUS_abreveacute
+IBUS_Abrevegrave
+IBUS_abrevegrave
+IBUS_Abrevehook
+IBUS_abrevehook
+IBUS_Abrevetilde
+IBUS_abrevetilde
+IBUS_Abrevebelowdot
+IBUS_abrevebelowdot
+IBUS_Ebelowdot
+IBUS_ebelowdot
+IBUS_Ehook
+IBUS_ehook
+IBUS_Etilde
+IBUS_etilde
+IBUS_Ecircumflexacute
+IBUS_ecircumflexacute
+IBUS_Ecircumflexgrave
+IBUS_ecircumflexgrave
+IBUS_Ecircumflexhook
+IBUS_ecircumflexhook
+IBUS_Ecircumflextilde
+IBUS_ecircumflextilde
+IBUS_Ecircumflexbelowdot
+IBUS_ecircumflexbelowdot
+IBUS_Ihook
+IBUS_ihook
+IBUS_Ibelowdot
+IBUS_ibelowdot
+IBUS_Obelowdot
+IBUS_obelowdot
+IBUS_Ohook
+IBUS_ohook
+IBUS_Ocircumflexacute
+IBUS_ocircumflexacute
+IBUS_Ocircumflexgrave
+IBUS_ocircumflexgrave
+IBUS_Ocircumflexhook
+IBUS_ocircumflexhook
+IBUS_Ocircumflextilde
+IBUS_ocircumflextilde
+IBUS_Ocircumflexbelowdot
+IBUS_ocircumflexbelowdot
+IBUS_Ohornacute
+IBUS_ohornacute
+IBUS_Ohorngrave
+IBUS_ohorngrave
+IBUS_Ohornhook
+IBUS_ohornhook
+IBUS_Ohorntilde
+IBUS_ohorntilde
+IBUS_Ohornbelowdot
+IBUS_ohornbelowdot
+IBUS_Ubelowdot
+IBUS_ubelowdot
+IBUS_Uhook
+IBUS_uhook
+IBUS_Uhornacute
+IBUS_uhornacute
+IBUS_Uhorngrave
+IBUS_uhorngrave
+IBUS_Uhornhook
+IBUS_uhornhook
+IBUS_Uhorntilde
+IBUS_uhorntilde
+IBUS_Uhornbelowdot
+IBUS_uhornbelowdot
+IBUS_Ybelowdot
+IBUS_ybelowdot
+IBUS_Yhook
+IBUS_yhook
+IBUS_Ytilde
+IBUS_ytilde
+IBUS_Ohorn
+IBUS_ohorn
+IBUS_Uhorn
+IBUS_uhorn
+IBUS_EcuSign
+IBUS_ColonSign
+IBUS_CruzeiroSign
+IBUS_FFrancSign
+IBUS_LiraSign
+IBUS_MillSign
+IBUS_NairaSign
+IBUS_PesetaSign
+IBUS_RupeeSign
+IBUS_WonSign
+IBUS_NewSheqelSign
+IBUS_DongSign
+IBUS_EuroSign
+IBUS_zerosuperior
+IBUS_foursuperior
+IBUS_fivesuperior
+IBUS_sixsuperior
+IBUS_sevensuperior
+IBUS_eightsuperior
+IBUS_ninesuperior
+IBUS_zerosubscript
+IBUS_onesubscript
+IBUS_twosubscript
+IBUS_threesubscript
+IBUS_foursubscript
+IBUS_fivesubscript
+IBUS_sixsubscript
+IBUS_sevensubscript
+IBUS_eightsubscript
+IBUS_ninesubscript
+IBUS_partdifferential
+IBUS_emptyset
+IBUS_elementof
+IBUS_notelementof
+IBUS_containsas
+IBUS_squareroot
+IBUS_cuberoot
+IBUS_fourthroot
+IBUS_dintegral
+IBUS_tintegral
+IBUS_because
+IBUS_approxeq
+IBUS_notapproxeq
+IBUS_notidentical
+IBUS_stricteq
+IBUS_braille_dot_1
+IBUS_braille_dot_2
+IBUS_braille_dot_3
+IBUS_braille_dot_4
+IBUS_braille_dot_5
+IBUS_braille_dot_6
+IBUS_braille_dot_7
+IBUS_braille_dot_8
+IBUS_braille_dot_9
+IBUS_braille_dot_10
+IBUS_braille_blank
+IBUS_braille_dots_1
+IBUS_braille_dots_2
+IBUS_braille_dots_12
+IBUS_braille_dots_3
+IBUS_braille_dots_13
+IBUS_braille_dots_23
+IBUS_braille_dots_123
+IBUS_braille_dots_4
+IBUS_braille_dots_14
+IBUS_braille_dots_24
+IBUS_braille_dots_124
+IBUS_braille_dots_34
+IBUS_braille_dots_134
+IBUS_braille_dots_234
+IBUS_braille_dots_1234
+IBUS_braille_dots_5
+IBUS_braille_dots_15
+IBUS_braille_dots_25
+IBUS_braille_dots_125
+IBUS_braille_dots_35
+IBUS_braille_dots_135
+IBUS_braille_dots_235
+IBUS_braille_dots_1235
+IBUS_braille_dots_45
+IBUS_braille_dots_145
+IBUS_braille_dots_245
+IBUS_braille_dots_1245
+IBUS_braille_dots_345
+IBUS_braille_dots_1345
+IBUS_braille_dots_2345
+IBUS_braille_dots_12345
+IBUS_braille_dots_6
+IBUS_braille_dots_16
+IBUS_braille_dots_26
+IBUS_braille_dots_126
+IBUS_braille_dots_36
+IBUS_braille_dots_136
+IBUS_braille_dots_236
+IBUS_braille_dots_1236
+IBUS_braille_dots_46
+IBUS_braille_dots_146
+IBUS_braille_dots_246
+IBUS_braille_dots_1246
+IBUS_braille_dots_346
+IBUS_braille_dots_1346
+IBUS_braille_dots_2346
+IBUS_braille_dots_12346
+IBUS_braille_dots_56
+IBUS_braille_dots_156
+IBUS_braille_dots_256
+IBUS_braille_dots_1256
+IBUS_braille_dots_356
+IBUS_braille_dots_1356
+IBUS_braille_dots_2356
+IBUS_braille_dots_12356
+IBUS_braille_dots_456
+IBUS_braille_dots_1456
+IBUS_braille_dots_2456
+IBUS_braille_dots_12456
+IBUS_braille_dots_3456
+IBUS_braille_dots_13456
+IBUS_braille_dots_23456
+IBUS_braille_dots_123456
+IBUS_braille_dots_7
+IBUS_braille_dots_17
+IBUS_braille_dots_27
+IBUS_braille_dots_127
+IBUS_braille_dots_37
+IBUS_braille_dots_137
+IBUS_braille_dots_237
+IBUS_braille_dots_1237
+IBUS_braille_dots_47
+IBUS_braille_dots_147
+IBUS_braille_dots_247
+IBUS_braille_dots_1247
+IBUS_braille_dots_347
+IBUS_braille_dots_1347
+IBUS_braille_dots_2347
+IBUS_braille_dots_12347
+IBUS_braille_dots_57
+IBUS_braille_dots_157
+IBUS_braille_dots_257
+IBUS_braille_dots_1257
+IBUS_braille_dots_357
+IBUS_braille_dots_1357
+IBUS_braille_dots_2357
+IBUS_braille_dots_12357
+IBUS_braille_dots_457
+IBUS_braille_dots_1457
+IBUS_braille_dots_2457
+IBUS_braille_dots_12457
+IBUS_braille_dots_3457
+IBUS_braille_dots_13457
+IBUS_braille_dots_23457
+IBUS_braille_dots_123457
+IBUS_braille_dots_67
+IBUS_braille_dots_167
+IBUS_braille_dots_267
+IBUS_braille_dots_1267
+IBUS_braille_dots_367
+IBUS_braille_dots_1367
+IBUS_braille_dots_2367
+IBUS_braille_dots_12367
+IBUS_braille_dots_467
+IBUS_braille_dots_1467
+IBUS_braille_dots_2467
+IBUS_braille_dots_12467
+IBUS_braille_dots_3467
+IBUS_braille_dots_13467
+IBUS_braille_dots_23467
+IBUS_braille_dots_123467
+IBUS_braille_dots_567
+IBUS_braille_dots_1567
+IBUS_braille_dots_2567
+IBUS_braille_dots_12567
+IBUS_braille_dots_3567
+IBUS_braille_dots_13567
+IBUS_braille_dots_23567
+IBUS_braille_dots_123567
+IBUS_braille_dots_4567
+IBUS_braille_dots_14567
+IBUS_braille_dots_24567
+IBUS_braille_dots_124567
+IBUS_braille_dots_34567
+IBUS_braille_dots_134567
+IBUS_braille_dots_234567
+IBUS_braille_dots_1234567
+IBUS_braille_dots_8
+IBUS_braille_dots_18
+IBUS_braille_dots_28
+IBUS_braille_dots_128
+IBUS_braille_dots_38
+IBUS_braille_dots_138
+IBUS_braille_dots_238
+IBUS_braille_dots_1238
+IBUS_braille_dots_48
+IBUS_braille_dots_148
+IBUS_braille_dots_248
+IBUS_braille_dots_1248
+IBUS_braille_dots_348
+IBUS_braille_dots_1348
+IBUS_braille_dots_2348
+IBUS_braille_dots_12348
+IBUS_braille_dots_58
+IBUS_braille_dots_158
+IBUS_braille_dots_258
+IBUS_braille_dots_1258
+IBUS_braille_dots_358
+IBUS_braille_dots_1358
+IBUS_braille_dots_2358
+IBUS_braille_dots_12358
+IBUS_braille_dots_458
+IBUS_braille_dots_1458
+IBUS_braille_dots_2458
+IBUS_braille_dots_12458
+IBUS_braille_dots_3458
+IBUS_braille_dots_13458
+IBUS_braille_dots_23458
+IBUS_braille_dots_123458
+IBUS_braille_dots_68
+IBUS_braille_dots_168
+IBUS_braille_dots_268
+IBUS_braille_dots_1268
+IBUS_braille_dots_368
+IBUS_braille_dots_1368
+IBUS_braille_dots_2368
+IBUS_braille_dots_12368
+IBUS_braille_dots_468
+IBUS_braille_dots_1468
+IBUS_braille_dots_2468
+IBUS_braille_dots_12468
+IBUS_braille_dots_3468
+IBUS_braille_dots_13468
+IBUS_braille_dots_23468
+IBUS_braille_dots_123468
+IBUS_braille_dots_568
+IBUS_braille_dots_1568
+IBUS_braille_dots_2568
+IBUS_braille_dots_12568
+IBUS_braille_dots_3568
+IBUS_braille_dots_13568
+IBUS_braille_dots_23568
+IBUS_braille_dots_123568
+IBUS_braille_dots_4568
+IBUS_braille_dots_14568
+IBUS_braille_dots_24568
+IBUS_braille_dots_124568
+IBUS_braille_dots_34568
+IBUS_braille_dots_134568
+IBUS_braille_dots_234568
+IBUS_braille_dots_1234568
+IBUS_braille_dots_78
+IBUS_braille_dots_178
+IBUS_braille_dots_278
+IBUS_braille_dots_1278
+IBUS_braille_dots_378
+IBUS_braille_dots_1378
+IBUS_braille_dots_2378
+IBUS_braille_dots_12378
+IBUS_braille_dots_478
+IBUS_braille_dots_1478
+IBUS_braille_dots_2478
+IBUS_braille_dots_12478
+IBUS_braille_dots_3478
+IBUS_braille_dots_13478
+IBUS_braille_dots_23478
+IBUS_braille_dots_123478
+IBUS_braille_dots_578
+IBUS_braille_dots_1578
+IBUS_braille_dots_2578
+IBUS_braille_dots_12578
+IBUS_braille_dots_3578
+IBUS_braille_dots_13578
+IBUS_braille_dots_23578
+IBUS_braille_dots_123578
+IBUS_braille_dots_4578
+IBUS_braille_dots_14578
+IBUS_braille_dots_24578
+IBUS_braille_dots_124578
+IBUS_braille_dots_34578
+IBUS_braille_dots_134578
+IBUS_braille_dots_234578
+IBUS_braille_dots_1234578
+IBUS_braille_dots_678
+IBUS_braille_dots_1678
+IBUS_braille_dots_2678
+IBUS_braille_dots_12678
+IBUS_braille_dots_3678
+IBUS_braille_dots_13678
+IBUS_braille_dots_23678
+IBUS_braille_dots_123678
+IBUS_braille_dots_4678
+IBUS_braille_dots_14678
+IBUS_braille_dots_24678
+IBUS_braille_dots_124678
+IBUS_braille_dots_34678
+IBUS_braille_dots_134678
+IBUS_braille_dots_234678
+IBUS_braille_dots_1234678
+IBUS_braille_dots_5678
+IBUS_braille_dots_15678
+IBUS_braille_dots_25678
+IBUS_braille_dots_125678
+IBUS_braille_dots_35678
+IBUS_braille_dots_135678
+IBUS_braille_dots_235678
+IBUS_braille_dots_1235678
+IBUS_braille_dots_45678
+IBUS_braille_dots_145678
+IBUS_braille_dots_245678
+IBUS_braille_dots_1245678
+IBUS_braille_dots_345678
+IBUS_braille_dots_1345678
+IBUS_braille_dots_2345678
+IBUS_braille_dots_12345678
+</SECTION>
+
+<SECTION>
+<FILE>ibusdebug</FILE>
+ibus_warning
+</SECTION>
+
+<SECTION>
+<FILE>ibusinternal</FILE>
+I_
+dbus_server_setup
+dbus_connection_setup
+</SECTION>
+
diff --git a/docs/reference/ibus/ibus.types b/docs/reference/ibus/ibus.types
index 130545b..e986dd4 100644
--- a/docs/reference/ibus/ibus.types
+++ b/docs/reference/ibus/ibus.types
@@ -1,14 +1,17 @@
-ibus_factory_get_type
-ibus_factory_info_get_type
ibus_attribute_get_type
ibus_attr_list_get_type
-ibus_input_context_get_type
-ibus_observed_path_get_type
-ibus_engine_get_type
-ibus_service_get_type
-ibus_lookup_table_get_type
+ibus_property_get_type
+ibus_prop_list_get_type
ibus_proxy_get_type
-ibus_server_get_type
+ibus_config_get_type
+ibus_hotkey_profile_get_type
+ibus_engine_desc_get_type
+ibus_factory_get_type
+ibus_factory_info_get_type
+ibus_object_get_type
+ibus_bus_get_type
+ibus_service_get_type
+ibus_serializable_get_type
ibus_object_flags_get_type
ibus_attr_type_get_type
ibus_attr_underline_get_type
@@ -16,14 +19,12 @@ ibus_prop_type_get_type
ibus_prop_state_get_type
ibus_modifier_type_get_type
ibus_capabilite_get_type
-ibus_component_get_type
-ibus_connection_get_type
-ibus_property_get_type
-ibus_prop_list_get_type
+ibus_lookup_table_get_type
ibus_text_get_type
-ibus_serializable_get_type
-ibus_hotkey_profile_get_type
-ibus_bus_get_type
-ibus_engine_desc_get_type
-ibus_object_get_type
-ibus_config_get_type
+ibus_connection_get_type
+ibus_component_get_type
+ibus_observed_path_get_type
+ibus_server_get_type
+ibus_engine_get_type
+ibus_config_service_get_type
+ibus_input_context_get_type
diff --git a/src/ibusattribute.h b/src/ibusattribute.h
index 3a0ff7f..a3907c7 100644
--- a/src/ibusattribute.h
+++ b/src/ibusattribute.h
@@ -17,11 +17,19 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibusattribute
+ * @short_description: Attributes of IBusText.
+ * @stability: Stable
+ * @see_also: #IBusText
+ *
+ * An IBusAttribute represents an attribute that associate to IBusText.
+ * It decorates preedit buffer and auxiliary text with underline, foreground and background colors.
+ */
#ifndef __IBUS_ATTRIBUTE_H_
#define __IBUS_ATTRIBUTE_H_
#include "ibusserializable.h"
-
/*
* Type macros.
*/
@@ -53,12 +61,29 @@
#define IBUS_ATTR_LIST_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_ATTR_LIST, IBusAttrListClass))
+/**
+ * IBusAttrType:
+ * @IBUS_ATTR_TYPE_UNDERLINE: Decorate with underline.
+ * @IBUS_ATTR_TYPE_FOREGROUND: Foreground color.
+ * @IBUS_ATTR_TYPE_BACKGROUND: Background color.
+ *
+ * Type of IBusText attribute.
+ */
typedef enum {
IBUS_ATTR_TYPE_UNDERLINE = 1,
IBUS_ATTR_TYPE_FOREGROUND = 2,
IBUS_ATTR_TYPE_BACKGROUND = 3,
} IBusAttrType;
+/**
+ * IBusAttrUnderline:
+ * @IBUS_ATTR_UNDERLINE_NONE: No underline.
+ * @IBUS_ATTR_UNDERLINE_SINGLE: Single underline.
+ * @IBUS_ATTR_UNDERLINE_DOUBLE: Double underline.
+ * @IBUS_ATTR_UNDERLINE_LOW: Low underline ? %FIXME
+ *
+ * Type of IBusText attribute.
+ */
typedef enum {
IBUS_ATTR_UNDERLINE_NONE = 0,
IBUS_ATTR_UNDERLINE_SINGLE = 1,
@@ -73,10 +98,21 @@ typedef struct _IBusAttributeClass IBusAttributeClass;
typedef struct _IBusAttrList IBusAttrList;
typedef struct _IBusAttrListClass IBusAttrListClass;
+
+/**
+ * IBusAttribute:
+ * @type: IBusAttributeType
+ * @value: Value for the type.
+ * @start_index: The starting index, inclusive.
+ * @end_index: The ending index, exclusive.
+ *
+ * Signify the type, value and scope of the attribute.
+ * The scope starts from @start_index till the @end_index-1.
+ */
struct _IBusAttribute {
IBusSerializable parent;
- /* members */
+ /*< public >*/
guint type;
guint value;
guint start_index;
@@ -87,10 +123,16 @@ struct _IBusAttributeClass {
IBusSerializableClass parent;
};
+/**
+ * IBusAttrList:
+ * @attributes: GArray that holds #IBusAttribute.
+ *
+ * Array of IBusAttribute.
+ */
struct _IBusAttrList {
IBusSerializable parent;
- /* members */
+ /*< public >*/
GArray *attributes;
};
@@ -98,26 +140,99 @@ struct _IBusAttrListClass {
IBusSerializableClass parent;
};
+/**
+ * ibus_attribute_get_type:
+ * @returns: GType of IBusAttribute.
+ *
+ * Returns GType of IBusAttribute.
+ */
GType ibus_attribute_get_type ();
+
+/**
+ * ibus_attribute_new:
+ * @type: Type of the attribute.
+ * @value: Value of the attribute.
+ * @start_index: Where attribute starts.
+ * @end_index: Where attribute ends.
+ * @returns: A newly allocated IBusAttribute.
+ *
+ * New an IBusAttribute.
+ */
IBusAttribute *ibus_attribute_new (guint type,
guint value,
guint start_index,
guint end_index);
+/**
+ * ibus_attr_underline_new:
+ * @underline_type: Type of underline.
+ * @start_index: Where attribute starts.
+ * @end_index: Where attribute ends.
+ * @returns: A newly allocated IBusAttribute.
+ *
+ * New an underline IBusAttribute.
+ */
IBusAttribute *ibus_attr_underline_new (guint underline_type,
guint start_index,
guint end_index);
+/**
+ * ibus_attr_foreground_new:
+ * @color: Color in RGB.
+ * @start_index: Where attribute starts.
+ * @end_index: Where attribute ends.
+ * @returns: A newly allocated IBusAttribute.
+ *
+ * New an foreground IBusAttribute.
+ */
IBusAttribute *ibus_attr_foreground_new (guint color,
guint start_index,
guint end_index);
+/**
+ * ibus_attr_background_new:
+ * @color: Color in RGB.
+ * @start_index: Where attribute starts.
+ * @end_index: Where attribute ends.
+ * @returns: A newly allocated IBusAttribute.
+ *
+ * New an background IBusAttribute.
+ */
IBusAttribute *ibus_attr_background_new (guint color,
guint start_index,
guint end_index);
+/**
+ * ibus_attr_list_get_type:
+ * @returns: GType of IBusAttrList.
+ *
+ * Returns GType of IBusAttrList.
+ */
GType ibus_attr_list_get_type ();
+
+/**
+ * ibus_attr_list_new:
+ * @returns: A newly allocated IBusAttrList.
+ *
+ * New an IBusAttrList.
+ */
IBusAttrList *ibus_attr_list_new ();
+
+/**
+ * ibus_attr_list_append:
+ * @attr_list: An IBusAttrList instance.
+ * @attr: The IBusAttribute instance to be appended.
+ *
+ * Append an IBusAttribute to IBusAttrList.
+ */
void ibus_attr_list_append (IBusAttrList *attr_list,
IBusAttribute *attr);
+/**
+ * ibus_attr_list_get:
+ * @attr_list: An IBusAttrList instance.
+ * @index: Index of the @attr_list.
+ * @returns: IBusAttribute at given index, NULL if no such IBusAttribute.
+ *
+ * Returns IBusAttribute at given index.
+ */
IBusAttribute *ibus_attr_list_get (IBusAttrList *attr_list,
guint index);
diff --git a/src/ibusbus.c b/src/ibusbus.c
index 4115689..be1e4e7 100644
--- a/src/ibusbus.c
+++ b/src/ibusbus.c
@@ -385,7 +385,16 @@ ibus_bus_set_watch_dbus_signal (IBusBus *bus,
}
}
-
+/*
+ * ibus_bus_call:
+ * @bus: An IBusBus
+ * @name:
+ * @path:
+ * @interface:
+ * @member:
+ * @first_arg_type:
+ * @returns: TRUE if succeed, FALSE otherwise.
+ */
static gboolean
ibus_bus_call (IBusBus *bus,
const gchar *name,
diff --git a/src/ibusbus.h b/src/ibusbus.h
index e02c193..7788cc2 100644
--- a/src/ibusbus.h
+++ b/src/ibusbus.h
@@ -17,6 +17,16 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibusbus
+ * @short_description: iBus-daemon communicating functions.
+ *
+ * iBus-bus handles the communication with iBus-daemon, including
+ * component registration, name request/release,
+ * and connection status checking.
+ *
+ * It also provides some function to invoke functions in iBus-daemon.
+ */
#ifndef __IBUS_BUS_H_
#define __IBUS_BUS_H_
@@ -46,6 +56,11 @@
G_BEGIN_DECLS
+/**
+ * IBusBus:
+ *
+ * Struct for containing iBus bus (daemon communication) status.
+ */
typedef struct _IBusBus IBusBus;
typedef struct _IBusBusClass IBusBusClass;
@@ -60,24 +75,108 @@ struct _IBusBusClass {
};
GType ibus_bus_get_type (void);
+
+/**
+ * ibus_bus_new:
+ * @returns: A newly allocated IBusBus instance.
+ *
+ * New an IBusBus instance.
+ */
IBusBus *ibus_bus_new (void);
+
+/**
+ * ibus_bus_is_connected:
+ * @bus: An IBusBus.
+ * @returns: TRUE if @bus is connected, FALSE otherwise.
+ *
+ * Return TRUE if @bus is connected to iBus daemon.
+ */
gboolean ibus_bus_is_connected (IBusBus *bus);
+
+
+/**
+ * ibus_bus_get_connection:
+ * @bus: An IBusBus.
+ * @returns: TRUE if @bus is connected, FALSE otherwise.
+ *
+ * Return IBusConnection of an IBusIBus instance.
+ */
IBusConnection
*ibus_bus_get_connection (IBusBus *bus);
+
/* declare dbus methods */
const gchar *ibus_bus_hello (IBusBus *bus);
+
+/**
+ * ibus_bus_request_name:
+ * @bus: the IBusBus instance to be processed.
+ * @name: Name to be requested.
+ * @flags: Flags (FixMe).
+ * @returns: 0 if failed; positive number otherwise.
+ *
+ * Request a name from iBus daemon.
+ */
guint ibus_bus_request_name (IBusBus *bus,
const gchar *name,
guint flags);
+/**
+ * ibus_bus_release_name:
+ * @bus: An IBusBus.
+ * @name: Name to be released.
+ * @returns: 0 if failed; positive number otherwise.
+ *
+ * Release a name to iBus daemon.
+ */
guint ibus_bus_release_name (IBusBus *bus,
const gchar *name);
+
+/**
+ * ibus_bus_name_has_owner:
+ * @bus: An IBusBus.
+ * @name: Name to be released.
+ * @returns: TRUE if the name has owner, FALSE otherwise.
+ *
+ * Whether the name has owner.
+ */
gboolean ibus_bus_name_has_owner (IBusBus *bus,
const gchar *name);
+
+/**
+ * ibus_bus_list_names:
+ * @bus: An IBusBus.
+ * @returns: Lists that attached to @bus.
+ *
+ * Return lists that attached to @bus.
+ * <note><para>[FixMe] Not implemented yet, only return NULL.</para></note>
+ */
GList *ibus_bus_list_names (IBusBus *bus);
+
+/**
+ * ibus_bus_add_match:
+ * @bus: An IBusBus.
+ * @rule: Match rule.
+ *
+ * Add a match rule to an IBusBus.
+ */
void ibus_bus_add_match (IBusBus *bus,
const gchar *rule);
+/**
+ * ibus_bus_remove_match:
+ * @bus: An IBusBus.
+ * @rule: Match rule.
+ *
+ * Remove a match rule to an IBusBus.
+ */
void ibus_bus_remove_match (IBusBus *bus,
const gchar *rule);
+/**
+ * ibus_bus_get_name_owner:
+ * @bus: An IBusBus.
+ * @name: Name.
+ * @returns: Owner of the name.
+ *
+ * Return the name owner.
+ */
const gchar *ibus_bus_get_name_owner (IBusBus *bus,
const gchar *name);
/* declare ibus methods */
@@ -89,6 +188,7 @@ IBusInputContext
const gchar *client_name);
gboolean ibus_bus_register_component(IBusBus *bus,
IBusComponent *component);
+
GList *ibus_bus_list_engines (IBusBus *bus);
GList *ibus_bus_list_active_engines
(IBusBus *bus);
diff --git a/src/ibusconfig.h b/src/ibusconfig.h
index 734218f..f64f402 100644
--- a/src/ibusconfig.h
+++ b/src/ibusconfig.h
@@ -17,6 +17,10 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+
+/**
+ * SECTION: iBus-config
+ */
#ifndef __CONFIG_H_
#define __CONFIG_H_
diff --git a/src/ibusconnection.h b/src/ibusconnection.h
index 5a8e099..d5bdf59 100644
--- a/src/ibusconnection.h
+++ b/src/ibusconnection.h
@@ -17,6 +17,16 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+
+/**
+ * SECTION: ibusconnection
+ * @short_description: DBusConnection wrapper.
+ * @see_also: <ulink url="http://dbus.freedesktop.org/doc/api/html/structDBusConnection.html">DBusConnection</ulink>
+ *
+ * iBus-connection provides DBusConnection wrapper.
+ * It can be used to connect to either dBus or iBus daemon.
+ */
+
#ifndef __IBUS_CONNECTION_H_
#define __IBUS_CONNECTION_H_
diff --git a/src/ibusengine.c b/src/ibusengine.c
index e664454..87a980a 100644
--- a/src/ibusengine.c
+++ b/src/ibusengine.c
@@ -190,6 +190,11 @@ ibus_engine_class_init (IBusEngineClass *klass)
/* install properties */
+ /**
+ * IBusEngine:name:
+ *
+ * Name of this IBusEngine.
+ */
g_object_class_install_property (gobject_class,
PROP_NAME,
g_param_spec_string ("name",
@@ -199,6 +204,11 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ /**
+ * IBusEngine:connection:
+ *
+ * Connection for this IBusEngine.
+ */
g_object_class_install_property (gobject_class,
PROP_CONNECTION,
g_param_spec_object ("connection",
@@ -208,6 +218,15 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
/* install signals */
+ /**
+ * IBusEngine::process-key-event:
+ * @engine: An IBusEngine.
+ * @keyval: KeySym of the key press.
+ * @state: Key modifier flags
+ *
+ * This signal is emitted whenever a key event is received.
+ * Implement process_key_event() in extend class to receive this signal.
+ */
engine_signals[PROCESS_KEY_EVENT] =
g_signal_new (I_("process-key-event"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -220,6 +239,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_UINT,
G_TYPE_UINT);
+ /**
+ * IBusEngine::focus-in:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the client application get the focus.
+ * Implement focus_in() in extend class to receive this signal.
+ */
engine_signals[FOCUS_IN] =
g_signal_new (I_("focus-in"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -230,6 +256,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::focus-out:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the client application lost the focus.
+ * Implement focus_out() in extend class to receive this signal.
+ */
engine_signals[FOCUS_OUT] =
g_signal_new (I_("focus-out"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -240,6 +273,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::reset:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the IME is reset.
+ * Implement reset() in extend class to receive this signal.
+ */
engine_signals[RESET] =
g_signal_new (I_("reset"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -250,6 +290,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::enable:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the IME is enabled.
+ * Implement enable() in extend class to receive this signal.
+ */
engine_signals[ENABLE] =
g_signal_new (I_("enable"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -260,6 +307,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::disable:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the IME is disabled.
+ * Implement disable() in extend class to receive this signal.
+ */
engine_signals[DISABLE] =
g_signal_new (I_("disable"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -270,6 +324,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::set-cursor-location:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the location of IME is set.
+ * Implement set_cursor_location() in extend class to receive this signal.
+ */
engine_signals[SET_CURSOR_LOCATION] =
g_signal_new (I_("set-cursor-location"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -284,6 +345,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_INT,
G_TYPE_INT);
+ /**
+ * IBusEngine::set-capabilities:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the client application capabilities is set.
+ * Implement set_cursor_location() in extend class to receive this signal.
+ */
engine_signals[SET_CAPABILITIES] =
g_signal_new (I_("set-capabilities"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -295,6 +363,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
1,
G_TYPE_UINT);
+ /**
+ * IBusEngine::page-up:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the page-up key is pressed.
+ * Implement page_up() in extend class to receive this signal.
+ */
engine_signals[PAGE_UP] =
g_signal_new (I_("page-up"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -305,6 +380,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::page-down:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the page-down key is pressed.
+ * Implement page_down() in extend class to receive this signal.
+ */
engine_signals[PAGE_DOWN] =
g_signal_new (I_("page-down"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -315,6 +397,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::cursor-up:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the up cursor key is pressed.
+ * Implement cursor_up() in extend class to receive this signal.
+ */
engine_signals[CURSOR_UP] =
g_signal_new (I_("cursor-up"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -325,6 +414,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::cursor-down:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever the down cursor key is pressed.
+ * Implement cursor_down() in extend class to receive this signal.
+ */
engine_signals[CURSOR_DOWN] =
g_signal_new (I_("cursor-down"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -335,6 +431,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_NONE,
0);
+ /**
+ * IBusEngine::property-activate:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever a property is activated or change changed.
+ * Implement property_activate() in extend class to receive this signal.
+ */
engine_signals[PROPERTY_ACTIVATE] =
g_signal_new (I_("property-activate"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -347,6 +450,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
G_TYPE_STRING,
G_TYPE_UINT);
+ /**
+ * IBusEngine::property-show:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever a property is shown.
+ * Implement property_show() in extend class to receive this signal.
+ */
engine_signals[PROPERTY_SHOW] =
g_signal_new (I_("property-show"),
G_TYPE_FROM_CLASS (gobject_class),
@@ -358,6 +468,13 @@ ibus_engine_class_init (IBusEngineClass *klass)
1,
G_TYPE_STRING);
+ /**
+ * IBusEngine::property-hide:
+ * @engine: An IBusEngine.
+ *
+ * This signal is emitted whenever a property is hidden.
+ * Implement property_hide() in extend class to receive this signal.
+ */
engine_signals[PROPERTY_HIDE] =
g_signal_new (I_("property-hide"),
G_TYPE_FROM_CLASS (gobject_class),
diff --git a/src/ibusengine.h b/src/ibusengine.h
index 5a86bf0..afaa496 100644
--- a/src/ibusengine.h
+++ b/src/ibusengine.h
@@ -17,6 +17,16 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibusengine
+ * @short_description: Input method engine abstract.
+ * @stability: Stable
+ * @see_also: #IBusComponent, #IBusEngineDesc
+ *
+ * An IBusEngine provides infrastructure for input method engine.
+ * Developers can "extend" this class for input method engine development.
+ */
+
#ifndef __IBUS_ENGINE_H_
#define __IBUS_ENGINE_H_
@@ -49,13 +59,22 @@ G_BEGIN_DECLS
typedef struct _IBusEngine IBusEngine;
typedef struct _IBusEngineClass IBusEngineClass;
+/**
+ * IBusEngine:
+ * @enabled: Whether the engine is enabled.
+ * @has_focus: Whether the engine has focus.
+ * @cursor_area: Area of cursor.
+ * @client_capabilities: IBusCapabilite (client capabilities) flags.
+ *
+ * IBusEngine properties.
+ */
struct _IBusEngine {
IBusService parent;
/* instance members */
+ /*< public >*/
gboolean enabled;
gboolean has_focus;
- /* cursor location */
IBusRectangle cursor_area;
guint client_capabilities;
};
@@ -103,47 +122,161 @@ struct _IBusEngineClass {
};
GType ibus_engine_get_type (void);
+
+/**
+ * ibus_engine_new:
+ * @name: Name of the IBusObject.
+ * @path: Path for IBusService.
+ * @connection: An opened IBusConnection.
+ * @returns: A newly allocated IBusEngine.
+ *
+ * New an IBusEngine.
+ */
IBusEngine *ibus_engine_new (const gchar *name,
const gchar *path,
IBusConnection *connection);
+/**
+ * ibus_engine_commit_text:
+ * @engine: An IBusEngine.
+ * @text: String commit to IBusEngine.
+ *
+ * Commit output of input method to IBus client.
+ */
void ibus_engine_commit_text (IBusEngine *engine,
IBusText *text);
+
+/**
+ * ibus_engine_update_preedit_text:
+ * @engine: An IBusEngine.
+ * @text: Update content.
+ * @cursor_pos: Current position of cursor
+ * @visible: Whether the pre-edit buffer is visible.
+ *
+ * Update the pre-edit buffer.
+ */
void ibus_engine_update_preedit_text
(IBusEngine *engine,
IBusText *text,
guint cursor_pos,
gboolean visible);
+
+/**
+ * ibus_engine_show_preedit_text:
+ * @engine: An IBusEngine.
+ *
+ * Show the pre-edit buffer.
+ */
void ibus_engine_show_preedit_text
(IBusEngine *engine);
+/**
+ * ibus_engine_hide_preedit_text:
+ * @engine: An IBusEngine.
+ *
+ * Hide the pre-edit buffer.
+ */
void ibus_engine_hide_preedit_text
(IBusEngine *engine);
+
+/**
+ * ibus_engine_update_auxiliary_text:
+ * @engine: An IBusEngine.
+ * @text: Update content.
+ * @visible: Whether the auxiliary text bar is visible.
+ *
+ * Update the auxiliary bar.
+ */
void ibus_engine_update_auxiliary_text
(IBusEngine *engine,
IBusText *text,
gboolean visible);
+/**
+ * ibus_engine_show_auxiliary_text:
+ * @engine: An IBusEngine.
+ *
+ * Show the auxiliary bar.
+ */
void ibus_engine_show_auxiliary_text
(IBusEngine *engine);
+/**
+ * ibus_engine_hide_auxiliary_text:
+ * @engine: An IBusEngine.
+ *
+ * Hide the auxiliary bar.
+ */
void ibus_engine_hide_auxiliary_text
(IBusEngine *engine);
+
+/**
+ * ibus_engine_update_lookup_table:
+ * @engine: An IBusEngine.
+ * @lookup_table: An lookup_table.
+ * @visible: Whether the lookup_table is visible.
+ *
+ * Update the lookup table.
+ */
void ibus_engine_update_lookup_table
(IBusEngine *engine,
IBusLookupTable *lookup_table,
gboolean visible);
+/**
+ * ibus_engine_show_lookup_table:
+ * @engine: An IBusEngine.
+ *
+ * Show the lookup table.
+ */
void ibus_engine_show_lookup_table
(IBusEngine *engine);
+/**
+ * ibus_engine_hide_lookup_table:
+ * @engine: An IBusEngine.
+ *
+ * Hide the lookup table.
+ */
void ibus_engine_hide_lookup_table
(IBusEngine *engine);
+
+/**
+ * ibus_engine_forward_key_event:
+ * @engine: An IBusEngine.
+ * @keyval: KeySym.
+ * @is_press: Where the key is pressed.
+ * @state: Key modifier flags.
+ *
+ * Forward the key event.
+ */
void ibus_engine_forward_key_event
(IBusEngine *engine,
guint keyval,
guint state);
+/**
+ * ibus_engine_register_properties:
+ * @engine: An IBusEngine.
+ * @prop_list: Property List.
+ *
+ * Register and show properties in language bar.
+ */
void ibus_engine_register_properties
(IBusEngine *engine,
IBusPropList *prop_list);
+/**
+ * ibus_engine_update_property:
+ * @engine: An IBusEngine.
+ * @prop: IBusProperty to be updated.
+ *
+ * Update the state displayed in language bar.
+ */
void ibus_engine_update_property(IBusEngine *engine,
IBusProperty *prop);
+
+/**
+ * ibus_engine_get_name:
+ * @engine: An IBusEngine.
+ * @returns: Name of IBusEngine.
+ *
+ * Return the name of IBusEngine.
+ */
const gchar *ibus_engine_get_name (IBusEngine *engine);
G_END_DECLS
diff --git a/src/ibusenginedesc.h b/src/ibusenginedesc.h
index 1ba9153..243c92a 100644
--- a/src/ibusenginedesc.h
+++ b/src/ibusenginedesc.h
@@ -17,6 +17,22 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibusenginedesc
+ * @short_description: Input method engine description data.
+ * @stability: Stable
+ * @see_also: #IBusComponent, #IBusEngine
+ *
+ * An IBusEngineDesc stores description data of IBusEngine.
+ * The description data can either be passed to ibus_engine_desc_new(),
+ * or loaded from an XML node through ibus_engine_desc_new_from_xml_node()
+ * to construct IBusEngineDesc.
+ *
+ * However, the recommended way to load engine description data is
+ * using ibus_component_new_from_file() to load a component file,
+ * which also includes engine description data.
+ */
+
#ifndef __ENGINE_DESC_H_
#define __ENGINE_DESC_H_
@@ -47,10 +63,26 @@ typedef struct _IBusEngineDesc IBusEngineDesc;
typedef struct _IBusEngineDescClass IBusEngineDescClass;
typedef struct _BusComponent BusComponent;
+/**
+ * IBusEngineDesc:
+ * @name: Name of the engine.
+ * @longname: Long name of the input method engine.
+ * @description: Input method engine description.
+ * @language: Language (e.g. zh, jp) supported by this input method engine.
+ * @license: License of the input method engine.
+ * @author: Author of the input method engine.
+ * @icon: Icon file of this engine.
+ * @layout: Keyboard layout
+ * @rank: Preference rank among engines, the highest ranked IME will put in
+ * the front.
+ *
+ * Input method engine description data.
+ */
struct _IBusEngineDesc {
IBusSerializable parent;
/* instance members */
+ /*< public >*/
gchar *name;
gchar *longname;
gchar *description;
@@ -69,6 +101,21 @@ struct _IBusEngineDescClass {
};
GType ibus_engine_desc_get_type (void);
+
+/**
+ * ibus_engine_desc_new:
+ * @name: Name of the engine.
+ * @longname: Long name of the input method engine.
+ * @description: Input method engine description.
+ * @language: Language (e.g. zh, jp) supported by this input method engine.
+ * @license: License of the input method engine.
+ * @author: Author of the input method engine.
+ * @icon: Icon file of this engine.
+ * @layout: Keyboard layout
+ * @returns: A newly allocated IBusEngineDesc.
+ *
+ * New a IBusEngineDesc.
+ */
IBusEngineDesc *ibus_engine_desc_new (const gchar *name,
const gchar *longname,
const gchar *description,
@@ -77,8 +124,28 @@ IBusEngineDesc *ibus_engine_desc_new (const gchar *name,
const gchar *author,
const gchar *icon,
const gchar *layout);
+/**
+ * ibus_engine_desc_new_from_xml_node:
+ * @node: An XML node
+ * @returns: A newly allocated IBusEngineDesc that contains description from
+ * @node.
+ *
+ * New a IBusEngineDesc from an XML node.
+ * <note><para>This function is called by ibus_component_new_from_file(),
+ * so developers normally do not need to call it directly.
+ * </para></note>
+ */
IBusEngineDesc *ibus_engine_desc_new_from_xml_node
(XMLNode *node);
+/**
+ * ibus_engine_desc_output:
+ * @info: An IBusEngineDesc
+ * @output: XML-formatted Input method engine description.
+ * @indent: Number of indent (showed as 4 spaces).
+ *
+ * Output XML-formatted input method engine description.
+ * The result will be append to GString specified in @output.
+ */
void ibus_engine_desc_output (IBusEngineDesc *info,
GString *output,
gint indent);
diff --git a/src/ibuslookuptable.h b/src/ibuslookuptable.h
index ede02b1..5f1e0b6 100644
--- a/src/ibuslookuptable.h
+++ b/src/ibuslookuptable.h
@@ -17,6 +17,19 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibuslookuptable
+ * @short_description: Candidate word/phrase lookup table.
+ * @stability: Stable
+ * @see_also: #IBusEngine
+ *
+ * An IBusLookuptable stores the candidate words or phrases for users to choose from.
+ *
+ * Use ibus_engine_update_lookup_table(), ibus_engine_show_lookup_table(),
+ * and ibus_engine_hide_lookup_table() to update, show and hide the lookup
+ * table.
+ */
+
#ifndef __IBUS_LOOKUP_TABLE_H_
#define __IBUS_LOOKUP_TABLE_H_
@@ -46,9 +59,21 @@ G_BEGIN_DECLS
typedef struct _IBusLookupTable IBusLookupTable;
typedef struct _IBusLookupTableClass IBusLookupTableClass;
+
+/**
+ * IBusLookupTable:
+ * @page_size: number of candidate shown per page.
+ * @cursor_pos: position index of cursor.
+ * @cursor_visible: whether the cursor is visible.
+ * @round: TRUE for lookup table wrap around.
+ * @candidates: Candidate words/phrases/
+ *
+ * An IBusLookuptable stores the candidate words or phrases for users to choose from.
+ */
struct _IBusLookupTable {
IBusSerializable parent;
+ /*< public >*/
guint page_size;
guint cursor_pos;
gboolean cursor_visible;
@@ -63,37 +88,174 @@ struct _IBusLookupTableClass {
GType ibus_lookup_table_get_type (void);
+
+/**
+ * ibus_lookup_table_new:
+ * @page_size: number of candidate shown per page.
+ * @cursor_pos: position index of cursor.
+ * @cursor_visible: whether the cursor is visible.
+ * @round: TRUE for lookup table wrap around.
+ * @returns: A newly allocated IBusLookupTable.
+ *
+ * New a IBusLookupTable.
+ */
IBusLookupTable *ibus_lookup_table_new (guint page_size,
guint cursor_pos,
gboolean cursor_visible,
gboolean round);
+/**
+ * ibus_lookup_table_append_candidate:
+ * @table: An IBusLookupTable.
+ * @text: candidate word/phrase to be appended (in IBusText format).
+ *
+ * Append a candidate word/phrase to IBusLookupTable.
+ */
void ibus_lookup_table_append_candidate
(IBusLookupTable *table,
IBusText *text);
+
+/**
+ * ibus_lookup_table_get_candidate:
+ * @table: An IBusLookupTable.
+ * @index: Index in the Lookup table.
+ * @returns: IBusText at the given index; NULL if no such IBusText.
+ *
+ * Return IBusText at the given index.
+ */
IBusText *ibus_lookup_table_get_candidate
(IBusLookupTable *table,
guint index);
+
+/**
+ * ibus_lookup_table_set_cursor_pos:
+ * @table: An IBusLookupTable.
+ * @cursor_pos: The position of cursor.
+ *
+ * Set the cursor position of IBusLookupTable.
+ */
void ibus_lookup_table_set_cursor_pos
(IBusLookupTable *table,
guint cursor_pos);
+
+/**
+ * ibus_lookup_table_get_cursor_pos:
+ * @table: An IBusLookupTable.
+ * @returns: The position of cursor.
+ *
+ * Get the cursor position of IBusLookupTable.
+ */
guint ibus_lookup_table_get_cursor_pos
(IBusLookupTable *table);
+
+/**
+ * ibus_lookup_table_set_cursor_visible:
+ * @table: An IBusLookupTable.
+ * @visible: Whether to make the cursor of @table visible.
+ *
+ * Set whether to make the cursor of an IBusLookupTable visible or not.
+ */
void ibus_lookup_table_set_cursor_visible
(IBusLookupTable *table,
gboolean visible);
+
+/**
+ * ibus_lookup_table_is_cursor_visible:
+ * @table: An IBusLookupTable.
+ * @returns: Whether the cursor of @table is visible.
+ *
+ * Returns whether the cursor of an IBusLookupTable is visible.
+ */
gboolean ibus_lookup_table_is_cursor_visible
(IBusLookupTable *table);
+
+/**
+ * ibus_lookup_table_get_cursor_in_page:
+ * @table: An IBusLookupTable.
+ * @returns: The position of cursor in current page.
+ *
+ * Get the cursor position in current page of IBusLookupTable.
+ */
guint ibus_lookup_table_get_cursor_in_page
(IBusLookupTable *table);
+/**
+ * ibus_lookup_table_set_page_size:
+ * @table: An IBusLookupTable.
+ * @page_size: number of candidate shown per page.
+ *
+ * Set the number of candidate shown per page.
+ */
void ibus_lookup_table_set_page_size
(IBusLookupTable *table,
guint page_size);
+
+/**
+ * ibus_lookup_table_get_page_size:
+ * @table: An IBusLookupTable.
+ * @returns: Page size, i.e., number of candidate shown per page.
+ *
+ * Get the number of candidate shown per page.
+ */
guint ibus_lookup_table_get_page_size
(IBusLookupTable *table);
+
+/**
+ * ibus_lookup_table_clear:
+ * @table: An IBusLookupTable.
+ *
+ * Clear and remove all candidate from an IBusLookupTable.
+ */
void ibus_lookup_table_clear (IBusLookupTable *table);
+
+/**
+ * ibus_lookup_table_page_up:
+ * @table: An IBusLookupTable.
+ * @returns: TRUE if success.
+ *
+ * Go to previous page of an IBusLookupTable.
+ *
+ * It returns FALSE if it is already at the first page,
+ * unless <code>table&gt;-round==TRUE</code>, where it will go
+ * to the last page.
+ */
gboolean ibus_lookup_table_page_up (IBusLookupTable *table);
+
+/**
+ * ibus_lookup_table_page_down:
+ * @table: An IBusLookupTable.
+ * @returns: TRUE if success.
+ *
+ * Go to next page of an IBusLookupTable.
+ *
+ * It returns FALSE if it is already at the last page,
+ * unless <code>table&gt;-round==TRUE</code>, where it will go
+ * to the first page.
+ */
gboolean ibus_lookup_table_page_down(IBusLookupTable *table);
+
+/**
+ * ibus_lookup_table_cursor_up:
+ * @table: An IBusLookupTable.
+ * @returns: TRUE if success.
+ *
+ * Go to previous candidate of an IBusLookupTable.
+ *
+ * It returns FALSE if it is already at the first candidate,
+ * unless <code>table&gt;-round==TRUE</code>, where it will go
+ * to the last candidate.
+ */
gboolean ibus_lookup_table_cursor_up(IBusLookupTable *table);
+
+/**
+ * ibus_lookup_table_cursor_down:
+ * @table: An IBusLookupTable.
+ * @returns: TRUE if success.
+ *
+ * Go to next candidate of an IBusLookupTable.
+ *
+ * It returns FALSE if it is already at the last candidate,
+ * unless <code>table&gt;-round==TRUE</code>, where it will go
+ * to the first candidate.
+ */
gboolean ibus_lookup_table_cursor_down
(IBusLookupTable *table);
G_END_DECLS
diff --git a/src/ibusobject.h b/src/ibusobject.h
index 67fb95b..38cdfac 100644
--- a/src/ibusobject.h
+++ b/src/ibusobject.h
@@ -17,6 +17,13 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibusobject
+ * @short_description: Base Object of iBus.
+ * @stability: Stable
+ *
+ * Base object handling functions of iBus.
+ */
#ifndef __IBUS_OBJECT_H_
#define __IBUS_OBJECT_H_
@@ -73,6 +80,12 @@ struct _IBusObject {
typedef void ( *IBusObjectDestroyFunc) (IBusObject *);
+
+/**
+ * IBusObjectClass:
+ * @destroy: IBus object destroy method, usually implemented by subclass.
+ *
+ */
struct _IBusObjectClass {
GObjectClass parent;
@@ -84,8 +97,28 @@ struct _IBusObjectClass {
gpointer pdummy[7];
};
-GType ibus_object_get_type (void);
+/**
+ * ibus_object_get_type:
+ * @returns: GType for IBusObject
+ *
+ * Returns GType for IBusObject.
+ */
+ GType ibus_object_get_type (void);
+
+/**
+ * ibus_object_new:
+ * @returns: A newly allocated IBusObject
+ *
+ * Returns a newly allocated IBusObject.
+ */
IBusObject *ibus_object_new (void);
+
+/**
+ * ibus_object_destory:
+ * @object: IBusObject to be destroy.
+ *
+ * Destroy an IBusObject.
+ */
void ibus_object_destroy (IBusObject *object);
G_END_DECLS
diff --git a/src/ibusproperty.h b/src/ibusproperty.h
index 19ff33c..6e90cd3 100644
--- a/src/ibusproperty.h
+++ b/src/ibusproperty.h
@@ -17,6 +17,20 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibusproperty
+ * @short_description: UI component for input method engine property.
+ * @stability: Stable
+ * @see_also: #IBusEngine
+ *
+ * An IBusProperty is an UI component like a button or a menu item
+ * which shows the status of corresponding input method engine property.
+ * End user can operate and see the current status of IME through these components.
+ * For example, ibus-chewing users change the English/Chinese input mode by
+ * pressing ctrl-space or click on the Eng/Chi switch button.
+ * And the IBusProperty shows the change correspondingly.
+ */
+
#ifndef __IBUS_PROPERTY_H_
#define __IBUS_PROPERTY_H_
@@ -59,7 +73,17 @@ G_BEGIN_DECLS
#define IBUS_PROP_LIST_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_PROP_LIST, IBusPropListClass))
-
+/**
+ * IBusPropType:
+ * @PROP_TYPE_NORMAL: Property is shown as normal text.
+ * @PROP_TYPE_TOGGLE: Property is shown as a toggle button.
+ * @PROP_TYPE_RADIO: Property is shown as a radio selection option.
+ * @PROP_TYPE_MENU: Property is shown as a menu, usually imply it has sub menu
+ * items.
+ * @PROP_TYPE_SEPARATOR: A separator for menu.
+ *
+ * Type of IBusProperty.
+ */
typedef enum {
PROP_TYPE_NORMAL = 0,
PROP_TYPE_TOGGLE = 1,
@@ -68,21 +92,58 @@ typedef enum {
PROP_TYPE_SEPARATOR = 4,
} IBusPropType;
+/**
+ * IBusPropState:
+ * @PROP_STATE_UNCHECKED: Property option is unchecked.
+ * @PROP_STATE_CHECKED: Property option is checked.
+ * @PROP_STATE_INCONSISTENT: The state is inconsistent with the associated IME
+ * property.
+ *
+ * State of IBusProperty. The actual effect depends on #IBusPropType of the
+ * IBusProperty.
+ *
+ * <variablelist>
+ * <varlistentry>
+ * <term>PROP_TYPE_TOGGLE</term>
+ * <listitem><para>Emphasized if PROP_STATE_CHECKED, normal otherwise.</para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>PROP_TYPE_RADIO</term>
+ * <listitem><para>Option checked if PROP_STATE_CHECKED, unchecked otherwise.</para></listitem>
+ * </varlistentry>
+ * </variablelist>
+ * No effect on other types.
+ */
typedef enum {
PROP_STATE_UNCHECKED = 0,
PROP_STATE_CHECKED = 1,
PROP_STATE_INCONSISTENT = 2,
} IBusPropState;
-
typedef struct _IBusProperty IBusProperty;
typedef struct _IBusPropertyClass IBusPropertyClass;
typedef struct _IBusPropList IBusPropList;
typedef struct _IBusPropListClass IBusPropListClass;
+/**
+ * IBusProperty:
+ * @key: Unique Identity for the IBusProperty.
+ * @icon: Icon file for the IBusProperty.
+ * @label: Text shown in UI.
+ * @tooltip: Message shown if mouse hovered the IBusProperty.
+ * @sensitive: Whether the IBusProperty is sensitive to keyboard and mouse event.
+ * @visible: Whether the IBusProperty is visible.
+ * @type: IBusPropType of IBusProperty.
+ * @state: IBusPropState of IBusProperty.
+ * @sub_props: IBusPropList that contains sub IBusProperties. These IBusProperties are usually
+ * shown as sub menu item.
+ *
+ * UI component for input method engine property.
+ */
struct _IBusProperty {
IBusSerializable parent;
-
+
+ /*< public >*/
gchar *key;
gchar *icon;
IBusText *label;
@@ -100,9 +161,17 @@ struct _IBusPropertyClass {
IBusSerializableClass parent;
};
+
+/**
+ * IBusPropList:
+ * @properties: GArray that holds IBusProperties.
+ *
+ * An Array of IBusProperties.
+ */
struct _IBusPropList {
IBusSerializable parent;
+ /*< public >*/
GArray *properties;
};
@@ -111,6 +180,21 @@ struct _IBusPropListClass {
};
GType ibus_property_get_type ();
+/**
+ * ibus_property_new:
+ * @key: Unique Identity for the IBusProperty.
+ * @icon: Icon file for the IBusProperty.
+ * @label: Text shown in UI.
+ * @tooltip: Message shown if mouse hovered the IBusProperty.
+ * @sensitive: Whether the IBusProperty is sensitive to keyboard and mouse event.
+ * @visible: Whether the IBusProperty is visible.
+ * @type: IBusPropType of IBusProperty.
+ * @state: IBusPropState of IBusProperty.
+ * @prop_list: IBusPropList that contains sub IBusProperties.
+ * @returns: A newly allocated IBusProperty.
+ *
+ * New a IBusProperty.
+ */
IBusProperty *ibus_property_new (const gchar *key,
IBusPropType type,
IBusText *label,
@@ -120,21 +204,78 @@ IBusProperty *ibus_property_new (const gchar *key,
gboolean visible,
IBusPropState state,
IBusPropList *prop_list);
+
+/**
+ * ibus_property_set_label:
+ * @prop: An IBusProperty.
+ * @label: Text shown in UI.
+ *
+ * Set the label of IBusProperty.
+ */
void ibus_property_set_label (IBusProperty *prop,
IBusText *label);
+
+/**
+ * ibus_property_set_visible:
+ * @prop: An IBusProperty.
+ * @visible: Whether the IBusProperty is visible.
+ *
+ * Set whether the IBusProperty is visible.
+ */
void ibus_property_set_visible (IBusProperty *prop,
gboolean visible);
+
+/**
+ * ibus_property_set_sub_props:
+ * @prop: An IBusProperty.
+ * @prop_list: IBusPropList that contains sub IBusProperties.
+ *
+ * Set the sub IBusProperties.
+ */
void ibus_property_set_sub_props(IBusProperty *prop,
IBusPropList *prop_list);
gboolean ibus_property_update (IBusProperty *prop,
IBusProperty *prop_update);
GType ibus_prop_list_get_type ();
+
+/**
+ * ibus_prop_list_new:
+ * @returns: A newly allocated IBusPropList.
+ *
+ * New a IBusPropList.
+ */
IBusPropList *ibus_prop_list_new ();
+
+/**
+ * ibus_prop_list_append:
+ * @prop_list: An IBusPropList.
+ * @prop: IBusProperty to be append to @prop_list.
+ *
+ * Append an IBusProperty to an IBusPropList.
+ */
void ibus_prop_list_append (IBusPropList *prop_list,
IBusProperty *prop);
+
+/**
+ * ibus_prop_list_get:
+ * @prop_list: An IBusPropList.
+ * @index: Index of an IBusPropList.
+ * @returns: IBusProperty at given index, NULL if no such IBusProperty.
+ *
+ * Returns IBusProperty at given index.
+ */
IBusProperty *ibus_prop_list_get (IBusPropList *prop_list,
guint index);
+
+/**
+ * ibus_prop_list_update_property:
+ * @prop_list: An IBusPropList.
+ * @prop: IBusProperty to be update.
+ * @returns: TRUE if succeeded, FALSE otherwise.
+ *
+ * Update an IBusProperty in IBusPropList.
+ */
gboolean ibus_prop_list_update_property
(IBusPropList *prop_list,
IBusProperty *prop);
diff --git a/src/ibustext.h b/src/ibustext.h
index 9696f80..0144d54 100644
--- a/src/ibustext.h
+++ b/src/ibustext.h
@@ -17,6 +17,17 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibustext
+ * @short_description: Text with decorating information.
+ * @see_also: #IBusAttribute
+ *
+ * An IBusText is the main text object in IBus.
+ * The text is decorated according to associated IBusAttribute,
+ * e.g. the foreground/background color, underline, and
+ * applied scope.
+ */
+
#ifndef __IBUS_TEXT_H_
#define __IBUS_TEXT_H_
@@ -45,10 +56,19 @@ G_BEGIN_DECLS
typedef struct _IBusText IBusText;
typedef struct _IBusTextClass IBusTextClass;
+/**
+ * IBusText:
+ * @is_static: Whether @text is static, i.e., no need and will not be freed. Only TRUE if IBusText is newed from ibus_text_new_from_static_string().
+ * @text: The string content of IBusText in UTF-8.
+ * @attrs: Associated IBusAttributes.
+ *
+ * A text object in IBus.
+ */
struct _IBusText {
IBusSerializable parent;
/* members */
+ /*< public >*/
gboolean is_static;
gchar *text;
IBusAttrList *attrs;
@@ -59,17 +79,79 @@ struct _IBusTextClass {
};
GType ibus_text_get_type (void);
+
+/**
+ * ibus_text_new_from_string:
+ * @str: An text string to be set.
+ * @returns: A newly allocated IBusText.
+ *
+ * New an IBusText whose content is copied from a text string.
+ */
IBusText *ibus_text_new_from_string (const gchar *str);
+
+/**
+ * ibus_text_new_from_ucs4:
+ * @str: An text string to be set.
+ * @returns: A newly allocated IBusText.
+ *
+ * New an IBusText whose content is copied from a UCS4 encoded text string.
+ */
IBusText *ibus_text_new_from_ucs4 (const gunichar *str);
+
+/**
+ * ibus_text_new_from_static_string:
+ * @str: An text string to be set.
+ * @returns: A newly allocated IBusText.
+ *
+ * New an IBusText whose content is from a static string.
+ * Note that it is the developer's duty to ensure @str is static.
+ */
IBusText *ibus_text_new_from_static_string (const gchar *str);
+
+/**
+ * ibus_text_new_from_printf:
+ * @fmt: printf format string.
+ * @...: arguments for @fmt.
+ * @returns: A newly allocated IBusText.
+ *
+ * New an IBusText from a printf expression.
+ */
IBusText *ibus_text_new_from_printf (const gchar *fmt,
...);
+
+/**
+ * ibus_text_new_from_unichar:
+ * @c: A single UCS4-encoded character.
+ * @returns: A newly allocated IBusText.
+ *
+ * New an IBusText from a single UCS4-encoded character.
+ */
IBusText *ibus_text_new_from_unichar (gunichar c);
+
+/**
+ * ibus_text_append_attribute:
+ * @text: an IBusText
+ * @type: IBusAttributeType for @text.
+ * @value: Value for the type.
+ * @start_index: The starting index, inclusive.
+ * @end_index: The ending index, exclusive.
+ *
+ * Append an IBusAttribute for IBusText.
+ */
void ibus_text_append_attribute (IBusText *text,
guint type,
guint value,
guint start_index,
gint end_index);
+/**
+ * ibus_text_get_length:
+ * @text: An IBusText.
+ * @returns: Number of character in @text, not counted by bytes.
+ *
+ * Return number of characters in an IBusText.
+ * This function is based on g_utf8_strlen(), so unlike strlen(),
+ * it does not count by bytes but characters instead.
+ */
guint ibus_text_get_length (IBusText *text);
G_END_DECLS
diff --git a/src/ibustypes.h b/src/ibustypes.h
index a977db4..c2b40de 100644
--- a/src/ibustypes.h
+++ b/src/ibustypes.h
@@ -17,9 +17,41 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION: ibustypes
+ * @short_description: Generic types for iBus.
+ * @stability: Stable
+ *
+ * This session consists generic types for iBus, including shift/control key modifiers,
+ * and a rectangle structure.
+ */
#ifndef __IBUS_TYPES_H_
#define __IBUS_TYPES_H_
+/**
+ * IBusModifierType:
+ * @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_FORWARD_MASK: Forward mask.
+ * @IBUS_SUPER_MASK: Super (Usually Win) key is activated.
+ * @IBUS_HYPER_MASK: Hyper key is activated.
+ * @IBUS_RELEASE_MASK: Key is released.
+ * @IBUS_MODIFIER_MASK: Modifier mask for the all the masks above.
+ *
+ * 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.
+ */
typedef enum
{
IBUS_SHIFT_MASK = 1 << 0,
@@ -40,7 +72,7 @@ typedef enum
* Bits 15 - 25 are currently unused. Bit 29 is used internally.
*/
- /* forard mask */
+ /* forward mask */
IBUS_FORWARD_MASK = 1 << 25,
IBUS_SUPER_MASK = 1 << 26,
@@ -52,6 +84,16 @@ typedef enum
IBUS_MODIFIER_MASK = 0x5c001fff
} IBusModifierType;
+/**
+ * IBusCapabilite:
+ * @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.
+ *
+ * Capability flags of UI.
+ */
typedef enum {
IBUS_CAP_PREEDIT_TEXT = 1 << 0,
IBUS_CAP_AUXILIARY_TEXT = 1 << 1,
@@ -60,6 +102,15 @@ typedef enum {
IBUS_CAP_PROPERTY = 1 << 4,
} IBusCapabilite;
+/**
+ * IBusRectangle:
+ * @x: x coordinate.
+ * @y: y coordinate.
+ * @width: width of the rectangle.
+ * @height: height of the renctangl.
+ *
+ * Rectangle definition.
+ */
typedef struct _IBusRectangle IBusRectangle;
struct _IBusRectangle {
gint x;
@@ -68,7 +119,13 @@ struct _IBusRectangle {
gint height;
};
-typedef void (* IBusFreeFunc) (gpointer );
+/**
+ * IBusFreeFunc:
+ * @object: object to be freed.
+ *
+ * Free function prototype.
+ */
+typedef void (* IBusFreeFunc) (gpointer object);
#endif