<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="glib-2.0"/>
  <namespace name="IBus"
             version="1.0"
             shared-library="libibus-1.0.so.0.0"
             c:identifier-prefixes="IBus"
             c:symbol-prefixes="ibus">
    <constant name="0" value="48" c:type="IBUS_0">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="1" value="49" c:type="IBUS_1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="2" value="50" c:type="IBUS_2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3" value="51" c:type="IBUS_3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_AltCursor" value="64784" c:type="IBUS_3270_AltCursor">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Attn" value="64782" c:type="IBUS_3270_Attn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_BackTab" value="64773" c:type="IBUS_3270_BackTab">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_ChangeScreen"
              value="64793"
              c:type="IBUS_3270_ChangeScreen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Copy" value="64789" c:type="IBUS_3270_Copy">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_CursorBlink"
              value="64783"
              c:type="IBUS_3270_CursorBlink">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_CursorSelect"
              value="64796"
              c:type="IBUS_3270_CursorSelect">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_DeleteWord"
              value="64794"
              c:type="IBUS_3270_DeleteWord">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Duplicate" value="64769" c:type="IBUS_3270_Duplicate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Enter" value="64798" c:type="IBUS_3270_Enter">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_EraseEOF" value="64774" c:type="IBUS_3270_EraseEOF">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_EraseInput"
              value="64775"
              c:type="IBUS_3270_EraseInput">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_ExSelect" value="64795" c:type="IBUS_3270_ExSelect">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_FieldMark" value="64770" c:type="IBUS_3270_FieldMark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Ident" value="64787" c:type="IBUS_3270_Ident">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Jump" value="64786" c:type="IBUS_3270_Jump">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_KeyClick" value="64785" c:type="IBUS_3270_KeyClick">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Left2" value="64772" c:type="IBUS_3270_Left2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_PA1" value="64778" c:type="IBUS_3270_PA1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_PA2" value="64779" c:type="IBUS_3270_PA2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_PA3" value="64780" c:type="IBUS_3270_PA3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Play" value="64790" c:type="IBUS_3270_Play">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_PrintScreen"
              value="64797"
              c:type="IBUS_3270_PrintScreen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Quit" value="64777" c:type="IBUS_3270_Quit">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Record" value="64792" c:type="IBUS_3270_Record">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Reset" value="64776" c:type="IBUS_3270_Reset">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Right2" value="64771" c:type="IBUS_3270_Right2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Rule" value="64788" c:type="IBUS_3270_Rule">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Setup" value="64791" c:type="IBUS_3270_Setup">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="3270_Test" value="64781" c:type="IBUS_3270_Test">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="4" value="52" c:type="IBUS_4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="5" value="53" c:type="IBUS_5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="6" value="54" c:type="IBUS_6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="7" value="55" c:type="IBUS_7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="8" value="56" c:type="IBUS_8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="9" value="57" c:type="IBUS_9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="A" value="65" c:type="IBUS_A">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="AE" value="198" c:type="IBUS_AE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Aacute" value="193" c:type="IBUS_Aacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Abelowdot" value="16785056" c:type="IBUS_Abelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Abreve" value="451" c:type="IBUS_Abreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Abreveacute" value="16785070" c:type="IBUS_Abreveacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Abrevebelowdot"
              value="16785078"
              c:type="IBUS_Abrevebelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Abrevegrave" value="16785072" c:type="IBUS_Abrevegrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Abrevehook" value="16785074" c:type="IBUS_Abrevehook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Abrevetilde" value="16785076" c:type="IBUS_Abrevetilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="AccessX_Enable" value="65136" c:type="IBUS_AccessX_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="AccessX_Feedback_Enable"
              value="65137"
              c:type="IBUS_AccessX_Feedback_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Acircumflex" value="194" c:type="IBUS_Acircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Acircumflexacute"
              value="16785060"
              c:type="IBUS_Acircumflexacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Acircumflexbelowdot"
              value="16785068"
              c:type="IBUS_Acircumflexbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Acircumflexgrave"
              value="16785062"
              c:type="IBUS_Acircumflexgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Acircumflexhook"
              value="16785064"
              c:type="IBUS_Acircumflexhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Acircumflextilde"
              value="16785066"
              c:type="IBUS_Acircumflextilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Adiaeresis" value="196" c:type="IBUS_Adiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Agrave" value="192" c:type="IBUS_Agrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ahook" value="16785058" c:type="IBUS_Ahook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Alt_L" value="65513" c:type="IBUS_Alt_L">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Alt_R" value="65514" c:type="IBUS_Alt_R">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Amacron" value="960" c:type="IBUS_Amacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Aogonek" value="417" c:type="IBUS_Aogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_0" value="16778848" c:type="IBUS_Arabic_0">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_1" value="16778849" c:type="IBUS_Arabic_1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_2" value="16778850" c:type="IBUS_Arabic_2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_3" value="16778851" c:type="IBUS_Arabic_3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_4" value="16778852" c:type="IBUS_Arabic_4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_5" value="16778853" c:type="IBUS_Arabic_5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_6" value="16778854" c:type="IBUS_Arabic_6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_7" value="16778855" c:type="IBUS_Arabic_7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_8" value="16778856" c:type="IBUS_Arabic_8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_9" value="16778857" c:type="IBUS_Arabic_9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_ain" value="1497" c:type="IBUS_Arabic_ain">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_alef" value="1479" c:type="IBUS_Arabic_alef">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_alefmaksura"
              value="1513"
              c:type="IBUS_Arabic_alefmaksura">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_beh" value="1480" c:type="IBUS_Arabic_beh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_comma" value="1452" c:type="IBUS_Arabic_comma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_dad" value="1494" c:type="IBUS_Arabic_dad">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_dal" value="1487" c:type="IBUS_Arabic_dal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_damma" value="1519" c:type="IBUS_Arabic_damma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_dammatan"
              value="1516"
              c:type="IBUS_Arabic_dammatan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_ddal" value="16778888" c:type="IBUS_Arabic_ddal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_farsi_yeh"
              value="16778956"
              c:type="IBUS_Arabic_farsi_yeh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_fatha" value="1518" c:type="IBUS_Arabic_fatha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_fathatan"
              value="1515"
              c:type="IBUS_Arabic_fathatan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_feh" value="1505" c:type="IBUS_Arabic_feh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_fullstop"
              value="16778964"
              c:type="IBUS_Arabic_fullstop">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_gaf" value="16778927" c:type="IBUS_Arabic_gaf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_ghain" value="1498" c:type="IBUS_Arabic_ghain">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_ha" value="1511" c:type="IBUS_Arabic_ha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hah" value="1485" c:type="IBUS_Arabic_hah">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hamza" value="1473" c:type="IBUS_Arabic_hamza">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hamza_above"
              value="16778836"
              c:type="IBUS_Arabic_hamza_above">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hamza_below"
              value="16778837"
              c:type="IBUS_Arabic_hamza_below">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hamzaonalef"
              value="1475"
              c:type="IBUS_Arabic_hamzaonalef">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hamzaonwaw"
              value="1476"
              c:type="IBUS_Arabic_hamzaonwaw">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hamzaonyeh"
              value="1478"
              c:type="IBUS_Arabic_hamzaonyeh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_hamzaunderalef"
              value="1477"
              c:type="IBUS_Arabic_hamzaunderalef">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_heh" value="1511" c:type="IBUS_Arabic_heh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_heh_doachashmee"
              value="16778942"
              c:type="IBUS_Arabic_heh_doachashmee">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_heh_goal"
              value="16778945"
              c:type="IBUS_Arabic_heh_goal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_jeem" value="1484" c:type="IBUS_Arabic_jeem">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_jeh" value="16778904" c:type="IBUS_Arabic_jeh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_kaf" value="1507" c:type="IBUS_Arabic_kaf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_kasra" value="1520" c:type="IBUS_Arabic_kasra">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_kasratan"
              value="1517"
              c:type="IBUS_Arabic_kasratan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_keheh" value="16778921" c:type="IBUS_Arabic_keheh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_khah" value="1486" c:type="IBUS_Arabic_khah">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_lam" value="1508" c:type="IBUS_Arabic_lam">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_madda_above"
              value="16778835"
              c:type="IBUS_Arabic_madda_above">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_maddaonalef"
              value="1474"
              c:type="IBUS_Arabic_maddaonalef">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_meem" value="1509" c:type="IBUS_Arabic_meem">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_noon" value="1510" c:type="IBUS_Arabic_noon">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_noon_ghunna"
              value="16778938"
              c:type="IBUS_Arabic_noon_ghunna">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_peh" value="16778878" c:type="IBUS_Arabic_peh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_percent"
              value="16778858"
              c:type="IBUS_Arabic_percent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_qaf" value="1506" c:type="IBUS_Arabic_qaf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_question_mark"
              value="1471"
              c:type="IBUS_Arabic_question_mark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_ra" value="1489" c:type="IBUS_Arabic_ra">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_rreh" value="16778897" c:type="IBUS_Arabic_rreh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_sad" value="1493" c:type="IBUS_Arabic_sad">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_seen" value="1491" c:type="IBUS_Arabic_seen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_semicolon"
              value="1467"
              c:type="IBUS_Arabic_semicolon">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_shadda" value="1521" c:type="IBUS_Arabic_shadda">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_sheen" value="1492" c:type="IBUS_Arabic_sheen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_sukun" value="1522" c:type="IBUS_Arabic_sukun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_superscript_alef"
              value="16778864"
              c:type="IBUS_Arabic_superscript_alef">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_switch" value="65406" c:type="IBUS_Arabic_switch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_tah" value="1495" c:type="IBUS_Arabic_tah">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_tatweel" value="1504" c:type="IBUS_Arabic_tatweel">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_tcheh" value="16778886" c:type="IBUS_Arabic_tcheh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_teh" value="1482" c:type="IBUS_Arabic_teh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_tehmarbuta"
              value="1481"
              c:type="IBUS_Arabic_tehmarbuta">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_thal" value="1488" c:type="IBUS_Arabic_thal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_theh" value="1483" c:type="IBUS_Arabic_theh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_tteh" value="16778873" c:type="IBUS_Arabic_tteh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_veh" value="16778916" c:type="IBUS_Arabic_veh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_waw" value="1512" c:type="IBUS_Arabic_waw">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_yeh" value="1514" c:type="IBUS_Arabic_yeh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_yeh_baree"
              value="16778962"
              c:type="IBUS_Arabic_yeh_baree">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_zah" value="1496" c:type="IBUS_Arabic_zah">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Arabic_zain" value="1490" c:type="IBUS_Arabic_zain">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Aring" value="197" c:type="IBUS_Aring">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_AT" value="16778552" c:type="IBUS_Armenian_AT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_AYB" value="16778545" c:type="IBUS_Armenian_AYB">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_BEN" value="16778546" c:type="IBUS_Armenian_BEN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_CHA" value="16778569" c:type="IBUS_Armenian_CHA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_DA" value="16778548" c:type="IBUS_Armenian_DA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_DZA" value="16778561" c:type="IBUS_Armenian_DZA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_E" value="16778551" c:type="IBUS_Armenian_E">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_FE" value="16778582" c:type="IBUS_Armenian_FE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_GHAT"
              value="16778562"
              c:type="IBUS_Armenian_GHAT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_GIM" value="16778547" c:type="IBUS_Armenian_GIM">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_HI" value="16778565" c:type="IBUS_Armenian_HI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_HO" value="16778560" c:type="IBUS_Armenian_HO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_INI" value="16778555" c:type="IBUS_Armenian_INI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_JE" value="16778571" c:type="IBUS_Armenian_JE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_KE" value="16778580" c:type="IBUS_Armenian_KE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_KEN" value="16778559" c:type="IBUS_Armenian_KEN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_KHE" value="16778557" c:type="IBUS_Armenian_KHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_LYUN"
              value="16778556"
              c:type="IBUS_Armenian_LYUN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_MEN" value="16778564" c:type="IBUS_Armenian_MEN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_NU" value="16778566" c:type="IBUS_Armenian_NU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_O" value="16778581" c:type="IBUS_Armenian_O">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_PE" value="16778570" c:type="IBUS_Armenian_PE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_PYUR"
              value="16778579"
              c:type="IBUS_Armenian_PYUR">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_RA" value="16778572" c:type="IBUS_Armenian_RA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_RE" value="16778576" c:type="IBUS_Armenian_RE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_SE" value="16778573" c:type="IBUS_Armenian_SE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_SHA" value="16778567" c:type="IBUS_Armenian_SHA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_TCHE"
              value="16778563"
              c:type="IBUS_Armenian_TCHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_TO" value="16778553" c:type="IBUS_Armenian_TO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_TSA" value="16778558" c:type="IBUS_Armenian_TSA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_TSO" value="16778577" c:type="IBUS_Armenian_TSO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_TYUN"
              value="16778575"
              c:type="IBUS_Armenian_TYUN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_VEV" value="16778574" c:type="IBUS_Armenian_VEV">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_VO" value="16778568" c:type="IBUS_Armenian_VO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_VYUN"
              value="16778578"
              c:type="IBUS_Armenian_VYUN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_YECH"
              value="16778549"
              c:type="IBUS_Armenian_YECH">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ZA" value="16778550" c:type="IBUS_Armenian_ZA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ZHE" value="16778554" c:type="IBUS_Armenian_ZHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_accent"
              value="16778587"
              c:type="IBUS_Armenian_accent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_amanak"
              value="16778588"
              c:type="IBUS_Armenian_amanak">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_apostrophe"
              value="16778586"
              c:type="IBUS_Armenian_apostrophe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_at" value="16778600" c:type="IBUS_Armenian_at">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ayb" value="16778593" c:type="IBUS_Armenian_ayb">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ben" value="16778594" c:type="IBUS_Armenian_ben">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_but" value="16778589" c:type="IBUS_Armenian_but">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_cha" value="16778617" c:type="IBUS_Armenian_cha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_da" value="16778596" c:type="IBUS_Armenian_da">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_dza" value="16778609" c:type="IBUS_Armenian_dza">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_e" value="16778599" c:type="IBUS_Armenian_e">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_exclam"
              value="16778588"
              c:type="IBUS_Armenian_exclam">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_fe" value="16778630" c:type="IBUS_Armenian_fe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_full_stop"
              value="16778633"
              c:type="IBUS_Armenian_full_stop">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ghat"
              value="16778610"
              c:type="IBUS_Armenian_ghat">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_gim" value="16778595" c:type="IBUS_Armenian_gim">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_hi" value="16778613" c:type="IBUS_Armenian_hi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ho" value="16778608" c:type="IBUS_Armenian_ho">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_hyphen"
              value="16778634"
              c:type="IBUS_Armenian_hyphen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ini" value="16778603" c:type="IBUS_Armenian_ini">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_je" value="16778619" c:type="IBUS_Armenian_je">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ke" value="16778628" c:type="IBUS_Armenian_ke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ken" value="16778607" c:type="IBUS_Armenian_ken">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_khe" value="16778605" c:type="IBUS_Armenian_khe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ligature_ew"
              value="16778631"
              c:type="IBUS_Armenian_ligature_ew">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_lyun"
              value="16778604"
              c:type="IBUS_Armenian_lyun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_men" value="16778612" c:type="IBUS_Armenian_men">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_nu" value="16778614" c:type="IBUS_Armenian_nu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_o" value="16778629" c:type="IBUS_Armenian_o">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_paruyk"
              value="16778590"
              c:type="IBUS_Armenian_paruyk">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_pe" value="16778618" c:type="IBUS_Armenian_pe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_pyur"
              value="16778627"
              c:type="IBUS_Armenian_pyur">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_question"
              value="16778590"
              c:type="IBUS_Armenian_question">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_ra" value="16778620" c:type="IBUS_Armenian_ra">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_re" value="16778624" c:type="IBUS_Armenian_re">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_se" value="16778621" c:type="IBUS_Armenian_se">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_separation_mark"
              value="16778589"
              c:type="IBUS_Armenian_separation_mark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_sha" value="16778615" c:type="IBUS_Armenian_sha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_shesht"
              value="16778587"
              c:type="IBUS_Armenian_shesht">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_tche"
              value="16778611"
              c:type="IBUS_Armenian_tche">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_to" value="16778601" c:type="IBUS_Armenian_to">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_tsa" value="16778606" c:type="IBUS_Armenian_tsa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_tso" value="16778625" c:type="IBUS_Armenian_tso">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_tyun"
              value="16778623"
              c:type="IBUS_Armenian_tyun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_verjaket"
              value="16778633"
              c:type="IBUS_Armenian_verjaket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_vev" value="16778622" c:type="IBUS_Armenian_vev">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_vo" value="16778616" c:type="IBUS_Armenian_vo">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_vyun"
              value="16778626"
              c:type="IBUS_Armenian_vyun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_yech"
              value="16778597"
              c:type="IBUS_Armenian_yech">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_yentamna"
              value="16778634"
              c:type="IBUS_Armenian_yentamna">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_za" value="16778598" c:type="IBUS_Armenian_za">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Armenian_zhe" value="16778602" c:type="IBUS_Armenian_zhe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Atilde" value="195" c:type="IBUS_Atilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="AttrList"
           c:symbol-prefix="attr_list"
           c:type="IBusAttrList"
           parent="Serializable"
           glib:type-name="IBusAttrList"
           glib:get-type="ibus_attr_list_get_type"
           glib:type-struct="AttrListClass">
      <doc xml:whitespace="preserve">Array of IBusAttribute.</doc>
      <constructor name="new" c:identifier="ibus_attr_list_new">
        <doc xml:whitespace="preserve">New an IBusAttrList.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusAttrList.</doc>
          <type name="AttrList" c:type="IBusAttrList*"/>
        </return-value>
      </constructor>
      <method name="append" c:identifier="ibus_attr_list_append">
        <doc xml:whitespace="preserve">Append an IBusAttribute to IBusAttrList, and increase reference.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attr" transfer-ownership="none">
            <doc xml:whitespace="preserve">The IBusAttribute instance to be appended.</doc>
            <type name="Attribute" c:type="IBusAttribute*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="ibus_attr_list_get">
        <doc xml:whitespace="preserve">Returns IBusAttribute at given index. Borrowed reference.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">IBusAttribute at given index, NULL if no such IBusAttribute.</doc>
          <type name="Attribute" c:type="IBusAttribute*"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Index of the @attr_list.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="attributes">
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="AttrListClass"
            c:type="IBusAttrListClass"
            glib:is-gtype-struct-for="AttrList">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <enumeration name="AttrType"
                 glib:type-name="IBusAttrType"
                 glib:get-type="ibus_attr_type_get_type"
                 c:type="IBusAttrType">
      <doc xml:whitespace="preserve">Type enumeration of IBusText attribute.</doc>
      <member name="underline"
              value="1"
              c:identifier="IBUS_ATTR_TYPE_UNDERLINE"
              glib:nick="underline"/>
      <member name="foreground"
              value="2"
              c:identifier="IBUS_ATTR_TYPE_FOREGROUND"
              glib:nick="foreground"/>
      <member name="background"
              value="3"
              c:identifier="IBUS_ATTR_TYPE_BACKGROUND"
              glib:nick="background"/>
    </enumeration>
    <enumeration name="AttrUnderline"
                 glib:type-name="IBusAttrUnderline"
                 glib:get-type="ibus_attr_underline_get_type"
                 c:type="IBusAttrUnderline">
      <doc xml:whitespace="preserve">Type of IBusText attribute.</doc>
      <member name="none"
              value="0"
              c:identifier="IBUS_ATTR_UNDERLINE_NONE"
              glib:nick="none"/>
      <member name="single"
              value="1"
              c:identifier="IBUS_ATTR_UNDERLINE_SINGLE"
              glib:nick="single"/>
      <member name="double"
              value="2"
              c:identifier="IBUS_ATTR_UNDERLINE_DOUBLE"
              glib:nick="double"/>
      <member name="low"
              value="3"
              c:identifier="IBUS_ATTR_UNDERLINE_LOW"
              glib:nick="low"/>
      <member name="error"
              value="4"
              c:identifier="IBUS_ATTR_UNDERLINE_ERROR"
              glib:nick="error"/>
      <function name="new"
                c:identifier="ibus_attr_underline_new"
                introspectable="0">
        <doc xml:whitespace="preserve">New an underline #IBusAttribute.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A newly allocated #IBusAttribute.</doc>
          <type name="Attribute" c:type="IBusAttribute*"/>
        </return-value>
        <parameters>
          <parameter name="underline_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of underline.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="start_index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where attribute starts.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="end_index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where attribute ends.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <class name="Attribute"
           c:symbol-prefix="attribute"
           c:type="IBusAttribute"
           parent="Serializable"
           glib:type-name="IBusAttribute"
           glib:get-type="ibus_attribute_get_type"
           glib:type-struct="AttributeClass">
      <doc xml:whitespace="preserve">Signify the type, value and scope of the attribute.
The scope starts from @start_index till the @end_index-1.</doc>
      <constructor name="new" c:identifier="ibus_attribute_new">
        <doc xml:whitespace="preserve">New an IBusAttribute.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusAttribute.</doc>
          <type name="Attribute" c:type="IBusAttribute*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the attribute.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value of the attribute.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="start_index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where attribute starts.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="end_index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where attribute ends.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_attr_type" c:identifier="ibus_attribute_get_attr_type">
        <doc xml:whitespace="preserve">Returns an enum of #IBusAttrType.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An enum of #IBusAttrType.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_end_index" c:identifier="ibus_attribute_get_end_index">
        <doc xml:whitespace="preserve">Returns a end unsigned index</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A end unsigned index</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_start_index"
              c:identifier="ibus_attribute_get_start_index">
        <doc xml:whitespace="preserve">Returns a start unsigned index</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A start unsigned index</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_value" c:identifier="ibus_attribute_get_value">
        <doc xml:whitespace="preserve">Returns an unsigned int value relative with #IBusAttrType.
If the type is %IBUS_ATTR_TYPE_UNDERLINE, the return value is
#IBusAttrUnderline. If the type is %IBUS_ATTR_TYPE_FOREGROUND,
the return value is the color RGB.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An unsigned int value relative with #IBusAttrType.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="type">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="value">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="start_index">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="end_index">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="AttributeClass"
            c:type="IBusAttributeClass"
            glib:is-gtype-struct-for="Attribute">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <constant name="AudibleBell_Enable"
              value="65146"
              c:type="IBUS_AudibleBell_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="B" value="66" c:type="IBUS_B">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Babovedot" value="16784898" c:type="IBUS_Babovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="BackSpace" value="65288" c:type="IBUS_BackSpace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Begin" value="65368" c:type="IBUS_Begin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="BounceKeys_Enable"
              value="65140"
              c:type="IBUS_BounceKeys_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Break" value="65387" c:type="IBUS_Break">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Bus"
           c:symbol-prefix="bus"
           c:type="IBusBus"
           parent="Object"
           glib:type-name="IBusBus"
           glib:get-type="ibus_bus_get_type"
           glib:type-struct="BusClass">
      <doc xml:whitespace="preserve">An opaque data type representing IBus bus (daemon communication) status.</doc>
      <constructor name="new" c:identifier="ibus_bus_new">
        <doc xml:whitespace="preserve">New an #IBusBus instance.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated #IBusBus instance, and the instance is not floating.</doc>
          <type name="Bus" c:type="IBusBus*"/>
        </return-value>
      </constructor>
      <method name="add_match" c:identifier="ibus_bus_add_match">
        <doc xml:whitespace="preserve">Add a match rule to an #IBusBus synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the rule is added. %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="rule" transfer-ownership="none">
            <doc xml:whitespace="preserve">Match rule.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_match_async" c:identifier="ibus_bus_add_match_async">
        <doc xml:whitespace="preserve">Add a match rule to an #IBusBus asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="rule" transfer-ownership="none">
            <doc xml:whitespace="preserve">Match rule.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_match_async_finish"
              c:identifier="ibus_bus_add_match_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_add_match_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the rule is added. %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_add_match_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_input_context"
              c:identifier="ibus_bus_create_input_context"
              introspectable="0">
        <doc xml:whitespace="preserve">Create an input context for client synchronously.</doc>
        <return-value>
          <doc xml:whitespace="preserve">An newly allocated #IBusInputContext if the "CreateInputContext" call is suceeded, %NULL otherwise.</doc>
          <type name="InputContext" c:type="IBusInputContext*"/>
        </return-value>
        <parameters>
          <parameter name="client_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of client.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_input_context_async"
              c:identifier="ibus_bus_create_input_context_async">
        <doc xml:whitespace="preserve">Create an input context for client asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="client_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of client.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. It should not be %NULL.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_input_context_async_finish"
              c:identifier="ibus_bus_create_input_context_async_finish"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_create_input_context_async().</doc>
        <return-value>
          <doc xml:whitespace="preserve">An newly allocated #IBusInputContext if the "CreateInputContext" call is suceeded, %NULL otherwise.</doc>
          <type name="InputContext" c:type="IBusInputContext*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_create_input_context_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="current_input_context"
              c:identifier="ibus_bus_current_input_context">
        <doc xml:whitespace="preserve">Get the current focused input context synchronously.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The named of currently focued #IBusInputContext if the "CurrentInputContext" call suceeded, %NULL otherwise. The return value must be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="current_input_context_async"
              c:identifier="ibus_bus_current_input_context_async">
        <doc xml:whitespace="preserve">Get the current focused input context asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="current_input_context_async_finish"
              c:identifier="ibus_bus_current_input_context_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_current_input_context_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The named of currently focued IBusInputContext if the "CurrentInputContext" call suceeded, %NULL otherwise. The return value must be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_current_input_context_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="exit" c:identifier="ibus_bus_exit">
        <doc xml:whitespace="preserve">Exit or restart ibus-daemon synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the "Exit" call is suceeded, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="restart" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether restarting the ibus.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="exit_async" c:identifier="ibus_bus_exit_async">
        <doc xml:whitespace="preserve">Exit or restart ibus-daemon asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="restart" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether restarting the ibus.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="exit_async_finish"
              c:identifier="ibus_bus_exit_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_exit_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the "Exit" call is suceeded, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_exit_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_config" c:identifier="ibus_bus_get_config">
        <doc xml:whitespace="preserve">Get the config instance from #IBusBus.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An #IBusConfig object which is configurable with</doc>
          <type name="Config" c:type="IBusConfig*"/>
        </return-value>
      </method>
      <method name="get_connection" c:identifier="ibus_bus_get_connection">
        <doc xml:whitespace="preserve">Return #GDBusConnection of an #IBusIBus instance.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #GDBusConnection of an #IBusIBus instance.</doc>
          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
        </return-value>
      </method>
      <method name="get_global_engine"
              c:identifier="ibus_bus_get_global_engine"
              introspectable="0">
        <doc xml:whitespace="preserve">Get the description of current global engine synchronously.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The description of current global engine, or %NULL if there is no global engine.</doc>
          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
        </return-value>
      </method>
      <method name="get_global_engine_async"
              c:identifier="ibus_bus_get_global_engine_async">
        <doc xml:whitespace="preserve">Get the description of current global engine asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_global_engine_async_finish"
              c:identifier="ibus_bus_get_global_engine_async_finish"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_global_engine_async_finish().</doc>
        <return-value>
          <doc xml:whitespace="preserve">The description of current global engine, or %NULL if there is no global engine.</doc>
          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_global_engine_async_finish().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name_owner" c:identifier="ibus_bus_get_name_owner">
        <doc xml:whitespace="preserve">Return the name owner synchronously.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Owner of the name. The returned value must be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name_owner_async"
              c:identifier="ibus_bus_get_name_owner_async">
        <doc xml:whitespace="preserve">Return the name owner asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name_owner_async_finish"
              c:identifier="ibus_bus_get_name_owner_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_name_owner_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Owner of the name. The returned value must be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_name_owner_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_use_global_engine"
              c:identifier="ibus_bus_get_use_global_engine">
        <doc xml:whitespace="preserve">Check if the bus's "use_global_engine" option is enabled or not synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if "use_global_engine" option is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_use_global_engine_async"
              c:identifier="ibus_bus_get_use_global_engine_async">
        <doc xml:whitespace="preserve">Check if the bus's "use_global_engine" option is enabled or not asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_use_global_engine_async_finish"
              c:identifier="ibus_bus_get_use_global_engine_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_use_global_engine_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if "use_global_engine" option is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_use_global_engine_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_use_sys_layout"
              c:identifier="ibus_bus_get_use_sys_layout">
        <doc xml:whitespace="preserve">Check if the bus's "use_sys_layout" option is enabled or not synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if "use_sys_layout" option is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_use_sys_layout_async"
              c:identifier="ibus_bus_get_use_sys_layout_async">
        <doc xml:whitespace="preserve">Check if the bus's "use_sys_layout" option is enabled or not asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_use_sys_layout_async_finish"
              c:identifier="ibus_bus_get_use_sys_layout_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_use_sys_layout_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if "use_sys_layout" option is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_use_sys_layout_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hello" c:identifier="ibus_bus_hello">
        <doc xml:whitespace="preserve">This function sends a "HELLO" message to DBus daemon,
which replies the unique name of current IBus process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The unique name of #IBus process in DBus.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="is_connected" c:identifier="ibus_bus_is_connected">
        <doc xml:whitespace="preserve">Return %TRUE if @bus is connected to IBus daemon.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @bus is connected, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_global_engine_enabled"
              c:identifier="ibus_bus_is_global_engine_enabled">
        <doc xml:whitespace="preserve">Check if the current global engine is enabled or not synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the current global engine is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_global_engine_enabled_async"
              c:identifier="ibus_bus_is_global_engine_enabled_async">
        <doc xml:whitespace="preserve">Check if the current global engine is enabled or not asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_global_engine_enabled_async_finish"
              c:identifier="ibus_bus_is_global_engine_enabled_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_is_global_engine_enabled_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the current global engine is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_is_global_engine_enabled_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_active_engines"
              c:identifier="ibus_bus_list_active_engines">
        <doc xml:whitespace="preserve">List active engines synchronously.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">A List of active engines.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="EngineDesc"/>
          </type>
        </return-value>
      </method>
      <method name="list_active_engines_async"
              c:identifier="ibus_bus_list_active_engines_async">
        <doc xml:whitespace="preserve">List active engines asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_active_engines_async_finish"
              c:identifier="ibus_bus_list_active_engines_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_list_active_engines_async().</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">A List of active engines.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="EngineDesc"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_list_active_engines_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_engines" c:identifier="ibus_bus_list_engines">
        <doc xml:whitespace="preserve">List engines synchronously.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">A List of engines.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="EngineDesc"/>
          </type>
        </return-value>
      </method>
      <method name="list_engines_async"
              c:identifier="ibus_bus_list_engines_async">
        <doc xml:whitespace="preserve">List engines asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_engines_async_finish"
              c:identifier="ibus_bus_list_engines_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_list_engines_async().</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">A List of engines.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="EngineDesc"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_list_engines_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_names" c:identifier="ibus_bus_list_names">
        <doc xml:whitespace="preserve">Return lists that attached to @bus.
&lt;note&gt;&lt;para&gt;[FixMe] Not implemented yet, only return NULL.&lt;/para&gt;&lt;/note&gt;
&lt;note&gt;&lt;para&gt;[FixMe] Add async version.&lt;/para&gt;&lt;/note&gt;</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Lists that attached to @bus.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="list_queued_owners"
              c:identifier="ibus_bus_list_queued_owners">
        <doc xml:whitespace="preserve">Lists the unique bus names of connections currently queued for a bus name.

