* Anthy Input ¥é¥¤¥Ö¥é¥ê¤Î»ÈÍÑÊýË¡¤ÎÀâÌÀ * * º£¤«¤é¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¯¾ì¹ç¤Ë¤Ïuim¤ÎÍøÍѤò¤ªÁ¦¤á¤·¤Þ¤¹¡£ ¥é¥¤¥Ö¥é¥ê¤Î¥ª¥×¥·¥ç¥ó -lanthyinput -lanthy -lanthydic ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë anthy/anthy.h anthy/input.h (anthy/anthy.h ¤òÀè¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤³¤È) * ¥Ç¡¼¥¿·¿¤Î³µÀâ * anthy_input_config ¥í¡¼¥Þ»úÊÑ´¹¤ÎÀßÄê¤Ê¤É¤ËÍѤ¤¤ë¡£ ¥é¥¤¥Ö¥é¥ê¤Î¥æ¡¼¥¶¤ÏÃæ¿È¤ò¤ß¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ anthy_input_context ÆþÎϤΥ³¥ó¥Æ¥¥¹¥È¤ò¼±Ê̤¹¤ë¤¿¤á¤ËÍѤ¤¤ë¡£ ¥é¥¤¥Ö¥é¥ê¤Î¥æ¡¼¥¶¤ÏÃæ¿È¤ò¤ß¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ anthy_input_preedit ¥é¥¤¥Ö¥é¥ê¤«¤é¥×¥ê¥¨¥Ç¥£¥Ã¥È¤òÆÀ¤ë¤È¤¤ËÍѤ¤¤é¤ì¤ë¡£ ¥×¥ê¥¨¥Ç¥£¥Ã¥ÈÁ´ÂΤòɽ¤¹¡£ anthy_input_segment ¥é¥¤¥Ö¥é¥ê¤«¤é¥×¥ê¥¨¥Ç¥£¥Ã¥È¤òÆÀ¤ë¤È¤¤ËÍѤ¤¤é¤ì¤ë¡£ ¸õÊä¤òÆÀ¤ë¤È¤¤Ë¤âÍѤ¤¤é¤ì¤ë¡£Ê¸Àá¤òɽ¤¹¡£ char * ¥¨¥ó¥³¡¼¥É¤Ë¤ÏEUC-JP¤òÍøÍѤ¹¤ë¡£ * ´Ø¿ô¤Î³µÀâ * ½é´ü²½´Ø¿ô¤Ê¤É anthy_input_init ¥é¥¤¥Ö¥é¥ê¤Î½é´ü²½ anthy_input_set_personality ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£¤ÎÀßÄê ¥³¥ó¥Æ¥¥¹¥È¤Î´ÉÍý anthy_input_create_context ÆþÎÏ¥³¥ó¥Æ¥¥¹¥È¤ÎºîÀ® anthy_input_free_context ÆþÎÏ¥³¥ó¥Æ¥¥¹¥È¤Î²òÊü ÀßÄê anthy_input_create_config ¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ÎºîÀ® anthy_input_free_config ¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Î²òÊü anthy_input_edit_toggle_config ±Ñ¿ô¤È¤Î°ì»þŪ¥È¥°¥ë¤Ë»È¤¦¥¡¼¤ÎÊѹ¹ anthy_input_edit_rk_config ¥¡¼¤Èʸ»ú¤ÎÂбþ¤ÎÊѹ¹ anthy_input_clear_rk_config ¥¡¼¤Èʸ»ú¤ÎÂбþ¤ò¥Ç¥Õ¥©¥ë¥È¤ËÌ᤹ anthy_input_change_config ÀßÄê¤ÎÊѹ¹¤ÎÄÌÃÎ ¥³¥ó¥Æ¥¥¹¥È¤ÎÁàºî(ľÀÜŪ¤ÊÁàºî) anthy_input_str ʸ»úÎó¤ÎÄɲà anthy_input_next_candidate ¼¡¤Î¸õÊä(ÁªÂòÃæ¤ÎʸÀá¤ËŬÍÑ) anthy_input_prev_candidate Á°¤Î¸õÊä(ÁªÂòÃæ¤ÎʸÀá¤ËŬÍÑ) anthy_input_quit ÊÑ´¹¤ò¥¥ã¥ó¥»¥ë(1Ãʳ¬) anthy_input_erase_prev ¥«¡¼¥½¥ëÁ°¤Îʸ»ú¤òºï½ü anthy_input_erase_next ¥«¡¼¥½¥ë¸å¤Îʸ»ú¤òºï½ü anthy_input_commit ³ÎÄê anthy_input_move ¥«¡¼¥½¥ë¡¢ÁªÂòÃæʸÀá¤ò°ÜÆ° anthy_input_resize ÁªÂòÃæʸÀá¤ÎŤµ¤òÊѹ¹ anthy_input_beginning_of_line ¥×¥ê¥¨¥Ç¥£¥Ã¥ÈÀèƬ¤Ë°ÜÆ° anthy_input_end_of_line ¥×¥ê¥¨¥Ç¥£¥Ã¥ÈËöÈø¤Ë°ÜÆ° anthy_input_cut ʸ»úÎó¤ÎÀÚ¤ê¼è¤ê ¥³¥ó¥Æ¥¥¹¥È¤ÎÁàºî(¥¡¼¤ËÂбþ¤·¤¿Æ°ºî) anthy_input_key 1ʸ»ú¤ÎÄɲà anthy_input_space ¥¹¥Ú¡¼¥¹¤Þ¤¿¤ÏÊÑ´¹(¥³¥ó¥Æ¥¥¹¥È°Í¸) ¥³¥ó¥Æ¥¥¹¥È¤ÎÁàºî(¤½¤Î¾) anthy_input_get_state ¸½ºß¤Î¾õÂ֤μèÆÀ anthy_input_get_preedit ¥×¥ê¥¨¥Ç¥£¥Ã¥È¤òÆÀ¤ë anthy_input_map_select ¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¥Þ¥Ã¥×¤ÎÀÚÂؤ¨ anthy_input_get_selected_map ¸½ºß¤Î¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¥Þ¥Ã¥×¤Î¼èÆÀ anthy_input_get_candidate ¸õÊäÈÖ¹æ¤ò»ØÄꤷ¤Æ¸õÊä¤òÆÀ¤ë anthy_input_select_candidate ¸õÊäÈÖ¹æ¤ò»ØÄꤷ¤Æ¸õÊä¤òÁª¤Ö anthy_input_free_preedit ¥×¥ê¥¨¥Ç¥£¥Ã¥È¤Î²òÊü (°¤¹¤ëʸÀṽ¤ÂΤâƱ»þ¤Ë²òÊü¤¹¤ë) anthy_input_free_segment ʸÀá¤Î²òÊü ÀßÄê¤ÎÊѹ¹ anthy_input_map_edit ¥í¡¼¥Þ»ú²¾Ì¾ÊÑ´¹¥Þ¥Ã¥×¤ÎÊÔ½¸(̤Âбþ) * ¾õÂÖ * ÂÔµ¡¾õÂÖ(1) ¥×¥ê¥¨¥Ç¥£¥Ã¥È¤Ï¸ºß¤·¤Ê¤¤ ÊÔ½¸Ãæ¾õÂÖ(2) ¥í¡¼¥Þ»úÆþÎÏÃæ¤Î¾õÂÖ¡£ ¥«¡¼¥½¥ë°ÌÃÖ¤ÎʸÀá¤Ëʸ»úÎ󤬤ʤ¤¡£ ÁªÂòÃæʸÀá¤Ï¥«¡¼¥½¥ë°ÌÃÖ¤ÎʸÀá¤ò»Ø¤·¤Æ¤¤¤ë¡£ ÊÑ´¹Ãæ¾õÂÖ(3) ÊÑ´¹Ãæ¤Î¾õÂÖ¡£ ʸÀ´̾õÂÖ(4) ʸÀ´ÌÃæ¤Î¾õÂÖ¡£ ÁªÂòÃæʸÀá°Ê¹ß¤Ï¤¹¤Ù¤ÆÊ¿²¾Ì¾¤Ë¤Ê¤ë¡£ ÁªÂòÃæʸÀá¤è¤ê¸å¤í¤ÏÁ´¤Æ¤Þ¤È¤á¤Æ°ìʸÀá¤Ë¤Ê¤ë¡£ * ³Æ´Ø¿ô¤ÎÀâÌÀ * int anthy_input_init(void); °ú¿ô: ̵¤· ÊÖ¤êÃÍ: 0 ¤Ê¤éÀ®¸ù -1 ¤Ê¤é¼ºÇÔ ¥é¥¤¥Ö¥é¥ê¤ò½é´ü²½¤¹¤ë¡£anthy¥é¥¤¥Ö¥é¥ê¤â½é´ü²½¤¹¤ë¡£ struct anthy_input_config* anthy_input_create_config(void); °ú¿ô: ̵¤· ÊÖ¤êÃÍ: ÀßÄ깽¤ÂΤΥݥ¤¥ó¥¿ ÀßÄ깽¤ÂΤòÆÀ¤ë¡£ÀßÄ깽¤ÂΤϥǥե©¥ë¥ÈÃͤǽé´ü²½¤µ¤ì¤Æ¤¤¤ë¡£ void anthy_input_free_config(struct anthy_input_config* cfg); °ú¿ô: ÀßÄ깽¤ÂΤΥݥ¤¥ó¥¿ ÊÖ¤êÃÍ: ̵¤· ÀßÄ깽¤ÂΤò²òÊü¤¹¤ë¡£¤³¤ÎÀßÄê¤ò¶¦Í¤¹¤ëÁ´¤Æ¤ÎÆþÎÏ¥³¥ó¥Æ¥ ¥¹¥È¤ò»öÁ°¤Ë²òÊü¤¹¤ë»ö¡£ anthy_input_set_personality(char *personality); °ú¿ô: personality ¥Ñ¡¼¥½¥Ê¥ê¥Æ¥£¤Î̾Á° ÊÖ¤êÃÍ: ̵¤· struct anthy_input_context* anthy_input_create_context(struct anthy_input_config* cfg); °ú¿ô: cfg ÀßÄ깽¤ÂΤΥݥ¤¥ó¥¿ ÊÖ¤êÃÍ: ÆþÎÏ¥³¥ó¥Æ¥¥¹¥È¤Î¥Ý¥¤¥ó¥¿ ÆþÎÏ¥³¥ó¥Æ¥¥¹¥È¤Î¥Ý¥¤¥ó¥¿¤òÆÀ¤ë¡£°ú¿ô¤ËÍ¿¤¨¤¿ÀßÄ깽¤ÂÎ¤Ë Å¬ÍѤ·¤¿Áàºî¤Ï¡¢ÆþÎÏ¥³¥ó¥Æ¥¥¹¥È¤òºî¤Ã¤¿¸å¤Ë¤Ç¤â¡¢¤¹¤°¤ËÆþ ÎÏ¥³¥ó¥Æ¥¥¹¥È¤ËÈ¿±Ç¤µ¤ì¤ë¡£ ¥³¥ó¥Æ¥¥¹¥È¤ÏÂÔµ¡¾õÂ֤ǺîÀ®¤µ¤ì¤ë¡£ void anthy_input_free_context(struct anthy_input_context* ictx); °ú¿ô: ictx ÆþÎÏ¥³¥ó¥Æ¥¥¹¥È ÊÖ¤êÃÍ: ¤Ê¤· ÆþÎÏ¥³¥ó¥Æ¥¥¹¥È¤ò²òÊü¤¹¤ë¡£ void anthy_input_str(struct anthy_input_context* ictx, char* str); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ str Äɲ乤ëʸ»úÎó ÊÖ¤êÃÍ: ̵¤· Äɲ乤ëʸ»úÎó¤Ï¥í¡¼¥Þ»ú(Ⱦ³Ñ)¤ÇÆþÎϤ¹¤ë¡£ ÂÔµ¡¾õÂÖ¤ÈÊÔ½¸Ãæ¾õÂ֤Ǥϥץꥨ¥Ç¥£¥Ã¥È¤Ëʸ»úÎó¤òÄɲ乤롣 ÊÑ´¹Ãæ¾õÂÖ¤ÈʸÀ´̾õÂ֤Ǥϥץꥨ¥Ç¥£¥Ã¥È¤ò¤½¤Î¾õÂ֤dzÎÄꤷ¤Æ¡¢ ¿·¤¿¤Ëstr¤À¤±¤ò»ý¤Ä¥×¥ê¥¨¥Ç¥£¥Ã¥È¤òºî¤ë¡£ ¸Æ½Ð¸å¤ÏÊÔ½¸Ãæ¾õÂ֤ˤʤ롣 void anthy_input_next_candidate(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂ֤ǤÏÁ´Ê¸Àá¤òÊÑ´¹¤·¡¢ÊÑ´¹Ãæ¾õÂ֤ˤϤ¤¤ë¡£ ÊÑ´¹Ãæ¾õÂ֤ǤÏÁªÂòÃæʸÀá¤Î¸õÊä¤ò¼¡¤Î¸õÊä¤Ë¤¹¤ë¡£ ʸÀ´̾õÂ֤ǤÏÁªÂòÃæʸÀá°Ê¹ß¤òÊÑ´¹¤·¡¢ÊÑ´¹Ãæ¾õÂÖ¤ËÆþ¤ë¡£ void anthy_input_prev_candidate(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂ֤ǤÏÁ´Ê¸Àá¤òÊÑ´¹¤·¡¢ÊÑ´¹Ãæ¾õÂ֤ˤϤ¤¤ë¡£ ÊÑ´¹Ãæ¾õÂ֤ǤÏÁªÂòÃæʸÀá¤Î¸õÊä¤òÁ°¤Î¸õÊä¤Ë¤¹¤ë¡£ ʸÀ´̾õÂ֤ǤÏÁªÂòÃæʸÀá°Ê¹ß¤òÊÑ´¹¤·¡¢ÊÑ´¹Ãæ¾õÂÖ¤ËÆþ¤ë¡£ void anthy_input_quit(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂ֤ǤÏÂÔµ¡¾õÂ֤ˤʤ롣 ÊÔ½¸Ãæ¾õÂÖ¤ÈʸÀ´̾õÂ֤ǤÏÊÔ½¸Ãæ¾õÂ֤ˤʤ롣 void anthy_input_erase_prev(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂÖ¤À¤±¤Ç͸ú¡£ ¥«¡¼¥½¥ë¤ÎÁ°1ʸ»ú¤ò¾Ã¤¹¡£ ¾Ã¤·¤¿·ë²Ì¥×¥ê¥¨¥Ç¥£¥Ã¥È¤¬¤Ê¤¯¤Ê¤ì¤Ð¡¢ÂÔµ¡¾õÂ֤ˤʤ롣 void anthy_input_erase_next(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂÖ¤À¤±¤Ç͸ú¡£ ¥«¡¼¥½¥ë¤Î¸å1ʸ»ú¤ò¾Ã¤¹¡£ ¾Ã¤·¤¿·ë²Ì¥×¥ê¥¨¥Ç¥£¥Ã¥È¤¬¤Ê¤¯¤Ê¤ì¤Ð¡¢ÂÔµ¡¾õÂ֤ˤʤ롣 void anthy_input_commit(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ¸½ºß¤Î¥×¥ê¥¨¥Ç¥£¥Ã¥È¤Î¾õÂ֤dzÎÄꤹ¤ë¡£ ÂÔµ¡¾õÂÖ¤ËÌá¤ë¡£ void anthy_input_move(struct anthy_input_context* ictx, int lr); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ lr °ÜÆ°Êý¸þ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂ֤Ǥϥ«¡¼¥½¥ë¤ò°ÜÆ°¤¹¤ë¡£ ÊÑ´¹Ãæ¾õÂ֤ǤÏÁªÂòʸÀá¤ò°ÜÆ°¤¹¤ë¡£ ʸÀ´̾õÂ֤ǤÏÊÑ´¹Ãæ¾õÂÖ¤ËÌá¤ê¡¢ÁªÂòʸÀá¤ò°ÜÆ°¤¹¤ë¡£ lr = -1 ¤Çº¸°ÜÆ°¡¢ lr = 1 ¤Ç±¦°ÜÆ°¡£ void anthy_input_resize(struct anthy_input_context* ictx, int lr); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ lr ¿½ÌÊý¸þ ÊÖ¤êÃÍ: ̵¤· ÊÑ´¹Ãæ¾õÂ֤ǤÏÁªÂòʸÀá¤ò¿½Ì¤µ¤»¡¢Ê¸À´̾õÂ֤ˤʤ롣 ʸÀ´̾õÂ֤ǤÏÁªÂòʸÀá¤ò¿½Ì¤¹¤ë¡£ lr = -1 ¤Ç½Ì¾®¡¢ lr = 1 ¤Ç¿Ä¹¡£ void anthy_input_beginning_of_line(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂÖ¤À¤±¤Ç͸ú¡£ ¥«¡¼¥½¥ë¤ò¥×¥ê¥¨¥Ç¥£¥Ã¥È¤ÎÀèƬ¤Ë°ÜÆ°¤µ¤»¤ë¡£ void anthy_input_end_of_line(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂÖ¤À¤±¤Ç͸ú¡£ ¥«¡¼¥½¥ë¤ò¥×¥ê¥¨¥Ç¥£¥Ã¥È¤ÎËöÈø¤Ë°ÜÆ°¤µ¤»¤ë¡£ void anthy_input_cut(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ÊÔ½¸Ãæ¾õÂÖ¤À¤±¤Ç͸ú¡£ ¥«¡¼¥½¥ë°Ê¹ß¤Îʸ»úÎó¤ò¾Ã¤¹¡£¾Ã¤·¤¿Ê¸»úÎó¤Ïµ²±¤·¤Æ¤¤¤ë¡£ void anthy_input_str(struct anthy_input_context* ictx, char c); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ c Äɲ乤ëʸ»ú ÊÖ¤êÃÍ: ̵¤· anthy_input_key ¤È¤Û¤ÜƱ¤¸¡£¤¿¤À¤·¡¢ 1 ʸ»ú¤À¤±Äɲ乤롣 void anthy_input_space(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ¥³¥ó¥Æ¥¥¹¥È¤Ë±þ¤¸¤Æ¶õÇò¤ÎÄɲá¢ÊÑ´¹¤Î¤É¤Á¤é¤«¤Ë¤Ê¤ë¡£ struct anthy_input_preedit* anthy_input_get_preedit(struct anthy_input_context* ictx); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ¸½ºß¤Î¥×¥ê¥¨¥Ç¥£¥Ã¥È ¸½ºß¤Î¥×¥ê¥¨¥Ç¥£¥Ã¥È¤òÆÀ¤ë¡£ÆÀ¤¿¥×¥ê¥¨¥Ç¥£¥Ã¥È¤ò½ñ¤´¹¤¨¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ ¥×¥ê¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È¤Ï¸å½Ò¡£ int anthy_input_map_select(struct anthy_input_context* ictx, int map); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ map ¥Þ¥Ã¥×ÈÖ¹æ ÊÖ¤êÃÍ: À®¸ù 0 ¼ºÇÔ ¤½¤ì°Ê³° ¥í¡¼¥Þ»ú¤«¤é¤ÎÊÑ´¹¥Þ¥Ã¥×¤òÊѹ¹¤¹¤ë¡£ map ¤Ë»ØÄê¤Ç¤¤ë¤Î¤Ï°Ê²¼¤ÎÄê¿ô MAP_HIRAGANA ¤Ò¤é¤¬¤Ê MAP_KATAKANA ¤«¤¿¤«¤Ê MAP_ALPHABET ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È MAP_WALPHABET Á´³Ñ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È struct anthy_input_segment* anthy_input_get_candidate(struct anthy_input_context* ictx, int cand_no); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ cand_no ¸õÊäÈÖ¹æ ÊÖ¤êÃÍ: ÌÜŪ¤Î¸õÊä¤ò´Þ¤ó¤ÀʸÀṽ¤ÂÎ ÊÑ´¹Ãæ¾õÂ֤ǤÀ¤±Í¸ú¡£ ÁªÂòÃæʸÀá¤Î»ØÄꤷ¤¿ÈÖ¹æ¤Î¸õÊä¤òÆÀ¤ë¡£ ¼¡¤Ë anthy_input_get_candidate ¤Ç¥×¥ê¥¨¥Ç¥£¥Ã¥È¤òÍ׵ᤷ¤¿»þ¤Ï¡¢ cand_no ¤Î¼¡¤Î¸õÊ䤬ÊÖ¤µ¤ì¤ë¡£ int anthy_input_select_candidate(struct anthy_input_context* ictx, int cand); °ú¿ô: ictx ¥³¥ó¥Æ¥¥¹¥È¹½Â¤ÂÎ cand_no ¸õÊäÈÖ¹æ ÊÖ¤êÃÍ: À®¸ù 0 ¼ºÇÔ ¤½¤ì°Ê³° ÊÑ´¹Ãæ¾õÂ֤ǤÀ¤±Í¸ú¡£ ÁªÂòÃæʸÀá¤Î»ØÄꤷ¤¿ÈÖ¹æ¤Î¸õÊä¤òÁªÂò¤·¡¢ÁªÂòÃæʸÀá¤ò±¦¤ÎʸÀá¤Ë°ÜÆ°¤µ¤»¤ë¡£ void anthy_input_free_preedit(struct anthy_input_preedit* pedit); °ú¿ô: pedit ¥×¥ê¥¨¥Ç¥£¥Ã¥È¹½Â¤ÂÎ ÊÖ¤êÃÍ: ̵¤· ¥×¥ê¥¨¥Ç¥£¥Ã¥È¹½Â¤ÂΤò²òÊü¤¹¤ë¡£ void anthy_input_free_segment(struct anthy_input_segment* cand); °ú¿ô: cand ʸÀṽ¤ÂΡ£ ÊÖ¤êÃÍ: ̵¤· ʸÀṽ¤ÂΤò²òÊü¤¹¤ë¡£ * ¥Ç¡¼¥¿·¿¤ÎÀâÌÀ * struct anthy_input_preedit { int state; /* ¾õÂÖ */ char* commit; /* ³ÎÄêʸ»úÎó */ char* cut_buf; /* ÀÚ¤ê¼è¤Ã¤¿Ê¸»úÎó */ struct anthy_input_segment* segment; /* ʸÀá¥ê¥¹¥È */ struct anthy_input_segment* cur_segment; /* ÁªÂòÃæ¤ÎʸÀá */ }; state: ¸½ºß¤Î¾õÂÖ ST_NONE ÂÔµ¡¾õÂÖ ST_EDIT ÊÔ½¸Ãæ¾õÂÖ ST_CONV ÊÑ´¹Ãæ¾õÂÖ ST_CSEG ʸÀ´̾õÂÖ commit: NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢³ÎÄꤵ¤ì¤¿Ê¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ commit ¤Ï°ìÅÙ anthy_input_get_preedit ¤¹¤ë¤È¾Ã¤¨¤ë¡£ cut_buf: NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ anthy_input_cut ¤Ë¤è¤ê¾Ã¤µ¤ì¤¿Ê¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ cut_buf ¤Ï°ìÅÙ anthy_input_get_preedit ¤¹¤ë¤È¾Ã¤¨¤ë¡£ segment: ÊÑ´¹Ã桢ʸÀ´̾õÂ֤ǤÏʸÀá¤Î¥ê¥¹¥È ÊÔ½¸Ãæ¾õÂ֤Ǥϡ¢¥«¡¼¥½¥ëÁ°Ê¸»úÎó¡¢¥í¡¼¥Þ»úʸ»úÎ󡢶õʸÀá¡¢ ¥«¡¼¥½¥ë¸åʸ»úÎó¤Î¥ê¥¹¥È cur_segment: ¥«¡¼¥½¥ë¤Î¤¢¤ëʸÀá struct anthy_input_segment { char* str; /* ʸ»úÎó */ int cand_no; /* ¸õÊäÈÖ¹æ */ int noconv_len; /* ̵ÊÑ´¹¾õÂ֤ǤΥХ¤¥È¿ô */ int nr_cand; /* ¸õÊä¿ô */ int flag; /* ¥Õ¥é¥° */ struct anthy_input_segment* next; /* ¼¡¤ÎʸÀá */ }; str: ¸½ºß¤Î¸õÊä¤Îʸ»úÎó (ÊÔ½¸Ãæ¾õÂ֤Ρ¢¥«¡¼¥½¥ë¤òɽ¤¹Ê¸Àá¤Ç¤Ï NULL ¤Ë¤Ê¤Ã¤Æ¤¤¤ë) cand_no: ¸õÊäÈÖ¹æ (0 ¡Á nr_cand - 1, ¸õÊä¤Î³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸Àá¤Ç¤Ê¤¤¤È¤¤È̵ÊÑ´¹¸õÊä¤Î¤È¤¤Ï -1) noconv_len: ̵ÊÑ´¹¾õÂ֤ǤÎʸÀá¤Îʸ»úÎó¤ÎŤµ (¥Ð¥¤¥È¿ô) nr_cand: Á´¸õÊä¿ô (¸õÊä¤Î³ä¤êÅö¤Æ¤é¤ì¤¿Ê¸Àá¤Ç¤Ê¤¤¤È¤¤Ï -1) flag: ʸÀá¤Î¼ïÎà¤òɽ¤¹¥Õ¥é¥° SF_CURSOR ¥«¡¼¥½¥ë¤Þ¤¿¤ÏÁªÂòÃæʸÀá SF_ENUM ¿ô²óϢ³¤ÇÊÑ´¹¥¡¼¤¬²¡¤µ¤ì¤ë¤Ê¤É¤·¤¿¤Î¤Ç¡¢ ¸õÊä°ìÍ÷¤òɽ¼¨¤¹¤ë¤³¤È¤ò¥é¥¤¥Ö¥é¥ê¤¬Äó°Æ¤·¤Æ¤¤¤ë¡£ ¤³¤ì¤ò¼õ¤±¼è¤ë¤È¡¢ anthy_input_get_candidate ¤ò»È¤Ã¤Æ¸õÊä°ìÍ÷¤òɽ¼¨¤¹¤ë¤Î¤¬Ë¾¤Þ¤·¤¤¡£ SF_ENUM_REVERSE µÕÊý¸þ¤Î¸õÊä°ìÍ÷¤òɽ¼¨¤¹¤ë¤³¤È¤ò¥é¥¤¥Ö¥é¥ê¤¬ Äó°Æ¤·¤Æ¤¤¤ë SF_EDITTING ÊÔ½¸Ãæ¾õÂÖ¤Îʸ»úÎó SF_PENDING ¤Þ¤À¥í¡¼¥Þ»ú¤Î¤Þ¤Þ¤Ç¡¢²¾Ì¾¤Ë¤â¤Ê¤Ã¤Æ¤¤¤Ê¤¤Ê¸»úÎó SF_FOLLOWING ʸÀ´̾õÂ֤ǡ¢ÁªÂòÃæʸÀá¤è¤ê¸å¤í¤Îʸ»úÎó ¤ò 1 ʸÀá¤Ë¤·¤¿Ê¸Àá