YamaKen
yamak****@bp*****
2004年 2月 19日 (木) 08:59:19 JST
ヤマケンです。 このメールの後半は名前に関する議論になっているので、そちらにも反 応お願いします。 At Sat, 07 Feb 2004 00:12:14 +0900, yamak****@bp***** wrote: > > At Fri, 06 Feb 2004 22:31:47 +0900 (JST), > yusuk****@cheru***** wrote: > > > uimのプリエディット属性に文節セパレータを追加する事を提案します。 > > > 反対意見が無いようであれば実装してみます。 > > これ自体は賛成です。変更を行う際に思うところを書いておきます。 gtk-im-uimとanthy, cannaで利用できるようにしてみました。 IMKit-uimも手元の版で対応しています。 .uimに以下のような設定を追加すると有効になります。 (define anthy-show-segment-separator? #t) ;(define anthy-segment-separator "/") ;区切り文字を変更する場合 Pangoの仕様をよく理解していないので改善の余地があるのかもしれま せんが、表示されている様子は正直ビミョーな感じです。以下のような 点がまずいのですが、これはPangoを正しく利用すれば解決できるので しょうか? ・他のプリエディット文字列とはセパレータの色を変えているが、セパ レータのアンダーラインの色まで同時に変わってしまう ・セパレータと前後の文節の間でアンダーラインが途切れてしまう > > *UPeAttr*という名前を変更する。 > > なんとなく意味不明なので、他の定数と同時に変えてしまいたいです。 > > 実は私もこの名前にはなかなか馴染めませんでした。これ以上分かりや > すくするには結局フルネームにするのがいいんじゃないでしょうか。そ > んなに頻繁に出てくる名前でもないので。 > > enum UPreeditAttr { > UPreeditAttr_None = 0, > UPreeditAttr_UnderLine = 1, > UPreeditAttr_Reverse = 2, > UPreeditAttr_Cursor = 4, > UPreeditAttr_Separator = 8, > }; 上記のように変えてみようと思うんですが、意見はないでしょうか。ま ずい場合は「何となく馴染めない」といった程度の理由でも構わないの で止めて下さい。 代案としては、いっそ "e" を取ってしまって UPAttr_UnderLine とい うのもアリだと思います。今の UPeAttr よりは馴染みやすいと思うの で。 > その他の定数というと以下のUKeyとUKeyModifierですが、modifierの方 > の定数がUKey_Shiftのような名前になっているのはUKeyと区別がつかな > いのでまずいと思います。 > > enum UKey { > ... > UKey_Shift_key, .> UKey_Control_key, > UKey_Alt_key, > UKey_Meta_key, > UKey_Other = 1000 > }; > > enum UKeyModifier { > UKey_Shift = 1, > UKey_Control = 2, > UKey_Alt = 4, > UKey_Meta = 8, > UKey_Pseudo0 = 16, > UKey_Pseudo1 = 32, > }; > > 以下のような変更でどうでしょうか。UMod_というプリフィクスは単体 > では分かりずらいですが、UMod_Controlのようにキーの名前と合わされ > ばほとんど誤解される事もないと思います。 > > enum UKeyModifier { > UMod_Shift = 1, > UMod_Control = 2, > UMod_Alt = 4, > UMod_Meta = 8, > UMod_Pseudo0 = 16, > UMod_Pseudo1 = 32, > }; こちらはAPI利用者に明確な悪影響があるので、0.3.0のAPI変更を機に 直しておくべきだと思います。UKey_Shift_keyとUKey_Shiftという名前 は激しく紛らわしいので。 特に止められない限り明日あたりに変えてしまおうと思います。 > この変更に各ブリッジが追従できたら、enum UKeyの方で定義されてい > るUKey_Shift_key等を本来の自然な名前であるUKey_Shiftに直せばよい > と思います。 これは UKey_Shift という名前の意味するものが UKeyModifier から UKey に変わってしまうという危険な変更なので、0.3.0では見送った方 がいいような気がしてきました。0.3.0では UKey_Shift_key と UMod_Shift のような名前を使うという事でどうでしょうか。 UKey_Shift という名前が全てのlibuim利用コードから消えた時点で必 要に応じて再度リネームすれば安全だと思います。 名前に関する話が出たついでですが、以下の begin_cb と end_cb はそ れぞれ activate_cb と deactivate_cb に変更してよいんですよね? 今 現在この周辺のコードがいじられていなければ呼び出し側を含めて全部 変えてしまおうと思いますので、まずければ言ってください。 int uim_set_candidate_selector_cb( uim_context uc, void (*begin_cb)(void *ptr, int nr, int display_limit), void (*select_cb)(void *ptr, int index), void (*shift_page_cb)(void *ptr, int direction), void (*end_cb)(void *ptr)); ------------------------------- ヤマケン yamak****@bp*****