TOKUNAGA Hiroyuki
tkng****@xem*****
2004年 1月 31日 (土) 04:52:25 JST
徳永です。uimのAPIの拡張をしようとしています。 今のところ、以下のような変更を考えています。 * cand_begin_cbの第三引数を「選択されている候補の番号」から「一度に表示 する候補の数」に変更 候補を表示するプログラムは、第三引数で指定された数よりも多くの候補を 一度に表示してはいけません。(SKKのasdfでの候補選択のため。)また、第三 引数が0であった場合には、全ての候補を表示することが期待されます。 また、この変更により、cand_begin_cbを呼んだだけでは、どの候補も選択され ない状態になります。uim-primeなどではこの方が都合が良いはずです。 ちなみに、0.2.4か0.2.5あたりから、gtk+用のimmoduleは第三引数は無視する ようにしてあったりします。 * uim_get_candidateの仕様を char *uim_get_candidate(uim_context uc, int index); から void uim_get_candidate(uim_context uc, int index, int disp_index, char **index_str, char **cand, char **annotation); に変更する disp_indexは、何番目に表示される候補であるかを示します。例えば、index = 15で disp_index = 5であるような状況が考えられます。index_strはインデッ クスとして候補の右横に表示される文字列を意味します。candがこれまでの候補 文字列で、annotationはその候補に対する注釈などです。annotationが必要かど うかは悩むところです。 この仕様変更により、SKKのasdfのような候補選択が可能になります。 * 候補文字列関連のcallback関数として move_page_cb(uim_context uc, int direction) を加える。 候補を1ページ分移動します。directionでどちらに移動するかを決めます。 全体的に、候補文字列を一直線で表示する事を想定したAPIになっているとこ ろが気に入らないのですが、これまでの事を考えると、まずはこの程度で満足す るべきではないかと思ってます。 次のリリースまでにhelperやproperty関連のAPIの変更も加えてしまいたいの ですが、こちらはまだちょっとまとまってません。この週末にでもまとめます。 -- 徳永拓之 http://kodou.net/