FIXME add an asynchronous version.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve"> The unique bus names of connections currently queued for @name.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name to be queried.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="name_has_owner" c:identifier="ibus_bus_name_has_owner">
        <doc xml:whitespace="preserve">Checks whether the name has owner synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the name has owner, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name to be checked.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="name_has_owner_async"
              c:identifier="ibus_bus_name_has_owner_async">
        <doc xml:whitespace="preserve">Checks whether the name has owner asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name to be checked.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="name_has_owner_async_finish"
              c:identifier="ibus_bus_name_has_owner_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_name_has_owner_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the name has owner, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_name_has_owner_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_component"
              c:identifier="ibus_bus_register_component">
        <doc xml:whitespace="preserve">Register a componet to an #IBusBus synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the "RegisterComponent" call is suceeded, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="component" transfer-ownership="none">
            <doc xml:whitespace="preserve">A input engine component.</doc>
            <type name="Component" c:type="IBusComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_component_async"
              c:identifier="ibus_bus_register_component_async">
        <doc xml:whitespace="preserve">Register a componet to an #IBusBus asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="component" transfer-ownership="none">
            <doc xml:whitespace="preserve">A input engine component.</doc>
            <type name="Component" c:type="IBusComponent*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_component_async_finish"
              c:identifier="ibus_bus_register_component_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_register_component_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the "RegisterComponent" call is suceeded, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_register_component_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="release_name" c:identifier="ibus_bus_release_name">
        <doc xml:whitespace="preserve">Release a name to IBus daemon synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if failed; positive number otherwise.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name to be released.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="release_name_async"
              c:identifier="ibus_bus_release_name_async">
        <doc xml:whitespace="preserve">Release a name to IBus daemon asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name to be released.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="release_name_async_finish"
              c:identifier="ibus_bus_release_name_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_release_name_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if failed; positive number otherwise.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_release_name_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_match" c:identifier="ibus_bus_remove_match">
        <doc xml:whitespace="preserve">Remove a match rule to an #IBusBus synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the rule is removed. %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="rule" transfer-ownership="none">
            <doc xml:whitespace="preserve">Match rule.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_match_async"
              c:identifier="ibus_bus_remove_match_async">
        <doc xml:whitespace="preserve">Remove a match rule to an IBusBus asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="rule" transfer-ownership="none">
            <doc xml:whitespace="preserve">Match rule.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_match_async_finish"
              c:identifier="ibus_bus_remove_match_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_remove_match_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the rule is removed. %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_remove_match_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_name" c:identifier="ibus_bus_request_name">
        <doc xml:whitespace="preserve">Request a name from IBus daemon synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if failed; IBusBusRequestNameReply otherwise.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name to be requested.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusBusNameFlag.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_name_async"
              c:identifier="ibus_bus_request_name_async">
        <doc xml:whitespace="preserve">Request a name from IBus daemon asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name to be requested.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="preserve">Flags (FixMe).</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_name_async_finish"
              c:identifier="ibus_bus_request_name_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_request_name_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if failed; positive number otherwise.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_request_name_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_global_engine"
              c:identifier="ibus_bus_set_global_engine">
        <doc xml:whitespace="preserve">Set current global engine synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the global engine was set successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="global_engine" transfer-ownership="none">
            <doc xml:whitespace="preserve">A new engine name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_global_engine_async"
              c:identifier="ibus_bus_set_global_engine_async">
        <doc xml:whitespace="preserve">Set current global engine asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="global_engine" transfer-ownership="none">
            <doc xml:whitespace="preserve">A new engine name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_global_engine_async_finish"
              c:identifier="ibus_bus_set_global_engine_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_set_global_engine_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if no IPC errros. %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_set_global_engine_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_watch_dbus_signal"
              c:identifier="ibus_bus_set_watch_dbus_signal">
        <doc xml:whitespace="preserve">Start or stop watching the NameOwnerChanged DBus signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="watch" transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if you want ibusbus to emit "name-owner-changed" signal when ibus-daemon emits the NameOwnerChanged DBus signal.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_watch_ibus_signal"
              c:identifier="ibus_bus_set_watch_ibus_signal">
        <doc xml:whitespace="preserve">Start or stop watching the GlobalEngineChanged IBus signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="watch" transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if you want ibusbus to emit "global-engine-changed" signal when ibus-daemon emits the GlobalEngineChanged IBus signal.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Object" c:type="IBusObject"/>
      </field>
      <field name="priv">
        <type name="BusPrivate" c:type="IBusBusPrivate*"/>
      </field>
      <glib:signal name="connected" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="disconnected" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="global-engine-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="name-owner-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BusClass"
            c:type="IBusBusClass"
            glib:is-gtype-struct-for="Bus">
      <field name="parent">
        <type name="ObjectClass" c:type="IBusObjectClass"/>
      </field>
    </record>
    <bitfield name="BusNameFlag"
              glib:type-name="IBusBusNameFlag"
              glib:get-type="ibus_bus_name_flag_get_type"
              c:type="IBusBusNameFlag">
      <member name="allow_replacement"
              value="1"
              c:identifier="IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT"
              glib:nick="allow-replacement"/>
      <member name="replace_existing"
              value="2"
              c:identifier="IBUS_BUS_NAME_FLAG_REPLACE_EXISTING"
              glib:nick="replace-existing"/>
      <member name="do_not_queue"
              value="4"
              c:identifier="IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE"
              glib:nick="do-not-queue"/>
    </bitfield>
    <record name="BusPrivate" c:type="IBusBusPrivate" disguised="1">
    </record>
    <enumeration name="BusRequestNameReply"
                 glib:type-name="IBusBusRequestNameReply"
                 glib:get-type="ibus_bus_request_name_reply_get_type"
                 c:type="IBusBusRequestNameReply">
      <member name="primary_owner"
              value="1"
              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER"
              glib:nick="primary-owner"/>
      <member name="in_queue"
              value="2"
              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE"
              glib:nick="in-queue"/>
      <member name="exists"
              value="3"
              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_EXISTS"
              glib:nick="exists"/>
      <member name="already_owner"
              value="4"
              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER"
              glib:nick="already-owner"/>
    </enumeration>
    <enumeration name="BusStartServiceByNameReply"
                 glib:type-name="IBusBusStartServiceByNameReply"
                 glib:get-type="ibus_bus_start_service_by_name_reply_get_type"
                 c:type="IBusBusStartServiceByNameReply">
      <member name="success"
              value="1"
              c:identifier="IBUS_BUS_START_REPLY_SUCCESS"
              glib:nick="success"/>
      <member name="already_running"
              value="2"
              c:identifier="IBUS_BUS_START_REPLY_ALREADY_RUNNING"
              glib:nick="already-running"/>
    </enumeration>
    <constant name="Byelorussian_SHORTU"
              value="1726"
              c:type="IBUS_Byelorussian_SHORTU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Byelorussian_shortu"
              value="1710"
              c:type="IBUS_Byelorussian_shortu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="C" value="67" c:type="IBUS_C">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cabovedot" value="709" c:type="IBUS_Cabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cacute" value="454" c:type="IBUS_Cacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cancel" value="65385" c:type="IBUS_Cancel">
      <type name="gint" c:type="gint"/>
    </constant>
    <bitfield name="Capabilite"
              glib:type-name="IBusCapabilite"
              glib:get-type="ibus_capabilite_get_type"
              c:type="IBusCapabilite">
      <doc xml:whitespace="preserve">Capability flags of UI.</doc>
      <member name="preedit_text"
              value="1"
              c:identifier="IBUS_CAP_PREEDIT_TEXT"
              glib:nick="preedit-text"/>
      <member name="auxiliary_text"
              value="2"
              c:identifier="IBUS_CAP_AUXILIARY_TEXT"
              glib:nick="auxiliary-text"/>
      <member name="lookup_table"
              value="4"
              c:identifier="IBUS_CAP_LOOKUP_TABLE"
              glib:nick="lookup-table"/>
      <member name="focus"
              value="8"
              c:identifier="IBUS_CAP_FOCUS"
              glib:nick="focus"/>
      <member name="property"
              value="16"
              c:identifier="IBUS_CAP_PROPERTY"
              glib:nick="property"/>
      <member name="surrounding_text"
              value="32"
              c:identifier="IBUS_CAP_SURROUNDING_TEXT"
              glib:nick="surrounding-text"/>
    </bitfield>
    <constant name="Caps_Lock" value="65509" c:type="IBUS_Caps_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ccaron" value="456" c:type="IBUS_Ccaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ccedilla" value="199" c:type="IBUS_Ccedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ccircumflex" value="710" c:type="IBUS_Ccircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Clear" value="65291" c:type="IBUS_Clear">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Codeinput" value="65335" c:type="IBUS_Codeinput">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ColonSign" value="16785569" c:type="IBUS_ColonSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Component"
           c:symbol-prefix="component"
           c:type="IBusComponent"
           parent="Serializable"
           glib:type-name="IBusComponent"
           glib:get-type="ibus_component_get_type"
           glib:type-struct="ComponentClass">
      <doc xml:whitespace="preserve">An IBusComponent stores component information.
You can get extended values with g_object_get_properties.
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()</doc>
      <constructor name="new" c:identifier="ibus_component_new">
        <doc xml:whitespace="preserve">New an IBusComponent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusComponent.</doc>
          <type name="Component" c:type="IBusComponent*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:whitespace="preserve">Detailed description of component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component version.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:whitespace="preserve">Distribution license of this component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:whitespace="preserve">Author(s) of the component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="homepage" transfer-ownership="none">
            <doc xml:whitespace="preserve">Homepage of the component.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="exec" transfer-ownership="none">
            <doc xml:whitespace="preserve">path to component executable.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="textdomain" transfer-ownership="none">
            <doc xml:whitespace="preserve">Domain name for dgettext()</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="ibus_component_new_from_file">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusComponent.</doc>
          <type name="Component" c:type="IBusComponent*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">An XML file that contains component information.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xml_node"
                   c:identifier="ibus_component_new_from_xml_node"
                   introspectable="0">
        <doc xml:whitespace="preserve">New an IBusComponent from an XML tree.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusComponent.</doc>
          <type name="Component" c:type="IBusComponent*"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Root node of component XML tree.</doc>
            <type c:type="XMLNode*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_varargs"
                   c:identifier="ibus_component_new_varargs"
                   introspectable="0">
        <doc xml:whitespace="preserve">New an IBusComponent.
ibus_component_new_varargs() supports the va_list format.
name property is required. e.g.
IBusComponent *component = ibus_component_new_varargs ("name", "ibus-foo",
"exec", "/usr/libexec/ibus-engine-foo --ibus",
NULL)</doc>
        <return-value transfer-ownership="none">
          <type name="Component" c:type="IBusComponent*"/>
        </return-value>
        <parameters>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the first property.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_engine" c:identifier="ibus_component_add_engine">
        <doc xml:whitespace="preserve">Add an engine to IBusComponent according to the description in @engine.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="engine" transfer-ownership="none">
            <doc xml:whitespace="preserve">A description of an engine.</doc>
            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_observed_path"
              c:identifier="ibus_component_add_observed_path">
        <doc xml:whitespace="preserve">Add an observed path to IBusComponent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">Observed path to be added.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="access_fs" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE for filling the file status; FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_modification"
              c:identifier="ibus_component_check_modification">
        <doc xml:whitespace="preserve">Check whether the observed paths of component is modified.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if at least one of the observed paths is modified; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_author" c:identifier="ibus_component_get_author">
        <doc xml:whitespace="preserve">Return the author property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">author property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_description"
              c:identifier="ibus_component_get_description">
        <doc xml:whitespace="preserve">Return the description property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">description property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_engines" c:identifier="ibus_component_get_engines">
        <doc xml:whitespace="preserve">Get the engines of this component.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">A newly allocated GList that contains engines.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="EngineDesc"/>
          </type>
        </return-value>
      </method>
      <method name="get_exec" c:identifier="ibus_component_get_exec">
        <doc xml:whitespace="preserve">Return the exec property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">exec property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_homepage" c:identifier="ibus_component_get_homepage">
        <doc xml:whitespace="preserve">Return the homepage property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">homepage property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_license" c:identifier="ibus_component_get_license">
        <doc xml:whitespace="preserve">Return the license property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">license property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_name" c:identifier="ibus_component_get_name">
        <doc xml:whitespace="preserve">Return the name property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">name property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_textdomain"
              c:identifier="ibus_component_get_textdomain">
        <doc xml:whitespace="preserve">Return the textdomain property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">textdomain property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_version" c:identifier="ibus_component_get_version">
        <doc xml:whitespace="preserve">Return the version property in IBusComponent. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">version property in IBusComponent</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="output" c:identifier="ibus_component_output">
        <doc xml:whitespace="preserve">Output IBusComponent as an XML-formatted string.
The output string can be then shown on the screen or written to file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:whitespace="preserve">GString that holds the result.</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
          <parameter name="indent" transfer-ownership="none">
            <doc xml:whitespace="preserve">level of indent.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="output_engines"
              c:identifier="ibus_component_output_engines">
        <doc xml:whitespace="preserve">Output engine description  as an XML-formatted string.
The output string can be then shown on the screen or written to file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:whitespace="preserve">GString that holds the result.</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
          <parameter name="indent" transfer-ownership="none">
            <doc xml:whitespace="preserve">level of indent.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="author"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="description"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="exec"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="homepage"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="license"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="textdomain"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="version"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ComponentPrivate" c:type="IBusComponentPrivate*"/>
      </field>
      <field name="pdummy">
        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="ComponentClass"
            c:type="IBusComponentClass"
            glib:is-gtype-struct-for="Component">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <record name="ComponentPrivate"
            c:type="IBusComponentPrivate"
            disguised="1">
    </record>
    <class name="Config"
           c:symbol-prefix="config"
           c:type="IBusConfig"
           parent="Proxy"
           glib:type-name="IBusConfig"
           glib:get-type="ibus_config_get_type"
           glib:type-struct="ConfigClass">
      <doc xml:whitespace="preserve">An opaque data type representing an IBusConfig.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="ibus_config_new" throws="1">
        <doc xml:whitespace="preserve">New an #IBusConfig from existing GDBusConnection.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">An newly allocated IBusConfig corresponding to @connection.</doc>
          <type name="Config" c:type="IBusConfig*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_async_finish"
                   c:identifier="ibus_config_new_async_finish"
                   throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_config_new_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly allocated #IBusConfig.</doc>
          <type name="Config" c:type="IBusConfig*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback pass to ibus_config_new_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new_async" c:identifier="ibus_config_new_async">
        <doc xml:whitespace="preserve">New an #IBusContext asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. The callback should not be %NULL.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_value" c:identifier="ibus_config_get_value">
        <doc xml:whitespace="preserve">Get the value of a configuration option synchronously.

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".</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GVariant or %NULL. Free with g_variant_unref().</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the configure option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_async"
              c:identifier="ibus_config_get_value_async">
        <doc xml:whitespace="preserve">Get the value of a configuration option asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the configure option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_ms" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">Callback function to invoke when the return value is ready.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_async_finish"
              c:identifier="ibus_config_get_value_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finish get value of a configuration option.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GVariant or %NULL if error is set. Free with g_variant_unref().</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_values" c:identifier="ibus_config_get_values">
        <doc xml:whitespace="preserve">Get all values in a section synchronously.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GVariant or %NULL. Free with g_variant_unref().</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_values_async"
              c:identifier="ibus_config_get_values_async">
        <doc xml:whitespace="preserve">Get all values in a section asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="timeout_ms" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">Callback function to invoke when the return value is ready.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_values_async_finish"
              c:identifier="ibus_config_get_values_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finish get values in a section.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GVariant or %NULL if error is set. Free with g_variant_unref().</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="ibus_config_set_value">
        <doc xml:whitespace="preserve">Set the value of a configuration option synchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if succeed; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the configure option its self.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GVariant that holds the value. If the value is floating, the function takes ownership of it.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value_async"
              c:identifier="ibus_config_set_value_async">
        <doc xml:whitespace="preserve">Set the value of a configuration option asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the configure option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GVariant that holds the value. If the value is floating, the function takes ownership of it.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
          <parameter name="timeout_ms" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:whitespace="preserve">Callback function to invoke when the return value is ready.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value_async_finish"
              c:identifier="ibus_config_set_value_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finish set value of a configuration option.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE or %FALSE if error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset" c:identifier="ibus_config_unset">
        <doc xml:whitespace="preserve">Remove an entry of a configuration option.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if succeed; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the configure option its self.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Proxy" c:type="IBusProxy"/>
      </field>
      <glib:signal name="value-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="GLib.Variant"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ConfigClass"
            c:type="IBusConfigClass"
            glib:is-gtype-struct-for="Config">
      <field name="parent">
        <type name="ProxyClass" c:type="IBusProxyClass"/>
      </field>
    </record>
    <class name="ConfigService"
           c:symbol-prefix="config_service"
           c:type="IBusConfigService"
           parent="Service"
           glib:type-name="IBusConfigService"
           glib:get-type="ibus_config_service_get_type"
           glib:type-struct="ConfigServiceClass">
      <doc xml:whitespace="preserve">An opaque data type representing a configure service.</doc>
      <constructor name="new" c:identifier="ibus_config_service_new">
        <doc xml:whitespace="preserve">New an IBusConfigService from an GDBusConnection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusConfigServices.</doc>
          <type name="ConfigService" c:type="IBusConfigService*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="get_value" throws="1">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_values" throws="1">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_value" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unset_value" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="value_changed"
              c:identifier="ibus_config_service_value_changed">
        <doc xml:whitespace="preserve">Change a value of a configuration option
by sending a "ValueChanged" message to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="section" transfer-ownership="none">
            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the configure option.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">GVariant that holds the value.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="Service" c:type="IBusService"/>
      </field>
    </class>
    <record name="ConfigServiceClass"
            c:type="IBusConfigServiceClass"
            glib:is-gtype-struct-for="ConfigService">
      <field name="parent" readable="0" private="1">
        <type name="ServiceClass" c:type="IBusServiceClass"/>
      </field>
      <field name="set_value">
        <callback name="set_value" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="config" transfer-ownership="none">
              <type name="ConfigService" c:type="IBusConfigService*"/>
            </parameter>
            <parameter name="section" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <type name="GLib.Variant" c:type="GVariant*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_value">
        <callback name="get_value" throws="1">
          <return-value transfer-ownership="full">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </return-value>
          <parameters>
            <parameter name="config" transfer-ownership="none">
              <type name="ConfigService" c:type="IBusConfigService*"/>
            </parameter>
            <parameter name="section" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unset_value">
        <callback name="unset_value" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="config" transfer-ownership="none">
              <type name="ConfigService" c:type="IBusConfigService*"/>
            </parameter>
            <parameter name="section" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_values">
        <callback name="get_values" throws="1">
          <return-value transfer-ownership="full">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </return-value>
          <parameters>
            <parameter name="config" transfer-ownership="none">
              <type name="ConfigService" c:type="IBusConfigService*"/>
            </parameter>
            <parameter name="section" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <constant name="Control_L" value="65507" c:type="IBUS_Control_L">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Control_R" value="65508" c:type="IBUS_Control_R">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="CruzeiroSign" value="16785570" c:type="IBUS_CruzeiroSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_A" value="1761" c:type="IBUS_Cyrillic_A">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_BE" value="1762" c:type="IBUS_Cyrillic_BE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_CHE" value="1790" c:type="IBUS_Cyrillic_CHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_CHE_descender"
              value="16778422"
              c:type="IBUS_Cyrillic_CHE_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_CHE_vertstroke"
              value="16778424"
              c:type="IBUS_Cyrillic_CHE_vertstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_DE" value="1764" c:type="IBUS_Cyrillic_DE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_DZHE" value="1727" c:type="IBUS_Cyrillic_DZHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_E" value="1788" c:type="IBUS_Cyrillic_E">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_EF" value="1766" c:type="IBUS_Cyrillic_EF">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_EL" value="1772" c:type="IBUS_Cyrillic_EL">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_EM" value="1773" c:type="IBUS_Cyrillic_EM">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_EN" value="1774" c:type="IBUS_Cyrillic_EN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_EN_descender"
              value="16778402"
              c:type="IBUS_Cyrillic_EN_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ER" value="1778" c:type="IBUS_Cyrillic_ER">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ES" value="1779" c:type="IBUS_Cyrillic_ES">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_GHE" value="1767" c:type="IBUS_Cyrillic_GHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_GHE_bar"
              value="16778386"
              c:type="IBUS_Cyrillic_GHE_bar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_HA" value="1768" c:type="IBUS_Cyrillic_HA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_HARDSIGN"
              value="1791"
              c:type="IBUS_Cyrillic_HARDSIGN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_HA_descender"
              value="16778418"
              c:type="IBUS_Cyrillic_HA_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_I" value="1769" c:type="IBUS_Cyrillic_I">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_IE" value="1765" c:type="IBUS_Cyrillic_IE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_IO" value="1715" c:type="IBUS_Cyrillic_IO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_I_macron"
              value="16778466"
              c:type="IBUS_Cyrillic_I_macron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_JE" value="1720" c:type="IBUS_Cyrillic_JE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_KA" value="1771" c:type="IBUS_Cyrillic_KA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_KA_descender"
              value="16778394"
              c:type="IBUS_Cyrillic_KA_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_KA_vertstroke"
              value="16778396"
              c:type="IBUS_Cyrillic_KA_vertstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_LJE" value="1721" c:type="IBUS_Cyrillic_LJE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_NJE" value="1722" c:type="IBUS_Cyrillic_NJE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_O" value="1775" c:type="IBUS_Cyrillic_O">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_O_bar"
              value="16778472"
              c:type="IBUS_Cyrillic_O_bar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_PE" value="1776" c:type="IBUS_Cyrillic_PE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_SCHWA"
              value="16778456"
              c:type="IBUS_Cyrillic_SCHWA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_SHA" value="1787" c:type="IBUS_Cyrillic_SHA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_SHCHA" value="1789" c:type="IBUS_Cyrillic_SHCHA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_SHHA"
              value="16778426"
              c:type="IBUS_Cyrillic_SHHA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_SHORTI"
              value="1770"
              c:type="IBUS_Cyrillic_SHORTI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_SOFTSIGN"
              value="1784"
              c:type="IBUS_Cyrillic_SOFTSIGN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_TE" value="1780" c:type="IBUS_Cyrillic_TE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_TSE" value="1763" c:type="IBUS_Cyrillic_TSE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_U" value="1781" c:type="IBUS_Cyrillic_U">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_U_macron"
              value="16778478"
              c:type="IBUS_Cyrillic_U_macron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_U_straight"
              value="16778414"
              c:type="IBUS_Cyrillic_U_straight">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_U_straight_bar"
              value="16778416"
              c:type="IBUS_Cyrillic_U_straight_bar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_VE" value="1783" c:type="IBUS_Cyrillic_VE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_YA" value="1777" c:type="IBUS_Cyrillic_YA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_YERU" value="1785" c:type="IBUS_Cyrillic_YERU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_YU" value="1760" c:type="IBUS_Cyrillic_YU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ZE" value="1786" c:type="IBUS_Cyrillic_ZE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ZHE" value="1782" c:type="IBUS_Cyrillic_ZHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ZHE_descender"
              value="16778390"
              c:type="IBUS_Cyrillic_ZHE_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_a" value="1729" c:type="IBUS_Cyrillic_a">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_be" value="1730" c:type="IBUS_Cyrillic_be">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_che" value="1758" c:type="IBUS_Cyrillic_che">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_che_descender"
              value="16778423"
              c:type="IBUS_Cyrillic_che_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_che_vertstroke"
              value="16778425"
              c:type="IBUS_Cyrillic_che_vertstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_de" value="1732" c:type="IBUS_Cyrillic_de">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_dzhe" value="1711" c:type="IBUS_Cyrillic_dzhe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_e" value="1756" c:type="IBUS_Cyrillic_e">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ef" value="1734" c:type="IBUS_Cyrillic_ef">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_el" value="1740" c:type="IBUS_Cyrillic_el">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_em" value="1741" c:type="IBUS_Cyrillic_em">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_en" value="1742" c:type="IBUS_Cyrillic_en">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_en_descender"
              value="16778403"
              c:type="IBUS_Cyrillic_en_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_er" value="1746" c:type="IBUS_Cyrillic_er">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_es" value="1747" c:type="IBUS_Cyrillic_es">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ghe" value="1735" c:type="IBUS_Cyrillic_ghe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ghe_bar"
              value="16778387"
              c:type="IBUS_Cyrillic_ghe_bar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ha" value="1736" c:type="IBUS_Cyrillic_ha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ha_descender"
              value="16778419"
              c:type="IBUS_Cyrillic_ha_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_hardsign"
              value="1759"
              c:type="IBUS_Cyrillic_hardsign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_i" value="1737" c:type="IBUS_Cyrillic_i">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_i_macron"
              value="16778467"
              c:type="IBUS_Cyrillic_i_macron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ie" value="1733" c:type="IBUS_Cyrillic_ie">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_io" value="1699" c:type="IBUS_Cyrillic_io">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_je" value="1704" c:type="IBUS_Cyrillic_je">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ka" value="1739" c:type="IBUS_Cyrillic_ka">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ka_descender"
              value="16778395"
              c:type="IBUS_Cyrillic_ka_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ka_vertstroke"
              value="16778397"
              c:type="IBUS_Cyrillic_ka_vertstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_lje" value="1705" c:type="IBUS_Cyrillic_lje">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_nje" value="1706" c:type="IBUS_Cyrillic_nje">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_o" value="1743" c:type="IBUS_Cyrillic_o">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_o_bar"
              value="16778473"
              c:type="IBUS_Cyrillic_o_bar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_pe" value="1744" c:type="IBUS_Cyrillic_pe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_schwa"
              value="16778457"
              c:type="IBUS_Cyrillic_schwa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_sha" value="1755" c:type="IBUS_Cyrillic_sha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_shcha" value="1757" c:type="IBUS_Cyrillic_shcha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_shha"
              value="16778427"
              c:type="IBUS_Cyrillic_shha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_shorti"
              value="1738"
              c:type="IBUS_Cyrillic_shorti">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_softsign"
              value="1752"
              c:type="IBUS_Cyrillic_softsign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_te" value="1748" c:type="IBUS_Cyrillic_te">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_tse" value="1731" c:type="IBUS_Cyrillic_tse">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_u" value="1749" c:type="IBUS_Cyrillic_u">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_u_macron"
              value="16778479"
              c:type="IBUS_Cyrillic_u_macron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_u_straight"
              value="16778415"
              c:type="IBUS_Cyrillic_u_straight">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_u_straight_bar"
              value="16778417"
              c:type="IBUS_Cyrillic_u_straight_bar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ve" value="1751" c:type="IBUS_Cyrillic_ve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ya" value="1745" c:type="IBUS_Cyrillic_ya">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_yeru" value="1753" c:type="IBUS_Cyrillic_yeru">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_yu" value="1728" c:type="IBUS_Cyrillic_yu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_ze" value="1754" c:type="IBUS_Cyrillic_ze">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_zhe" value="1750" c:type="IBUS_Cyrillic_zhe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Cyrillic_zhe_descender"
              value="16778391"
              c:type="IBUS_Cyrillic_zhe_descender">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="D" value="68" c:type="IBUS_D">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Dabovedot" value="16784906" c:type="IBUS_Dabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Dcaron" value="463" c:type="IBUS_Dcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Delete" value="65535" c:type="IBUS_Delete">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DongSign" value="16785579" c:type="IBUS_DongSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Down" value="65364" c:type="IBUS_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Dstroke" value="464" c:type="IBUS_Dstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="E" value="69" c:type="IBUS_E">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ENG" value="957" c:type="IBUS_ENG">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ETH" value="208" c:type="IBUS_ETH">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Eabovedot" value="972" c:type="IBUS_Eabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Eacute" value="201" c:type="IBUS_Eacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ebelowdot" value="16785080" c:type="IBUS_Ebelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ecaron" value="460" c:type="IBUS_Ecaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ecircumflex" value="202" c:type="IBUS_Ecircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ecircumflexacute"
              value="16785086"
              c:type="IBUS_Ecircumflexacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ecircumflexbelowdot"
              value="16785094"
              c:type="IBUS_Ecircumflexbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ecircumflexgrave"
              value="16785088"
              c:type="IBUS_Ecircumflexgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ecircumflexhook"
              value="16785090"
              c:type="IBUS_Ecircumflexhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ecircumflextilde"
              value="16785092"
              c:type="IBUS_Ecircumflextilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="EcuSign" value="16785568" c:type="IBUS_EcuSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ediaeresis" value="203" c:type="IBUS_Ediaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Egrave" value="200" c:type="IBUS_Egrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ehook" value="16785082" c:type="IBUS_Ehook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Eisu_Shift" value="65327" c:type="IBUS_Eisu_Shift">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Eisu_toggle" value="65328" c:type="IBUS_Eisu_toggle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Emacron" value="938" c:type="IBUS_Emacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="End" value="65367" c:type="IBUS_End">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Engine"
           c:symbol-prefix="engine"
           c:type="IBusEngine"
           parent="Service"
           glib:type-name="IBusEngine"
           glib:get-type="ibus_engine_get_type"
           glib:type-struct="EngineClass">
      <doc xml:whitespace="preserve">IBusEngine properties.</doc>
      <constructor name="new" c:identifier="ibus_engine_new">
        <doc xml:whitespace="preserve">New an IBusEngine.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusEngine.</doc>
          <type name="Engine" c:type="IBusEngine*"/>
        </return-value>
        <parameters>
          <parameter name="engine_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An opened GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_type" c:identifier="ibus_engine_new_type">
        <doc xml:whitespace="preserve">New an IBusEngine.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusEngine.</doc>
          <type name="Engine" c:type="IBusEngine*"/>
        </return-value>
        <parameters>
          <parameter name="engine_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">GType of subclass of IBUS_TYPE_ENGINE</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="engine_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the IBusObject.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">Path for IBusService.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An opened GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="cancel_hand_writing">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="n_strokes" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="candidate_clicked">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cursor_down">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="cursor_up">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="disable">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="enable">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="focus_in">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="focus_out">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="page_down">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="page_up">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="process_hand_writing_event">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="coordinates" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="coordinates_len" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="process_key_event">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="keycode" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="property_activate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_state" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="property_hide">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="property_show">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="reset">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set_capabilities">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="caps" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_cursor_location">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="w" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="h" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_surrounding_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="cursor_index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="anchor_pos" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="commit_text" c:identifier="ibus_engine_commit_text">
        <doc xml:whitespace="preserve">Commit output of input method to IBus client.

