From: dchen@redhat.com Date: Wed, 15 Apr 2009 00:11:36 +0000 (+1000) Subject: Translation zh_TW updated; API DOC for IBusConfigServices; Modify Makefile.am for... X-Git-Tag: 1.1.0.20090417~6^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fc560cda9aa9f6f75c681c21c925a4fea8e4723a;p=platform%2Fupstream%2Fibus.git Translation zh_TW updated; API DOC for IBusConfigServices; Modify Makefile.am for gtk-doc Surpress tmpl-build.stamp and trim ibus-sections.txt, so no need to keep ibus-sections.txt now. Revised some API DOC, Fix the API DOC of IBusEngine Add zh_TW translation, Add back some API DOC Add back some APIDOC API-DOC IBusBus IBusComponent IBusConfig IBusLookupTable Corrected spelling in ibuscompnent.[ch] Add documentation of ibusbus.c --- diff --git a/docs/reference/ibus/.gitignore b/docs/reference/ibus/.gitignore index 6cdfa55..4c4fa63 100644 --- a/docs/reference/ibus/.gitignore +++ b/docs/reference/ibus/.gitignore @@ -4,6 +4,8 @@ ibus-overrides.txt ibus-undeclared.txt ibus-undocumented.txt ibus-unused.txt +ibus-sections.txt +ibus-sections.txt.old html tmpl xml diff --git a/docs/reference/ibus/Makefile.am b/docs/reference/ibus/Makefile.am index 310bdef..c71de75 100644 --- a/docs/reference/ibus/Makefile.am +++ b/docs/reference/ibus/Makefile.am @@ -25,8 +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= +SCAN_OPTIONS=--rebuild-sections +#SCAN_OPTIONS= # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml @@ -99,6 +99,14 @@ EXTRA_DIST += # Comment this out if you want your docs-status tested during 'make check' #TESTS = $(GTKDOC_CHECK) +trim-sections.txt: + cp $(DOC_MODULE)-sections.txt $(DOC_MODULE)-sections.txt.old + sed '/IBusAttrList<\/TITLE>/d' $(DOC_MODULE)-sections.txt.old > $(DOC_MODULE)-sections.txt + cp $(DOC_MODULE)-sections.txt $(DOC_MODULE)-sections.txt.old + sed '/<TITLE>IBusPropList<\/TITLE>/d' $(DOC_MODULE)-sections.txt.old > $(DOC_MODULE)-sections.txt + +tmpl-build.stamp: trim-sections.txt $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-overrides.txt + clean-local: rm -rf tmpl diff --git a/docs/reference/ibus/ibus-sections.txt b/docs/reference/ibus/ibus-sections.txt deleted file mode 100644 index 201a536..0000000 --- a/docs/reference/ibus/ibus-sections.txt +++ /dev/null @@ -1,2710 +0,0 @@ -<SECTION> -<FILE>ibusproperty</FILE> -IBUS_TYPE_PROP_LIST -IBUS_PROP_LIST -IBUS_PROP_LIST_CLASS -IBUS_IS_PROP_LIST -IBUS_IS_PROP_LIST_CLASS -IBUS_PROP_LIST_GET_CLASS -IBusPropType -IBusPropState -<TITLE>IBusProperty -IBusProperty -IBusPropList -IBusPropList -ibus_property_new -ibus_property_set_label -ibus_property_set_visible -ibus_property_set_sub_props -ibus_property_update -ibus_prop_list_get_type -ibus_prop_list_new -ibus_prop_list_append -ibus_prop_list_get -ibus_prop_list_update_property - -IBUS_PROPERTY -IBUS_IS_PROPERTY -IBUS_TYPE_PROPERTY -ibus_property_get_type -IBUS_PROPERTY_CLASS -IBUS_IS_PROPERTY_CLASS -IBUS_PROPERTY_GET_CLASS - - -
-ibusproxy -IBusProxy -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_unique_name -ibus_proxy_get_path -ibus_proxy_get_interface -ibus_proxy_get_connection - -IBUS_PROXY -IBUS_IS_PROXY -IBUS_TYPE_PROXY -ibus_proxy_get_type -IBUS_PROXY_CLASS -IBUS_IS_PROXY_CLASS -IBUS_PROXY_GET_CLASS -
- -
-ibusconfig -IBusConfig -IBusConfig -ibus_config_new -ibus_config_get_value -ibus_config_set_value - -IBUS_CONFIG -IBUS_IS_CONFIG -IBUS_TYPE_CONFIG -ibus_config_get_type -IBUS_CONFIG_CLASS -IBUS_IS_CONFIG_CLASS -IBUS_CONFIG_GET_CLASS -
- -
-ibushotkey -IBusHotkeyProfile -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 - -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 -
- -
-ibusenginedesc -BusComponent -IBusEngineDesc -IBusEngineDesc -ibus_engine_desc_new -ibus_engine_desc_new_from_xml_node -ibus_engine_desc_output - -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 -
- -
-ibusfactory -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 -IBusFactory -IBusFactory -IBusFactoryInfo -IBusFactoryInfo -ibus_factory_new -ibus_factory_add_engine -ibus_factory_get_info -ibus_factory_info_get_type -ibus_factory_info_new - -IBUS_FACTORY -IBUS_IS_FACTORY -IBUS_TYPE_FACTORY -ibus_factory_get_type -IBUS_FACTORY_CLASS -IBUS_IS_FACTORY_CLASS -IBUS_FACTORY_GET_CLASS -
- -
-ibusobject -IBusObjectFlags -IBUS_OBJECT_FLAGS -IBUS_OBJECT_SET_FLAGS -IBUS_OBJECT_UNSET_FLAGS -IBUS_OBJECT_DESTROYED -IBusObject -IBusObject -ibus_object_new -ibus_object_destroy - -IBUS_OBJECT -IBUS_IS_OBJECT -IBUS_TYPE_OBJECT -ibus_object_get_type -IBUS_OBJECT_CLASS -IBUS_IS_OBJECT_CLASS -IBUS_OBJECT_GET_CLASS -
- -
-ibusbus -IBusBus -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 -ibus_bus_get_config - -IBUS_BUS -IBUS_IS_BUS -IBUS_TYPE_BUS -ibus_bus_get_type -IBUS_BUS_CLASS -IBUS_IS_BUS_CLASS -IBUS_BUS_GET_CLASS -
- -
-ibusattribute -IBUS_TYPE_ATTR_LIST -IBUS_ATTR_LIST -IBUS_ATTR_LIST_CLASS -IBUS_IS_ATTR_LIST -IBUS_IS_ATTR_LIST_CLASS -IBUS_ATTR_LIST_GET_CLASS -IBusAttrType -IBusAttrUnderline -IBusAttribute -IBusAttribute -IBusAttrList -IBusAttrList -ibus_attribute_new -ibus_attr_underline_new -ibus_attr_foreground_new -ibus_attr_background_new -ibus_attr_list_get_type -ibus_attr_list_new -ibus_attr_list_append -ibus_attr_list_get - -IBUS_ATTRIBUTE -IBUS_IS_ATTRIBUTE -IBUS_TYPE_ATTRIBUTE -ibus_attribute_get_type -IBUS_ATTRIBUTE_CLASS -IBUS_IS_ATTRIBUTE_CLASS -IBUS_ATTRIBUTE_GET_CLASS -
- -
-ibusservice -ServiceIBusMessageFunc -ServiceIBusSignalFunc -IBusService -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 - -IBUS_SERVICE -IBUS_IS_SERVICE -IBUS_TYPE_SERVICE -ibus_service_get_type -IBUS_SERVICE_CLASS -IBUS_IS_SERVICE_CLASS -IBUS_SERVICE_GET_CLASS -
- -
-ibusserializable -ibus_serializable_set_attachment -ibus_serializable_get_attachment -ibus_serializable_remove_attachment -IBusSerializableSerializeFunc -IBusSerializableDeserializeFunc -IBusSerializableCopyFunc -IBusSerializable -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 - -IBUS_SERIALIZABLE -IBUS_IS_SERIALIZABLE -IBUS_TYPE_SERIALIZABLE -ibus_serializable_get_type -IBUS_SERIALIZABLE_CLASS -IBUS_IS_SERIALIZABLE_CLASS -IBUS_SERIALIZABLE_GET_CLASS -
- -
-ibuslookuptable -IBusLookupTable -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 - -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 -
- -
-ibustext -IBusText -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 - -IBUS_TEXT -IBUS_IS_TEXT -IBUS_TYPE_TEXT -ibus_text_get_type -IBUS_TEXT_CLASS -IBUS_IS_TEXT_CLASS -IBUS_TEXT_GET_CLASS -
- -
-ibusconnection -IBusIBusMessageFunc -IBusIBusSignalFunc -IBusMessageFunc -IBusConnection -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 - -IBUS_CONNECTION -IBUS_IS_CONNECTION -IBUS_TYPE_CONNECTION -ibus_connection_get_type -IBUS_CONNECTION_CLASS -IBUS_IS_CONNECTION_CLASS -IBUS_CONNECTION_GET_CLASS -
- -
-ibuscomponent -IBusComponent -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 - -IBUS_COMPONENT -IBUS_IS_COMPONENT -IBUS_TYPE_COMPONENT -ibus_component_get_type -IBUS_COMPONENT_CLASS -IBUS_IS_COMPONENT_CLASS -IBUS_COMPONENT_GET_CLASS -
- -
-ibusobservedpath -IBusObservedPath -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 - -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 -
- -
-ibusserver -IBusNewConnectionFunc -IBusServer -IBusServer -ibus_server_new -ibus_server_listen -ibus_server_disconnect -ibus_server_get_address -ibus_server_get_id -ibus_server_is_connected - -IBUS_SERVER -IBUS_IS_SERVER -IBUS_TYPE_SERVER -ibus_server_get_type -IBUS_SERVER_CLASS -IBUS_IS_SERVER_CLASS -IBUS_SERVER_GET_CLASS -
- -
-ibusengine -IBusEngine -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_update_lookup_table_fast -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 - -IBUS_ENGINE -IBUS_IS_ENGINE -IBUS_TYPE_ENGINE -ibus_engine_get_type -IBUS_ENGINE_CLASS -IBUS_IS_ENGINE_CLASS -IBUS_ENGINE_GET_CLASS -
- -
-ibusconfigservice -IBusConfigService -IBusConfigService -ibus_config_service_new -ibus_config_service_value_changed - -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 -
- -
-ibusinputcontext -IBusInputContext -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 - -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 -
- -
-ibuspendingcall -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 -
- -
-ibusxml -XMLNode -ibus_xml_parse_file -ibus_xml_parse_buffer -ibus_xml_free -ibus_xml_output -
- -
-ibustypes -IBusModifierType -IBusCapabilite -IBusRectangle -IBusFreeFunc -
- -
-ibusmessage -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 -
- -
-stamp-ibusenumtypes -
- -
-ibuserror -IBusError -ibus_error_new -ibus_error_new_from_text -ibus_error_new_from_printf -ibus_error_new_from_message -ibus_error_free -
- -
-ibusenumtypes -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 -
- -
-ibusshare -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 -
- -
-ibusconfigprivate -
- -
-stamp-ibusmarshalers -
- -
-keyname-table -gdk_key -
- -
-ibusmarshalers -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 -
- -
-ibus -
- -
-ibuskeysyms -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 -
- -
-ibusdebug -ibus_warning -
- -
-ibusinternal -I_ -dbus_server_setup -dbus_connection_setup -
- diff --git a/ibus.spec.in b/ibus.spec.in index 641ec86..df267a0 100644 --- a/ibus.spec.in +++ b/ibus.spec.in @@ -2,7 +2,7 @@ %{!?gtk_binary_version: %define gtk_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0)} %define mod_path ibus-@PACKAGE_VERSION_MAJOR@.@PACKAGE_VERSION_MINOR@ %define host_vendor %(if [[ "%{_host_vendor}" == "unknown" ]]; then echo redhat; else echo %{_host_vendor}; fi) -%define host %{_host_cpu}-%{host_vendor}-%{_host_os} +%define host %{_host_cpu}-%{host_vendor}-%{_host_os}-gnu Name: ibus Version: @PACKAGE_VERSION@ Release: 1%{?dist} @@ -24,7 +24,9 @@ BuildRequires: gtk2-devel BuildRequires: dbus-devel # BuildRequires: qt-devel BuildRequires: dbus-glib-devel +BuildRequires: dbus-python-devel BuildRequires: desktop-file-utils +BuildRequires: GConf2-devel Requires(post): desktop-file-utils Requires(post): %{_sbindir}/alternatives @@ -67,7 +69,7 @@ This package contains ibus im module for gtk2 # Group: System Environment/Libraries # Requires: %{name} = %{version}-%{release} # Requires: qt >= 4.4.2 -# +# # %description qt # This package contains ibus im module for qt4 diff --git a/po/LINGUAS b/po/LINGUAS index 97c2638..7f5191d 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -20,3 +20,4 @@ ta te zh_CN zh_HK +zh_TW \ No newline at end of file diff --git a/src/ibusbus.c b/src/ibusbus.c index 756f8e5..cfc7e39 100644 --- a/src/ibusbus.c +++ b/src/ibusbus.c @@ -104,6 +104,11 @@ ibus_bus_class_init (IBusBusClass *klass) ibus_object_class->destroy = ibus_bus_destroy; // install signals + /** + * IBusBus::connected: + * + * The IBusBus is connected. + */ bus_signals[CONNECTED] = g_signal_new (I_("connected"), G_TYPE_FROM_CLASS (klass), @@ -114,6 +119,11 @@ ibus_bus_class_init (IBusBusClass *klass) G_TYPE_NONE, 0); + /** + * IBusBus::disconnected: + * + * The IBusBus is disconnected. + */ bus_signals[DISCONNECTED] = g_signal_new (I_("disconnected"), G_TYPE_FROM_CLASS (klass), diff --git a/src/ibusbus.h b/src/ibusbus.h index e02c193..651a0b8 100644 --- a/src/ibusbus.h +++ b/src/ibusbus.h @@ -17,6 +17,13 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ +/** + * SECTION: ibusbus + * @short_description: Connect with IBus daemon. + * @stability: Stable + * + * An IBusBus connects with IBus daemon. + */ #ifndef __IBUS_BUS_H_ #define __IBUS_BUS_H_ @@ -49,6 +56,11 @@ G_BEGIN_DECLS typedef struct _IBusBus IBusBus; typedef struct _IBusBusClass IBusBusClass; +/** + * IBusBus: + * + * An opaque data type representing IBus bus (daemon communication) status. + */ struct _IBusBus { IBusObject parent; /* instance members */ @@ -60,40 +72,177 @@ 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. + * [FixMe] Not implemented yet, only return NULL. + */ 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 */ + +/** + * ibus_bus_exit: + * @bus: An IBusBus. + * @restart: Whether restarting the ibus. + * @returns: TRUE if the "Exit" call is suceeded, FALSE otherwise. + * + * Exit or restart an IBusBus. + */ gboolean ibus_bus_exit (IBusBus *bus, gboolean restart); + +/** + * ibus_bus_create_input_context: + * @bus: An IBusBus. + * @client_name: Name of client. + * @returns: An newly allocated IBusInputContext if the "CreateInputContext" call + * is suceeded, NULL otherwise. + * + * Create an input context for client. + */ IBusInputContext *ibus_bus_create_input_context (IBusBus *bus, const gchar *client_name); +/** + * ibus_bus_register_component: + * @bus: An IBusBus. + * @component: A input engine component. + * @returns: TRUE if the "RegisterComponent" call is suceeded, FALSE otherwise. + * + * Register a componet to an IBusBus. + */ gboolean ibus_bus_register_component(IBusBus *bus, IBusComponent *component); + +/** + * ibus_bus_list_engines: + * @bus: An IBusBus. + * @returns: A GList of engines. + * + * List engines. + * Note that this function is not yet implemented. + */ GList *ibus_bus_list_engines (IBusBus *bus); + +/** + * ibus_bus_list_active_engines: + * @bus: An IBusBus. + * @returns: A GList of active engines. + * + * List active engines. + * Note that this function is not yet implemented. + * Not yet implemented. + */ GList *ibus_bus_list_active_engines (IBusBus *bus); /* declare config apis */ -IBusConfig *ibus_bus_get_config (IBusBus *bus); +/** + * ibus_bus_get_config: + * @bus: An IBusBus. + * @returns: An newly allocated IBusConfig which is configurable with @bus. + * + * Get the config instance from IBusBus. + */ + IBusConfig *ibus_bus_get_config (IBusBus *bus); G_END_DECLS #endif diff --git a/src/ibuscomponent.c b/src/ibuscomponent.c index 3d700d6..a3fca11 100644 --- a/src/ibuscomponent.c +++ b/src/ibuscomponent.c @@ -531,7 +531,7 @@ ibus_component_parse_observed_paths (IBusComponent *component, IBusComponent * ibus_component_new (const gchar *name, - const gchar *descritpion, + const gchar *description, const gchar *version, const gchar *license, const gchar *author, @@ -544,7 +544,7 @@ ibus_component_new (const gchar *name, component = (IBusComponent *)g_object_new (IBUS_TYPE_COMPONENT, NULL); component->name = g_strdup (name); - component->description = g_strdup (descritpion); + component->description = g_strdup (description); component->version = g_strdup (version); component->license = g_strdup (license); component->author = g_strdup (author); diff --git a/src/ibuscomponent.h b/src/ibuscomponent.h index 1d5d25a..18a9f06 100644 --- a/src/ibuscomponent.h +++ b/src/ibuscomponent.h @@ -17,6 +17,22 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ +/** + * SECTION: ibuscomponent + * @short_description: Component (executable) specification. + * @stability: Stable + * + * An IBusComponent is an executable program. + * It provides services such as user interface, configuration, + * and input method engine (IME). + * + * It is recommended that IME developers provide + * a component XML file and + * load the XML file by ibus_component_new_from_file(). + * + * The format of a component XML file is described at + * http://code.google.com/p/ibus/wiki/DevXML + */ #ifndef __IBUS_COMPONENT_H_ #define __IBUS_COMPONENT_H_ @@ -48,10 +64,24 @@ G_BEGIN_DECLS typedef struct _IBusComponent IBusComponent; typedef struct _IBusComponentClass IBusComponentClass; +/** + * IBusComponent: + * @name: Name of the component. + * @description: Detailed description of component. + * @version: Component version. + * @license: Distribution license of this component. + * @author: Author(s) of the component. + * @homepage: Homepage of the component. + * @exec: path to component executable. + * @textdomain: Domain name for dgettext() + * + * An IBusComponent stores component information. + */ struct _IBusComponent { IBusSerializable parent; /* instance members */ + /*< public >*/ gchar *name; gchar *description; gchar *version; @@ -63,6 +93,7 @@ struct _IBusComponent { /* text domain for dgettext */ gchar *textdomain; + /*< private >*/ /* engines */ GList *engines; @@ -79,35 +110,154 @@ struct _IBusComponentClass { }; GType ibus_component_get_type (void); + +/** + * ibus_component_new: + * @name: Name of the component. + * @description: Detailed description of component. + * @version: Component version. + * @license: Distribution license of this component. + * @author: Author(s) of the component. + * @homepage: Homepage of the component. + * @exec: path to component executable. + * @textdomain: Domain name for dgettext() + * @returns: A newly allocated IBusComponent. + * + * New an IBusComponent. + */ IBusComponent *ibus_component_new (const gchar *name, - const gchar *descritpion, + const gchar *description, const gchar *version, const gchar *license, const gchar *author, const gchar *homepage, const gchar *exec, const gchar *textdomain); + +/** + * ibus_component_new_from_xml_node: + * @node: Root node of component XML tree. + * @returns: A newly allocated IBusComponent. + * + * New an IBusComponent from an XML tree. + */ IBusComponent *ibus_component_new_from_xml_node (XMLNode *node); + +/** + * ibus_component_new_from_file: + * @filename: An XML file that contains component information. + * @returns: A newly allocated IBusComponent. + * + * New an IBusComponent from an XML file. + * Note that a component file usually contains engine descriptions, + * if it does, ibus_engine_desc_new_from_xml_node() will be called + * to load the engine descriptions. + */ IBusComponent *ibus_component_new_from_file (const gchar *filename); + +/** + * ibus_component_add_observed_path: + * @component: An IBusComponent + * @path: Observed path to be added. + * @access_fs: TRUE for filling the file status; FALSE otherwise. + * + * Add an observed path to IBusComponent. + */ void ibus_component_add_observed_path (IBusComponent *component, const gchar *path, gboolean access_fs); + +/** + * ibus_component_add_engine: + * @component: An IBusComponent + * @engine: A description of an engine. + * + * Add an engine to IBusComponent according to the description in @engine. + */ void ibus_component_add_engine (IBusComponent *component, IBusEngineDesc *engine); + +/** + * ibus_component_get_engines: + * @component: An IBusComponent. + * @returns: A newly allocated GList that contains engines. + * + * Get the engines of this component. + */ GList *ibus_component_get_engines (IBusComponent *component); + +/** + * ibus_component_output: + * @component: An IBusComponent. + * @output: GString that holds the result. + * @indent: level of indent. + * + * Output IBusComponent as an XML-formatted string. + * The output string can be then shown on the screen or written to file. + */ void ibus_component_output (IBusComponent *component, GString *output, gint indent); + +/** + * ibus_component_output_engines: + * @component: An IBusComponent. + * @output: GString that holds the result. + * @indent: level of indent. + * + * Output engine description as an XML-formatted string. + * The output string can be then shown on the screen or written to file. + */ void ibus_component_output_engines (IBusComponent *component, GString *output, gint indent); + +/** + * ibus_component_check_modification: + * @component: An IBusComponent. + * @returns: TRUE if at least one of the observed paths is modified; FALSE otherwise. + * + * Check whether the observed paths of component is modified. + */ gboolean ibus_component_check_modification (IBusComponent *component); + +/** + * ibus_component_start: + * @component: An IBusComponent. + * @returns: TRUE if the component is started; FALSE otherwise. + * + * Whether the IBusComponent is started. + */ gboolean ibus_component_start (IBusComponent *component); + +/** + * ibus_component_stop: + * @component: An IBusComponent. + * @returns: TRUE if the component is stopped; FALSE otherwise. + * + * Whether the IBusComponent is stopped. + */ gboolean ibus_component_stop (IBusComponent *component); + +/** + * ibus_component_is_running: + * @component: An IBusComponent. + * @returns: TRUE if the component is running; FALSE otherwise. + * + * Whether the IBusComponent is running. + */ gboolean ibus_component_is_running (IBusComponent *component); + +/** + * ibus_component_get_from_engine: + * @engine: A description of an engine. + * @returns: An IBusComponent of the engine. + * + * Get the IBusComponent from an engine description. + */ IBusComponent *ibus_component_get_from_engine (IBusEngineDesc *engine); G_END_DECLS diff --git a/src/ibusconfig.c b/src/ibusconfig.c index 16b6d3f..5c8adac 100644 --- a/src/ibusconfig.c +++ b/src/ibusconfig.c @@ -123,6 +123,11 @@ ibus_config_class_init (IBusConfigClass *klass) proxy_class->ibus_signal = ibus_config_ibus_signal; /* install signals */ + /** + * IBusConfig:value-changed: + * + * Emitted when configuration value is changed. + */ config_signals[VALUE_CHANGED] = g_signal_new (I_("value-changed"), G_TYPE_FROM_CLASS (klass), diff --git a/src/ibusconfig.h b/src/ibusconfig.h index 734218f..e970fb7 100644 --- a/src/ibusconfig.h +++ b/src/ibusconfig.h @@ -17,6 +17,15 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ +/** + * SECTION: ibusconfig + * @short_description: IBus engine configuration module. + * + * An IBusConfig provides engine configuration methods + * such as get and set the configure settings to configuration file. + * + * Currently, IBusConfig supports gconf. + */ #ifndef __CONFIG_H_ #define __CONFIG_H_ @@ -56,11 +65,51 @@ struct _IBusConfigClass { }; GType ibus_config_get_type (void); + +/** + * ibus_config_new: + * @connection: An IBusConnection. + * @returns: An newly allocated IBusConfig corresponding to @connection. + * + * New a IBusConfig from existing IBusConnection. + */ IBusConfig *ibus_config_new (IBusConnection *connection); + +/** + * ibus_config_get_value: + * @config: An IBusConfig + * @section: Section name of the configuration option. + * @name: Name of the configure option. + * @value: GValue that holds the value. + * @returns: TRUE if succeed; FALSE otherwise. + * + * Get the value of a configuration option. + * + * GConf stores configure options in a tree-like structure, + * and the IBus related setting is at /desktop/ibus, + * thus, @section here is a path from there, + * while @name is the key of that configuration option. + * + * ibus-chewing, for example, stores its setting in /desktop/ibus/engine/Chewing, + * so the section name for it is "engine/Chewing". + * @see_also: ibus_config_set_value. + */ gboolean ibus_config_get_value (IBusConfig *config, const gchar *section, const gchar *name, GValue *value); + +/** + * ibus_config_set_value: + * @config: An IBusConfig + * @section: Section name of the configuration option. + * @name: Name of the configure option its self. + * @value: GValue that holds the value. + * @returns: TRUE if succeed; FALSE otherwise. + * + * Set the value of a configuration option. + * @see_also: ibus_config_get_value. + */ gboolean ibus_config_set_value (IBusConfig *config, const gchar *section, const gchar *name, diff --git a/src/ibusconfigservice.c b/src/ibusconfigservice.c index 6465add..aff40ee 100644 --- a/src/ibusconfigservice.c +++ b/src/ibusconfigservice.c @@ -118,6 +118,12 @@ ibus_config_service_class_init (IBusConfigServiceClass *klass) klass->set_value = ibus_config_service_set_value; klass->get_value = ibus_config_service_get_value; + /* install properties */ + /** + * IBusConfigService:connection: + * + * Connection of this IBusConfigServifce. + */ g_object_class_install_property (gobject_class, PROP_CONNECTION, g_param_spec_object ("connection", diff --git a/src/ibusconfigservice.h b/src/ibusconfigservice.h index f04a5eb..7333bb7 100644 --- a/src/ibusconfigservice.h +++ b/src/ibusconfigservice.h @@ -17,6 +17,84 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ +/** + * SECTION: ibusconfigservice + * @short_description: Configuration service back-end. + * @stability: Stable + * + * An IBusConfigService is a base class for other configuration services such as GConf. + * Currently, directly known sub class is IBusConfigGConf. + * + * IBusConfigServiceClass has following member functions: + * + * + * gboolean set_value(IBusConfigService *config, const gchar *section, const gchar *name, + * const GValue *value, IBusError **error) + * + * + * + * config: + * A configure service + * + * + * section: + * Section name of the configuration option. + * + * + * name: + * Name of the configuration option. + * + * + * value: + * GValue that holds the value. + * + * + * error: + * Error outputs here. + * + * + * Returns: + * TRUE if succeed; FALSE otherwise. + * + * + * Set a value to a configuration option. + * + * + * + * gboolean get_value(IBusConfigService *config, const gchar *section, const gchar *name, + * GValue *value, IBusError **error) + * + * + * + * config: + * A configure service + * + * + * section: + * Section name of the configuration option. + * + * + * name: + * Name of the configuration option. + * + * + * value: + * GValue that holds the value. + * + * + * error: + * Error outputs here. + * + * + * Returns: + * TRUE if succeed; FALSE otherwise. +* +* + * Get value of a configuration option. + * + * + * + */ #ifndef __IBUS_CONFIG_SERVICE_H_ #define __IBUS_CONFIG_SERVICE_H_ @@ -46,7 +124,13 @@ G_BEGIN_DECLS typedef struct _IBusConfigService IBusConfigService; typedef struct _IBusConfigServiceClass IBusConfigServiceClass; +/** + * IBusConfigService: + * + * An opaque data type representing a configure service. + */ struct _IBusConfigService { + /*< private >*/ IBusService parent; /* instance members */ @@ -73,7 +157,26 @@ struct _IBusConfigServiceClass { }; GType ibus_config_service_get_type (void); + +/** + * ibus_config_service_new: + * @connection: An IBusConnection. + * @returns: A newly allocated IBusConfigServices. + * + * New an IBusConfigService from an IBusConnection. + */ IBusConfigService *ibus_config_service_new (IBusConnection *connection); + +/** + * ibus_config_service_value_change: + * @config: An IBusConfigService. + * @section: Section name of the configuration option. + * @name: Name of the configure option. + * @value: GValue that holds the value. + * + * Change a value of a configuration option + * by sending a "ValueChanged" message to IBus service. + */ void ibus_config_service_value_changed (IBusConfigService *config, const gchar *section, diff --git a/src/ibusconnection.c b/src/ibusconnection.c index acc9037..130426c 100644 --- a/src/ibusconnection.c +++ b/src/ibusconnection.c @@ -111,6 +111,13 @@ ibus_connection_class_init (IBusConnectionClass *klass) klass->ibus_signal = ibus_connection_ibus_signal; klass->disconnected = ibus_connection_disconnected; + /* install signals */ + /** + * IBusConnnection:ibus-message: + * + * Emitted when sending an ibus-message. + * Implement this function in extended class to receive this signal. + */ connection_signals[IBUS_MESSAGE] = g_signal_new (I_("ibus-message"), G_TYPE_FROM_CLASS (klass), @@ -121,6 +128,12 @@ ibus_connection_class_init (IBusConnectionClass *klass) G_TYPE_BOOLEAN, 1, G_TYPE_POINTER); + /** + * IBusConnnection:ibus-singal: + * + * Emitted when sending an ibus-singal. + * Implement this function in extended class to receive this signal. + */ connection_signals[IBUS_SIGNAL] = g_signal_new (I_("ibus-signal"), G_TYPE_FROM_CLASS (klass), @@ -131,6 +144,12 @@ ibus_connection_class_init (IBusConnectionClass *klass) G_TYPE_BOOLEAN, 1, G_TYPE_POINTER); + /** + * IBusConnnection:ibus-message-sent: + * + * Emitted when an ibus-message is sent. + * Implement this function in extended class to receive this signal. + */ connection_signals[IBUS_MESSAGE_SENT] = g_signal_new (I_("ibus-message-sent"), G_TYPE_FROM_CLASS (klass), @@ -141,6 +160,12 @@ ibus_connection_class_init (IBusConnectionClass *klass) G_TYPE_NONE, 1, G_TYPE_POINTER); + /** + * IBusConnnection:ibus-message-disconnected: + * + * Emitted when an ibus-message is disconnected. + * Implement this function in extended class to receive this signal. + */ connection_signals[DISCONNECTED] = g_signal_new (I_("disconnected"), G_TYPE_FROM_CLASS (klass), diff --git a/src/ibusconnection.h b/src/ibusconnection.h index 7ebf6e6..2042791 100644 --- a/src/ibusconnection.h +++ b/src/ibusconnection.h @@ -23,7 +23,7 @@ * @see_also: DBusConnection * * An IBusConnection provides DBusConnection wrapper. - * It can be used to connect to either dBus or iBus daemon. + * It can be used to connect to either dBus or IBus daemon. */ #ifndef __IBUS_CONNECTION_H_ @@ -94,6 +94,13 @@ struct _IBusConnectionClass { }; GType ibus_connection_get_type (void); + +/** + * ibus_connection_new: + * @returns: An newly allocated IBusConnection. + * + * New an IBusConnection. + */ IBusConnection *ibus_connection_new (void); void ibus_connection_set_connection (IBusConnection *connection, DBusConnection *dbus_connection, diff --git a/src/ibusengine.c b/src/ibusengine.c index 13ec52e..b7421ad 100644 --- a/src/ibusengine.c +++ b/src/ibusengine.c @@ -206,7 +206,7 @@ ibus_engine_class_init (IBusEngineClass *klass) /** * IBusEngine:connection: * - * Connection for this IBusEngine. + * Connection of this IBusEngine. */ g_object_class_install_property (gobject_class, PROP_CONNECTION, @@ -223,8 +223,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * @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. + * Emitted when a key event is received. + * Implement this function in extended class to receive this signal. */ engine_signals[PROCESS_KEY_EVENT] = g_signal_new (I_("process-key-event"), @@ -242,8 +242,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the client application get the focus. + * Implement this function in extended class to receive this signal. */ engine_signals[FOCUS_IN] = g_signal_new (I_("focus-in"), @@ -259,8 +259,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the client application lost the focus. + * Implement this function in extended class to receive this signal. */ engine_signals[FOCUS_OUT] = g_signal_new (I_("focus-out"), @@ -276,8 +276,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * IBusEngine::reset: * @engine: An IBusEngine. * - * This signal is emitted whenever the IME is reset. - * Implement reset() in extend class to receive this signal. + * Emitted when the IME is reset. + * Implement this function in extended class to receive this signal. */ engine_signals[RESET] = g_signal_new (I_("reset"), @@ -293,8 +293,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * IBusEngine::enable: * @engine: An IBusEngine. * - * This signal is emitted whenever the IME is enabled. - * Implement enable() in extend class to receive this signal. + * Emitted when the IME is enabled. + * Implement this function in extended class to receive this signal. */ engine_signals[ENABLE] = g_signal_new (I_("enable"), @@ -310,8 +310,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * IBusEngine::disable: * @engine: An IBusEngine. * - * This signal is emitted whenever the IME is disabled. - * Implement disable() in extend class to receive this signal. + * Emitted when the IME is disabled. + * Implement this function in extended class to receive this signal. */ engine_signals[DISABLE] = g_signal_new (I_("disable"), @@ -327,8 +327,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the location of IME is set. + * Implement this functionin extended class to receive this signal. */ engine_signals[SET_CURSOR_LOCATION] = g_signal_new (I_("set-cursor-location"), @@ -348,8 +348,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the client application capabilities is set. + * Implement this function in extended class to receive this signal. */ engine_signals[SET_CAPABILITIES] = g_signal_new (I_("set-capabilities"), @@ -366,8 +366,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the page-up key is pressed. + * Implement this function in extended class to receive this signal. */ engine_signals[PAGE_UP] = g_signal_new (I_("page-up"), @@ -383,8 +383,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the page-down key is pressed. + * Implement this function extend class to receive this signal. */ engine_signals[PAGE_DOWN] = g_signal_new (I_("page-down"), @@ -400,8 +400,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the up cursor key is pressed. + * Implement this function in extended class to receive this signal. */ engine_signals[CURSOR_UP] = g_signal_new (I_("cursor-up"), @@ -417,8 +417,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when the down cursor key is pressed. + * Implement this function in extended class to receive this signal. */ engine_signals[CURSOR_DOWN] = g_signal_new (I_("cursor-down"), @@ -434,8 +434,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when a property is activated or change changed. + * Implement this function in extended class to receive this signal. */ engine_signals[PROPERTY_ACTIVATE] = g_signal_new (I_("property-activate"), @@ -453,8 +453,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when a property is shown. + * Implement this function in extended class to receive this signal. */ engine_signals[PROPERTY_SHOW] = g_signal_new (I_("property-show"), @@ -471,8 +471,8 @@ ibus_engine_class_init (IBusEngineClass *klass) * 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. + * Emitted when a property is hidden. + * Implement this function in extended class to receive this signal. */ engine_signals[PROPERTY_HIDE] = g_signal_new (I_("property-hide"), diff --git a/src/ibusengine.h b/src/ibusengine.h index 4fe12dc..fb03a06 100644 --- a/src/ibusengine.h +++ b/src/ibusengine.h @@ -17,6 +17,15 @@ * 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,9 +58,19 @@ 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; @@ -103,51 +122,183 @@ 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); + 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); + 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); +(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); +(IBusEngine *engine); + +/** + * ibus_engine_hide_preedit_text: + * @engine: An IBusEngine. + * + * Hide the pre-edit buffer. + */ void ibus_engine_hide_preedit_text - (IBusEngine *engine); +(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); +(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); +(IBusEngine *engine); + +/** + * ibus_engine_hide_auxiliary_text: + * @engine: An IBusEngine. + * + * Hide the auxiliary bar. + */ void ibus_engine_hide_auxiliary_text - (IBusEngine *engine); +(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); +(IBusEngine *engine, + IBusLookupTable *lookup_table, + gboolean visible); + +/** + * ibus_engine_update_lookup_table_fast: + * @engine: An IBusEngine. + * @lookup_table: An lookup_table. + * @visible: Whether the lookup_table is visible. + * + * Fast update for big lookup table. + * + * If size of lookup table is not over table page size *4, + * then it calls ibus_engine_update_lookup_table(). + * + */ void ibus_engine_update_lookup_table_fast - (IBusEngine *engine, - IBusLookupTable *lookup_table, - gboolean visible); +(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); +(IBusEngine *engine); + +/** + * ibus_engine_hide_lookup_table: + * @engine: An IBusEngine. + * + * Hide the lookup table. + */ void ibus_engine_hide_lookup_table - (IBusEngine *engine); +(IBusEngine *engine); +/** + * ibus_engine_forward_key_event: + * @engine: An IBusEngine. + * @keyval: KeySym. + * @state: Key modifier flags. + * + * Forward the key event. + */ void ibus_engine_forward_key_event - (IBusEngine *engine, - guint keyval, - guint state); +(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); +(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); + 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/ibuslookuptable.h b/src/ibuslookuptable.h index ede02b1..ae20382 100644 --- a/src/ibuslookuptable.h +++ b/src/ibuslookuptable.h @@ -17,6 +17,18 @@ * 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 +58,20 @@ 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 +86,175 @@ 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 succeed. + * + * Go to previous page of an IBusLookupTable. + * + * It returns FALSE if it is already at the first page, + * unless table>-round==TRUE, 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 succeed. + * + * Go to next page of an IBusLookupTable. + * + * It returns FALSE if it is already at the last page, + * unless table>-round==TRUE, 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 succeed. + * + * Go to previous candidate of an IBusLookupTable. + * + * It returns FALSE if it is already at the first candidate, + * unless table>-round==TRUE, 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 succeed. + * + * Go to next candidate of an IBusLookupTable. + * + * It returns FALSE if it is already at the last candidate, + * unless table>-round==TRUE, 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 a3adfe2..0b7066b 100644 --- a/src/ibusobject.h +++ b/src/ibusobject.h @@ -19,21 +19,21 @@ */ /** * SECTION: ibusobject - * @short_description: Base Object of iBus. + * @short_description: Base Object of IBus. * @stability: Stable * - * iBus Object is the base object for all objects in iBus. + * IBus Object is the base object for all objects in IBus. */ #ifndef __IBUS_OBJECT_H_ #define __IBUS_OBJECT_H_ /** - * SECTION: iBusObject - * @short_description: Base object of iBus. + * SECTION: IBusObject + * @short_description: Base object of IBus. * * * This module provides essential definition and functions for manipulating - * iBus base object. + * IBus base object. */ #include #include "ibusmarshalers.h" diff --git a/src/ibusproperty.c b/src/ibusproperty.c index 5162ef0..373ff3e 100644 --- a/src/ibusproperty.c +++ b/src/ibusproperty.c @@ -345,7 +345,7 @@ ibus_property_update (IBusProperty *prop, if (g_strcmp0 (prop->key, prop_update->key) != 0) { return ibus_prop_list_update_property (prop->sub_props, prop_update); } - + g_free (prop->icon); prop->icon = g_strdup (prop_update->icon); diff --git a/src/ibusservice.h b/src/ibusservice.h index 9d90a85..1374b94 100644 --- a/src/ibusservice.h +++ b/src/ibusservice.h @@ -17,6 +17,14 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ +/** + * SECTION: ibusservice + * @short_description: IBus service back-end. + * @stability: Stable + * + * An IBusService is a base class for services. + */ + #ifndef __IBUS_SERVICE_H_ #define __IBUS_SERVICE_H_ diff --git a/src/ibustypes.h b/src/ibustypes.h index 2f7c0bf..bbd3356 100644 --- a/src/ibustypes.h +++ b/src/ibustypes.h @@ -19,10 +19,10 @@ */ /** * SECTION: ibustypes - * @short_description: Generic types for iBus. + * @short_description: Generic types for IBus. * @stability: Stable * - * This session consists generic types for iBus, including shift/control key modifiers, + * This section consists generic types for IBus, including shift/control key modifiers, * and a rectangle structure. */ #ifndef __IBUS_TYPES_H_