(Note: The text object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">String commit to IBusEngine.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_surrounding_text"
              c:identifier="ibus_engine_delete_surrounding_text">
        <doc xml:whitespace="preserve">Delete surrounding text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:whitespace="preserve">The offset of the first char.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="nchars" transfer-ownership="none">
            <doc xml:whitespace="preserve">Number of chars to be deleted.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_key_event"
              c:identifier="ibus_engine_forward_key_event">
        <doc xml:whitespace="preserve">Forward the key event.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:whitespace="preserve">KeySym.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:whitespace="preserve">keyboard scancode.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">Key modifier flags.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ibus_engine_get_name">
        <doc xml:whitespace="preserve">Return the name of IBusEngine.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Name of IBusEngine.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_surrounding_text"
              c:identifier="ibus_engine_get_surrounding_text">
        <doc xml:whitespace="preserve">Get surrounding text.

It is also used to tell the input-context that the engine will
utilize surrounding-text.  In that case, it must be called in
#IBusEngine::enable handler, with both @text and @cursor set to
%NULL.

@see_also #IBusEngine::set-surrounding-text</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Location to store surrounding text.</doc>
            <type name="Text" c:type="IBusText**"/>
          </parameter>
          <parameter name="cursor_pos"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">Cursor position in characters in @text.</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="anchor_pos"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">Anchor position of selection in @text.</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hide_auxiliary_text"
              c:identifier="ibus_engine_hide_auxiliary_text">
        <doc xml:whitespace="preserve">Hide the auxiliary bar.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="hide_lookup_table"
              c:identifier="ibus_engine_hide_lookup_table">
        <doc xml:whitespace="preserve">Hide the lookup table.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="hide_preedit_text"
              c:identifier="ibus_engine_hide_preedit_text">
        <doc xml:whitespace="preserve">Hide the pre-edit buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="register_properties"
              c:identifier="ibus_engine_register_properties">
        <doc xml:whitespace="preserve">Register and show properties in language bar.

(Note: The prop_list object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Property List.</doc>
            <type name="PropList" c:type="IBusPropList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_auxiliary_text"
              c:identifier="ibus_engine_show_auxiliary_text">
        <doc xml:whitespace="preserve">Show the auxiliary bar.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="show_lookup_table"
              c:identifier="ibus_engine_show_lookup_table">
        <doc xml:whitespace="preserve">Show the lookup table.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="show_preedit_text"
              c:identifier="ibus_engine_show_preedit_text">
        <doc xml:whitespace="preserve">Show the pre-edit buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="update_auxiliary_text"
              c:identifier="ibus_engine_update_auxiliary_text">
        <doc xml:whitespace="preserve">Update the auxiliary bar.

(Note: The text object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Update content.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the auxiliary text bar is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_lookup_table"
              c:identifier="ibus_engine_update_lookup_table">
        <doc xml:whitespace="preserve">Update the lookup table.

(Note: The table object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="lookup_table" transfer-ownership="none">
            <doc xml:whitespace="preserve">An lookup_table.</doc>
            <type name="LookupTable" c:type="IBusLookupTable*"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the lookup_table is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_lookup_table_fast"
              c:identifier="ibus_engine_update_lookup_table_fast">
        <doc xml:whitespace="preserve">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().

(Note: The table object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="lookup_table" transfer-ownership="none">
            <doc xml:whitespace="preserve">An lookup_table.</doc>
            <type name="LookupTable" c:type="IBusLookupTable*"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the lookup_table is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_preedit_text"
              c:identifier="ibus_engine_update_preedit_text">
        <doc xml:whitespace="preserve">Update the pre-edit buffer.

(Note: The text object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Update content.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="cursor_pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">Current position of cursor</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the pre-edit buffer is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_preedit_text_with_mode"
              c:identifier="ibus_engine_update_preedit_text_with_mode">
        <doc xml:whitespace="preserve">Update the pre-edit buffer with commit mode.
if mode is IBUS_ENGINE_PREEDIT_CLEAR,
ibus_engine_update_preedit_text_with_mode is compatible with
ibus_engine_update_preedit_text.

(Note: The text object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Update content.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="cursor_pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">Current position of cursor</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the pre-edit buffer is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Pre-edit commit mode when the focus is lost.</doc>
            <type name="PreeditFocusMode" c:type="IBusPreeditFocusMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_property"
              c:identifier="ibus_engine_update_property">
        <doc xml:whitespace="preserve">Update the state displayed in language bar.

(Note: The prop object will be released, if it is floating.
If caller want to keep the object, caller should make the object
sink by g_object_ref_sink.)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusProperty to be updated.</doc>
            <type name="Property" c:type="IBusProperty*"/>
          </parameter>
        </parameters>
      </method>
      <property name="engine-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Service" c:type="IBusService"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="EnginePrivate" c:type="IBusEnginePrivate*"/>
      </field>
      <field name="enabled">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_focus">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="cursor_area">
        <type name="Rectangle" c:type="IBusRectangle"/>
      </field>
      <field name="client_capabilities">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="cancel-hand-writing" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="candidate-clicked" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cursor-down" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cursor-up" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="disable" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="enable" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="focus-in" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="focus-out" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="page-down" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="page-up" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="process-hand-writing-event" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="process-key-event" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="property-activate" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="property-hide" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="property-show" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="reset" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-capabilities" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-cursor-location" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-surrounding-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="EngineClass"
            c:type="IBusEngineClass"
            glib:is-gtype-struct-for="Engine">
      <field name="parent" readable="0" private="1">
        <type name="ServiceClass" c:type="IBusServiceClass"/>
      </field>
      <field name="process_key_event">
        <callback name="process_key_event">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="keyval" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="keycode" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus_in">
        <callback name="focus_in">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus_out">
        <callback name="focus_out">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset">
        <callback name="reset">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="enable">
        <callback name="enable">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disable">
        <callback name="disable">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_cursor_location">
        <callback name="set_cursor_location">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="w" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="h" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_capabilities">
        <callback name="set_capabilities">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="caps" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="page_up">
        <callback name="page_up">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="page_down">
        <callback name="page_down">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cursor_up">
        <callback name="cursor_up">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cursor_down">
        <callback name="cursor_down">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="property_activate">
        <callback name="property_activate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="prop_state" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="property_show">
        <callback name="property_show">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="property_hide">
        <callback name="property_hide">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="candidate_clicked">
        <callback name="candidate_clicked">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="button" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_surrounding_text">
        <callback name="set_surrounding_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="Text" c:type="IBusText*"/>
            </parameter>
            <parameter name="cursor_index" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="anchor_pos" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="process_hand_writing_event">
        <callback name="process_hand_writing_event">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="coordinates" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble*"/>
            </parameter>
            <parameter name="coordinates_len" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cancel_hand_writing">
        <callback name="cancel_hand_writing">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="engine" transfer-ownership="none">
              <type name="Engine" c:type="IBusEngine*"/>
            </parameter>
            <parameter name="n_strokes" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="5">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="EngineDesc"
           c:symbol-prefix="engine_desc"
           c:type="IBusEngineDesc"
           parent="Serializable"
           glib:type-name="IBusEngineDesc"
           glib:get-type="ibus_engine_desc_get_type"
           glib:type-struct="EngineDescClass">
      <doc xml:whitespace="preserve">Input method engine description data.
You can get extended values with g_object_get_properties.
name: Name of the engine.
longname: Long name of the input method engine.
description: Input method engine description.
language: Language (e.g. zh, jp) supported by this input method engine.
license: License of the input method engine.
author: Author of the input method engine.
icon: Icon file of this engine.
layout: Keyboard layout
rank: Preference rank among engines, the highest ranked IME will put in
the front.
hotkeys: One or more hotkeys for switching to this engine, separated by
semi-colon.</doc>
      <constructor name="new" c:identifier="ibus_engine_desc_new">
        <doc xml:whitespace="preserve">New a IBusEngineDesc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusEngineDesc.</doc>
          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="longname" transfer-ownership="none">
            <doc xml:whitespace="preserve">Long name of the input method engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:whitespace="preserve">Input method engine description.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="language" transfer-ownership="none">
            <doc xml:whitespace="preserve">Language (e.g. zh, jp) supported by this input method engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:whitespace="preserve">License of the input method engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:whitespace="preserve">Author of the input method engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Icon file of this engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="layout" transfer-ownership="none">
            <doc xml:whitespace="preserve">Keyboard layout</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xml_node"
                   c:identifier="ibus_engine_desc_new_from_xml_node"
                   introspectable="0">
        <doc xml:whitespace="preserve">New a IBusEngineDesc from an XML node.
&lt;note&gt;&lt;para&gt;This function is called by ibus_component_new_from_file(),
so developers normally do not need to call it directly.
&lt;/para&gt;&lt;/note&gt;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusEngineDesc that contains description from</doc>
          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">An XML node</doc>
            <type c:type="XMLNode*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_varargs"
                   c:identifier="ibus_engine_desc_new_varargs"
                   introspectable="0">
        <doc xml:whitespace="preserve">New a IBusEngineDesc.
ibus_engine_desc_new_varargs() supports the va_list format.
name property is required. e.g.
ibus_engine_desc_new_varargs("name", "ibus-foo", "language", "us", NULL)</doc>
        <return-value transfer-ownership="none">
          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
        </return-value>
        <parameters>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the first property.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_author" c:identifier="ibus_engine_desc_get_author">
        <doc xml:whitespace="preserve">Return the author property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">author property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_description"
              c:identifier="ibus_engine_desc_get_description">
        <doc xml:whitespace="preserve">Return the description property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">description property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_hotkeys" c:identifier="ibus_engine_desc_get_hotkeys">
        <doc xml:whitespace="preserve">Return the hotkeys property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">hotkeys property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_icon" c:identifier="ibus_engine_desc_get_icon">
        <doc xml:whitespace="preserve">Return the icon property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">icon property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_language" c:identifier="ibus_engine_desc_get_language">
        <doc xml:whitespace="preserve">Return the language property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">language property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_layout" c:identifier="ibus_engine_desc_get_layout">
        <doc xml:whitespace="preserve">Return the layout property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">layout property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_license" c:identifier="ibus_engine_desc_get_license">
        <doc xml:whitespace="preserve">Return the license property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">license property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_longname" c:identifier="ibus_engine_desc_get_longname">
        <doc xml:whitespace="preserve">Return the longname property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">longname property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_name" c:identifier="ibus_engine_desc_get_name">
        <doc xml:whitespace="preserve">Return the name property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">name property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_rank" c:identifier="ibus_engine_desc_get_rank">
        <doc xml:whitespace="preserve">Return the rank property in IBusEngineDesc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">rank property in IBusEngineDesc</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_symbol" c:identifier="ibus_engine_desc_get_symbol">
        <doc xml:whitespace="preserve">Return the symbol property in IBusEngineDesc. It should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">symbol property in IBusEngineDesc</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="output" c:identifier="ibus_engine_desc_output">
        <doc xml:whitespace="preserve">Output XML-formatted input method engine description.
The result will be append to GString specified in @output.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:whitespace="preserve">XML-formatted Input method engine description.</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
          <parameter name="indent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Number of indent (showed as 4 spaces).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="author"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="description"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="hotkeys"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="icon"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="language"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="layout"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="license"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="longname"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="rank"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint"/>
      </property>
      <property name="symbol"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="EngineDescPrivate" c:type="IBusEngineDescPrivate*"/>
      </field>
    </class>
    <record name="EngineDescClass"
            c:type="IBusEngineDescClass"
            glib:is-gtype-struct-for="EngineDesc">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <record name="EngineDescPrivate"
            c:type="IBusEngineDescPrivate"
            disguised="1">
    </record>
    <record name="EnginePrivate" c:type="IBusEnginePrivate" disguised="1">
    </record>
    <constant name="Eogonek" value="458" c:type="IBUS_Eogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="Error"
                 glib:type-name="IBusError"
                 glib:get-type="ibus_error_get_type"
                 c:type="IBusError">
      <member name="engine"
              value="0"
              c:identifier="IBUS_ERROR_NO_ENGINE"
              glib:nick="engine"/>
      <function name="quark" c:identifier="ibus_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <constant name="Escape" value="65307" c:type="IBUS_Escape">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Eth" value="208" c:type="IBUS_Eth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Etilde" value="16785084" c:type="IBUS_Etilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="EuroSign" value="8364" c:type="IBUS_EuroSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Execute" value="65378" c:type="IBUS_Execute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F" value="70" c:type="IBUS_F">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F1" value="65470" c:type="IBUS_F1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F10" value="65479" c:type="IBUS_F10">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F11" value="65480" c:type="IBUS_F11">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F12" value="65481" c:type="IBUS_F12">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F13" value="65482" c:type="IBUS_F13">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F14" value="65483" c:type="IBUS_F14">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F15" value="65484" c:type="IBUS_F15">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F16" value="65485" c:type="IBUS_F16">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F17" value="65486" c:type="IBUS_F17">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F18" value="65487" c:type="IBUS_F18">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F19" value="65488" c:type="IBUS_F19">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F2" value="65471" c:type="IBUS_F2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F20" value="65489" c:type="IBUS_F20">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F21" value="65490" c:type="IBUS_F21">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F22" value="65491" c:type="IBUS_F22">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F23" value="65492" c:type="IBUS_F23">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F24" value="65493" c:type="IBUS_F24">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F25" value="65494" c:type="IBUS_F25">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F26" value="65495" c:type="IBUS_F26">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F27" value="65496" c:type="IBUS_F27">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F28" value="65497" c:type="IBUS_F28">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F29" value="65498" c:type="IBUS_F29">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F3" value="65472" c:type="IBUS_F3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F30" value="65499" c:type="IBUS_F30">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F31" value="65500" c:type="IBUS_F31">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F32" value="65501" c:type="IBUS_F32">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F33" value="65502" c:type="IBUS_F33">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F34" value="65503" c:type="IBUS_F34">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F35" value="65504" c:type="IBUS_F35">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F4" value="65473" c:type="IBUS_F4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F5" value="65474" c:type="IBUS_F5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F6" value="65475" c:type="IBUS_F6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F7" value="65476" c:type="IBUS_F7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F8" value="65477" c:type="IBUS_F8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="F9" value="65478" c:type="IBUS_F9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="FFrancSign" value="16785571" c:type="IBUS_FFrancSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Fabovedot" value="16784926" c:type="IBUS_Fabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Factory"
           c:symbol-prefix="factory"
           c:type="IBusFactory"
           parent="Service"
           glib:type-name="IBusFactory"
           glib:get-type="ibus_factory_get_type"
           glib:type-struct="FactoryClass">
      <doc xml:whitespace="preserve">An opaque data type representing an IBusFactory.</doc>
      <constructor name="new" c:identifier="ibus_factory_new">
        <doc xml:whitespace="preserve">New an IBusFactory.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusFactory.</doc>
          <type name="Factory" c:type="IBusFactory*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="create_engine" introspectable="0">
        <return-value>
          <type name="Engine" c:type="IBusEngine*"/>
        </return-value>
        <parameters>
          <parameter name="engine_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_engine" c:identifier="ibus_factory_add_engine">
        <doc xml:whitespace="preserve">Add an engine to the factory.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="engine_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of an engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="engine_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">GType of an engine.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="Service" c:type="IBusService"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="FactoryPrivate" c:type="IBusFactoryPrivate*"/>
      </field>
      <glib:signal name="create-engine" when="last" introspectable="0">
        <return-value>
          <type name="Engine"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="FactoryClass"
            c:type="IBusFactoryClass"
            glib:is-gtype-struct-for="Factory">
      <field name="parent" readable="0" private="1">
        <type name="ServiceClass" c:type="IBusServiceClass"/>
      </field>
      <field name="create_engine" introspectable="0">
        <callback name="create_engine" introspectable="0">
          <return-value>
            <type name="Engine" c:type="IBusEngine*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <type name="Factory" c:type="IBusFactory*"/>
            </parameter>
            <parameter name="engine_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="FactoryPrivate" c:type="IBusFactoryPrivate" disguised="1">
    </record>
    <constant name="Farsi_0" value="16778992" c:type="IBUS_Farsi_0">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_1" value="16778993" c:type="IBUS_Farsi_1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_2" value="16778994" c:type="IBUS_Farsi_2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_3" value="16778995" c:type="IBUS_Farsi_3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_4" value="16778996" c:type="IBUS_Farsi_4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_5" value="16778997" c:type="IBUS_Farsi_5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_6" value="16778998" c:type="IBUS_Farsi_6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_7" value="16778999" c:type="IBUS_Farsi_7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_8" value="16779000" c:type="IBUS_Farsi_8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_9" value="16779001" c:type="IBUS_Farsi_9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Farsi_yeh" value="16778956" c:type="IBUS_Farsi_yeh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Find" value="65384" c:type="IBUS_Find">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="First_Virtual_Screen"
              value="65232"
              c:type="IBUS_First_Virtual_Screen">
      <type name="gint" c:type="gint"/>
    </constant>
    <callback name="FreeFunc" c:type="IBusFreeFunc">
      <doc xml:whitespace="preserve">Free function prototype.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:whitespace="preserve">object to be freed.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <constant name="G" value="71" c:type="IBUS_G">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Gabovedot" value="725" c:type="IBUS_Gabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Gbreve" value="683" c:type="IBUS_Gbreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Gcaron" value="16777702" c:type="IBUS_Gcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Gcedilla" value="939" c:type="IBUS_Gcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Gcircumflex" value="728" c:type="IBUS_Gcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_an" value="16781520" c:type="IBUS_Georgian_an">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_ban" value="16781521" c:type="IBUS_Georgian_ban">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_can" value="16781546" c:type="IBUS_Georgian_can">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_char"
              value="16781549"
              c:type="IBUS_Georgian_char">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_chin"
              value="16781545"
              c:type="IBUS_Georgian_chin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_cil" value="16781548" c:type="IBUS_Georgian_cil">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_don" value="16781523" c:type="IBUS_Georgian_don">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_en" value="16781524" c:type="IBUS_Georgian_en">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_fi" value="16781558" c:type="IBUS_Georgian_fi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_gan" value="16781522" c:type="IBUS_Georgian_gan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_ghan"
              value="16781542"
              c:type="IBUS_Georgian_ghan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_hae" value="16781552" c:type="IBUS_Georgian_hae">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_har" value="16781556" c:type="IBUS_Georgian_har">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_he" value="16781553" c:type="IBUS_Georgian_he">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_hie" value="16781554" c:type="IBUS_Georgian_hie">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_hoe" value="16781557" c:type="IBUS_Georgian_hoe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_in" value="16781528" c:type="IBUS_Georgian_in">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_jhan"
              value="16781551"
              c:type="IBUS_Georgian_jhan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_jil" value="16781547" c:type="IBUS_Georgian_jil">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_kan" value="16781529" c:type="IBUS_Georgian_kan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_khar"
              value="16781541"
              c:type="IBUS_Georgian_khar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_las" value="16781530" c:type="IBUS_Georgian_las">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_man" value="16781531" c:type="IBUS_Georgian_man">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_nar" value="16781532" c:type="IBUS_Georgian_nar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_on" value="16781533" c:type="IBUS_Georgian_on">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_par" value="16781534" c:type="IBUS_Georgian_par">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_phar"
              value="16781540"
              c:type="IBUS_Georgian_phar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_qar" value="16781543" c:type="IBUS_Georgian_qar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_rae" value="16781536" c:type="IBUS_Georgian_rae">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_san" value="16781537" c:type="IBUS_Georgian_san">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_shin"
              value="16781544"
              c:type="IBUS_Georgian_shin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_tan" value="16781527" c:type="IBUS_Georgian_tan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_tar" value="16781538" c:type="IBUS_Georgian_tar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_un" value="16781539" c:type="IBUS_Georgian_un">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_vin" value="16781525" c:type="IBUS_Georgian_vin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_we" value="16781555" c:type="IBUS_Georgian_we">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_xan" value="16781550" c:type="IBUS_Georgian_xan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_zen" value="16781526" c:type="IBUS_Georgian_zen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Georgian_zhar"
              value="16781535"
              c:type="IBUS_Georgian_zhar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_ALPHA" value="1985" c:type="IBUS_Greek_ALPHA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_ALPHAaccent"
              value="1953"
              c:type="IBUS_Greek_ALPHAaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_BETA" value="1986" c:type="IBUS_Greek_BETA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_CHI" value="2007" c:type="IBUS_Greek_CHI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_DELTA" value="1988" c:type="IBUS_Greek_DELTA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_EPSILON" value="1989" c:type="IBUS_Greek_EPSILON">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_EPSILONaccent"
              value="1954"
              c:type="IBUS_Greek_EPSILONaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_ETA" value="1991" c:type="IBUS_Greek_ETA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_ETAaccent"
              value="1955"
              c:type="IBUS_Greek_ETAaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_GAMMA" value="1987" c:type="IBUS_Greek_GAMMA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_IOTA" value="1993" c:type="IBUS_Greek_IOTA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_IOTAaccent"
              value="1956"
              c:type="IBUS_Greek_IOTAaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_IOTAdiaeresis"
              value="1957"
              c:type="IBUS_Greek_IOTAdiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_IOTAdieresis"
              value="1957"
              c:type="IBUS_Greek_IOTAdieresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_KAPPA" value="1994" c:type="IBUS_Greek_KAPPA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_LAMBDA" value="1995" c:type="IBUS_Greek_LAMBDA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_LAMDA" value="1995" c:type="IBUS_Greek_LAMDA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_MU" value="1996" c:type="IBUS_Greek_MU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_NU" value="1997" c:type="IBUS_Greek_NU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_OMEGA" value="2009" c:type="IBUS_Greek_OMEGA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_OMEGAaccent"
              value="1963"
              c:type="IBUS_Greek_OMEGAaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_OMICRON" value="1999" c:type="IBUS_Greek_OMICRON">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_OMICRONaccent"
              value="1959"
              c:type="IBUS_Greek_OMICRONaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_PHI" value="2006" c:type="IBUS_Greek_PHI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_PI" value="2000" c:type="IBUS_Greek_PI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_PSI" value="2008" c:type="IBUS_Greek_PSI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_RHO" value="2001" c:type="IBUS_Greek_RHO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_SIGMA" value="2002" c:type="IBUS_Greek_SIGMA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_TAU" value="2004" c:type="IBUS_Greek_TAU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_THETA" value="1992" c:type="IBUS_Greek_THETA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_UPSILON" value="2005" c:type="IBUS_Greek_UPSILON">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_UPSILONaccent"
              value="1960"
              c:type="IBUS_Greek_UPSILONaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_UPSILONdieresis"
              value="1961"
              c:type="IBUS_Greek_UPSILONdieresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_XI" value="1998" c:type="IBUS_Greek_XI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_ZETA" value="1990" c:type="IBUS_Greek_ZETA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_accentdieresis"
              value="1966"
              c:type="IBUS_Greek_accentdieresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_alpha" value="2017" c:type="IBUS_Greek_alpha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_alphaaccent"
              value="1969"
              c:type="IBUS_Greek_alphaaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_beta" value="2018" c:type="IBUS_Greek_beta">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_chi" value="2039" c:type="IBUS_Greek_chi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_delta" value="2020" c:type="IBUS_Greek_delta">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_epsilon" value="2021" c:type="IBUS_Greek_epsilon">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_epsilonaccent"
              value="1970"
              c:type="IBUS_Greek_epsilonaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_eta" value="2023" c:type="IBUS_Greek_eta">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_etaaccent"
              value="1971"
              c:type="IBUS_Greek_etaaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_finalsmallsigma"
              value="2035"
              c:type="IBUS_Greek_finalsmallsigma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_gamma" value="2019" c:type="IBUS_Greek_gamma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_horizbar" value="1967" c:type="IBUS_Greek_horizbar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_iota" value="2025" c:type="IBUS_Greek_iota">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_iotaaccent"
              value="1972"
              c:type="IBUS_Greek_iotaaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_iotaaccentdieresis"
              value="1974"
              c:type="IBUS_Greek_iotaaccentdieresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_iotadieresis"
              value="1973"
              c:type="IBUS_Greek_iotadieresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_kappa" value="2026" c:type="IBUS_Greek_kappa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_lambda" value="2027" c:type="IBUS_Greek_lambda">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_lamda" value="2027" c:type="IBUS_Greek_lamda">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_mu" value="2028" c:type="IBUS_Greek_mu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_nu" value="2029" c:type="IBUS_Greek_nu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_omega" value="2041" c:type="IBUS_Greek_omega">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_omegaaccent"
              value="1979"
              c:type="IBUS_Greek_omegaaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_omicron" value="2031" c:type="IBUS_Greek_omicron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_omicronaccent"
              value="1975"
              c:type="IBUS_Greek_omicronaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_phi" value="2038" c:type="IBUS_Greek_phi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_pi" value="2032" c:type="IBUS_Greek_pi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_psi" value="2040" c:type="IBUS_Greek_psi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_rho" value="2033" c:type="IBUS_Greek_rho">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_sigma" value="2034" c:type="IBUS_Greek_sigma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_switch" value="65406" c:type="IBUS_Greek_switch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_tau" value="2036" c:type="IBUS_Greek_tau">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_theta" value="2024" c:type="IBUS_Greek_theta">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_upsilon" value="2037" c:type="IBUS_Greek_upsilon">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_upsilonaccent"
              value="1976"
              c:type="IBUS_Greek_upsilonaccent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_upsilonaccentdieresis"
              value="1978"
              c:type="IBUS_Greek_upsilonaccentdieresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_upsilondieresis"
              value="1977"
              c:type="IBUS_Greek_upsilondieresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_xi" value="2030" c:type="IBUS_Greek_xi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Greek_zeta" value="2022" c:type="IBUS_Greek_zeta">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="H" value="72" c:type="IBUS_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul" value="65329" c:type="IBUS_Hangul">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_A" value="3775" c:type="IBUS_Hangul_A">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_AE" value="3776" c:type="IBUS_Hangul_AE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_AraeA" value="3830" c:type="IBUS_Hangul_AraeA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_AraeAE" value="3831" c:type="IBUS_Hangul_AraeAE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Banja" value="65337" c:type="IBUS_Hangul_Banja">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Cieuc" value="3770" c:type="IBUS_Hangul_Cieuc">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Codeinput"
              value="65335"
              c:type="IBUS_Hangul_Codeinput">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Dikeud" value="3751" c:type="IBUS_Hangul_Dikeud">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_E" value="3780" c:type="IBUS_Hangul_E">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_EO" value="3779" c:type="IBUS_Hangul_EO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_EU" value="3793" c:type="IBUS_Hangul_EU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_End" value="65331" c:type="IBUS_Hangul_End">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Hanja" value="65332" c:type="IBUS_Hangul_Hanja">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Hieuh" value="3774" c:type="IBUS_Hangul_Hieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_I" value="3795" c:type="IBUS_Hangul_I">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Ieung" value="3767" c:type="IBUS_Hangul_Ieung">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Cieuc" value="3818" c:type="IBUS_Hangul_J_Cieuc">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Dikeud"
              value="3802"
              c:type="IBUS_Hangul_J_Dikeud">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Hieuh" value="3822" c:type="IBUS_Hangul_J_Hieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Ieung" value="3816" c:type="IBUS_Hangul_J_Ieung">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Jieuj" value="3817" c:type="IBUS_Hangul_J_Jieuj">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Khieuq"
              value="3819"
              c:type="IBUS_Hangul_J_Khieuq">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Kiyeog"
              value="3796"
              c:type="IBUS_Hangul_J_Kiyeog">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_KiyeogSios"
              value="3798"
              c:type="IBUS_Hangul_J_KiyeogSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_KkogjiDalrinIeung"
              value="3833"
              c:type="IBUS_Hangul_J_KkogjiDalrinIeung">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Mieum" value="3811" c:type="IBUS_Hangul_J_Mieum">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Nieun" value="3799" c:type="IBUS_Hangul_J_Nieun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_NieunHieuh"
              value="3801"
              c:type="IBUS_Hangul_J_NieunHieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_NieunJieuj"
              value="3800"
              c:type="IBUS_Hangul_J_NieunJieuj">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_PanSios"
              value="3832"
              c:type="IBUS_Hangul_J_PanSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Phieuf"
              value="3821"
              c:type="IBUS_Hangul_J_Phieuf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Pieub" value="3812" c:type="IBUS_Hangul_J_Pieub">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_PieubSios"
              value="3813"
              c:type="IBUS_Hangul_J_PieubSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Rieul" value="3803" c:type="IBUS_Hangul_J_Rieul">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_RieulHieuh"
              value="3810"
              c:type="IBUS_Hangul_J_RieulHieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_RieulKiyeog"
              value="3804"
              c:type="IBUS_Hangul_J_RieulKiyeog">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_RieulMieum"
              value="3805"
              c:type="IBUS_Hangul_J_RieulMieum">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_RieulPhieuf"
              value="3809"
              c:type="IBUS_Hangul_J_RieulPhieuf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_RieulPieub"
              value="3806"
              c:type="IBUS_Hangul_J_RieulPieub">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_RieulSios"
              value="3807"
              c:type="IBUS_Hangul_J_RieulSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_RieulTieut"
              value="3808"
              c:type="IBUS_Hangul_J_RieulTieut">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Sios" value="3814" c:type="IBUS_Hangul_J_Sios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_SsangKiyeog"
              value="3797"
              c:type="IBUS_Hangul_J_SsangKiyeog">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_SsangSios"
              value="3815"
              c:type="IBUS_Hangul_J_SsangSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_Tieut" value="3820" c:type="IBUS_Hangul_J_Tieut">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_J_YeorinHieuh"
              value="3834"
              c:type="IBUS_Hangul_J_YeorinHieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Jamo" value="65333" c:type="IBUS_Hangul_Jamo">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Jeonja" value="65336" c:type="IBUS_Hangul_Jeonja">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Jieuj" value="3768" c:type="IBUS_Hangul_Jieuj">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Khieuq" value="3771" c:type="IBUS_Hangul_Khieuq">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Kiyeog" value="3745" c:type="IBUS_Hangul_Kiyeog">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_KiyeogSios"
              value="3747"
              c:type="IBUS_Hangul_KiyeogSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_KkogjiDalrinIeung"
              value="3827"
              c:type="IBUS_Hangul_KkogjiDalrinIeung">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Mieum" value="3761" c:type="IBUS_Hangul_Mieum">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_MultipleCandidate"
              value="65341"
              c:type="IBUS_Hangul_MultipleCandidate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Nieun" value="3748" c:type="IBUS_Hangul_Nieun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_NieunHieuh"
              value="3750"
              c:type="IBUS_Hangul_NieunHieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_NieunJieuj"
              value="3749"
              c:type="IBUS_Hangul_NieunJieuj">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_O" value="3783" c:type="IBUS_Hangul_O">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_OE" value="3786" c:type="IBUS_Hangul_OE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_PanSios" value="3826" c:type="IBUS_Hangul_PanSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Phieuf" value="3773" c:type="IBUS_Hangul_Phieuf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Pieub" value="3762" c:type="IBUS_Hangul_Pieub">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_PieubSios"
              value="3764"
              c:type="IBUS_Hangul_PieubSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_PostHanja"
              value="65339"
              c:type="IBUS_Hangul_PostHanja">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_PreHanja"
              value="65338"
              c:type="IBUS_Hangul_PreHanja">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_PreviousCandidate"
              value="65342"
              c:type="IBUS_Hangul_PreviousCandidate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Rieul" value="3753" c:type="IBUS_Hangul_Rieul">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulHieuh"
              value="3760"
              c:type="IBUS_Hangul_RieulHieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulKiyeog"
              value="3754"
              c:type="IBUS_Hangul_RieulKiyeog">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulMieum"
              value="3755"
              c:type="IBUS_Hangul_RieulMieum">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulPhieuf"
              value="3759"
              c:type="IBUS_Hangul_RieulPhieuf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulPieub"
              value="3756"
              c:type="IBUS_Hangul_RieulPieub">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulSios"
              value="3757"
              c:type="IBUS_Hangul_RieulSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulTieut"
              value="3758"
              c:type="IBUS_Hangul_RieulTieut">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_RieulYeorinHieuh"
              value="3823"
              c:type="IBUS_Hangul_RieulYeorinHieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Romaja" value="65334" c:type="IBUS_Hangul_Romaja">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SingleCandidate"
              value="65340"
              c:type="IBUS_Hangul_SingleCandidate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Sios" value="3765" c:type="IBUS_Hangul_Sios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Special" value="65343" c:type="IBUS_Hangul_Special">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SsangDikeud"
              value="3752"
              c:type="IBUS_Hangul_SsangDikeud">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SsangJieuj"
              value="3769"
              c:type="IBUS_Hangul_SsangJieuj">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SsangKiyeog"
              value="3746"
              c:type="IBUS_Hangul_SsangKiyeog">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SsangPieub"
              value="3763"
              c:type="IBUS_Hangul_SsangPieub">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SsangSios"
              value="3766"
              c:type="IBUS_Hangul_SsangSios">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Start" value="65330" c:type="IBUS_Hangul_Start">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SunkyeongeumMieum"
              value="3824"
              c:type="IBUS_Hangul_SunkyeongeumMieum">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SunkyeongeumPhieuf"
              value="3828"
              c:type="IBUS_Hangul_SunkyeongeumPhieuf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_SunkyeongeumPieub"
              value="3825"
              c:type="IBUS_Hangul_SunkyeongeumPieub">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_Tieut" value="3772" c:type="IBUS_Hangul_Tieut">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_U" value="3788" c:type="IBUS_Hangul_U">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_WA" value="3784" c:type="IBUS_Hangul_WA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_WAE" value="3785" c:type="IBUS_Hangul_WAE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_WE" value="3790" c:type="IBUS_Hangul_WE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_WEO" value="3789" c:type="IBUS_Hangul_WEO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_WI" value="3791" c:type="IBUS_Hangul_WI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YA" value="3777" c:type="IBUS_Hangul_YA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YAE" value="3778" c:type="IBUS_Hangul_YAE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YE" value="3782" c:type="IBUS_Hangul_YE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YEO" value="3781" c:type="IBUS_Hangul_YEO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YI" value="3794" c:type="IBUS_Hangul_YI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YO" value="3787" c:type="IBUS_Hangul_YO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YU" value="3792" c:type="IBUS_Hangul_YU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_YeorinHieuh"
              value="3829"
              c:type="IBUS_Hangul_YeorinHieuh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hangul_switch" value="65406" c:type="IBUS_Hangul_switch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hankaku" value="65321" c:type="IBUS_Hankaku">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hcircumflex" value="678" c:type="IBUS_Hcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hebrew_switch" value="65406" c:type="IBUS_Hebrew_switch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Help" value="65386" c:type="IBUS_Help">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Henkan" value="65315" c:type="IBUS_Henkan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Henkan_Mode" value="65315" c:type="IBUS_Henkan_Mode">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hiragana" value="65317" c:type="IBUS_Hiragana">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hiragana_Katakana"
              value="65319"
              c:type="IBUS_Hiragana_Katakana">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Home" value="65360" c:type="IBUS_Home">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="HotkeyProfile"
           c:symbol-prefix="hotkey_profile"
           c:type="IBusHotkeyProfile"
           parent="Serializable"
           glib:type-name="IBusHotkeyProfile"
           glib:get-type="ibus_hotkey_profile_get_type"
           glib:type-struct="HotkeyProfileClass">
      <doc xml:whitespace="preserve">An opaque data type representing an IBusHotkeyProfile.</doc>
      <constructor name="new" c:identifier="ibus_hotkey_profile_new">
        <doc xml:whitespace="preserve">New an IBusHotkeyProfile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusHotkeyProfile.</doc>
          <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
        </return-value>
      </constructor>
      <virtual-method name="trigger">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_hotkey" c:identifier="ibus_hotkey_profile_add_hotkey">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="modifiers" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hotkey_from_string"
              c:identifier="ibus_hotkey_profile_add_hotkey_from_string">
        <doc xml:whitespace="preserve">Add a hotkey and its associated event to an IBusHotkeyProfile.
The hotkey is in string format, such like &lt;constant&gt;Control+Shift+A&lt;/constant&gt;.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">FALSE if @str contains invalid symbol; TRUE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:whitespace="preserve">Key in string representation.  '+' is the separator.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">The event to be associated.</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <method name="filter_key_event"
              c:identifier="ibus_hotkey_profile_filter_key_event">
        <doc xml:whitespace="preserve">Emit a &lt;constant&gt;::trigger&lt;/constant&gt; signal when a hotkey is in a profile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if releasing a hotkey and the hotkey is not in the profile ; an associated event otherwise.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="modifiers" transfer-ownership="none">
            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="prev_keyval" transfer-ownership="none">
            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="prev_modifiers" transfer-ownership="none">
            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for signal "trigger".</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_hotkey"
              c:identifier="ibus_hotkey_profile_lookup_hotkey">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The event associated to the hotkey or 0 if the hotkey is not in the profile.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="modifiers" transfer-ownership="none">
            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_hotkey"
              c:identifier="ibus_hotkey_profile_remove_hotkey">
        <doc xml:whitespace="preserve">Remove the hotkey for an IBusHotkeyProfile.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">FALSE if the key is not in @profile, TRUE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="modifiers" transfer-ownership="none">
            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_hotkey_by_event"
              c:identifier="ibus_hotkey_profile_remove_hotkey_by_event">
        <doc xml:whitespace="preserve">Remove the hotkey for an IBusHotkeyProfile by event.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">FALSE if no such event in @profile, TRUE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">The associated event.</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <glib:signal name="trigger" when="last" detailed="1">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="HotkeyProfileClass"
            c:type="IBusHotkeyProfileClass"
            glib:is-gtype-struct-for="HotkeyProfile">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
      <field name="trigger">
        <callback name="trigger">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="profile" transfer-ownership="none">
              <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="GLib.Quark" c:type="GQuark"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="Hstroke" value="673" c:type="IBUS_Hstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hyper_L" value="65517" c:type="IBUS_Hyper_L">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Hyper_R" value="65518" c:type="IBUS_Hyper_R">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="I" value="73" c:type="IBUS_I">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="INTERFACE_CONFIG"
              value="org.freedesktop.IBus.Config"
              c:type="IBUS_INTERFACE_CONFIG">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INTERFACE_ENGINE"
              value="org.freedesktop.IBus.Engine"
              c:type="IBUS_INTERFACE_ENGINE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INTERFACE_FACTORY"
              value="org.freedesktop.IBus.Factory"
              c:type="IBUS_INTERFACE_FACTORY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INTERFACE_IBUS"
              value="org.freedesktop.IBus"
              c:type="IBUS_INTERFACE_IBUS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INTERFACE_INPUT_CONTEXT"
              value="org.freedesktop.IBus.InputContext"
              c:type="IBUS_INTERFACE_INPUT_CONTEXT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INTERFACE_NOTIFICATIONS"
              value="org.freedesktop.IBus.Notifications"
              c:type="IBUS_INTERFACE_NOTIFICATIONS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="INTERFACE_PANEL"
              value="org.freedesktop.IBus.Panel"
              c:type="IBUS_INTERFACE_PANEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="ISO_Center_Object"
              value="65075"
              c:type="IBUS_ISO_Center_Object">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Continuous_Underline"
              value="65072"
              c:type="IBUS_ISO_Continuous_Underline">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Discontinuous_Underline"
              value="65073"
              c:type="IBUS_ISO_Discontinuous_Underline">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Emphasize" value="65074" c:type="IBUS_ISO_Emphasize">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Enter" value="65076" c:type="IBUS_ISO_Enter">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Fast_Cursor_Down"
              value="65071"
              c:type="IBUS_ISO_Fast_Cursor_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Fast_Cursor_Left"
              value="65068"
              c:type="IBUS_ISO_Fast_Cursor_Left">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Fast_Cursor_Right"
              value="65069"
              c:type="IBUS_ISO_Fast_Cursor_Right">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Fast_Cursor_Up"
              value="65070"
              c:type="IBUS_ISO_Fast_Cursor_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_First_Group"
              value="65036"
              c:type="IBUS_ISO_First_Group">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_First_Group_Lock"
              value="65037"
              c:type="IBUS_ISO_First_Group_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Group_Latch"
              value="65030"
              c:type="IBUS_ISO_Group_Latch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Group_Lock" value="65031" c:type="IBUS_ISO_Group_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Group_Shift"
              value="65406"
              c:type="IBUS_ISO_Group_Shift">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Last_Group" value="65038" c:type="IBUS_ISO_Last_Group">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Last_Group_Lock"
              value="65039"
              c:type="IBUS_ISO_Last_Group_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Left_Tab" value="65056" c:type="IBUS_ISO_Left_Tab">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Level2_Latch"
              value="65026"
              c:type="IBUS_ISO_Level2_Latch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Level3_Latch"
              value="65028"
              c:type="IBUS_ISO_Level3_Latch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Level3_Lock"
              value="65029"
              c:type="IBUS_ISO_Level3_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Level3_Shift"
              value="65027"
              c:type="IBUS_ISO_Level3_Shift">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Level5_Latch"
              value="65042"
              c:type="IBUS_ISO_Level5_Latch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Level5_Lock"
              value="65043"
              c:type="IBUS_ISO_Level5_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Level5_Shift"
              value="65041"
              c:type="IBUS_ISO_Level5_Shift">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Lock" value="65025" c:type="IBUS_ISO_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Move_Line_Down"
              value="65058"
              c:type="IBUS_ISO_Move_Line_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Move_Line_Up"
              value="65057"
              c:type="IBUS_ISO_Move_Line_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Next_Group" value="65032" c:type="IBUS_ISO_Next_Group">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Next_Group_Lock"
              value="65033"
              c:type="IBUS_ISO_Next_Group_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Partial_Line_Down"
              value="65060"
              c:type="IBUS_ISO_Partial_Line_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Partial_Line_Up"
              value="65059"
              c:type="IBUS_ISO_Partial_Line_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Partial_Space_Left"
              value="65061"
              c:type="IBUS_ISO_Partial_Space_Left">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Partial_Space_Right"
              value="65062"
              c:type="IBUS_ISO_Partial_Space_Right">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Prev_Group" value="65034" c:type="IBUS_ISO_Prev_Group">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Prev_Group_Lock"
              value="65035"
              c:type="IBUS_ISO_Prev_Group_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Release_Both_Margins"
              value="65067"
              c:type="IBUS_ISO_Release_Both_Margins">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Release_Margin_Left"
              value="65065"
              c:type="IBUS_ISO_Release_Margin_Left">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Release_Margin_Right"
              value="65066"
              c:type="IBUS_ISO_Release_Margin_Right">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Set_Margin_Left"
              value="65063"
              c:type="IBUS_ISO_Set_Margin_Left">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ISO_Set_Margin_Right"
              value="65064"
              c:type="IBUS_ISO_Set_Margin_Right">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Iabovedot" value="681" c:type="IBUS_Iabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Iacute" value="205" c:type="IBUS_Iacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ibelowdot" value="16785098" c:type="IBUS_Ibelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ibreve" value="16777516" c:type="IBUS_Ibreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Icircumflex" value="206" c:type="IBUS_Icircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Idiaeresis" value="207" c:type="IBUS_Idiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Igrave" value="204" c:type="IBUS_Igrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ihook" value="16785096" c:type="IBUS_Ihook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Imacron" value="975" c:type="IBUS_Imacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="InputContext"
           c:symbol-prefix="input_context"
           c:type="IBusInputContext"
           parent="Proxy"
           glib:type-name="IBusInputContext"
           glib:get-type="ibus_input_context_get_type"
           glib:type-struct="InputContextClass">
      <doc xml:whitespace="preserve">An opaque data type representing an IBusInputContext.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="ibus_input_context_new" throws="1">
        <doc xml:whitespace="preserve">New an IBusInputContext.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly allocated IBusInputContext.</doc>
          <type name="InputContext" c:type="IBusInputContext*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_async_finish"
                   c:identifier="ibus_input_context_new_async_finish"
                   throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_context_new_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly allocated #IBusInputContext.</doc>
          <type name="InputContext" c:type="IBusInputContext*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback pass to ibus_input_context_new_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="get_input_context"
                c:identifier="ibus_input_context_get_input_context">
        <doc xml:whitespace="preserve">Gets an existing IBusInputContext.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An existing #IBusInputContext.</doc>
          <type name="InputContext" c:type="IBusInputContext*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_input_context_async"
                c:identifier="ibus_input_context_get_input_context_async">
        <doc xml:whitespace="preserve">Get an existing #IBusInputContext asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. The callback should not be %NULL.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_input_context_async_finish"
                c:identifier="ibus_input_context_get_input_context_async_finish"
                throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_contex_get_input_context_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An existing #IBusInputContext.</doc>
          <type name="InputContext" c:type="IBusInputContext*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback pass to ibus_input_context_get_input_context_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_async" c:identifier="ibus_input_context_new_async">
        <doc xml:whitespace="preserve">New an #IBusInputContext asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. The callback should not be %NULL.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="cancel_hand_writing"
              c:identifier="ibus_input_context_cancel_hand_writing">
        <doc xml:whitespace="preserve">Clear handwriting stroke(s) in the current input method engine.

see_also: #IBusEngine::cancel-hand-writing</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="n_strokes" transfer-ownership="none">
            <doc xml:whitespace="preserve">The number of strokes to be removed. Pass 0 to remove all.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="disable" c:identifier="ibus_input_context_disable">
        <doc xml:whitespace="preserve">Invoked when the IME is disabled, either by IME switch hotkey or select from the menu.
An asynchronous IPC will be performed.

see_also: #IBusEngine::disable</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="enable" c:identifier="ibus_input_context_enable">
        <doc xml:whitespace="preserve">Invoked when the IME is enabled, either by IME switch hotkey or select from the menu.
An asynchronous IPC will be performed.

see_also: #IBusEngine::enable</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="focus_in" c:identifier="ibus_input_context_focus_in">
        <doc xml:whitespace="preserve">Invoked when the client application get focus. An asynchronous IPC will be performed.

see_also: #IBusEngine::focus_in.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="focus_out" c:identifier="ibus_input_context_focus_out">
        <doc xml:whitespace="preserve">Invoked when the client application get focus. An asynchronous IPC will be performed.

see_also: #IBusEngine::focus_out.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_engine" c:identifier="ibus_input_context_get_engine">
        <doc xml:whitespace="preserve">Returns an IME engine description for the context.
A synchronous IPC will be performed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An IME engine description for the context, or NULL.</doc>
          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
        </return-value>
      </method>
      <method name="get_engine_async"
              c:identifier="ibus_input_context_get_engine_async">
        <doc xml:whitespace="preserve">An asynchronous IPC will be performed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_engine_async_finish"
              c:identifier="ibus_input_context_get_engine_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_context_get_engine_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An IME engine description for the context, or %NULL.</doc>
          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_input_context_get_engine_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_enabled" c:identifier="ibus_input_context_is_enabled">
        <doc xml:whitespace="preserve">Returns TRUE if the IME is enabled on the context.
A asynchronous IPC will be performed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the IME is enabled on the context.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_enabled_async"
              c:identifier="ibus_input_context_is_enabled_async">
        <doc xml:whitespace="preserve">An asynchronous IPC will be performed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_enabled_async_finish"
              c:identifier="ibus_input_context_is_enabled_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_context_is_enabled_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the IME is enabled on the contextfor success; %FALSE otherwise or some errors happen and the @error will be set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_input_context_is_enabled_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="needs_surrounding_text"
              c:identifier="ibus_input_context_needs_surrounding_text">
        <doc xml:whitespace="preserve">Check whether the current engine requires surrounding-text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if surrounding-text is needed by the current engine; %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="process_hand_writing_event"
              c:identifier="ibus_input_context_process_hand_writing_event">
        <doc xml:whitespace="preserve">Pass a handwriting stroke to an input method engine.

In this API, a coordinate (0.0, 0.0) represents the top-left corner of an area for
handwriting, and (1.0, 1.0) does the bottom-right. Therefore, for example, if
a user writes a character 'L', the array would be something like [0.0, 0.0, 0.0, 1.0, 1.0, 1.0]
and coordinates_len would be 6.

The function is usually called when a user releases the mouse button in a hand
writing area.

see_also: #IBusEngine::process-hand-writing-event</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="coordinates" transfer-ownership="none">
            <doc xml:whitespace="preserve">An array of gdouble (0.0 to 1.0) which represents a stroke (i.e. [x1, y1, x2, y2, x3, y3, ...]).</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="coordinates_len" transfer-ownership="none">
            <doc xml:whitespace="preserve">The number of elements in the array. The number should be even and &gt;= 4.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="process_key_event"
              c:identifier="ibus_input_context_process_key_event">
        <doc xml:whitespace="preserve">Pass the key event to input method engine and wait for the reply from ibus (i.e. synchronous IPC).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE for successfully process the key; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:whitespace="preserve">Key symbol of a key event.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Keycode of a key event.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">Key modifier flags.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="process_key_event_async"
              c:identifier="ibus_input_context_process_key_event_async">
        <doc xml:whitespace="preserve">Pass the key event to input method engine.

Key symbols are characters/symbols produced by key press, for example,
pressing "s" generates key symbol "s"; pressing shift-"s" generates key symbol "S".
Same key on keyboard may produce different key symbols on different keyboard layout.
e.g., "s" key on QWERTY keyboard produces "o" in DVORAK layout.

Unlike key symbol, keycode is only determined by the location of the key, and
irrelevant of the keyboard layout.

Briefly speaking, input methods that expect certain keyboard layout should use
keycode; otherwise keyval is sufficient.
For example, Chewing, Cangjie, Wubi expect an en-US QWERTY keyboard, these should
use keycode; while pinyin can rely on keyval only, as it is less sensitive to
the keyboard layout change, DVORAK users can still use DVORAK layout to input pinyin.

Use ibus_keymap_lookup_keysym() to convert keycode to keysym in given keyboard layout.

see_also: #IBusEngine::process-key-event</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:whitespace="preserve">Key symbol of a key event.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Keycode of a key event.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">Key modifier flags.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="timeout_msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A GCancellable or NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:whitespace="preserve">A GAsyncReadyCallback to call when the request is satisfied or NULL if you don't care about the result of the method invocation.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="process_key_event_async_finish"
              c:identifier="ibus_input_context_process_key_event_async_finish"
              throws="1">
        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_context_process_key_event_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the key event is processed; %FALSE otherwise or some errors happen and the @error will be set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:whitespace="preserve">A GAsyncResult obtained from the GAsyncReadyCallback passed to ibus_input_context_process_key_event_async().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="property_activate"
              c:identifier="ibus_input_context_property_activate">
        <doc xml:whitespace="preserve">Activate the property asynchronously.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">A property name (e.g. "InputMode.WideLatin")</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">A status of the property (e.g. PROP_STATE_CHECKED)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="ibus_input_context_reset">
        <doc xml:whitespace="preserve">Invoked when the IME is reset. An asynchronous IPC will be performed.

see_also: #IBusEngine::reset</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_capabilities"
              c:identifier="ibus_input_context_set_capabilities">
        <doc xml:whitespace="preserve">Set the capabilities flags of client application asynchronously.
When IBUS_CAP_FOCUS is not set, IBUS_CAP_PREEDIT_TEXT, IBUS_CAP_AUXILIARY_TEXT, IBUS_CAP_LOOKUP_TABLE, and IBUS_CAP_PROPERTY have to be all set.
The panel component does nothing for an application that doesn't support focus.

see_also: #IBusEngine::set-capabilities</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="capabilities" transfer-ownership="none">
            <doc xml:whitespace="preserve">Capabilities flags of IBusEngine, see #IBusCapabilite</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_location"
              c:identifier="ibus_input_context_set_cursor_location">
        <doc xml:whitespace="preserve">Set the cursor location of IBus input context asynchronously.

see_also: #IBusEngine::set-cursor-location</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">X coordinate of the cursor.</doc>
            <type name="gint32" c:type="gint32"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">Y coordinate of the cursor.</doc>
            <type name="gint32" c:type="gint32"/>
          </parameter>
          <parameter name="w" transfer-ownership="none">
            <doc xml:whitespace="preserve">Width of the cursor.</doc>
            <type name="gint32" c:type="gint32"/>
          </parameter>
          <parameter name="h" transfer-ownership="none">
            <doc xml:whitespace="preserve">Height of the cursor.</doc>
            <type name="gint32" c:type="gint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_engine" c:identifier="ibus_input_context_set_engine">
        <doc xml:whitespace="preserve">Invoked when the IME engine is changed.
An asynchronous IPC will be performed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">A name of the engine.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_surrounding_text"
              c:identifier="ibus_input_context_set_surrounding_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #IBusText surrounding the current cursor on the application.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="cursor_pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">Current cursor position in characters in @text.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="anchor_pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">Anchor position of selection in @text.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Proxy" c:type="IBusProxy"/>
      </field>
      <glib:signal name="commit-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Text"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cursor-down-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cursor-up-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="delete-surrounding-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="disabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="enabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="forward-key-event" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="hide-auxiliary-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-preedit-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="page-down-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="page-up-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="register-properties" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="PropList"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-auxiliary-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-preedit-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="update-auxiliary-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Text"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="LookupTable"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-preedit-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Text"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-property" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Property"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="InputContextClass"
            c:type="IBusInputContextClass"
            glib:is-gtype-struct-for="InputContext">
      <field name="parent">
        <type name="ProxyClass" c:type="IBusProxyClass"/>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="24">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <constant name="Insert" value="65379" c:type="IBUS_Insert">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Iogonek" value="967" c:type="IBUS_Iogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Itilde" value="933" c:type="IBUS_Itilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="J" value="74" c:type="IBUS_J">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Jcircumflex" value="684" c:type="IBUS_Jcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="K" value="75" c:type="IBUS_K">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_0" value="65456" c:type="IBUS_KP_0">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_1" value="65457" c:type="IBUS_KP_1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_2" value="65458" c:type="IBUS_KP_2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_3" value="65459" c:type="IBUS_KP_3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_4" value="65460" c:type="IBUS_KP_4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_5" value="65461" c:type="IBUS_KP_5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_6" value="65462" c:type="IBUS_KP_6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_7" value="65463" c:type="IBUS_KP_7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_8" value="65464" c:type="IBUS_KP_8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_9" value="65465" c:type="IBUS_KP_9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Add" value="65451" c:type="IBUS_KP_Add">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Begin" value="65437" c:type="IBUS_KP_Begin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Decimal" value="65454" c:type="IBUS_KP_Decimal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Delete" value="65439" c:type="IBUS_KP_Delete">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Divide" value="65455" c:type="IBUS_KP_Divide">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Down" value="65433" c:type="IBUS_KP_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_End" value="65436" c:type="IBUS_KP_End">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Enter" value="65421" c:type="IBUS_KP_Enter">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Equal" value="65469" c:type="IBUS_KP_Equal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_F1" value="65425" c:type="IBUS_KP_F1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_F2" value="65426" c:type="IBUS_KP_F2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_F3" value="65427" c:type="IBUS_KP_F3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_F4" value="65428" c:type="IBUS_KP_F4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Home" value="65429" c:type="IBUS_KP_Home">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Insert" value="65438" c:type="IBUS_KP_Insert">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Left" value="65430" c:type="IBUS_KP_Left">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Multiply" value="65450" c:type="IBUS_KP_Multiply">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Next" value="65435" c:type="IBUS_KP_Next">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Page_Down" value="65435" c:type="IBUS_KP_Page_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Page_Up" value="65434" c:type="IBUS_KP_Page_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Prior" value="65434" c:type="IBUS_KP_Prior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Right" value="65432" c:type="IBUS_KP_Right">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Separator" value="65452" c:type="IBUS_KP_Separator">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Space" value="65408" c:type="IBUS_KP_Space">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Subtract" value="65453" c:type="IBUS_KP_Subtract">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Tab" value="65417" c:type="IBUS_KP_Tab">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="KP_Up" value="65431" c:type="IBUS_KP_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Kana_Lock" value="65325" c:type="IBUS_Kana_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Kana_Shift" value="65326" c:type="IBUS_Kana_Shift">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Kanji" value="65313" c:type="IBUS_Kanji">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Kanji_Bangou" value="65335" c:type="IBUS_Kanji_Bangou">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Katakana" value="65318" c:type="IBUS_Katakana">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Kcedilla" value="979" c:type="IBUS_Kcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Keymap"
           c:symbol-prefix="keymap"
           c:type="IBusKeymap"
           parent="Object"
           glib:type-name="IBusKeymap"
           glib:get-type="ibus_keymap_get_type"
           glib:type-struct="KeymapClass">
      <doc xml:whitespace="preserve">A keymap object in IBus.</doc>
      <constructor name="new"
                   c:identifier="ibus_keymap_new"
                   deprecated="This function has been deprecated and should">
        <doc xml:whitespace="preserve">Get an IBusKeymap associated with the giving name.

This function loads the keymap file specified in @name
in the IBUS_DATA_DIR/keymaps directory.

not be used in newly written code. Please use ibus_keymap_get().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An IBusKeymap associated with the giving name; or NULL if failed.</doc>
          <type name="Keymap" c:type="IBusKeymap*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">The keymap file to be loaded, such as 'us', 'jp'.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="get" c:identifier="ibus_keymap_get" introspectable="0">
        <doc xml:whitespace="preserve">Get an IBusKeymap associated with the giving name.

This function loads the keymap file specified in @name
in the IBUS_DATA_DIR/keymaps directory.</doc>
        <return-value>
          <doc xml:whitespace="preserve">An IBusKeymap associated with the giving name; or NULL if failed.</doc>
          <type name="Keymap" c:type="IBusKeymap*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">The keymap file to be loaded, such as 'us', 'jp'.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="lookup_keysym" c:identifier="ibus_keymap_lookup_keysym">
        <doc xml:whitespace="preserve">Convert the scancode to keysym, given the keymap.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Corresponding keysym.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:whitespace="preserve">A scancode to be converted.</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">Modifier flags(such as Ctrl, Shift).</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="Object" c:type="IBusObject"/>
      </field>
      <field name="name">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="keymap">
        <array zero-terminated="0" c:type="guint" fixed-size="256">
          <type name="guint" c:type="guint"/>
        </array>
      </field>
    </class>
    <record name="KeymapClass"
            c:type="IBusKeymapClass"
            glib:is-gtype-struct-for="Keymap">
      <field name="parent">
        <type name="ObjectClass" c:type="IBusObjectClass"/>
      </field>
    </record>
    <constant name="Korean_Won" value="3839" c:type="IBUS_Korean_Won">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L" value="76" c:type="IBUS_L">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L1" value="65480" c:type="IBUS_L1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L10" value="65489" c:type="IBUS_L10">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L2" value="65481" c:type="IBUS_L2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L3" value="65482" c:type="IBUS_L3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L4" value="65483" c:type="IBUS_L4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L5" value="65484" c:type="IBUS_L5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L6" value="65485" c:type="IBUS_L6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L7" value="65486" c:type="IBUS_L7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L8" value="65487" c:type="IBUS_L8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="L9" value="65488" c:type="IBUS_L9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Lacute" value="453" c:type="IBUS_Lacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Last_Virtual_Screen"
              value="65236"
              c:type="IBUS_Last_Virtual_Screen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Lbelowdot" value="16784950" c:type="IBUS_Lbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Lcaron" value="421" c:type="IBUS_Lcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Lcedilla" value="934" c:type="IBUS_Lcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Left" value="65361" c:type="IBUS_Left">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Linefeed" value="65290" c:type="IBUS_Linefeed">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="LiraSign" value="16785572" c:type="IBUS_LiraSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="LookupTable"
           c:symbol-prefix="lookup_table"
           c:type="IBusLookupTable"
           parent="Serializable"
           glib:type-name="IBusLookupTable"
           glib:get-type="ibus_lookup_table_get_type"
           glib:type-struct="LookupTableClass">
      <doc xml:whitespace="preserve">An IBusLookuptable stores the candidate words or phrases for users to choose from.
Note that some input methods allow you to select candidate by pressing non-numeric
keys such as "asdfghjkl;".
Developers of these input methods should change the labels with
ibus_lookup_table_append_label().</doc>
      <constructor name="new" c:identifier="ibus_lookup_table_new">
        <doc xml:whitespace="preserve">New a IBusLookupTable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusLookupTable.</doc>
          <type name="LookupTable" c:type="IBusLookupTable*"/>
        </return-value>
        <parameters>
          <parameter name="page_size" transfer-ownership="none">
            <doc xml:whitespace="preserve">number of candidate shown per page, the max value is 16.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cursor_pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">position index of cursor.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cursor_visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether the cursor is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="round" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE for lookup table wrap around.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append_candidate"
              c:identifier="ibus_lookup_table_append_candidate">
        <doc xml:whitespace="preserve">Append a candidate word/phrase to IBusLookupTable, and increase reference.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">candidate word/phrase to be appended (in IBusText format).</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_label"
              c:identifier="ibus_lookup_table_append_label">
        <doc xml:whitespace="preserve">Append a candidate word/phrase to IBusLookupTable, and increase reference.
This function is needed if the input method select candidate with
non-numeric keys such as "asdfghjkl;".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">A candidate label to be appended (in IBusText format).</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="ibus_lookup_table_clear">
        <doc xml:whitespace="preserve">Clear and remove all candidate from an IBusLookupTable.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="cursor_down" c:identifier="ibus_lookup_table_cursor_down">
        <doc xml:whitespace="preserve">Go to next candidate of an IBusLookupTable.

It returns FALSE if it is already at the last candidate,
unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
to the first candidate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="cursor_up" c:identifier="ibus_lookup_table_cursor_up">
        <doc xml:whitespace="preserve">Go to previous candidate of an IBusLookupTable.

It returns FALSE if it is already at the first candidate,
unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
to the last candidate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_candidate"
              c:identifier="ibus_lookup_table_get_candidate">
        <doc xml:whitespace="preserve">Return IBusText at the given index. Borrowed reference.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">IBusText at the given index; NULL if no such IBusText.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Index in the Lookup table.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_cursor_in_page"
              c:identifier="ibus_lookup_table_get_cursor_in_page">
        <doc xml:whitespace="preserve">Get the cursor position in current page of IBusLookupTable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The position of cursor in current page.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_cursor_pos"
              c:identifier="ibus_lookup_table_get_cursor_pos">
        <doc xml:whitespace="preserve">Get the cursor position of IBusLookupTable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The position of cursor.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_label" c:identifier="ibus_lookup_table_get_label">
        <doc xml:whitespace="preserve">Return IBusText at the given index. Borrowed reference.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">IBusText at the given index; NULL if no such IBusText.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Index in the Lookup table.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_number_of_candidates"
              c:identifier="ibus_lookup_table_get_number_of_candidates">
        <doc xml:whitespace="preserve">Return the number of candidate in the table.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The number of candidates in the table</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_orientation"
              c:identifier="ibus_lookup_table_get_orientation">
        <doc xml:whitespace="preserve">Returns the orientation of the IBusLookupTable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The orientation of the @table.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_page_size"
              c:identifier="ibus_lookup_table_get_page_size">
        <doc xml:whitespace="preserve">Get the number of candidate shown per page.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Page size, i.e., number of candidate shown per page.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="is_cursor_visible"
              c:identifier="ibus_lookup_table_is_cursor_visible">
        <doc xml:whitespace="preserve">Returns whether the cursor of an IBusLookupTable is visible.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Whether the cursor of @table is visible.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_round" c:identifier="ibus_lookup_table_is_round">
        <doc xml:whitespace="preserve">Returns whether the IBusLookupTable is round.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Whether the @table is round.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="page_down" c:identifier="ibus_lookup_table_page_down">
        <doc xml:whitespace="preserve">Go to next page of an IBusLookupTable.

It returns FALSE if it is already at the last page,
unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
to the first page.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="page_up" c:identifier="ibus_lookup_table_page_up">
        <doc xml:whitespace="preserve">Go to previous page of an IBusLookupTable.

It returns FALSE if it is already at the first page,
unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
to the last page.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_cursor_pos"
              c:identifier="ibus_lookup_table_set_cursor_pos">
        <doc xml:whitespace="preserve">Set the cursor position of IBusLookupTable.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cursor_pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">The position of cursor.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_visible"
              c:identifier="ibus_lookup_table_set_cursor_visible">
        <doc xml:whitespace="preserve">Set whether to make the cursor of an IBusLookupTable visible or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether to make the cursor of @table visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label" c:identifier="ibus_lookup_table_set_label">
        <doc xml:whitespace="preserve">Append a candidate word/phrase to IBusLookupTable, and increase reference.
This function is needed if the input method select candidate with
non-numeric keys such as "asdfghjkl;".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Intex in the Lookup table.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">A candidate label to be appended (in IBusText format).</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_orientation"
              c:identifier="ibus_lookup_table_set_orientation">
        <doc xml:whitespace="preserve">Set the orientation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:whitespace="preserve">.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_page_size"
              c:identifier="ibus_lookup_table_set_page_size">
        <doc xml:whitespace="preserve">Set the number of candidate shown per page.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="page_size" transfer-ownership="none">
            <doc xml:whitespace="preserve">number of candidate shown per page.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_round" c:identifier="ibus_lookup_table_set_round">
        <doc xml:whitespace="preserve">Set whether to make the IBusLookupTable round or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="round" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether to make @table round.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="page_size">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="cursor_pos">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="cursor_visible">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="round">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="orientation">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="candidates">
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="labels">
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="LookupTableClass"
            c:type="IBusLookupTableClass"
            glib:is-gtype-struct-for="LookupTable">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <constant name="Lstroke" value="419" c:type="IBUS_Lstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="M" value="77" c:type="IBUS_M">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MAJOR_VERSION" value="1" c:type="IBUS_MAJOR_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="0" c:type="IBUS_MICRO_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="4" c:type="IBUS_MINOR_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Mabovedot" value="16784960" c:type="IBUS_Mabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Macedonia_DSE" value="1717" c:type="IBUS_Macedonia_DSE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Macedonia_GJE" value="1714" c:type="IBUS_Macedonia_GJE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Macedonia_KJE" value="1724" c:type="IBUS_Macedonia_KJE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Macedonia_dse" value="1701" c:type="IBUS_Macedonia_dse">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Macedonia_gje" value="1698" c:type="IBUS_Macedonia_gje">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Macedonia_kje" value="1708" c:type="IBUS_Macedonia_kje">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Mae_Koho" value="65342" c:type="IBUS_Mae_Koho">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Massyo" value="65324" c:type="IBUS_Massyo">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Menu" value="65383" c:type="IBUS_Menu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Meta_L" value="65511" c:type="IBUS_Meta_L">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Meta_R" value="65512" c:type="IBUS_Meta_R">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MillSign" value="16785573" c:type="IBUS_MillSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Mode_switch" value="65406" c:type="IBUS_Mode_switch">
      <type name="gint" c:type="gint"/>
    </constant>
    <bitfield name="ModifierType"
              glib:type-name="IBusModifierType"
              glib:get-type="ibus_modifier_type_get_type"
              c:type="IBusModifierType">
      <doc xml:whitespace="preserve">Handles key modifier such as control, shift and alt and release event.
Note that nits 15 - 25 are currently unused, while bit 29 is used internally.</doc>
      <member name="shift_mask"
              value="1"
              c:identifier="IBUS_SHIFT_MASK"
              glib:nick="shift-mask"/>
      <member name="lock_mask"
              value="2"
              c:identifier="IBUS_LOCK_MASK"
              glib:nick="lock-mask"/>
      <member name="control_mask"
              value="4"
              c:identifier="IBUS_CONTROL_MASK"
              glib:nick="control-mask"/>
      <member name="mod1_mask"
              value="8"
              c:identifier="IBUS_MOD1_MASK"
              glib:nick="mod1-mask"/>
      <member name="mod2_mask"
              value="16"
              c:identifier="IBUS_MOD2_MASK"
              glib:nick="mod2-mask"/>
      <member name="mod3_mask"
              value="32"
              c:identifier="IBUS_MOD3_MASK"
              glib:nick="mod3-mask"/>
      <member name="mod4_mask"
              value="64"
              c:identifier="IBUS_MOD4_MASK"
              glib:nick="mod4-mask"/>
      <member name="mod5_mask"
              value="128"
              c:identifier="IBUS_MOD5_MASK"
              glib:nick="mod5-mask"/>
      <member name="button1_mask"
              value="256"
              c:identifier="IBUS_BUTTON1_MASK"
              glib:nick="button1-mask"/>
      <member name="button2_mask"
              value="512"
              c:identifier="IBUS_BUTTON2_MASK"
              glib:nick="button2-mask"/>
      <member name="button3_mask"
              value="1024"
              c:identifier="IBUS_BUTTON3_MASK"
              glib:nick="button3-mask"/>
      <member name="button4_mask"
              value="2048"
              c:identifier="IBUS_BUTTON4_MASK"
              glib:nick="button4-mask"/>
      <member name="button5_mask"
              value="4096"
              c:identifier="IBUS_BUTTON5_MASK"
              glib:nick="button5-mask"/>
      <member name="handled_mask"
              value="16777216"
              c:identifier="IBUS_HANDLED_MASK"
              glib:nick="handled-mask"/>
      <member name="forward_mask"
              value="33554432"
              c:identifier="IBUS_FORWARD_MASK"
              glib:nick="forward-mask"/>
      <member name="ignored_mask"
              value="33554432"
              c:identifier="IBUS_IGNORED_MASK"
              glib:nick="ignored-mask"/>
      <member name="super_mask"
              value="67108864"
              c:identifier="IBUS_SUPER_MASK"
              glib:nick="super-mask"/>
      <member name="hyper_mask"
              value="134217728"
              c:identifier="IBUS_HYPER_MASK"
              glib:nick="hyper-mask"/>
      <member name="meta_mask"
              value="268435456"
              c:identifier="IBUS_META_MASK"
              glib:nick="meta-mask"/>
      <member name="release_mask"
              value="1073741824"
              c:identifier="IBUS_RELEASE_MASK"
              glib:nick="release-mask"/>
      <member name="modifier_mask"
              value="1593843711"
              c:identifier="IBUS_MODIFIER_MASK"
              glib:nick="modifier-mask"/>
    </bitfield>
    <constant name="MouseKeys_Accel_Enable"
              value="65143"
              c:type="IBUS_MouseKeys_Accel_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MouseKeys_Enable"
              value="65142"
              c:type="IBUS_MouseKeys_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Muhenkan" value="65314" c:type="IBUS_Muhenkan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Multi_key" value="65312" c:type="IBUS_Multi_key">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MultipleCandidate"
              value="65341"
              c:type="IBUS_MultipleCandidate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="N" value="78" c:type="IBUS_N">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Nacute" value="465" c:type="IBUS_Nacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="NairaSign" value="16785574" c:type="IBUS_NairaSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ncaron" value="466" c:type="IBUS_Ncaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ncedilla" value="977" c:type="IBUS_Ncedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="NewSheqelSign"
              value="16785578"
              c:type="IBUS_NewSheqelSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Next" value="65366" c:type="IBUS_Next">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Next_Virtual_Screen"
              value="65234"
              c:type="IBUS_Next_Virtual_Screen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ntilde" value="209" c:type="IBUS_Ntilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Num_Lock" value="65407" c:type="IBUS_Num_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="O" value="79" c:type="IBUS_O">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="OE" value="5052" c:type="IBUS_OE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Oacute" value="211" c:type="IBUS_Oacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Obarred" value="16777631" c:type="IBUS_Obarred">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Obelowdot" value="16785100" c:type="IBUS_Obelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="IBusObject"
           parent="GObject.InitiallyUnowned"
           glib:type-name="IBusObject"
           glib:get-type="ibus_object_get_type"
           glib:type-struct="ObjectClass">
      <doc xml:whitespace="preserve">All the fields in the &lt;structname&gt;IBusObject&lt;/structname&gt; structure are
private to the #IBusObject and should never be accessed directly.</doc>
      <constructor name="new" c:identifier="ibus_object_new">
        <doc xml:whitespace="preserve">New an IBusObject.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusObject</doc>
          <type name="Object" c:type="IBusObject*"/>
        </return-value>
      </constructor>
      <virtual-method name="destroy" invoker="destroy">
        <doc xml:whitespace="preserve">Emit the "destory" signal notifying all reference holders that they should
release the #IBusObject.

The memory for the object itself won't be deleted until its reference count
actually drops to 0; ibus_object_destroy merely asks reference holders to
release their references. It does not free the object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="destroy" c:identifier="ibus_object_destroy">
        <doc xml:whitespace="preserve">Emit the "destory" signal notifying all reference holders that they should
release the #IBusObject.

The memory for the object itself won't be deleted until its reference count
actually drops to 0; ibus_object_destroy merely asks reference holders to
release their references. It does not free the object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
      <field name="flags">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="priv">
        <type name="ObjectPrivate" c:type="IBusObjectPrivate*"/>
      </field>
      <glib:signal name="destroy" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ObjectClass"
            c:type="IBusObjectClass"
            glib:is-gtype-struct-for="Object">
      <field name="parent">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
      <field name="destroy">
        <callback name="destroy">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="IBusObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="ObjectDestroyFunc" c:type="IBusObjectDestroyFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter transfer-ownership="none">
          <type name="Object" c:type="IBusObject*"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="ObjectFlags"
              glib:type-name="IBusObjectFlags"
              glib:get-type="ibus_object_flags_get_type"
              c:type="IBusObjectFlags">
      <member name="in_destruction"
              value="1"
              c:identifier="IBUS_IN_DESTRUCTION"
              glib:nick="in-destruction"/>
      <member name="destroyed"
              value="2"
              c:identifier="IBUS_DESTROYED"
              glib:nick="destroyed"/>
      <member name="reserved_1"
              value="4"
              c:identifier="IBUS_RESERVED_1"
              glib:nick="reserved-1"/>
      <member name="reserved_2"
              value="8"
              c:identifier="IBUS_RESERVED_2"
              glib:nick="reserved-2"/>
    </bitfield>
    <record name="ObjectPrivate" c:type="IBusObjectPrivate" disguised="1">
    </record>
    <class name="ObservedPath"
           c:symbol-prefix="observed_path"
           c:type="IBusObservedPath"
           parent="Serializable"
           glib:type-name="IBusObservedPath"
           glib:get-type="ibus_observed_path_get_type"
           glib:type-struct="ObservedPathClass">
      <doc xml:whitespace="preserve">Data structure of IBusObservedPath.</doc>
      <constructor name="new" c:identifier="ibus_observed_path_new">
        <doc xml:whitespace="preserve">New an IBusObservedPath from an XML node.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusObservedPath.</doc>
          <type name="ObservedPath" c:type="IBusObservedPath*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The path string.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="fill_stat" transfer-ownership="none">
            <doc xml:whitespace="preserve">Auto-fill the path status.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xml_node"
                   c:identifier="ibus_observed_path_new_from_xml_node"
                   introspectable="0">
        <doc xml:whitespace="preserve">New an IBusObservedPath from an XML node.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusObservedPath.</doc>
          <type name="ObservedPath" c:type="IBusObservedPath*"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">An XML node that contain path.</doc>
            <type c:type="XMLNode*"/>
          </parameter>
          <parameter name="fill_stat" transfer-ownership="none">
            <doc xml:whitespace="preserve">Auto-fill the path status.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="check_modification"
              c:identifier="ibus_observed_path_check_modification">
        <doc xml:whitespace="preserve">Checks whether the path is modified by comparing the mtime in object and mtime in file system.
Returns TRUE if imtime is changed, otherwise FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if mtime is changed; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="output" c:identifier="ibus_observed_path_output">
        <doc xml:whitespace="preserve">Append the observed path to a string with following format:
&amp;lt;path mtime="&amp;lt;i&amp;gt;modified time&amp;lt;/i&amp;gt;" &amp;gt;&amp;lt;i&amp;gt;path&amp;lt;/i&amp;gt;&amp;lt;/path&amp;gt;</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:whitespace="preserve">Path is appended to.</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
          <parameter name="indent" transfer-ownership="none">
            <doc xml:whitespace="preserve">number of indent.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="traverse"
              c:identifier="ibus_observed_path_traverse"
              introspectable="0">
        <doc xml:whitespace="preserve">Recursively traverse the path and put the files and subdirectory in to a newly allocated
GLists, if the @path is a directory. Otherwise returns NULL.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A newly allocate GList which holds content in path; NULL if @path is not directory.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="ObservedPath"/>
          </type>
        </return-value>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="path">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="mtime">
        <type name="glong" c:type="glong"/>
      </field>
      <field name="is_dir">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_exist">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="ObservedPathClass"
            c:type="IBusObservedPathClass"
            glib:is-gtype-struct-for="ObservedPath">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <constant name="Ocaron" value="16777681" c:type="IBUS_Ocaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ocircumflex" value="212" c:type="IBUS_Ocircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ocircumflexacute"
              value="16785104"
              c:type="IBUS_Ocircumflexacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ocircumflexbelowdot"
              value="16785112"
              c:type="IBUS_Ocircumflexbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ocircumflexgrave"
              value="16785106"
              c:type="IBUS_Ocircumflexgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ocircumflexhook"
              value="16785108"
              c:type="IBUS_Ocircumflexhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ocircumflextilde"
              value="16785110"
              c:type="IBUS_Ocircumflextilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Odiaeresis" value="214" c:type="IBUS_Odiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Odoubleacute" value="469" c:type="IBUS_Odoubleacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ograve" value="210" c:type="IBUS_Ograve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ohook" value="16785102" c:type="IBUS_Ohook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ohorn" value="16777632" c:type="IBUS_Ohorn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ohornacute" value="16785114" c:type="IBUS_Ohornacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ohornbelowdot"
              value="16785122"
              c:type="IBUS_Ohornbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ohorngrave" value="16785116" c:type="IBUS_Ohorngrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ohornhook" value="16785118" c:type="IBUS_Ohornhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ohorntilde" value="16785120" c:type="IBUS_Ohorntilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Omacron" value="978" c:type="IBUS_Omacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ooblique" value="216" c:type="IBUS_Ooblique">
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="Orientation"
                 glib:type-name="IBusOrientation"
                 glib:get-type="ibus_orientation_get_type"
                 c:type="IBusOrientation">
      <doc xml:whitespace="preserve">Orientation of UI.</doc>
      <member name="horizontal"
              value="0"
              c:identifier="IBUS_ORIENTATION_HORIZONTAL"
              glib:nick="horizontal"/>
      <member name="vertical"
              value="1"
              c:identifier="IBUS_ORIENTATION_VERTICAL"
              glib:nick="vertical"/>
      <member name="system"
              value="2"
              c:identifier="IBUS_ORIENTATION_SYSTEM"
              glib:nick="system"/>
    </enumeration>
    <constant name="Oslash" value="216" c:type="IBUS_Oslash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Otilde" value="213" c:type="IBUS_Otilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Overlay1_Enable"
              value="65144"
              c:type="IBUS_Overlay1_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Overlay2_Enable"
              value="65145"
              c:type="IBUS_Overlay2_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="P" value="80" c:type="IBUS_P">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="PATH_CONFIG"
              value="/org/freedesktop/IBus/Config"
              c:type="IBUS_PATH_CONFIG">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PATH_FACTORY"
              value="/org/freedesktop/IBus/Factory"
              c:type="IBUS_PATH_FACTORY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PATH_IBUS"
              value="/org/freedesktop/IBus"
              c:type="IBUS_PATH_IBUS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PATH_INPUT_CONTEXT"
              value="/org/freedesktop/IBus/InputContext_%d"
              c:type="IBUS_PATH_INPUT_CONTEXT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PATH_NOTIFICATIONS"
              value="/org/freedesktop/IBus/Notifications"
              c:type="IBUS_PATH_NOTIFICATIONS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PATH_PANEL"
              value="/org/freedesktop/IBus/Panel"
              c:type="IBUS_PATH_PANEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="Pabovedot" value="16784982" c:type="IBUS_Pabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Page_Down" value="65366" c:type="IBUS_Page_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Page_Up" value="65365" c:type="IBUS_Page_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="PanelService"
           c:symbol-prefix="panel_service"
           c:type="IBusPanelService"
           parent="Service"
           glib:type-name="IBusPanelService"
           glib:get-type="ibus_panel_service_get_type"
           glib:type-struct="PanelServiceClass">
      <doc xml:whitespace="preserve">An opaque data type representing an IBusPanelService.</doc>
      <constructor name="new" c:identifier="ibus_panel_service_new">
        <doc xml:whitespace="preserve">New an IBusPanelService from an GDBusConnection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusPanelService.</doc>
          <type name="PanelService" c:type="IBusPanelService*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">An GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="cursor_down_lookup_table">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="cursor_up_lookup_table">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="focus_in">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="input_context_path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="focus_out">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="input_context_path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide_auxiliary_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="hide_language_bar">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="hide_lookup_table">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="hide_preedit_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="page_down_lookup_table">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="page_up_lookup_table">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="register_properties">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_list" transfer-ownership="none">
            <type name="PropList" c:type="IBusPropList*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="reset">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set_cursor_location">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="w" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="h" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_auxiliary_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="show_language_bar">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="show_lookup_table">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="show_preedit_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="start_setup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="state_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="update_auxiliary_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_lookup_table">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="lookup_table" transfer-ownership="none">
            <type name="LookupTable" c:type="IBusLookupTable*"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_preedit_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="cursor_pos" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_property">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop" transfer-ownership="none">
            <type name="Property" c:type="IBusProperty*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="candidate_clicked"
              c:identifier="ibus_panel_service_candidate_clicked">
        <doc xml:whitespace="preserve">Notify that a candidate is clicked
by sending a "CandidateClicked" to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Index in the Lookup table</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:whitespace="preserve">GdkEventButton::button (1: left button, etc.)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">GdkEventButton::state (key modifier flags)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="cursor_down" c:identifier="ibus_panel_service_cursor_down">
        <doc xml:whitespace="preserve">Notify that the cursor is down
by sending a "CursorDown" to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="cursor_up" c:identifier="ibus_panel_service_cursor_up">
        <doc xml:whitespace="preserve">Notify that the cursor is up
by sending a "CursorUp" to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="page_down" c:identifier="ibus_panel_service_page_down">
        <doc xml:whitespace="preserve">Notify that the page is down
by sending a "PageDown" to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="page_up" c:identifier="ibus_panel_service_page_up">
        <doc xml:whitespace="preserve">Notify that the page is up
by sending a "PageUp" to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="property_activate"
              c:identifier="ibus_panel_service_property_activate">
        <doc xml:whitespace="preserve">Notify that a property is active
by sending a "PropertyActivate" message to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">A property name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_state" transfer-ownership="none">
            <doc xml:whitespace="preserve">State of the property</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="property_hide"
              c:identifier="ibus_panel_service_property_hide">
        <doc xml:whitespace="preserve">Notify that a property is hidden
by sending a "ValueChanged" message to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">A property name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="property_show"
              c:identifier="ibus_panel_service_property_show">
        <doc xml:whitespace="preserve">Notify that a property is shown
by sending a "ValueChanged" message to IBus service.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">A property name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Service" c:type="IBusService"/>
      </field>
      <glib:signal name="cursor-down-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cursor-up-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="focus-in" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="focus-out" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="hide-auxiliary-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-language-bar" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-preedit-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="page-down-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="page-up-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="register-properties" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="PropList"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="reset" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-cursor-location" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-auxiliary-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-language-bar" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-preedit-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="start-setup" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="state-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="update-auxiliary-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Text"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-lookup-table" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="LookupTable"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-preedit-text" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Text"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-property" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Property"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="PanelServiceClass"
            c:type="IBusPanelServiceClass"
            glib:is-gtype-struct-for="PanelService">
      <field name="parent">
        <type name="ServiceClass" c:type="IBusServiceClass"/>
      </field>
      <field name="focus_in">
        <callback name="focus_in">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="input_context_path" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus_out">
        <callback name="focus_out">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="input_context_path" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="register_properties">
        <callback name="register_properties">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="prop_list" transfer-ownership="none">
              <type name="PropList" c:type="IBusPropList*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_cursor_location">
        <callback name="set_cursor_location">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="w" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="h" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_auxiliary_text">
        <callback name="update_auxiliary_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="Text" c:type="IBusText*"/>
            </parameter>
            <parameter name="visible" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_lookup_table">
        <callback name="update_lookup_table">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="lookup_table" transfer-ownership="none">
              <type name="LookupTable" c:type="IBusLookupTable*"/>
            </parameter>
            <parameter name="visible" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_preedit_text">
        <callback name="update_preedit_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="Text" c:type="IBusText*"/>
            </parameter>
            <parameter name="cursor_pos" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="visible" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_property">
        <callback name="update_property">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
            <parameter name="prop" transfer-ownership="none">
              <type name="Property" c:type="IBusProperty*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cursor_down_lookup_table">
        <callback name="cursor_down_lookup_table">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cursor_up_lookup_table">
        <callback name="cursor_up_lookup_table">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_auxiliary_text">
        <callback name="hide_auxiliary_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_language_bar">
        <callback name="hide_language_bar">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_lookup_table">
        <callback name="hide_lookup_table">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_preedit_text">
        <callback name="hide_preedit_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="page_down_lookup_table">
        <callback name="page_down_lookup_table">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="page_up_lookup_table">
        <callback name="page_up_lookup_table">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset">
        <callback name="reset">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_auxiliary_text">
        <callback name="show_auxiliary_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_language_bar">
        <callback name="show_language_bar">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_lookup_table">
        <callback name="show_lookup_table">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_preedit_text">
        <callback name="show_preedit_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start_setup">
        <callback name="start_setup">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="state_changed">
        <callback name="state_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelService" c:type="IBusPanelService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <constant name="Pause" value="65299" c:type="IBUS_Pause">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="PesetaSign" value="16785575" c:type="IBUS_PesetaSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Accelerate"
              value="65274"
              c:type="IBUS_Pointer_Accelerate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Button1"
              value="65257"
              c:type="IBUS_Pointer_Button1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Button2"
              value="65258"
              c:type="IBUS_Pointer_Button2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Button3"
              value="65259"
              c:type="IBUS_Pointer_Button3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Button4"
              value="65260"
              c:type="IBUS_Pointer_Button4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Button5"
              value="65261"
              c:type="IBUS_Pointer_Button5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Button_Dflt"
              value="65256"
              c:type="IBUS_Pointer_Button_Dflt">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DblClick1"
              value="65263"
              c:type="IBUS_Pointer_DblClick1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DblClick2"
              value="65264"
              c:type="IBUS_Pointer_DblClick2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DblClick3"
              value="65265"
              c:type="IBUS_Pointer_DblClick3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DblClick4"
              value="65266"
              c:type="IBUS_Pointer_DblClick4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DblClick5"
              value="65267"
              c:type="IBUS_Pointer_DblClick5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DblClick_Dflt"
              value="65262"
              c:type="IBUS_Pointer_DblClick_Dflt">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DfltBtnNext"
              value="65275"
              c:type="IBUS_Pointer_DfltBtnNext">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DfltBtnPrev"
              value="65276"
              c:type="IBUS_Pointer_DfltBtnPrev">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Down" value="65251" c:type="IBUS_Pointer_Down">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DownLeft"
              value="65254"
              c:type="IBUS_Pointer_DownLeft">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_DownRight"
              value="65255"
              c:type="IBUS_Pointer_DownRight">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Drag1" value="65269" c:type="IBUS_Pointer_Drag1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Drag2" value="65270" c:type="IBUS_Pointer_Drag2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Drag3" value="65271" c:type="IBUS_Pointer_Drag3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Drag4" value="65272" c:type="IBUS_Pointer_Drag4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Drag5" value="65277" c:type="IBUS_Pointer_Drag5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Drag_Dflt"
              value="65268"
              c:type="IBUS_Pointer_Drag_Dflt">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_EnableKeys"
              value="65273"
              c:type="IBUS_Pointer_EnableKeys">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Left" value="65248" c:type="IBUS_Pointer_Left">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Right" value="65249" c:type="IBUS_Pointer_Right">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_Up" value="65250" c:type="IBUS_Pointer_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_UpLeft" value="65252" c:type="IBUS_Pointer_UpLeft">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Pointer_UpRight"
              value="65253"
              c:type="IBUS_Pointer_UpRight">
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="PreeditFocusMode"
                 glib:type-name="IBusPreeditFocusMode"
                 glib:get-type="ibus_preedit_focus_mode_get_type"
                 c:type="IBusPreeditFocusMode">
      <doc xml:whitespace="preserve">Pre-edit commit mode when the focus is lost.</doc>
      <member name="clear"
              value="0"
              c:identifier="IBUS_ENGINE_PREEDIT_CLEAR"
              glib:nick="clear"/>
      <member name="commit"
              value="1"
              c:identifier="IBUS_ENGINE_PREEDIT_COMMIT"
              glib:nick="commit"/>
    </enumeration>
    <constant name="Prev_Virtual_Screen"
              value="65233"
              c:type="IBUS_Prev_Virtual_Screen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="PreviousCandidate"
              value="65342"
              c:type="IBUS_PreviousCandidate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Print" value="65377" c:type="IBUS_Print">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Prior" value="65365" c:type="IBUS_Prior">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="PropList"
           c:symbol-prefix="prop_list"
           c:type="IBusPropList"
           parent="Serializable"
           glib:type-name="IBusPropList"
           glib:get-type="ibus_prop_list_get_type"
           glib:type-struct="PropListClass">
      <doc xml:whitespace="preserve">An array of IBusProperties.</doc>
      <constructor name="new" c:identifier="ibus_prop_list_new">
        <doc xml:whitespace="preserve">New a IBusPropList.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusPropList.</doc>
          <type name="PropList" c:type="IBusPropList*"/>
        </return-value>
      </constructor>
      <method name="append" c:identifier="ibus_prop_list_append">
        <doc xml:whitespace="preserve">Append an IBusProperty to an IBusPropList, and increase reference.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusProperty to be append to @prop_list.</doc>
            <type name="Property" c:type="IBusProperty*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="ibus_prop_list_get">
        <doc xml:whitespace="preserve">Returns IBusProperty at given index. Borrowed reference.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">IBusProperty at given index, NULL if no such IBusProperty.</doc>
          <type name="Property" c:type="IBusProperty*"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <doc xml:whitespace="preserve">Index of an IBusPropList.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_property"
              c:identifier="ibus_prop_list_update_property">
        <doc xml:whitespace="preserve">Update an IBusProperty in IBusPropList.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if succeeded, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="prop" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusProperty to be update.</doc>
            <type name="Property" c:type="IBusProperty*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="properties">
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="PropListClass"
            c:type="IBusPropListClass"
            glib:is-gtype-struct-for="PropList">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <enumeration name="PropState"
                 glib:type-name="IBusPropState"
                 glib:get-type="ibus_prop_state_get_type"
                 c:type="IBusPropState">
      <doc xml:whitespace="preserve">State of IBusProperty. The actual effect depends on #IBusPropType of the
IBusProperty.

&lt;variablelist&gt;
&lt;varlistentry&gt;
&lt;term&gt;PROP_TYPE_TOGGLE&lt;/term&gt;
&lt;listitem&gt;&lt;para&gt;Emphasized if PROP_STATE_CHECKED, normal otherwise.&lt;/para&gt;&lt;/listitem&gt;
&lt;/varlistentry&gt;
&lt;varlistentry&gt;
&lt;term&gt;PROP_TYPE_RADIO&lt;/term&gt;
&lt;listitem&gt;&lt;para&gt;Option checked if PROP_STATE_CHECKED, unchecked otherwise.&lt;/para&gt;&lt;/listitem&gt;
&lt;/varlistentry&gt;
&lt;/variablelist&gt;
No effect on other types.</doc>
      <member name="unchecked"
              value="0"
              c:identifier="PROP_STATE_UNCHECKED"
              glib:nick="unchecked"/>
      <member name="checked"
              value="1"
              c:identifier="PROP_STATE_CHECKED"
              glib:nick="checked"/>
      <member name="inconsistent"
              value="2"
              c:identifier="PROP_STATE_INCONSISTENT"
              glib:nick="inconsistent"/>
    </enumeration>
    <enumeration name="PropType"
                 glib:type-name="IBusPropType"
                 glib:get-type="ibus_prop_type_get_type"
                 c:type="IBusPropType">
      <doc xml:whitespace="preserve">Type enumeration of IBusProperty.</doc>
      <member name="normal"
              value="0"
              c:identifier="PROP_TYPE_NORMAL"
              glib:nick="normal"/>
      <member name="toggle"
              value="1"
              c:identifier="PROP_TYPE_TOGGLE"
              glib:nick="toggle"/>
      <member name="radio"
              value="2"
              c:identifier="PROP_TYPE_RADIO"
              glib:nick="radio"/>
      <member name="menu"
              value="3"
              c:identifier="PROP_TYPE_MENU"
              glib:nick="menu"/>
      <member name="separator"
              value="4"
              c:identifier="PROP_TYPE_SEPARATOR"
              glib:nick="separator"/>
    </enumeration>
    <class name="Property"
           c:symbol-prefix="property"
           c:type="IBusProperty"
           parent="Serializable"
           glib:type-name="IBusProperty"
           glib:get-type="ibus_property_get_type"
           glib:type-struct="PropertyClass">
      <doc xml:whitespace="preserve">UI component for input method engine property.</doc>
      <constructor name="new" c:identifier="ibus_property_new">
        <doc xml:whitespace="preserve">New a IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusProperty.</doc>
          <type name="Property" c:type="IBusProperty*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique Identity for the IBusProperty.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusPropType of IBusProperty.</doc>
            <type name="PropType" c:type="IBusPropType"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:whitespace="preserve">Text shown in UI.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Icon file for the IBusProperty.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:whitespace="preserve">Message shown if mouse hovered the  IBusProperty.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
          <parameter name="sensitive" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the IBusProperty is sensitive to keyboard and mouse event.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the IBusProperty is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusPropState of IBusProperty.</doc>
            <type name="PropState" c:type="IBusPropState"/>
          </parameter>
          <parameter name="prop_list" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">IBusPropList that contains sub IBusProperties.</doc>
            <type name="PropList" c:type="IBusPropList*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_icon" c:identifier="ibus_property_get_icon">
        <doc xml:whitespace="preserve">Get the icon of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the icon of IBusProperty. Should not be freed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_key" c:identifier="ibus_property_get_key">
        <doc xml:whitespace="preserve">Get the key of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the key of IBusProperty. Should not be freed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_label" c:identifier="ibus_property_get_label">
        <doc xml:whitespace="preserve">Get the label of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the label of IBusProperty. Should not be freed.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
      </method>
      <method name="get_prop_type" c:identifier="ibus_property_get_prop_type">
        <doc xml:whitespace="preserve">Get the type of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the type of IBusProperty.</doc>
          <type name="PropType" c:type="IBusPropType"/>
        </return-value>
      </method>
      <method name="get_sensitive" c:identifier="ibus_property_get_sensitive">
        <doc xml:whitespace="preserve">Get the sensitive of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the sensitive of IBusProperty.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_state" c:identifier="ibus_property_get_state">
        <doc xml:whitespace="preserve">Get the state of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the state of IBusProperty.</doc>
          <type name="PropState" c:type="IBusPropState"/>
        </return-value>
      </method>
      <method name="get_sub_props" c:identifier="ibus_property_get_sub_props">
        <doc xml:whitespace="preserve">Get the IBusPropList of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the IBusPropList of IBusProperty. Should not be freed.</doc>
          <type name="PropList" c:type="IBusPropList*"/>
        </return-value>
      </method>
      <method name="get_tooltip" c:identifier="ibus_property_get_tooltip">
        <doc xml:whitespace="preserve">Get the tooltip of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the tooltip of IBusProperty. Should not be freed.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
      </method>
      <method name="get_visible" c:identifier="ibus_property_get_visible">
        <doc xml:whitespace="preserve">Get the visible of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the visible of IBusProperty.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_icon" c:identifier="ibus_property_set_icon">
        <doc xml:whitespace="preserve">Set the icon of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Icon shown in UI. It could be a full path of an icon file or an icon name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label" c:identifier="ibus_property_set_label">
        <doc xml:whitespace="preserve">Set the label of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <doc xml:whitespace="preserve">Text shown in UI.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sensitive" c:identifier="ibus_property_set_sensitive">
        <doc xml:whitespace="preserve">Set whether the IBusProperty is sensitive.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sensitive" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the IBusProperty is sensitive.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state" c:identifier="ibus_property_set_state">
        <doc xml:whitespace="preserve">Set the state of the IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">The state of the IBusProperty.</doc>
            <type name="PropState" c:type="IBusPropState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sub_props" c:identifier="ibus_property_set_sub_props">
        <doc xml:whitespace="preserve">Set the sub IBusProperties.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusPropList that contains sub IBusProperties.</doc>
            <type name="PropList" c:type="IBusPropList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip" c:identifier="ibus_property_set_tooltip">
        <doc xml:whitespace="preserve">Set the tooltip of IBusProperty.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:whitespace="preserve">Text of the tooltip.</doc>
            <type name="Text" c:type="IBusText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible" c:identifier="ibus_property_set_visible">
        <doc xml:whitespace="preserve">Set whether the IBusProperty is visible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the IBusProperty is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update" c:identifier="ibus_property_update">
        <doc xml:whitespace="preserve">Update the content of an IBusProperty.
IBusProperty @prop_update can either be sub-property of @prop,
or holds new values for @prop.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE for update suceeded; FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="prop_update" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusPropList that contains sub IBusProperties.</doc>
            <type name="Property" c:type="IBusProperty*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="key">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="icon">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="label">
        <type name="Text" c:type="IBusText*"/>
      </field>
      <field name="tooltip">
        <type name="Text" c:type="IBusText*"/>
      </field>
      <field name="sensitive">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="visible">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="type">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="state">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="sub_props">
        <type name="PropList" c:type="IBusPropList*"/>
      </field>
    </class>
    <record name="PropertyClass"
            c:type="IBusPropertyClass"
            glib:is-gtype-struct-for="Property">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <class name="Proxy"
           c:symbol-prefix="proxy"
           c:type="IBusProxy"
           parent="Gio.DBusProxy"
           glib:type-name="IBusProxy"
           glib:get-type="ibus_proxy_get_type"
           glib:type-struct="ProxyClass">
      <doc xml:whitespace="preserve">An opaque data type representing an IBusProxy.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <virtual-method name="destroy" invoker="destroy">
        <doc xml:whitespace="preserve">Dispose the proxy object. If the dbus connection is alive and the own variable above
is TRUE (which is the default), org.freedesktop.IBus.Service.Destroy method will be
called. Note that "destroy" signal might be emitted when ibus_proxy_destroy is called
or the underlying dbus connection for the proxy is terminated. In the callback of the
destroy signal, you might have to call something like 'g_object_unref(the_proxy);'.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="destroy" c:identifier="ibus_proxy_destroy">
        <doc xml:whitespace="preserve">Dispose the proxy object. If the dbus connection is alive and the own variable above
is TRUE (which is the default), org.freedesktop.IBus.Service.Destroy method will be
called. Note that "destroy" signal might be emitted when ibus_proxy_destroy is called
or the underlying dbus connection for the proxy is terminated. In the callback of the
destroy signal, you might have to call something like 'g_object_unref(the_proxy);'.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="flags">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="own">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <glib:signal name="destroy" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ProxyClass"
            c:type="IBusProxyClass"
            glib:is-gtype-struct-for="Proxy">
      <field name="parent">
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
      <field name="destroy">
        <callback name="destroy">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="proxy" transfer-ownership="none">
              <type name="Proxy" c:type="IBusProxy*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <constant name="Q" value="81" c:type="IBUS_Q">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R" value="82" c:type="IBUS_R">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R1" value="65490" c:type="IBUS_R1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R10" value="65499" c:type="IBUS_R10">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R11" value="65500" c:type="IBUS_R11">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R12" value="65501" c:type="IBUS_R12">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R13" value="65502" c:type="IBUS_R13">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R14" value="65503" c:type="IBUS_R14">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R15" value="65504" c:type="IBUS_R15">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R2" value="65491" c:type="IBUS_R2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R3" value="65492" c:type="IBUS_R3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R4" value="65493" c:type="IBUS_R4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R5" value="65494" c:type="IBUS_R5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R6" value="65495" c:type="IBUS_R6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R7" value="65496" c:type="IBUS_R7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R8" value="65497" c:type="IBUS_R8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="R9" value="65498" c:type="IBUS_R9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Racute" value="448" c:type="IBUS_Racute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Rcaron" value="472" c:type="IBUS_Rcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Rcedilla" value="931" c:type="IBUS_Rcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Rectangle" c:type="IBusRectangle">
      <doc xml:whitespace="preserve">Rectangle definition.</doc>
      <field name="x" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="y" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="width" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
    </record>
    <constant name="Redo" value="65382" c:type="IBUS_Redo">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="RepeatKeys_Enable"
              value="65138"
              c:type="IBUS_RepeatKeys_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Return" value="65293" c:type="IBUS_Return">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Right" value="65363" c:type="IBUS_Right">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Romaji" value="65316" c:type="IBUS_Romaji">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="RupeeSign" value="16785576" c:type="IBUS_RupeeSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="S" value="83" c:type="IBUS_S">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="SCHWA" value="16777615" c:type="IBUS_SCHWA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="SERVICE_CONFIG"
              value="org.freedesktop.IBus.Config"
              c:type="IBUS_SERVICE_CONFIG">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SERVICE_IBUS"
              value="org.freedesktop.IBus"
              c:type="IBUS_SERVICE_IBUS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SERVICE_NOTIFICATIONS"
              value="org.freedesktop.IBus.Notifications"
              c:type="IBUS_SERVICE_NOTIFICATIONS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="SERVICE_PANEL"
              value="org.freedesktop.IBus.Panel"
              c:type="IBUS_SERVICE_PANEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="Sabovedot" value="16784992" c:type="IBUS_Sabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Sacute" value="422" c:type="IBUS_Sacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Scaron" value="425" c:type="IBUS_Scaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Scedilla" value="426" c:type="IBUS_Scedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Scircumflex" value="734" c:type="IBUS_Scircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Scroll_Lock" value="65300" c:type="IBUS_Scroll_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Select" value="65376" c:type="IBUS_Select">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_DJE" value="1713" c:type="IBUS_Serbian_DJE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_DZE" value="1727" c:type="IBUS_Serbian_DZE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_JE" value="1720" c:type="IBUS_Serbian_JE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_LJE" value="1721" c:type="IBUS_Serbian_LJE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_NJE" value="1722" c:type="IBUS_Serbian_NJE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_TSHE" value="1723" c:type="IBUS_Serbian_TSHE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_dje" value="1697" c:type="IBUS_Serbian_dje">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_dze" value="1711" c:type="IBUS_Serbian_dze">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_je" value="1704" c:type="IBUS_Serbian_je">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_lje" value="1705" c:type="IBUS_Serbian_lje">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_nje" value="1706" c:type="IBUS_Serbian_nje">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Serbian_tshe" value="1707" c:type="IBUS_Serbian_tshe">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Serializable"
           c:symbol-prefix="serializable"
           c:type="IBusSerializable"
           parent="Object"
           glib:type-name="IBusSerializable"
           glib:get-type="ibus_serializable_get_type"
           glib:type-struct="SerializableClass">
      <doc xml:whitespace="preserve">All the fields in the &lt;structname&gt;IBusSerializable&lt;/structname&gt; structure are
private to the #IBusSerializable and should never be accessed directly.</doc>
      <constructor name="new" c:identifier="ibus_serializable_new">
        <doc xml:whitespace="preserve">Creates a new instance of an #IBusSerializable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new instance of #IBusSerializable.</doc>
          <type name="Serializable" c:type="IBusSerializable*"/>
        </return-value>
      </constructor>
      <function name="deserialize"
                c:identifier="ibus_serializable_deserialize"
                introspectable="0">
        <doc xml:whitespace="preserve">Deserialize a #GVariant to an #IBusSerializable/
The deserialize method should be implemented in extended class.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The deserialized #IBusSerializable.</doc>
          <type name="Serializable" c:type="IBusSerializable*"/>
        </return-value>
        <parameters>
          <parameter name="variant" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GVariant.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="copy">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="Serializable" c:type="IBusSerializable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="deserialize">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="variant" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="serialize">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="builder" transfer-ownership="none">
            <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="copy"
              c:identifier="ibus_serializable_copy"
              introspectable="0">
        <doc xml:whitespace="preserve">Clone an #IBusSerializable.
The copy method should be implemented in extended class.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A newly allocated clone object; or %NULL if @object is not serializable.</doc>
          <type name="Serializable" c:type="IBusSerializable*"/>
        </return-value>
      </method>
      <method name="get_qattachment"
              c:identifier="ibus_serializable_get_qattachment">
        <doc xml:whitespace="preserve">Get a value from attachment of an #IBusSerializable.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The attached value; or %NULL if fail to retrieve the value.</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">String formatted key for indexing value.</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_qattachment"
              c:identifier="ibus_serializable_remove_qattachment">
        <doc xml:whitespace="preserve">Remove a value from attachment of an #IBusSerializable.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">String formatted key for indexing value.</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <method name="serialize" c:identifier="ibus_serializable_serialize">
        <doc xml:whitespace="preserve">Serialize an #IBusSerializable to a #GVariant.
The serialize method should be implemented in extended class.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GVariant.</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
      </method>
      <method name="set_qattachment"
              c:identifier="ibus_serializable_set_qattachment">
        <doc xml:whitespace="preserve">Attach a value to an IBusSerializable. If the value is floating,
the serializable will take the ownership.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">String formatted key for indexing value.</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value to be attached or %NULL to remove any prevoius value.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="Object" c:type="IBusObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="SerializablePrivate" c:type="IBusSerializablePrivate*"/>
      </field>
    </class>
    <record name="SerializableClass"
            c:type="IBusSerializableClass"
            glib:is-gtype-struct-for="Serializable">
      <field name="parent" readable="0" private="1">
        <type name="ObjectClass" c:type="IBusObjectClass"/>
      </field>
      <field name="serialize">
        <callback name="serialize">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Serializable" c:type="IBusSerializable*"/>
            </parameter>
            <parameter name="builder" transfer-ownership="none">
              <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deserialize">
        <callback name="deserialize">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Serializable" c:type="IBusSerializable*"/>
            </parameter>
            <parameter name="variant" transfer-ownership="none">
              <type name="GLib.Variant" c:type="GVariant*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="copy">
        <callback name="copy">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="dest" transfer-ownership="none">
              <type name="Serializable" c:type="IBusSerializable*"/>
            </parameter>
            <parameter name="src" transfer-ownership="none">
              <type name="Serializable" c:type="IBusSerializable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="5">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="SerializableCopyFunc" c:type="IBusSerializableCopyFunc">
      <doc xml:whitespace="preserve">Prototype of copy function.
Copy function copy from source #IBusSerializable to the destination one.
Returns a gboolean value which indicates whether the copying is success.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="dest" transfer-ownership="none">
          <doc xml:whitespace="preserve">The destination #IBusSerializable.</doc>
          <type name="Serializable" c:type="IBusSerializable*"/>
        </parameter>
        <parameter name="src" transfer-ownership="none">
          <doc xml:whitespace="preserve">A source #IBusMessageIter.</doc>
          <type name="Serializable" c:type="IBusSerializable*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="SerializableDeserializeFunc"
              c:type="IBusSerializableDeserializeFunc">
      <doc xml:whitespace="preserve">Prototype of deserialize function.
Deserialize function convert an IBusMessageIter to IBusSerializable.
Returns an integer value which indicates how many values in
the variant(tuple) are consumed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The number of values in the variant(tuple) are consumed.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="serializable" transfer-ownership="none">
          <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
          <type name="Serializable" c:type="IBusSerializable*"/>
        </parameter>
        <parameter name="variant" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #GVariant contains a tuple.</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="SerializablePrivate"
            c:type="IBusSerializablePrivate"
            disguised="1">
    </record>
    <callback name="SerializableSerializeFunc"
              c:type="IBusSerializableSerializeFunc">
      <doc xml:whitespace="preserve">Prototype of serialize function.
Serialize function convert an IBusSerializable to IBusMessageIter.
Returns a gboolean value which indicates whether the conversion is success.
Return %TRUE if succeed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="serializable" transfer-ownership="none">
          <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
          <type name="Serializable" c:type="IBusSerializable*"/>
        </parameter>
        <parameter name="builder" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #GVariantBuilder.</doc>
          <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Service"
           c:symbol-prefix="service"
           c:type="IBusService"
           parent="Object"
           glib:type-name="IBusService"
           glib:get-type="ibus_service_get_type"
           glib:type-struct="ServiceClass">
      <doc xml:whitespace="preserve">An opaque data type representing an IBusService.</doc>
      <constructor name="new" c:identifier="ibus_service_new">
        <doc xml:whitespace="preserve">New an IBusService.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusService</doc>
          <type name="Service" c:type="IBusService*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">Object path.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="service_get_property" throws="1">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="sender" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="interface_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="service_method_call">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="sender" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="interface_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="method_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="parameters" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
          <parameter name="invocation" transfer-ownership="none">
            <type name="Gio.DBusMethodInvocation"
                  c:type="GDBusMethodInvocation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="service_set_property" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="sender" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="interface_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="emit_signal"
              c:identifier="ibus_service_emit_signal"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="dest_bus_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="interface_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="signal_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="parameters" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_connection" c:identifier="ibus_service_get_connection">
        <doc xml:whitespace="preserve">Returns a connections.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #GDBusConnection of an #IBusService instance.</doc>
          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
        </return-value>
      </method>
      <method name="get_object_path"
              c:identifier="ibus_service_get_object_path">
        <doc xml:whitespace="preserve">Returns the object path of an IBusService.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The object path of @service</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="register" c:identifier="ibus_service_register" throws="1">
        <doc xml:whitespace="preserve">Registers service to a connection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the service was registered, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">A GDBusConnection the service will be registered to.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister" c:identifier="ibus_service_unregister">
        <doc xml:whitespace="preserve">Unregisters service from a connection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:whitespace="preserve">A GDBusConnection the service was registered with.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
        </parameters>
      </method>
      <property name="connection"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.DBusConnection"/>
      </property>
      <property name="object-path"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Object" c:type="IBusObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ServicePrivate" c:type="IBusServicePrivate*"/>
      </field>
    </class>
    <record name="ServiceClass"
            c:type="IBusServiceClass"
            glib:is-gtype-struct-for="Service">
      <field name="parent" readable="0" private="1">
        <type name="ObjectClass" c:type="IBusObjectClass"/>
      </field>
      <field name="service_method_call">
        <callback name="service_method_call">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="service" transfer-ownership="none">
              <type name="Service" c:type="IBusService*"/>
            </parameter>
            <parameter name="connection" transfer-ownership="none">
              <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
            </parameter>
            <parameter name="sender" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="object_path" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="interface_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="method_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="parameters" transfer-ownership="none">
              <type name="GLib.Variant" c:type="GVariant*"/>
            </parameter>
            <parameter name="invocation" transfer-ownership="none">
              <type name="Gio.DBusMethodInvocation"
                    c:type="GDBusMethodInvocation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="service_get_property">
        <callback name="service_get_property" throws="1">
          <return-value transfer-ownership="full">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </return-value>
          <parameters>
            <parameter name="service" transfer-ownership="none">
              <type name="Service" c:type="IBusService*"/>
            </parameter>
            <parameter name="connection" transfer-ownership="none">
              <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
            </parameter>
            <parameter name="sender" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="object_path" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="interface_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="property_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="service_set_property">
        <callback name="service_set_property" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="service" transfer-ownership="none">
              <type name="Service" c:type="IBusService*"/>
            </parameter>
            <parameter name="connection" transfer-ownership="none">
              <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
            </parameter>
            <parameter name="sender" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="object_path" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="interface_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="property_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <type name="GLib.Variant" c:type="GVariant*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="interfaces" readable="0" private="1">
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="pdummy" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="add_interfaces"
              c:identifier="ibus_service_class_add_interfaces">
        <doc xml:whitespace="preserve">Set the interface introspection information with the service class.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="xml_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The introspection xml data.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="ServicePrivate" c:type="IBusServicePrivate" disguised="1">
    </record>
    <constant name="Shift_L" value="65505" c:type="IBUS_Shift_L">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Shift_Lock" value="65510" c:type="IBUS_Shift_Lock">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Shift_R" value="65506" c:type="IBUS_Shift_R">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="SingleCandidate"
              value="65340"
              c:type="IBUS_SingleCandidate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="SlowKeys_Enable"
              value="65139"
              c:type="IBUS_SlowKeys_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="StickyKeys_Enable"
              value="65141"
              c:type="IBUS_StickyKeys_Enable">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Super_L" value="65515" c:type="IBUS_Super_L">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Super_R" value="65516" c:type="IBUS_Super_R">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Sys_Req" value="65301" c:type="IBUS_Sys_Req">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="T" value="84" c:type="IBUS_T">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="THORN" value="222" c:type="IBUS_THORN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Tab" value="65289" c:type="IBUS_Tab">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Tabovedot" value="16785002" c:type="IBUS_Tabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Tcaron" value="427" c:type="IBUS_Tcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Tcedilla" value="478" c:type="IBUS_Tcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Terminate_Server"
              value="65237"
              c:type="IBUS_Terminate_Server">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Text"
           c:symbol-prefix="text"
           c:type="IBusText"
           parent="Serializable"
           glib:type-name="IBusText"
           glib:get-type="ibus_text_get_type"
           glib:type-struct="TextClass">
      <doc xml:whitespace="preserve">A text object in IBus.</doc>
      <constructor name="new_from_printf"
                   c:identifier="ibus_text_new_from_printf"
                   introspectable="0">
        <doc xml:whitespace="preserve">New an IBusText from a printf expression.

The result of printf expression is stored in the new IBusText instance.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
        <parameters>
          <parameter name="fmt" transfer-ownership="none">
            <doc xml:whitespace="preserve">printf format string.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_static_string"
                   c:identifier="ibus_text_new_from_static_string"
                   introspectable="0">
        <doc xml:whitespace="preserve">New an IBusText from a static string.

Since @str is a static string which won't be freed.
This function will NOT duplicate @str.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:whitespace="preserve">An text string to be set.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="ibus_text_new_from_string">
        <doc xml:whitespace="preserve">New an IBusText from a string.

@str will be duplicated in IBusText, so feel free to free @str after this function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:whitespace="preserve">An text string to be set.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_ucs4" c:identifier="ibus_text_new_from_ucs4">
        <doc xml:whitespace="preserve">New an IBusText from an UCS-4 encoded string.

@str will be duplicated in IBusText, so feel free to free @str after this function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:whitespace="preserve">An text string to be set.</doc>
            <type name="gunichar" c:type="gunichar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_unichar"
                   c:identifier="ibus_text_new_from_unichar">
        <doc xml:whitespace="preserve">New an IBusText from a single UCS4-encoded character.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
          <type name="Text" c:type="IBusText*"/>
        </return-value>
        <parameters>
          <parameter name="c" transfer-ownership="none">
            <doc xml:whitespace="preserve">A single UCS4-encoded character.</doc>
            <type name="gunichar" c:type="gunichar"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append_attribute"
              c:identifier="ibus_text_append_attribute">
        <doc xml:whitespace="preserve">Append an IBusAttribute for IBusText.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">IBusAttributeType for @text.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the type.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="start_index" transfer-ownership="none">
            <doc xml:whitespace="preserve">The starting index, inclusive.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="end_index" transfer-ownership="none">
            <doc xml:whitespace="preserve">The ending index, exclusive.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attributes" c:identifier="ibus_text_get_attributes">
        <doc xml:whitespace="preserve">Return the attributes in an IBusText. Should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the attrs in @text.</doc>
          <type name="AttrList" c:type="IBusAttrList*"/>
        </return-value>
      </method>
      <method name="get_is_static"
              c:identifier="ibus_text_get_is_static"
              introspectable="0">
        <doc xml:whitespace="preserve">Return the is_static in an IBusText.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the is_static in @text.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_length" c:identifier="ibus_text_get_length">
        <doc xml:whitespace="preserve">Return number of characters in an IBusText.
This function is based on g_utf8_strlen(), so unlike strlen(),
it does not count by bytes but characters instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Number of character in @text, not counted by bytes.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_text" c:identifier="ibus_text_get_text">
        <doc xml:whitespace="preserve">Return the text in an IBusText. Should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the text in @text.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="Serializable" c:type="IBusSerializable"/>
      </field>
      <field name="is_static">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="text">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="attrs">
        <type name="AttrList" c:type="IBusAttrList*"/>
      </field>
    </class>
    <record name="TextClass"
            c:type="IBusTextClass"
            glib:is-gtype-struct-for="Text">
      <field name="parent">
        <type name="SerializableClass" c:type="IBusSerializableClass"/>
      </field>
    </record>
    <constant name="Thai_baht" value="3551" c:type="IBUS_Thai_baht">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_bobaimai" value="3514" c:type="IBUS_Thai_bobaimai">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_chochan" value="3496" c:type="IBUS_Thai_chochan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_chochang" value="3498" c:type="IBUS_Thai_chochang">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_choching" value="3497" c:type="IBUS_Thai_choching">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_chochoe" value="3500" c:type="IBUS_Thai_chochoe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_dochada" value="3502" c:type="IBUS_Thai_dochada">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_dodek" value="3508" c:type="IBUS_Thai_dodek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_fofa" value="3517" c:type="IBUS_Thai_fofa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_fofan" value="3519" c:type="IBUS_Thai_fofan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_hohip" value="3531" c:type="IBUS_Thai_hohip">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_honokhuk" value="3534" c:type="IBUS_Thai_honokhuk">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_khokhai" value="3490" c:type="IBUS_Thai_khokhai">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_khokhon" value="3493" c:type="IBUS_Thai_khokhon">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_khokhuat" value="3491" c:type="IBUS_Thai_khokhuat">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_khokhwai" value="3492" c:type="IBUS_Thai_khokhwai">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_khorakhang"
              value="3494"
              c:type="IBUS_Thai_khorakhang">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_kokai" value="3489" c:type="IBUS_Thai_kokai">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lakkhangyao"
              value="3557"
              c:type="IBUS_Thai_lakkhangyao">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lekchet" value="3575" c:type="IBUS_Thai_lekchet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lekha" value="3573" c:type="IBUS_Thai_lekha">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lekhok" value="3574" c:type="IBUS_Thai_lekhok">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lekkao" value="3577" c:type="IBUS_Thai_lekkao">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_leknung" value="3569" c:type="IBUS_Thai_leknung">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lekpaet" value="3576" c:type="IBUS_Thai_lekpaet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_leksam" value="3571" c:type="IBUS_Thai_leksam">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_leksi" value="3572" c:type="IBUS_Thai_leksi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_leksong" value="3570" c:type="IBUS_Thai_leksong">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_leksun" value="3568" c:type="IBUS_Thai_leksun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lochula" value="3532" c:type="IBUS_Thai_lochula">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_loling" value="3525" c:type="IBUS_Thai_loling">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_lu" value="3526" c:type="IBUS_Thai_lu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maichattawa"
              value="3563"
              c:type="IBUS_Thai_maichattawa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maiek" value="3560" c:type="IBUS_Thai_maiek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maihanakat"
              value="3537"
              c:type="IBUS_Thai_maihanakat">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maihanakat_maitho"
              value="3550"
              c:type="IBUS_Thai_maihanakat_maitho">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maitaikhu" value="3559" c:type="IBUS_Thai_maitaikhu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maitho" value="3561" c:type="IBUS_Thai_maitho">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maitri" value="3562" c:type="IBUS_Thai_maitri">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_maiyamok" value="3558" c:type="IBUS_Thai_maiyamok">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_moma" value="3521" c:type="IBUS_Thai_moma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_ngongu" value="3495" c:type="IBUS_Thai_ngongu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_nikhahit" value="3565" c:type="IBUS_Thai_nikhahit">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_nonen" value="3507" c:type="IBUS_Thai_nonen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_nonu" value="3513" c:type="IBUS_Thai_nonu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_oang" value="3533" c:type="IBUS_Thai_oang">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_paiyannoi" value="3535" c:type="IBUS_Thai_paiyannoi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_phinthu" value="3546" c:type="IBUS_Thai_phinthu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_phophan" value="3518" c:type="IBUS_Thai_phophan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_phophung" value="3516" c:type="IBUS_Thai_phophung">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_phosamphao"
              value="3520"
              c:type="IBUS_Thai_phosamphao">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_popla" value="3515" c:type="IBUS_Thai_popla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_rorua" value="3523" c:type="IBUS_Thai_rorua">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_ru" value="3524" c:type="IBUS_Thai_ru">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraa" value="3536" c:type="IBUS_Thai_saraa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraaa" value="3538" c:type="IBUS_Thai_saraaa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraae" value="3553" c:type="IBUS_Thai_saraae">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraaimaimalai"
              value="3556"
              c:type="IBUS_Thai_saraaimaimalai">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraaimaimuan"
              value="3555"
              c:type="IBUS_Thai_saraaimaimuan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraam" value="3539" c:type="IBUS_Thai_saraam">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sarae" value="3552" c:type="IBUS_Thai_sarae">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sarai" value="3540" c:type="IBUS_Thai_sarai">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraii" value="3541" c:type="IBUS_Thai_saraii">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sarao" value="3554" c:type="IBUS_Thai_sarao">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sarau" value="3544" c:type="IBUS_Thai_sarau">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_saraue" value="3542" c:type="IBUS_Thai_saraue">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sarauee" value="3543" c:type="IBUS_Thai_sarauee">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sarauu" value="3545" c:type="IBUS_Thai_sarauu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sorusi" value="3529" c:type="IBUS_Thai_sorusi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sosala" value="3528" c:type="IBUS_Thai_sosala">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_soso" value="3499" c:type="IBUS_Thai_soso">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_sosua" value="3530" c:type="IBUS_Thai_sosua">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_thanthakhat"
              value="3564"
              c:type="IBUS_Thai_thanthakhat">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_thonangmontho"
              value="3505"
              c:type="IBUS_Thai_thonangmontho">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_thophuthao"
              value="3506"
              c:type="IBUS_Thai_thophuthao">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_thothahan" value="3511" c:type="IBUS_Thai_thothahan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_thothan" value="3504" c:type="IBUS_Thai_thothan">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_thothong" value="3512" c:type="IBUS_Thai_thothong">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_thothung" value="3510" c:type="IBUS_Thai_thothung">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_topatak" value="3503" c:type="IBUS_Thai_topatak">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_totao" value="3509" c:type="IBUS_Thai_totao">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_wowaen" value="3527" c:type="IBUS_Thai_wowaen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_yoyak" value="3522" c:type="IBUS_Thai_yoyak">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thai_yoying" value="3501" c:type="IBUS_Thai_yoying">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Thorn" value="222" c:type="IBUS_Thorn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Touroku" value="65323" c:type="IBUS_Touroku">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Tslash" value="940" c:type="IBUS_Tslash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="U" value="85" c:type="IBUS_U">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uacute" value="218" c:type="IBUS_Uacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ubelowdot" value="16785124" c:type="IBUS_Ubelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ubreve" value="733" c:type="IBUS_Ubreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ucircumflex" value="219" c:type="IBUS_Ucircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Udiaeresis" value="220" c:type="IBUS_Udiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Udoubleacute" value="475" c:type="IBUS_Udoubleacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ugrave" value="217" c:type="IBUS_Ugrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uhook" value="16785126" c:type="IBUS_Uhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uhorn" value="16777647" c:type="IBUS_Uhorn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uhornacute" value="16785128" c:type="IBUS_Uhornacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uhornbelowdot"
              value="16785136"
              c:type="IBUS_Uhornbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uhorngrave" value="16785130" c:type="IBUS_Uhorngrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uhornhook" value="16785132" c:type="IBUS_Uhornhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uhorntilde" value="16785134" c:type="IBUS_Uhorntilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_GHE_WITH_UPTURN"
              value="1725"
              c:type="IBUS_Ukrainian_GHE_WITH_UPTURN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_I" value="1718" c:type="IBUS_Ukrainian_I">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_IE" value="1716" c:type="IBUS_Ukrainian_IE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_YI" value="1719" c:type="IBUS_Ukrainian_YI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_ghe_with_upturn"
              value="1709"
              c:type="IBUS_Ukrainian_ghe_with_upturn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_i" value="1702" c:type="IBUS_Ukrainian_i">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_ie" value="1700" c:type="IBUS_Ukrainian_ie">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukrainian_yi" value="1703" c:type="IBUS_Ukrainian_yi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukranian_I" value="1718" c:type="IBUS_Ukranian_I">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukranian_JE" value="1716" c:type="IBUS_Ukranian_JE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukranian_YI" value="1719" c:type="IBUS_Ukranian_YI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukranian_i" value="1702" c:type="IBUS_Ukranian_i">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukranian_je" value="1700" c:type="IBUS_Ukranian_je">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ukranian_yi" value="1703" c:type="IBUS_Ukranian_yi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Umacron" value="990" c:type="IBUS_Umacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Undo" value="65381" c:type="IBUS_Undo">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uogonek" value="985" c:type="IBUS_Uogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Up" value="65362" c:type="IBUS_Up">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Uring" value="473" c:type="IBUS_Uring">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Utilde" value="989" c:type="IBUS_Utilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="V" value="86" c:type="IBUS_V">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="VoidSymbol" value="16777215" c:type="IBUS_VoidSymbol">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="W" value="87" c:type="IBUS_W">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Wacute" value="16785026" c:type="IBUS_Wacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Wcircumflex" value="16777588" c:type="IBUS_Wcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Wdiaeresis" value="16785028" c:type="IBUS_Wdiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Wgrave" value="16785024" c:type="IBUS_Wgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="WonSign" value="16785577" c:type="IBUS_WonSign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="X" value="88" c:type="IBUS_X">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Xabovedot" value="16785034" c:type="IBUS_Xabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Y" value="89" c:type="IBUS_Y">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Yacute" value="221" c:type="IBUS_Yacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ybelowdot" value="16785140" c:type="IBUS_Ybelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ycircumflex" value="16777590" c:type="IBUS_Ycircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ydiaeresis" value="5054" c:type="IBUS_Ydiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ygrave" value="16785138" c:type="IBUS_Ygrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Yhook" value="16785142" c:type="IBUS_Yhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Ytilde" value="16785144" c:type="IBUS_Ytilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Z" value="90" c:type="IBUS_Z">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Zabovedot" value="431" c:type="IBUS_Zabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Zacute" value="428" c:type="IBUS_Zacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Zcaron" value="430" c:type="IBUS_Zcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Zen_Koho" value="65341" c:type="IBUS_Zen_Koho">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Zenkaku" value="65320" c:type="IBUS_Zenkaku">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Zenkaku_Hankaku"
              value="65322"
              c:type="IBUS_Zenkaku_Hankaku">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="Zstroke" value="16777653" c:type="IBUS_Zstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="a" value="97" c:type="IBUS_a">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="aacute" value="225" c:type="IBUS_aacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abelowdot" value="16785057" c:type="IBUS_abelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abovedot" value="511" c:type="IBUS_abovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abreve" value="483" c:type="IBUS_abreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abreveacute" value="16785071" c:type="IBUS_abreveacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abrevebelowdot"
              value="16785079"
              c:type="IBUS_abrevebelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abrevegrave" value="16785073" c:type="IBUS_abrevegrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abrevehook" value="16785075" c:type="IBUS_abrevehook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="abrevetilde" value="16785077" c:type="IBUS_abrevetilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="acircumflex" value="226" c:type="IBUS_acircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="acircumflexacute"
              value="16785061"
              c:type="IBUS_acircumflexacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="acircumflexbelowdot"
              value="16785069"
              c:type="IBUS_acircumflexbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="acircumflexgrave"
              value="16785063"
              c:type="IBUS_acircumflexgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="acircumflexhook"
              value="16785065"
              c:type="IBUS_acircumflexhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="acircumflextilde"
              value="16785067"
              c:type="IBUS_acircumflextilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="acute" value="180" c:type="IBUS_acute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="adiaeresis" value="228" c:type="IBUS_adiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ae" value="230" c:type="IBUS_ae">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="agrave" value="224" c:type="IBUS_agrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ahook" value="16785059" c:type="IBUS_ahook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="amacron" value="992" c:type="IBUS_amacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ampersand" value="38" c:type="IBUS_ampersand">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="aogonek" value="433" c:type="IBUS_aogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="apostrophe" value="39" c:type="IBUS_apostrophe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="approxeq" value="16785992" c:type="IBUS_approxeq">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="approximate" value="2248" c:type="IBUS_approximate">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="aring" value="229" c:type="IBUS_aring">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="asciicircum" value="94" c:type="IBUS_asciicircum">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="asciitilde" value="126" c:type="IBUS_asciitilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="asterisk" value="42" c:type="IBUS_asterisk">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="at" value="64" c:type="IBUS_at">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="atilde" value="227" c:type="IBUS_atilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="attr_background_new"
              c:identifier="ibus_attr_background_new"
              introspectable="0">
      <doc xml:whitespace="preserve">New an background #IBusAttribute.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A newly allocated #IBusAttribute.</doc>
        <type name="Attribute" c:type="IBusAttribute*"/>
      </return-value>
      <parameters>
        <parameter name="color" transfer-ownership="none">
          <doc xml:whitespace="preserve">Color in RGB.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="start_index" transfer-ownership="none">
          <doc xml:whitespace="preserve">Where attribute starts.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="end_index" transfer-ownership="none">
          <doc xml:whitespace="preserve">Where attribute ends.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="attr_foreground_new"
              c:identifier="ibus_attr_foreground_new"
              introspectable="0">
      <doc xml:whitespace="preserve">New an foreground #IBusAttribute.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A newly allocated #IBusAttribute.</doc>
        <type name="Attribute" c:type="IBusAttribute*"/>
      </return-value>
      <parameters>
        <parameter name="color" transfer-ownership="none">
          <doc xml:whitespace="preserve">Color in RGB.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="start_index" transfer-ownership="none">
          <doc xml:whitespace="preserve">Where attribute starts.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="end_index" transfer-ownership="none">
          <doc xml:whitespace="preserve">Where attribute ends.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <constant name="b" value="98" c:type="IBUS_b">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="babovedot" value="16784899" c:type="IBUS_babovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="backslash" value="92" c:type="IBUS_backslash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ballotcross" value="2804" c:type="IBUS_ballotcross">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="bar" value="124" c:type="IBUS_bar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="because" value="16785973" c:type="IBUS_because">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="blank" value="2527" c:type="IBUS_blank">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botintegral" value="2213" c:type="IBUS_botintegral">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botleftparens" value="2220" c:type="IBUS_botleftparens">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botleftsqbracket"
              value="2216"
              c:type="IBUS_botleftsqbracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botleftsummation"
              value="2226"
              c:type="IBUS_botleftsummation">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botrightparens" value="2222" c:type="IBUS_botrightparens">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botrightsqbracket"
              value="2218"
              c:type="IBUS_botrightsqbracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botrightsummation"
              value="2230"
              c:type="IBUS_botrightsummation">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="bott" value="2550" c:type="IBUS_bott">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="botvertsummationconnector"
              value="2228"
              c:type="IBUS_botvertsummationconnector">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braceleft" value="123" c:type="IBUS_braceleft">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braceright" value="125" c:type="IBUS_braceright">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="bracketleft" value="91" c:type="IBUS_bracketleft">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="bracketright" value="93" c:type="IBUS_bracketright">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_blank"
              value="16787456"
              c:type="IBUS_braille_blank">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_1" value="65521" c:type="IBUS_braille_dot_1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_10" value="65530" c:type="IBUS_braille_dot_10">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_2" value="65522" c:type="IBUS_braille_dot_2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_3" value="65523" c:type="IBUS_braille_dot_3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_4" value="65524" c:type="IBUS_braille_dot_4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_5" value="65525" c:type="IBUS_braille_dot_5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_6" value="65526" c:type="IBUS_braille_dot_6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_7" value="65527" c:type="IBUS_braille_dot_7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_8" value="65528" c:type="IBUS_braille_dot_8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dot_9" value="65529" c:type="IBUS_braille_dot_9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1"
              value="16787457"
              c:type="IBUS_braille_dots_1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12"
              value="16787459"
              c:type="IBUS_braille_dots_12">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123"
              value="16787463"
              c:type="IBUS_braille_dots_123">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1234"
              value="16787471"
              c:type="IBUS_braille_dots_1234">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12345"
              value="16787487"
              c:type="IBUS_braille_dots_12345">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123456"
              value="16787519"
              c:type="IBUS_braille_dots_123456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1234567"
              value="16787583"
              c:type="IBUS_braille_dots_1234567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12345678"
              value="16787711"
              c:type="IBUS_braille_dots_12345678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1234568"
              value="16787647"
              c:type="IBUS_braille_dots_1234568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123457"
              value="16787551"
              c:type="IBUS_braille_dots_123457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1234578"
              value="16787679"
              c:type="IBUS_braille_dots_1234578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123458"
              value="16787615"
              c:type="IBUS_braille_dots_123458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12346"
              value="16787503"
              c:type="IBUS_braille_dots_12346">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123467"
              value="16787567"
              c:type="IBUS_braille_dots_123467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1234678"
              value="16787695"
              c:type="IBUS_braille_dots_1234678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123468"
              value="16787631"
              c:type="IBUS_braille_dots_123468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12347"
              value="16787535"
              c:type="IBUS_braille_dots_12347">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123478"
              value="16787663"
              c:type="IBUS_braille_dots_123478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12348"
              value="16787599"
              c:type="IBUS_braille_dots_12348">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1235"
              value="16787479"
              c:type="IBUS_braille_dots_1235">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12356"
              value="16787511"
              c:type="IBUS_braille_dots_12356">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123567"
              value="16787575"
              c:type="IBUS_braille_dots_123567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1235678"
              value="16787703"
              c:type="IBUS_braille_dots_1235678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123568"
              value="16787639"
              c:type="IBUS_braille_dots_123568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12357"
              value="16787543"
              c:type="IBUS_braille_dots_12357">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123578"
              value="16787671"
              c:type="IBUS_braille_dots_123578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12358"
              value="16787607"
              c:type="IBUS_braille_dots_12358">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1236"
              value="16787495"
              c:type="IBUS_braille_dots_1236">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12367"
              value="16787559"
              c:type="IBUS_braille_dots_12367">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_123678"
              value="16787687"
              c:type="IBUS_braille_dots_123678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12368"
              value="16787623"
              c:type="IBUS_braille_dots_12368">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1237"
              value="16787527"
              c:type="IBUS_braille_dots_1237">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12378"
              value="16787655"
              c:type="IBUS_braille_dots_12378">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1238"
              value="16787591"
              c:type="IBUS_braille_dots_1238">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_124"
              value="16787467"
              c:type="IBUS_braille_dots_124">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1245"
              value="16787483"
              c:type="IBUS_braille_dots_1245">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12456"
              value="16787515"
              c:type="IBUS_braille_dots_12456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_124567"
              value="16787579"
              c:type="IBUS_braille_dots_124567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1245678"
              value="16787707"
              c:type="IBUS_braille_dots_1245678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_124568"
              value="16787643"
              c:type="IBUS_braille_dots_124568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12457"
              value="16787547"
              c:type="IBUS_braille_dots_12457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_124578"
              value="16787675"
              c:type="IBUS_braille_dots_124578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12458"
              value="16787611"
              c:type="IBUS_braille_dots_12458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1246"
              value="16787499"
              c:type="IBUS_braille_dots_1246">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12467"
              value="16787563"
              c:type="IBUS_braille_dots_12467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_124678"
              value="16787691"
              c:type="IBUS_braille_dots_124678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12468"
              value="16787627"
              c:type="IBUS_braille_dots_12468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1247"
              value="16787531"
              c:type="IBUS_braille_dots_1247">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12478"
              value="16787659"
              c:type="IBUS_braille_dots_12478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1248"
              value="16787595"
              c:type="IBUS_braille_dots_1248">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_125"
              value="16787475"
              c:type="IBUS_braille_dots_125">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1256"
              value="16787507"
              c:type="IBUS_braille_dots_1256">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12567"
              value="16787571"
              c:type="IBUS_braille_dots_12567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_125678"
              value="16787699"
              c:type="IBUS_braille_dots_125678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12568"
              value="16787635"
              c:type="IBUS_braille_dots_12568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1257"
              value="16787539"
              c:type="IBUS_braille_dots_1257">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12578"
              value="16787667"
              c:type="IBUS_braille_dots_12578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1258"
              value="16787603"
              c:type="IBUS_braille_dots_1258">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_126"
              value="16787491"
              c:type="IBUS_braille_dots_126">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1267"
              value="16787555"
              c:type="IBUS_braille_dots_1267">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_12678"
              value="16787683"
              c:type="IBUS_braille_dots_12678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1268"
              value="16787619"
              c:type="IBUS_braille_dots_1268">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_127"
              value="16787523"
              c:type="IBUS_braille_dots_127">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1278"
              value="16787651"
              c:type="IBUS_braille_dots_1278">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_128"
              value="16787587"
              c:type="IBUS_braille_dots_128">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13"
              value="16787461"
              c:type="IBUS_braille_dots_13">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_134"
              value="16787469"
              c:type="IBUS_braille_dots_134">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1345"
              value="16787485"
              c:type="IBUS_braille_dots_1345">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13456"
              value="16787517"
              c:type="IBUS_braille_dots_13456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_134567"
              value="16787581"
              c:type="IBUS_braille_dots_134567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1345678"
              value="16787709"
              c:type="IBUS_braille_dots_1345678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_134568"
              value="16787645"
              c:type="IBUS_braille_dots_134568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13457"
              value="16787549"
              c:type="IBUS_braille_dots_13457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_134578"
              value="16787677"
              c:type="IBUS_braille_dots_134578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13458"
              value="16787613"
              c:type="IBUS_braille_dots_13458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1346"
              value="16787501"
              c:type="IBUS_braille_dots_1346">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13467"
              value="16787565"
              c:type="IBUS_braille_dots_13467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_134678"
              value="16787693"
              c:type="IBUS_braille_dots_134678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13468"
              value="16787629"
              c:type="IBUS_braille_dots_13468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1347"
              value="16787533"
              c:type="IBUS_braille_dots_1347">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13478"
              value="16787661"
              c:type="IBUS_braille_dots_13478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1348"
              value="16787597"
              c:type="IBUS_braille_dots_1348">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_135"
              value="16787477"
              c:type="IBUS_braille_dots_135">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1356"
              value="16787509"
              c:type="IBUS_braille_dots_1356">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13567"
              value="16787573"
              c:type="IBUS_braille_dots_13567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_135678"
              value="16787701"
              c:type="IBUS_braille_dots_135678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13568"
              value="16787637"
              c:type="IBUS_braille_dots_13568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1357"
              value="16787541"
              c:type="IBUS_braille_dots_1357">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13578"
              value="16787669"
              c:type="IBUS_braille_dots_13578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1358"
              value="16787605"
              c:type="IBUS_braille_dots_1358">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_136"
              value="16787493"
              c:type="IBUS_braille_dots_136">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1367"
              value="16787557"
              c:type="IBUS_braille_dots_1367">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_13678"
              value="16787685"
              c:type="IBUS_braille_dots_13678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1368"
              value="16787621"
              c:type="IBUS_braille_dots_1368">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_137"
              value="16787525"
              c:type="IBUS_braille_dots_137">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1378"
              value="16787653"
              c:type="IBUS_braille_dots_1378">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_138"
              value="16787589"
              c:type="IBUS_braille_dots_138">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_14"
              value="16787465"
              c:type="IBUS_braille_dots_14">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_145"
              value="16787481"
              c:type="IBUS_braille_dots_145">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1456"
              value="16787513"
              c:type="IBUS_braille_dots_1456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_14567"
              value="16787577"
              c:type="IBUS_braille_dots_14567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_145678"
              value="16787705"
              c:type="IBUS_braille_dots_145678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_14568"
              value="16787641"
              c:type="IBUS_braille_dots_14568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1457"
              value="16787545"
              c:type="IBUS_braille_dots_1457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_14578"
              value="16787673"
              c:type="IBUS_braille_dots_14578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1458"
              value="16787609"
              c:type="IBUS_braille_dots_1458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_146"
              value="16787497"
              c:type="IBUS_braille_dots_146">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1467"
              value="16787561"
              c:type="IBUS_braille_dots_1467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_14678"
              value="16787689"
              c:type="IBUS_braille_dots_14678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1468"
              value="16787625"
              c:type="IBUS_braille_dots_1468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_147"
              value="16787529"
              c:type="IBUS_braille_dots_147">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1478"
              value="16787657"
              c:type="IBUS_braille_dots_1478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_148"
              value="16787593"
              c:type="IBUS_braille_dots_148">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_15"
              value="16787473"
              c:type="IBUS_braille_dots_15">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_156"
              value="16787505"
              c:type="IBUS_braille_dots_156">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1567"
              value="16787569"
              c:type="IBUS_braille_dots_1567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_15678"
              value="16787697"
              c:type="IBUS_braille_dots_15678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1568"
              value="16787633"
              c:type="IBUS_braille_dots_1568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_157"
              value="16787537"
              c:type="IBUS_braille_dots_157">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1578"
              value="16787665"
              c:type="IBUS_braille_dots_1578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_158"
              value="16787601"
              c:type="IBUS_braille_dots_158">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_16"
              value="16787489"
              c:type="IBUS_braille_dots_16">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_167"
              value="16787553"
              c:type="IBUS_braille_dots_167">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_1678"
              value="16787681"
              c:type="IBUS_braille_dots_1678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_168"
              value="16787617"
              c:type="IBUS_braille_dots_168">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_17"
              value="16787521"
              c:type="IBUS_braille_dots_17">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_178"
              value="16787649"
              c:type="IBUS_braille_dots_178">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_18"
              value="16787585"
              c:type="IBUS_braille_dots_18">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2"
              value="16787458"
              c:type="IBUS_braille_dots_2">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23"
              value="16787462"
              c:type="IBUS_braille_dots_23">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_234"
              value="16787470"
              c:type="IBUS_braille_dots_234">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2345"
              value="16787486"
              c:type="IBUS_braille_dots_2345">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23456"
              value="16787518"
              c:type="IBUS_braille_dots_23456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_234567"
              value="16787582"
              c:type="IBUS_braille_dots_234567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2345678"
              value="16787710"
              c:type="IBUS_braille_dots_2345678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_234568"
              value="16787646"
              c:type="IBUS_braille_dots_234568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23457"
              value="16787550"
              c:type="IBUS_braille_dots_23457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_234578"
              value="16787678"
              c:type="IBUS_braille_dots_234578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23458"
              value="16787614"
              c:type="IBUS_braille_dots_23458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2346"
              value="16787502"
              c:type="IBUS_braille_dots_2346">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23467"
              value="16787566"
              c:type="IBUS_braille_dots_23467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_234678"
              value="16787694"
              c:type="IBUS_braille_dots_234678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23468"
              value="16787630"
              c:type="IBUS_braille_dots_23468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2347"
              value="16787534"
              c:type="IBUS_braille_dots_2347">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23478"
              value="16787662"
              c:type="IBUS_braille_dots_23478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2348"
              value="16787598"
              c:type="IBUS_braille_dots_2348">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_235"
              value="16787478"
              c:type="IBUS_braille_dots_235">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2356"
              value="16787510"
              c:type="IBUS_braille_dots_2356">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23567"
              value="16787574"
              c:type="IBUS_braille_dots_23567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_235678"
              value="16787702"
              c:type="IBUS_braille_dots_235678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23568"
              value="16787638"
              c:type="IBUS_braille_dots_23568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2357"
              value="16787542"
              c:type="IBUS_braille_dots_2357">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23578"
              value="16787670"
              c:type="IBUS_braille_dots_23578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2358"
              value="16787606"
              c:type="IBUS_braille_dots_2358">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_236"
              value="16787494"
              c:type="IBUS_braille_dots_236">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2367"
              value="16787558"
              c:type="IBUS_braille_dots_2367">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_23678"
              value="16787686"
              c:type="IBUS_braille_dots_23678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2368"
              value="16787622"
              c:type="IBUS_braille_dots_2368">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_237"
              value="16787526"
              c:type="IBUS_braille_dots_237">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2378"
              value="16787654"
              c:type="IBUS_braille_dots_2378">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_238"
              value="16787590"
              c:type="IBUS_braille_dots_238">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_24"
              value="16787466"
              c:type="IBUS_braille_dots_24">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_245"
              value="16787482"
              c:type="IBUS_braille_dots_245">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2456"
              value="16787514"
              c:type="IBUS_braille_dots_2456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_24567"
              value="16787578"
              c:type="IBUS_braille_dots_24567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_245678"
              value="16787706"
              c:type="IBUS_braille_dots_245678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_24568"
              value="16787642"
              c:type="IBUS_braille_dots_24568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2457"
              value="16787546"
              c:type="IBUS_braille_dots_2457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_24578"
              value="16787674"
              c:type="IBUS_braille_dots_24578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2458"
              value="16787610"
              c:type="IBUS_braille_dots_2458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_246"
              value="16787498"
              c:type="IBUS_braille_dots_246">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2467"
              value="16787562"
              c:type="IBUS_braille_dots_2467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_24678"
              value="16787690"
              c:type="IBUS_braille_dots_24678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2468"
              value="16787626"
              c:type="IBUS_braille_dots_2468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_247"
              value="16787530"
              c:type="IBUS_braille_dots_247">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2478"
              value="16787658"
              c:type="IBUS_braille_dots_2478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_248"
              value="16787594"
              c:type="IBUS_braille_dots_248">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_25"
              value="16787474"
              c:type="IBUS_braille_dots_25">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_256"
              value="16787506"
              c:type="IBUS_braille_dots_256">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2567"
              value="16787570"
              c:type="IBUS_braille_dots_2567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_25678"
              value="16787698"
              c:type="IBUS_braille_dots_25678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2568"
              value="16787634"
              c:type="IBUS_braille_dots_2568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_257"
              value="16787538"
              c:type="IBUS_braille_dots_257">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2578"
              value="16787666"
              c:type="IBUS_braille_dots_2578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_258"
              value="16787602"
              c:type="IBUS_braille_dots_258">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_26"
              value="16787490"
              c:type="IBUS_braille_dots_26">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_267"
              value="16787554"
              c:type="IBUS_braille_dots_267">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_2678"
              value="16787682"
              c:type="IBUS_braille_dots_2678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_268"
              value="16787618"
              c:type="IBUS_braille_dots_268">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_27"
              value="16787522"
              c:type="IBUS_braille_dots_27">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_278"
              value="16787650"
              c:type="IBUS_braille_dots_278">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_28"
              value="16787586"
              c:type="IBUS_braille_dots_28">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3"
              value="16787460"
              c:type="IBUS_braille_dots_3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_34"
              value="16787468"
              c:type="IBUS_braille_dots_34">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_345"
              value="16787484"
              c:type="IBUS_braille_dots_345">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3456"
              value="16787516"
              c:type="IBUS_braille_dots_3456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_34567"
              value="16787580"
              c:type="IBUS_braille_dots_34567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_345678"
              value="16787708"
              c:type="IBUS_braille_dots_345678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_34568"
              value="16787644"
              c:type="IBUS_braille_dots_34568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3457"
              value="16787548"
              c:type="IBUS_braille_dots_3457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_34578"
              value="16787676"
              c:type="IBUS_braille_dots_34578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3458"
              value="16787612"
              c:type="IBUS_braille_dots_3458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_346"
              value="16787500"
              c:type="IBUS_braille_dots_346">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3467"
              value="16787564"
              c:type="IBUS_braille_dots_3467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_34678"
              value="16787692"
              c:type="IBUS_braille_dots_34678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3468"
              value="16787628"
              c:type="IBUS_braille_dots_3468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_347"
              value="16787532"
              c:type="IBUS_braille_dots_347">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3478"
              value="16787660"
              c:type="IBUS_braille_dots_3478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_348"
              value="16787596"
              c:type="IBUS_braille_dots_348">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_35"
              value="16787476"
              c:type="IBUS_braille_dots_35">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_356"
              value="16787508"
              c:type="IBUS_braille_dots_356">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3567"
              value="16787572"
              c:type="IBUS_braille_dots_3567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_35678"
              value="16787700"
              c:type="IBUS_braille_dots_35678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3568"
              value="16787636"
              c:type="IBUS_braille_dots_3568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_357"
              value="16787540"
              c:type="IBUS_braille_dots_357">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3578"
              value="16787668"
              c:type="IBUS_braille_dots_3578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_358"
              value="16787604"
              c:type="IBUS_braille_dots_358">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_36"
              value="16787492"
              c:type="IBUS_braille_dots_36">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_367"
              value="16787556"
              c:type="IBUS_braille_dots_367">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_3678"
              value="16787684"
              c:type="IBUS_braille_dots_3678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_368"
              value="16787620"
              c:type="IBUS_braille_dots_368">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_37"
              value="16787524"
              c:type="IBUS_braille_dots_37">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_378"
              value="16787652"
              c:type="IBUS_braille_dots_378">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_38"
              value="16787588"
              c:type="IBUS_braille_dots_38">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_4"
              value="16787464"
              c:type="IBUS_braille_dots_4">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_45"
              value="16787480"
              c:type="IBUS_braille_dots_45">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_456"
              value="16787512"
              c:type="IBUS_braille_dots_456">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_4567"
              value="16787576"
              c:type="IBUS_braille_dots_4567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_45678"
              value="16787704"
              c:type="IBUS_braille_dots_45678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_4568"
              value="16787640"
              c:type="IBUS_braille_dots_4568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_457"
              value="16787544"
              c:type="IBUS_braille_dots_457">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_4578"
              value="16787672"
              c:type="IBUS_braille_dots_4578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_458"
              value="16787608"
              c:type="IBUS_braille_dots_458">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_46"
              value="16787496"
              c:type="IBUS_braille_dots_46">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_467"
              value="16787560"
              c:type="IBUS_braille_dots_467">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_4678"
              value="16787688"
              c:type="IBUS_braille_dots_4678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_468"
              value="16787624"
              c:type="IBUS_braille_dots_468">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_47"
              value="16787528"
              c:type="IBUS_braille_dots_47">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_478"
              value="16787656"
              c:type="IBUS_braille_dots_478">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_48"
              value="16787592"
              c:type="IBUS_braille_dots_48">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_5"
              value="16787472"
              c:type="IBUS_braille_dots_5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_56"
              value="16787504"
              c:type="IBUS_braille_dots_56">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_567"
              value="16787568"
              c:type="IBUS_braille_dots_567">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_5678"
              value="16787696"
              c:type="IBUS_braille_dots_5678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_568"
              value="16787632"
              c:type="IBUS_braille_dots_568">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_57"
              value="16787536"
              c:type="IBUS_braille_dots_57">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_578"
              value="16787664"
              c:type="IBUS_braille_dots_578">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_58"
              value="16787600"
              c:type="IBUS_braille_dots_58">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_6"
              value="16787488"
              c:type="IBUS_braille_dots_6">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_67"
              value="16787552"
              c:type="IBUS_braille_dots_67">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_678"
              value="16787680"
              c:type="IBUS_braille_dots_678">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_68"
              value="16787616"
              c:type="IBUS_braille_dots_68">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_7"
              value="16787520"
              c:type="IBUS_braille_dots_7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_78"
              value="16787648"
              c:type="IBUS_braille_dots_78">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="braille_dots_8"
              value="16787584"
              c:type="IBUS_braille_dots_8">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="breve" value="418" c:type="IBUS_breve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="brokenbar" value="166" c:type="IBUS_brokenbar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="c" value="99" c:type="IBUS_c">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="cabovedot" value="741" c:type="IBUS_cabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="cacute" value="486" c:type="IBUS_cacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="careof" value="2744" c:type="IBUS_careof">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="caret" value="2812" c:type="IBUS_caret">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="caron" value="439" c:type="IBUS_caron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ccaron" value="488" c:type="IBUS_ccaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ccedilla" value="231" c:type="IBUS_ccedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ccircumflex" value="742" c:type="IBUS_ccircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="cedilla" value="184" c:type="IBUS_cedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="cent" value="162" c:type="IBUS_cent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="checkerboard" value="2529" c:type="IBUS_checkerboard">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="checkmark" value="2803" c:type="IBUS_checkmark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="circle" value="3023" c:type="IBUS_circle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="club" value="2796" c:type="IBUS_club">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="colon" value="58" c:type="IBUS_colon">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="comma" value="44" c:type="IBUS_comma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="containsas" value="16785931" c:type="IBUS_containsas">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="copyright" value="169" c:type="IBUS_copyright">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="cr" value="2532" c:type="IBUS_cr">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="crossinglines" value="2542" c:type="IBUS_crossinglines">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="cuberoot" value="16785947" c:type="IBUS_cuberoot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="currency" value="164" c:type="IBUS_currency">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="cursor" value="2815" c:type="IBUS_cursor">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="d" value="100" c:type="IBUS_d">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dabovedot" value="16784907" c:type="IBUS_dabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dagger" value="2801" c:type="IBUS_dagger">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dcaron" value="495" c:type="IBUS_dcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_abovecomma"
              value="65124"
              c:type="IBUS_dead_abovecomma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_abovedot" value="65110" c:type="IBUS_dead_abovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_abovereversedcomma"
              value="65125"
              c:type="IBUS_dead_abovereversedcomma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_abovering" value="65112" c:type="IBUS_dead_abovering">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_acute" value="65105" c:type="IBUS_dead_acute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_belowbreve"
              value="65131"
              c:type="IBUS_dead_belowbreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_belowcircumflex"
              value="65129"
              c:type="IBUS_dead_belowcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_belowdiaeresis"
              value="65132"
              c:type="IBUS_dead_belowdiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_belowdot" value="65120" c:type="IBUS_dead_belowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_belowmacron"
              value="65128"
              c:type="IBUS_dead_belowmacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_belowring" value="65127" c:type="IBUS_dead_belowring">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_belowtilde"
              value="65130"
              c:type="IBUS_dead_belowtilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_breve" value="65109" c:type="IBUS_dead_breve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_caron" value="65114" c:type="IBUS_dead_caron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_cedilla" value="65115" c:type="IBUS_dead_cedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_circumflex"
              value="65106"
              c:type="IBUS_dead_circumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_dasia" value="65125" c:type="IBUS_dead_dasia">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_diaeresis" value="65111" c:type="IBUS_dead_diaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_doubleacute"
              value="65113"
              c:type="IBUS_dead_doubleacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_grave" value="65104" c:type="IBUS_dead_grave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_hook" value="65121" c:type="IBUS_dead_hook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_horn" value="65122" c:type="IBUS_dead_horn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_iota" value="65117" c:type="IBUS_dead_iota">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_macron" value="65108" c:type="IBUS_dead_macron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_ogonek" value="65116" c:type="IBUS_dead_ogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_perispomeni"
              value="65107"
              c:type="IBUS_dead_perispomeni">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_psili" value="65124" c:type="IBUS_dead_psili">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_semivoiced_sound"
              value="65119"
              c:type="IBUS_dead_semivoiced_sound">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_stroke" value="65123" c:type="IBUS_dead_stroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_tilde" value="65107" c:type="IBUS_dead_tilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dead_voiced_sound"
              value="65118"
              c:type="IBUS_dead_voiced_sound">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="decimalpoint" value="2749" c:type="IBUS_decimalpoint">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="degree" value="176" c:type="IBUS_degree">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="diaeresis" value="168" c:type="IBUS_diaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="diamond" value="2797" c:type="IBUS_diamond">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="digitspace" value="2725" c:type="IBUS_digitspace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dintegral" value="16785964" c:type="IBUS_dintegral">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="division" value="247" c:type="IBUS_division">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dollar" value="36" c:type="IBUS_dollar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="doubbaselinedot"
              value="2735"
              c:type="IBUS_doubbaselinedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="doubleacute" value="445" c:type="IBUS_doubleacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="doubledagger" value="2802" c:type="IBUS_doubledagger">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="doublelowquotemark"
              value="2814"
              c:type="IBUS_doublelowquotemark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="downarrow" value="2302" c:type="IBUS_downarrow">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="downcaret" value="2984" c:type="IBUS_downcaret">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="downshoe" value="3030" c:type="IBUS_downshoe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="downstile" value="3012" c:type="IBUS_downstile">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="downtack" value="3010" c:type="IBUS_downtack">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="dstroke" value="496" c:type="IBUS_dstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="e" value="101" c:type="IBUS_e">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="eabovedot" value="1004" c:type="IBUS_eabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="eacute" value="233" c:type="IBUS_eacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ebelowdot" value="16785081" c:type="IBUS_ebelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ecaron" value="492" c:type="IBUS_ecaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ecircumflex" value="234" c:type="IBUS_ecircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ecircumflexacute"
              value="16785087"
              c:type="IBUS_ecircumflexacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ecircumflexbelowdot"
              value="16785095"
              c:type="IBUS_ecircumflexbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ecircumflexgrave"
              value="16785089"
              c:type="IBUS_ecircumflexgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ecircumflexhook"
              value="16785091"
              c:type="IBUS_ecircumflexhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ecircumflextilde"
              value="16785093"
              c:type="IBUS_ecircumflextilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ediaeresis" value="235" c:type="IBUS_ediaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="egrave" value="232" c:type="IBUS_egrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ehook" value="16785083" c:type="IBUS_ehook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="eightsubscript"
              value="16785544"
              c:type="IBUS_eightsubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="eightsuperior"
              value="16785528"
              c:type="IBUS_eightsuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="elementof" value="16785928" c:type="IBUS_elementof">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ellipsis" value="2734" c:type="IBUS_ellipsis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="em3space" value="2723" c:type="IBUS_em3space">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="em4space" value="2724" c:type="IBUS_em4space">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emacron" value="954" c:type="IBUS_emacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emdash" value="2729" c:type="IBUS_emdash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emfilledcircle" value="2782" c:type="IBUS_emfilledcircle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emfilledrect" value="2783" c:type="IBUS_emfilledrect">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emopencircle" value="2766" c:type="IBUS_emopencircle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emopenrectangle"
              value="2767"
              c:type="IBUS_emopenrectangle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emptyset" value="16785925" c:type="IBUS_emptyset">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="emspace" value="2721" c:type="IBUS_emspace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="endash" value="2730" c:type="IBUS_endash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="enfilledcircbullet"
              value="2790"
              c:type="IBUS_enfilledcircbullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="enfilledsqbullet"
              value="2791"
              c:type="IBUS_enfilledsqbullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="eng" value="959" c:type="IBUS_eng">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="enopencircbullet"
              value="2784"
              c:type="IBUS_enopencircbullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="enopensquarebullet"
              value="2785"
              c:type="IBUS_enopensquarebullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="enspace" value="2722" c:type="IBUS_enspace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="eogonek" value="490" c:type="IBUS_eogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="equal" value="61" c:type="IBUS_equal">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="error_quark"
              c:identifier="ibus_error_quark"
              moved-to="Error.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <constant name="eth" value="240" c:type="IBUS_eth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="etilde" value="16785085" c:type="IBUS_etilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="exclam" value="33" c:type="IBUS_exclam">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="exclamdown" value="161" c:type="IBUS_exclamdown">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="f" value="102" c:type="IBUS_f">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="fabovedot" value="16784927" c:type="IBUS_fabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="femalesymbol" value="2808" c:type="IBUS_femalesymbol">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ff" value="2531" c:type="IBUS_ff">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="figdash" value="2747" c:type="IBUS_figdash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="filledlefttribullet"
              value="2780"
              c:type="IBUS_filledlefttribullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="filledrectbullet"
              value="2779"
              c:type="IBUS_filledrectbullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="filledrighttribullet"
              value="2781"
              c:type="IBUS_filledrighttribullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="filledtribulletdown"
              value="2793"
              c:type="IBUS_filledtribulletdown">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="filledtribulletup"
              value="2792"
              c:type="IBUS_filledtribulletup">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="fiveeighths" value="2757" c:type="IBUS_fiveeighths">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="fivesixths" value="2743" c:type="IBUS_fivesixths">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="fivesubscript"
              value="16785541"
              c:type="IBUS_fivesubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="fivesuperior" value="16785525" c:type="IBUS_fivesuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="fourfifths" value="2741" c:type="IBUS_fourfifths">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="foursubscript"
              value="16785540"
              c:type="IBUS_foursubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="foursuperior" value="16785524" c:type="IBUS_foursuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="fourthroot" value="16785948" c:type="IBUS_fourthroot">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="free_strv"
              c:identifier="ibus_free_strv"
              deprecated="This function has been deprecated and should">
      <doc xml:whitespace="preserve">Free a list of strings.
not be used in newly written code.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="strv" transfer-ownership="none">
          <doc xml:whitespace="preserve">List of strings.</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <constant name="function" value="2294" c:type="IBUS_function">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="g" value="103" c:type="IBUS_g">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="gabovedot" value="757" c:type="IBUS_gabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="gbreve" value="699" c:type="IBUS_gbreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="gcaron" value="16777703" c:type="IBUS_gcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="gcedilla" value="955" c:type="IBUS_gcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="gcircumflex" value="760" c:type="IBUS_gcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="get_address" c:identifier="ibus_get_address">
      <doc xml:whitespace="preserve">Return the D-Bus address of IBus.
It will find the address from following source:
&lt;orderedlist&gt;
&lt;listitem&gt;&lt;para&gt;Environment variable IBUS_ADDRESS&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Socket file under ~/.config/ibus/bus/&lt;/para&gt;&lt;/listitem&gt;
&lt;/orderedlist&gt;</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">D-Bus address of IBus. %NULL for not found.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="get_daemon_uid"
              c:identifier="ibus_get_daemon_uid"
              deprecated="This function has been deprecated and should">
      <doc xml:whitespace="preserve">Get UID of ibus-daemon.

not be used in newly written code.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">UID of ibus-daemon; or 0 if UID is not available.</doc>
        <type name="glong" c:type="glong"/>
      </return-value>
    </function>
    <function name="get_language_name" c:identifier="ibus_get_language_name">
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">language name</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="_locale" transfer-ownership="none">
          <doc xml:whitespace="preserve">A const locale name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_local_machine_id"
              c:identifier="ibus_get_local_machine_id">
      <doc xml:whitespace="preserve">Obtains the machine UUID of the machine this process is running on.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">A newly allocated string that shows the UUID of the machine.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="get_socket_path" c:identifier="ibus_get_socket_path">
      <doc xml:whitespace="preserve">Get the path of socket file.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">A newly allocated string that stores the path of socket file.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="get_timeout" c:identifier="ibus_get_timeout">
      <doc xml:whitespace="preserve">Get the GDBus timeout in milliseconds. The timeout is for clients (e.g. im-ibus.so), not for ibus-daemon.
Note that the timeout for ibus-daemon could be set by --timeout command line option of the daemon.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">A GDBus timeout in milliseconds. -1 when default timeout for GDBus should be used.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="get_user_name" c:identifier="ibus_get_user_name">
      <doc xml:whitespace="preserve">Get the current user name.
It is determined by:
&lt;orderedlist&gt;
&lt;listitem&gt;&lt;para&gt;getlogin()&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Environment variable SUDO_USER&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Environment variable USERHELPER_UID&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Environment variable USERNAME&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Environment variable LOGNAME&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Environment variable USER&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Environment variable LNAME&lt;/para&gt;&lt;/listitem&gt;
&lt;/orderedlist&gt;</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">A newly allocated string that stores current user name.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <constant name="grave" value="96" c:type="IBUS_grave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="greater" value="62" c:type="IBUS_greater">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="greaterthanequal"
              value="2238"
              c:type="IBUS_greaterthanequal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="guillemotleft" value="171" c:type="IBUS_guillemotleft">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="guillemotright" value="187" c:type="IBUS_guillemotright">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="h" value="104" c:type="IBUS_h">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hairspace" value="2728" c:type="IBUS_hairspace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hcircumflex" value="694" c:type="IBUS_hcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="heart" value="2798" c:type="IBUS_heart">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_aleph" value="3296" c:type="IBUS_hebrew_aleph">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_ayin" value="3314" c:type="IBUS_hebrew_ayin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_bet" value="3297" c:type="IBUS_hebrew_bet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_beth" value="3297" c:type="IBUS_hebrew_beth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_chet" value="3303" c:type="IBUS_hebrew_chet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_dalet" value="3299" c:type="IBUS_hebrew_dalet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_daleth" value="3299" c:type="IBUS_hebrew_daleth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_doublelowline"
              value="3295"
              c:type="IBUS_hebrew_doublelowline">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_finalkaph"
              value="3306"
              c:type="IBUS_hebrew_finalkaph">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_finalmem"
              value="3309"
              c:type="IBUS_hebrew_finalmem">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_finalnun"
              value="3311"
              c:type="IBUS_hebrew_finalnun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_finalpe" value="3315" c:type="IBUS_hebrew_finalpe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_finalzade"
              value="3317"
              c:type="IBUS_hebrew_finalzade">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_finalzadi"
              value="3317"
              c:type="IBUS_hebrew_finalzadi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_gimel" value="3298" c:type="IBUS_hebrew_gimel">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_gimmel" value="3298" c:type="IBUS_hebrew_gimmel">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_he" value="3300" c:type="IBUS_hebrew_he">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_het" value="3303" c:type="IBUS_hebrew_het">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_kaph" value="3307" c:type="IBUS_hebrew_kaph">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_kuf" value="3319" c:type="IBUS_hebrew_kuf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_lamed" value="3308" c:type="IBUS_hebrew_lamed">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_mem" value="3310" c:type="IBUS_hebrew_mem">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_nun" value="3312" c:type="IBUS_hebrew_nun">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_pe" value="3316" c:type="IBUS_hebrew_pe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_qoph" value="3319" c:type="IBUS_hebrew_qoph">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_resh" value="3320" c:type="IBUS_hebrew_resh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_samech" value="3313" c:type="IBUS_hebrew_samech">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_samekh" value="3313" c:type="IBUS_hebrew_samekh">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_shin" value="3321" c:type="IBUS_hebrew_shin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_taf" value="3322" c:type="IBUS_hebrew_taf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_taw" value="3322" c:type="IBUS_hebrew_taw">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_tet" value="3304" c:type="IBUS_hebrew_tet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_teth" value="3304" c:type="IBUS_hebrew_teth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_waw" value="3301" c:type="IBUS_hebrew_waw">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_yod" value="3305" c:type="IBUS_hebrew_yod">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_zade" value="3318" c:type="IBUS_hebrew_zade">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_zadi" value="3318" c:type="IBUS_hebrew_zadi">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_zain" value="3302" c:type="IBUS_hebrew_zain">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hebrew_zayin" value="3302" c:type="IBUS_hebrew_zayin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hexagram" value="2778" c:type="IBUS_hexagram">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="horizconnector" value="2211" c:type="IBUS_horizconnector">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="horizlinescan1" value="2543" c:type="IBUS_horizlinescan1">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="horizlinescan3" value="2544" c:type="IBUS_horizlinescan3">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="horizlinescan5" value="2545" c:type="IBUS_horizlinescan5">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="horizlinescan7" value="2546" c:type="IBUS_horizlinescan7">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="horizlinescan9" value="2547" c:type="IBUS_horizlinescan9">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hstroke" value="689" c:type="IBUS_hstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ht" value="2530" c:type="IBUS_ht">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="hyphen" value="173" c:type="IBUS_hyphen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="i" value="105" c:type="IBUS_i">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="iacute" value="237" c:type="IBUS_iacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ibelowdot" value="16785099" c:type="IBUS_ibelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ibreve" value="16777517" c:type="IBUS_ibreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="icircumflex" value="238" c:type="IBUS_icircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="identical" value="2255" c:type="IBUS_identical">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="idiaeresis" value="239" c:type="IBUS_idiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="idotless" value="697" c:type="IBUS_idotless">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ifonlyif" value="2253" c:type="IBUS_ifonlyif">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="igrave" value="236" c:type="IBUS_igrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ihook" value="16785097" c:type="IBUS_ihook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="imacron" value="1007" c:type="IBUS_imacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="implies" value="2254" c:type="IBUS_implies">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="includedin" value="2266" c:type="IBUS_includedin">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="includes" value="2267" c:type="IBUS_includes">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="infinity" value="2242" c:type="IBUS_infinity">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="init" c:identifier="ibus_init">
      <doc xml:whitespace="preserve">Init the ibus types.

It is actually a wrapper of g_type_init().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <constant name="integral" value="2239" c:type="IBUS_integral">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="intersection" value="2268" c:type="IBUS_intersection">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="iogonek" value="999" c:type="IBUS_iogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="itilde" value="949" c:type="IBUS_itilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="j" value="106" c:type="IBUS_j">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="jcircumflex" value="700" c:type="IBUS_jcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="jot" value="3018" c:type="IBUS_jot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="k" value="107" c:type="IBUS_k">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_A" value="1201" c:type="IBUS_kana_A">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_CHI" value="1217" c:type="IBUS_kana_CHI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_E" value="1204" c:type="IBUS_kana_E">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_FU" value="1228" c:type="IBUS_kana_FU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_HA" value="1226" c:type="IBUS_kana_HA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_HE" value="1229" c:type="IBUS_kana_HE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_HI" value="1227" c:type="IBUS_kana_HI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_HO" value="1230" c:type="IBUS_kana_HO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_HU" value="1228" c:type="IBUS_kana_HU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_I" value="1202" c:type="IBUS_kana_I">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_KA" value="1206" c:type="IBUS_kana_KA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_KE" value="1209" c:type="IBUS_kana_KE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_KI" value="1207" c:type="IBUS_kana_KI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_KO" value="1210" c:type="IBUS_kana_KO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_KU" value="1208" c:type="IBUS_kana_KU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_MA" value="1231" c:type="IBUS_kana_MA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_ME" value="1234" c:type="IBUS_kana_ME">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_MI" value="1232" c:type="IBUS_kana_MI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_MO" value="1235" c:type="IBUS_kana_MO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_MU" value="1233" c:type="IBUS_kana_MU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_N" value="1245" c:type="IBUS_kana_N">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_NA" value="1221" c:type="IBUS_kana_NA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_NE" value="1224" c:type="IBUS_kana_NE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_NI" value="1222" c:type="IBUS_kana_NI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_NO" value="1225" c:type="IBUS_kana_NO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_NU" value="1223" c:type="IBUS_kana_NU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_O" value="1205" c:type="IBUS_kana_O">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_RA" value="1239" c:type="IBUS_kana_RA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_RE" value="1242" c:type="IBUS_kana_RE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_RI" value="1240" c:type="IBUS_kana_RI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_RO" value="1243" c:type="IBUS_kana_RO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_RU" value="1241" c:type="IBUS_kana_RU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_SA" value="1211" c:type="IBUS_kana_SA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_SE" value="1214" c:type="IBUS_kana_SE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_SHI" value="1212" c:type="IBUS_kana_SHI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_SO" value="1215" c:type="IBUS_kana_SO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_SU" value="1213" c:type="IBUS_kana_SU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_TA" value="1216" c:type="IBUS_kana_TA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_TE" value="1219" c:type="IBUS_kana_TE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_TI" value="1217" c:type="IBUS_kana_TI">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_TO" value="1220" c:type="IBUS_kana_TO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_TSU" value="1218" c:type="IBUS_kana_TSU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_TU" value="1218" c:type="IBUS_kana_TU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_U" value="1203" c:type="IBUS_kana_U">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_WA" value="1244" c:type="IBUS_kana_WA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_WO" value="1190" c:type="IBUS_kana_WO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_YA" value="1236" c:type="IBUS_kana_YA">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_YO" value="1238" c:type="IBUS_kana_YO">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_YU" value="1237" c:type="IBUS_kana_YU">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_a" value="1191" c:type="IBUS_kana_a">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_closingbracket"
              value="1187"
              c:type="IBUS_kana_closingbracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_comma" value="1188" c:type="IBUS_kana_comma">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_conjunctive"
              value="1189"
              c:type="IBUS_kana_conjunctive">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_e" value="1194" c:type="IBUS_kana_e">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_fullstop" value="1185" c:type="IBUS_kana_fullstop">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_i" value="1192" c:type="IBUS_kana_i">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_middledot" value="1189" c:type="IBUS_kana_middledot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_o" value="1195" c:type="IBUS_kana_o">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_openingbracket"
              value="1186"
              c:type="IBUS_kana_openingbracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_switch" value="65406" c:type="IBUS_kana_switch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_tsu" value="1199" c:type="IBUS_kana_tsu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_tu" value="1199" c:type="IBUS_kana_tu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_u" value="1193" c:type="IBUS_kana_u">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_ya" value="1196" c:type="IBUS_kana_ya">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_yo" value="1198" c:type="IBUS_kana_yo">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kana_yu" value="1197" c:type="IBUS_kana_yu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kappa" value="930" c:type="IBUS_kappa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="kcedilla" value="1011" c:type="IBUS_kcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="key_event_from_string"
              c:identifier="ibus_key_event_from_string">
      <doc xml:whitespace="preserve">Parse key event string and return key symbol and modifiers.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">TRUE for succeed; FALSE if failed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="string" transfer-ownership="none">
          <doc xml:whitespace="preserve">Key event string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:whitespace="preserve">Variable that hold key symbol result.</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:whitespace="preserve">Variable that hold modifiers result.</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="key_event_to_string"
              c:identifier="ibus_key_event_to_string">
      <doc xml:whitespace="preserve">Return the name of a key symbol and modifiers.

For example, if press ctrl, shift, and enter, then this function returns:
Shift+Control+enter.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The name of a key symbol and modifier.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:whitespace="preserve">Key symbol.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:whitespace="preserve">Modifiers such as Ctrl or Shift.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="keyval_from_name" c:identifier="ibus_keyval_from_name">
      <doc xml:whitespace="preserve">Return the key symbol that associate with the key name.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">Corresponding key symbol.</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="keyval_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">Key name in #gdk_keys_by_name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="keyval_name" c:identifier="ibus_keyval_name">
      <doc xml:whitespace="preserve">Return the name of a key symbol.

Note that the returned string is used internally, so don't free it.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">Corresponding key name. %NULL if no such key symbol.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:whitespace="preserve">Key symbol.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="keyval_to_unicode" c:identifier="ibus_keyval_to_unicode">
      <doc xml:whitespace="preserve">Convert from an IBus key symbol to the corresponding ISO10646 (Unicode)
character.

is no corresponding character.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the corresponding unicode character, or 0 if there</doc>
        <type name="gunichar" c:type="gunichar"/>
      </return-value>
      <parameters>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:whitespace="preserve">an IBus key symbol</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <constant name="kra" value="930" c:type="IBUS_kra">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="l" value="108" c:type="IBUS_l">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lacute" value="485" c:type="IBUS_lacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="latincross" value="2777" c:type="IBUS_latincross">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lbelowdot" value="16784951" c:type="IBUS_lbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lcaron" value="437" c:type="IBUS_lcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lcedilla" value="950" c:type="IBUS_lcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftanglebracket"
              value="2748"
              c:type="IBUS_leftanglebracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftarrow" value="2299" c:type="IBUS_leftarrow">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftcaret" value="2979" c:type="IBUS_leftcaret">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftdoublequotemark"
              value="2770"
              c:type="IBUS_leftdoublequotemark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftmiddlecurlybrace"
              value="2223"
              c:type="IBUS_leftmiddlecurlybrace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftopentriangle"
              value="2764"
              c:type="IBUS_leftopentriangle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftpointer" value="2794" c:type="IBUS_leftpointer">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftradical" value="2209" c:type="IBUS_leftradical">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftshoe" value="3034" c:type="IBUS_leftshoe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftsinglequotemark"
              value="2768"
              c:type="IBUS_leftsinglequotemark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="leftt" value="2548" c:type="IBUS_leftt">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lefttack" value="3036" c:type="IBUS_lefttack">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="less" value="60" c:type="IBUS_less">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lessthanequal" value="2236" c:type="IBUS_lessthanequal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lf" value="2533" c:type="IBUS_lf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="logicaland" value="2270" c:type="IBUS_logicaland">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="logicalor" value="2271" c:type="IBUS_logicalor">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lowleftcorner" value="2541" c:type="IBUS_lowleftcorner">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lowrightcorner" value="2538" c:type="IBUS_lowrightcorner">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="lstroke" value="435" c:type="IBUS_lstroke">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="m" value="109" c:type="IBUS_m">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="mabovedot" value="16784961" c:type="IBUS_mabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="macron" value="175" c:type="IBUS_macron">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="main" c:identifier="ibus_main">
      <doc xml:whitespace="preserve">Runs an IBus main loop until ibus_quit() is called in the loop.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <constant name="malesymbol" value="2807" c:type="IBUS_malesymbol">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="maltesecross" value="2800" c:type="IBUS_maltesecross">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="marker" value="2751" c:type="IBUS_marker">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="masculine" value="186" c:type="IBUS_masculine">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="minus" value="45" c:type="IBUS_minus">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="minutes" value="2774" c:type="IBUS_minutes">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="mu" value="181" c:type="IBUS_mu">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="multiply" value="215" c:type="IBUS_multiply">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="musicalflat" value="2806" c:type="IBUS_musicalflat">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="musicalsharp" value="2805" c:type="IBUS_musicalsharp">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="n" value="110" c:type="IBUS_n">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="nabla" value="2245" c:type="IBUS_nabla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="nacute" value="497" c:type="IBUS_nacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ncaron" value="498" c:type="IBUS_ncaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ncedilla" value="1009" c:type="IBUS_ncedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ninesubscript"
              value="16785545"
              c:type="IBUS_ninesubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ninesuperior" value="16785529" c:type="IBUS_ninesuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="nl" value="2536" c:type="IBUS_nl">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="nobreakspace" value="160" c:type="IBUS_nobreakspace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="notapproxeq" value="16785991" c:type="IBUS_notapproxeq">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="notelementof" value="16785929" c:type="IBUS_notelementof">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="notequal" value="2237" c:type="IBUS_notequal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="notidentical" value="16786018" c:type="IBUS_notidentical">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="notsign" value="172" c:type="IBUS_notsign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ntilde" value="241" c:type="IBUS_ntilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="numbersign" value="35" c:type="IBUS_numbersign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="numerosign" value="1712" c:type="IBUS_numerosign">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="o" value="111" c:type="IBUS_o">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="oacute" value="243" c:type="IBUS_oacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="obarred" value="16777845" c:type="IBUS_obarred">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="obelowdot" value="16785101" c:type="IBUS_obelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ocaron" value="16777682" c:type="IBUS_ocaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ocircumflex" value="244" c:type="IBUS_ocircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ocircumflexacute"
              value="16785105"
              c:type="IBUS_ocircumflexacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ocircumflexbelowdot"
              value="16785113"
              c:type="IBUS_ocircumflexbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ocircumflexgrave"
              value="16785107"
              c:type="IBUS_ocircumflexgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ocircumflexhook"
              value="16785109"
              c:type="IBUS_ocircumflexhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ocircumflextilde"
              value="16785111"
              c:type="IBUS_ocircumflextilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="odiaeresis" value="246" c:type="IBUS_odiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="odoubleacute" value="501" c:type="IBUS_odoubleacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="oe" value="5053" c:type="IBUS_oe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ogonek" value="434" c:type="IBUS_ogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ograve" value="242" c:type="IBUS_ograve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ohook" value="16785103" c:type="IBUS_ohook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ohorn" value="16777633" c:type="IBUS_ohorn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ohornacute" value="16785115" c:type="IBUS_ohornacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ohornbelowdot"
              value="16785123"
              c:type="IBUS_ohornbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ohorngrave" value="16785117" c:type="IBUS_ohorngrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ohornhook" value="16785119" c:type="IBUS_ohornhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ohorntilde" value="16785121" c:type="IBUS_ohorntilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="omacron" value="1010" c:type="IBUS_omacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="oneeighth" value="2755" c:type="IBUS_oneeighth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="onefifth" value="2738" c:type="IBUS_onefifth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="onehalf" value="189" c:type="IBUS_onehalf">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="onequarter" value="188" c:type="IBUS_onequarter">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="onesixth" value="2742" c:type="IBUS_onesixth">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="onesubscript" value="16785537" c:type="IBUS_onesubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="onesuperior" value="185" c:type="IBUS_onesuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="onethird" value="2736" c:type="IBUS_onethird">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ooblique" value="248" c:type="IBUS_ooblique">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="openrectbullet" value="2786" c:type="IBUS_openrectbullet">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="openstar" value="2789" c:type="IBUS_openstar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="opentribulletdown"
              value="2788"
              c:type="IBUS_opentribulletdown">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="opentribulletup"
              value="2787"
              c:type="IBUS_opentribulletup">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ordfeminine" value="170" c:type="IBUS_ordfeminine">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="oslash" value="248" c:type="IBUS_oslash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="otilde" value="245" c:type="IBUS_otilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="overbar" value="3008" c:type="IBUS_overbar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="overline" value="1150" c:type="IBUS_overline">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="p" value="112" c:type="IBUS_p">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="pabovedot" value="16784983" c:type="IBUS_pabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="paragraph" value="182" c:type="IBUS_paragraph">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="parenleft" value="40" c:type="IBUS_parenleft">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="parenright" value="41" c:type="IBUS_parenright">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="partdifferential"
              value="16785922"
              c:type="IBUS_partdifferential">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="partialderivative"
              value="2287"
              c:type="IBUS_partialderivative">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="percent" value="37" c:type="IBUS_percent">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="period" value="46" c:type="IBUS_period">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="periodcentered" value="183" c:type="IBUS_periodcentered">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="phonographcopyright"
              value="2811"
              c:type="IBUS_phonographcopyright">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="plus" value="43" c:type="IBUS_plus">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="plusminus" value="177" c:type="IBUS_plusminus">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="prescription" value="2772" c:type="IBUS_prescription">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="prolongedsound" value="1200" c:type="IBUS_prolongedsound">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="punctspace" value="2726" c:type="IBUS_punctspace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="q" value="113" c:type="IBUS_q">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="quad" value="3020" c:type="IBUS_quad">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="question" value="63" c:type="IBUS_question">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="questiondown" value="191" c:type="IBUS_questiondown">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="quit" c:identifier="ibus_quit">
      <doc xml:whitespace="preserve">Stops an IBus from running.

Any calls to ibus_quit() for the loop will return.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <constant name="quotedbl" value="34" c:type="IBUS_quotedbl">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="quoteleft" value="96" c:type="IBUS_quoteleft">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="quoteright" value="39" c:type="IBUS_quoteright">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="r" value="114" c:type="IBUS_r">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="racute" value="480" c:type="IBUS_racute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="radical" value="2262" c:type="IBUS_radical">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rcaron" value="504" c:type="IBUS_rcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rcedilla" value="947" c:type="IBUS_rcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="registered" value="174" c:type="IBUS_registered">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightanglebracket"
              value="2750"
              c:type="IBUS_rightanglebracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightarrow" value="2301" c:type="IBUS_rightarrow">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightcaret" value="2982" c:type="IBUS_rightcaret">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightdoublequotemark"
              value="2771"
              c:type="IBUS_rightdoublequotemark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightmiddlecurlybrace"
              value="2224"
              c:type="IBUS_rightmiddlecurlybrace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightmiddlesummation"
              value="2231"
              c:type="IBUS_rightmiddlesummation">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightopentriangle"
              value="2765"
              c:type="IBUS_rightopentriangle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightpointer" value="2795" c:type="IBUS_rightpointer">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightshoe" value="3032" c:type="IBUS_rightshoe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightsinglequotemark"
              value="2769"
              c:type="IBUS_rightsinglequotemark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="rightt" value="2549" c:type="IBUS_rightt">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="righttack" value="3068" c:type="IBUS_righttack">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="s" value="115" c:type="IBUS_s">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="sabovedot" value="16784993" c:type="IBUS_sabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="sacute" value="438" c:type="IBUS_sacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="scaron" value="441" c:type="IBUS_scaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="scedilla" value="442" c:type="IBUS_scedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="schwa" value="16777817" c:type="IBUS_schwa">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="scircumflex" value="766" c:type="IBUS_scircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="script_switch" value="65406" c:type="IBUS_script_switch">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="seconds" value="2775" c:type="IBUS_seconds">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="section" value="167" c:type="IBUS_section">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="semicolon" value="59" c:type="IBUS_semicolon">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="semivoicedsound"
              value="1247"
              c:type="IBUS_semivoicedsound">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="set_display" c:identifier="ibus_set_display">
      <doc xml:whitespace="preserve">Set the display address.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:whitespace="preserve">Display address, as in DISPLAY environment for X.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_log_handler" c:identifier="ibus_set_log_handler">
      <doc xml:whitespace="preserve">Sets GLIB's log handler to ours. Our log handler adds time info
including hour, minute, second, and microsecond, like:

(ibus-daemon:7088): IBUS-DEBUG: 18:06:45.822819: ibus-daemon started

If @verbose is TRUE, all levels of messages will be logged. Otherwise,
DEBUG and WARNING messages will be ignored.  The function is used in
ibus-daemon, but can be useful for IBus client programs as well for
debugging. It's totally fine for not calling this function. If you
don't set a custom GLIB log handler, the default GLIB log handler will
be used.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="verbose" transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE for verbose logging.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <constant name="seveneighths" value="2758" c:type="IBUS_seveneighths">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="sevensubscript"
              value="16785543"
              c:type="IBUS_sevensubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="sevensuperior"
              value="16785527"
              c:type="IBUS_sevensuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="signaturemark" value="2762" c:type="IBUS_signaturemark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="signifblank" value="2732" c:type="IBUS_signifblank">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="similarequal" value="2249" c:type="IBUS_similarequal">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="singlelowquotemark"
              value="2813"
              c:type="IBUS_singlelowquotemark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="sixsubscript" value="16785542" c:type="IBUS_sixsubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="sixsuperior" value="16785526" c:type="IBUS_sixsuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="slash" value="47" c:type="IBUS_slash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="soliddiamond" value="2528" c:type="IBUS_soliddiamond">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="space" value="32" c:type="IBUS_space">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="squareroot" value="16785946" c:type="IBUS_squareroot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ssharp" value="223" c:type="IBUS_ssharp">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="sterling" value="163" c:type="IBUS_sterling">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="stricteq" value="16786019" c:type="IBUS_stricteq">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="t" value="116" c:type="IBUS_t">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="tabovedot" value="16785003" c:type="IBUS_tabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="tcaron" value="443" c:type="IBUS_tcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="tcedilla" value="510" c:type="IBUS_tcedilla">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="telephone" value="2809" c:type="IBUS_telephone">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="telephonerecorder"
              value="2810"
              c:type="IBUS_telephonerecorder">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="therefore" value="2240" c:type="IBUS_therefore">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="thinspace" value="2727" c:type="IBUS_thinspace">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="thorn" value="254" c:type="IBUS_thorn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="threeeighths" value="2756" c:type="IBUS_threeeighths">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="threefifths" value="2740" c:type="IBUS_threefifths">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="threequarters" value="190" c:type="IBUS_threequarters">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="threesubscript"
              value="16785539"
              c:type="IBUS_threesubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="threesuperior" value="179" c:type="IBUS_threesuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="tintegral" value="16785965" c:type="IBUS_tintegral">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="topintegral" value="2212" c:type="IBUS_topintegral">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="topleftparens" value="2219" c:type="IBUS_topleftparens">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="topleftradical" value="2210" c:type="IBUS_topleftradical">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="topleftsqbracket"
              value="2215"
              c:type="IBUS_topleftsqbracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="topleftsummation"
              value="2225"
              c:type="IBUS_topleftsummation">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="toprightparens" value="2221" c:type="IBUS_toprightparens">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="toprightsqbracket"
              value="2217"
              c:type="IBUS_toprightsqbracket">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="toprightsummation"
              value="2229"
              c:type="IBUS_toprightsummation">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="topt" value="2551" c:type="IBUS_topt">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="topvertsummationconnector"
              value="2227"
              c:type="IBUS_topvertsummationconnector">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="trademark" value="2761" c:type="IBUS_trademark">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="trademarkincircle"
              value="2763"
              c:type="IBUS_trademarkincircle">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="tslash" value="956" c:type="IBUS_tslash">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="twofifths" value="2739" c:type="IBUS_twofifths">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="twosubscript" value="16785538" c:type="IBUS_twosubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="twosuperior" value="178" c:type="IBUS_twosuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="twothirds" value="2737" c:type="IBUS_twothirds">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="u" value="117" c:type="IBUS_u">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uacute" value="250" c:type="IBUS_uacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ubelowdot" value="16785125" c:type="IBUS_ubelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ubreve" value="765" c:type="IBUS_ubreve">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ucircumflex" value="251" c:type="IBUS_ucircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="udiaeresis" value="252" c:type="IBUS_udiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="udoubleacute" value="507" c:type="IBUS_udoubleacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ugrave" value="249" c:type="IBUS_ugrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uhook" value="16785127" c:type="IBUS_uhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uhorn" value="16777648" c:type="IBUS_uhorn">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uhornacute" value="16785129" c:type="IBUS_uhornacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uhornbelowdot"
              value="16785137"
              c:type="IBUS_uhornbelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uhorngrave" value="16785131" c:type="IBUS_uhorngrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uhornhook" value="16785133" c:type="IBUS_uhornhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uhorntilde" value="16785135" c:type="IBUS_uhorntilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="umacron" value="1022" c:type="IBUS_umacron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="underbar" value="3014" c:type="IBUS_underbar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="underscore" value="95" c:type="IBUS_underscore">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="unicode_to_keyval" c:identifier="ibus_unicode_to_keyval">
      <doc xml:whitespace="preserve">Convert from a ISO10646 character to a key symbol.

or, if there is no corresponding symbol,
wc | 0x01000000</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the corresponding IBus key symbol, if one exists.</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="wc" transfer-ownership="none">
          <doc xml:whitespace="preserve">a ISO10646 encoded character</doc>
          <type name="gunichar" c:type="gunichar"/>
        </parameter>
      </parameters>
    </function>
    <constant name="union" value="2269" c:type="IBUS_union">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uogonek" value="1017" c:type="IBUS_uogonek">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uparrow" value="2300" c:type="IBUS_uparrow">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="upcaret" value="2985" c:type="IBUS_upcaret">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="upleftcorner" value="2540" c:type="IBUS_upleftcorner">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uprightcorner" value="2539" c:type="IBUS_uprightcorner">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="upshoe" value="3011" c:type="IBUS_upshoe">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="upstile" value="3027" c:type="IBUS_upstile">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uptack" value="3022" c:type="IBUS_uptack">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="uring" value="505" c:type="IBUS_uring">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="utilde" value="1021" c:type="IBUS_utilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="v" value="118" c:type="IBUS_v">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="variation" value="2241" c:type="IBUS_variation">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="vertbar" value="2552" c:type="IBUS_vertbar">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="vertconnector" value="2214" c:type="IBUS_vertconnector">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="voicedsound" value="1246" c:type="IBUS_voicedsound">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="vt" value="2537" c:type="IBUS_vt">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="w" value="119" c:type="IBUS_w">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="wacute" value="16785027" c:type="IBUS_wacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="wcircumflex" value="16777589" c:type="IBUS_wcircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="wdiaeresis" value="16785029" c:type="IBUS_wdiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="wgrave" value="16785025" c:type="IBUS_wgrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="write_address" c:identifier="ibus_write_address">
      <doc xml:whitespace="preserve">Write D-Bus address to socket file.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="address" transfer-ownership="none">
          <doc xml:whitespace="preserve">D-Bus address of IBus.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <constant name="x" value="120" c:type="IBUS_x">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="xabovedot" value="16785035" c:type="IBUS_xabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="xml_free" c:identifier="ibus_xml_free" introspectable="0">
      <doc xml:whitespace="preserve">Free an XML tree.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:whitespace="preserve">Root node of an XML tree.</doc>
          <type c:type="XMLNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_output"
              c:identifier="ibus_xml_output"
              introspectable="0">
      <doc xml:whitespace="preserve">Output an XML tree to a GString.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:whitespace="preserve">Root node of an XML tree.</doc>
          <type c:type="XMLNode*"/>
        </parameter>
        <parameter name="output" transfer-ownership="none">
          <doc xml:whitespace="preserve">GString which stores the output.</doc>
          <type name="GLib.String" c:type="GString*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_parse_buffer"
              c:identifier="ibus_xml_parse_buffer"
              introspectable="0">
      <doc xml:whitespace="preserve">Parse a string buffer which contains an XML-formatted string,
and return a corresponding XML tree.</doc>
      <return-value>
        <doc xml:whitespace="preserve">Root node of parsed XML tree.</doc>
        <type c:type="XMLNode*"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:whitespace="preserve">Buffer to be parsed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_parse_file"
              c:identifier="ibus_xml_parse_file"
              introspectable="0">
      <doc xml:whitespace="preserve">Parse an XML file and return a corresponding XML tree.</doc>
      <return-value>
        <doc xml:whitespace="preserve">Root node of parsed XML tree.</doc>
        <type c:type="XMLNode*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:whitespace="preserve">File name to be parsed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <constant name="y" value="121" c:type="IBUS_y">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="yacute" value="253" c:type="IBUS_yacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ybelowdot" value="16785141" c:type="IBUS_ybelowdot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ycircumflex" value="16777591" c:type="IBUS_ycircumflex">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ydiaeresis" value="255" c:type="IBUS_ydiaeresis">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="yen" value="165" c:type="IBUS_yen">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ygrave" value="16785139" c:type="IBUS_ygrave">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="yhook" value="16785143" c:type="IBUS_yhook">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ytilde" value="16785145" c:type="IBUS_ytilde">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="z" value="122" c:type="IBUS_z">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="zabovedot" value="447" c:type="IBUS_zabovedot">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="zacute" value="444" c:type="IBUS_zacute">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="zcaron" value="446" c:type="IBUS_zcaron">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="zerosubscript"
              value="16785536"
              c:type="IBUS_zerosubscript">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="zerosuperior" value="16785520" c:type="IBUS_zerosuperior">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="zstroke" value="16777654" c:type="IBUS_zstroke">
      <type name="gint" c:type="gint"/>
    </constant>
  </namespace>
</repository>
