YAMAMOTO Kengo / YamaKen
yamak****@bp*****
2006年 8月 11日 (金) 22:37:16 JST
ヤマケンです。 加藤さんの日記から議論が派生したんでMLに場を移します。 Etsushi Kato wrote: > あとヤマケンさんのコメントに関連してちょっと話が飛びますけど、 > uim 自身の preedit 文字の属性って bridge 側からみると微妙だな > と前から思ってました。見た目 (reverse とか underline) ではなく > て意味づけ (converting とか selected とか) のほうがいいと思う > のですけど。見た目は、ユーザ (bridge) がそれらの意味にたいして > 変更できればいいので。 気持ちはよくわかるんですが、私は今のところ現状維持派です。 [Anthy-dev 418]あたりからずっと引きずってる問題ですが、「意味で 規定」にも色々とレベルがありますね。 例えばSCIMではRGB形式でプリエディットへの直接色指定が可能ですが、 これはツールキット側のテーマ変更等と連動しないので、周りと調和し なかったり背景と同色になって文字が読めなくなったりしてしまうので よろしくないです。足永さんも言ってましたが。 これに対して、'reversed'や'underlined'は「装飾」の意味を規定する 一層上の抽象指定なので、ツールキット側で適切に解釈・描画されます。 現在のuimはこのレベルですね。これをさらにもう一層上の「テキスト の論理的区分」レベルの意味で規定しようというのが加藤さんの案です が、私は今のところあまりうまくいかないんじゃないかと思っています。 例えば、uim-skkでは'selected'や'converting'に相当する意味レベル のタグは以下のようにうんざりするほど専用的に細分化されています。 これらの高レベルタグを全てuim.hに収容したり、または汎用意味レベ ルタグに再度マッピングする等を行う手間をかけるほどのメリットは無 いと思います。 (define skk-style-ddskk-like '((skk-preedit-attr-mode-mark . preedit-underline) (skk-preedit-attr-head . preedit-underline) (skk-preedit-attr-okuri . preedit-underline) (skk-preedit-attr-pending-rk . preedit-underline) (skk-preedit-attr-conv-body . preedit-reverse) (skk-preedit-attr-conv-okuri . preedit-underline) (skk-preedit-attr-conv-appendix . preedit-underline) (skk-preedit-attr-direct-pending-rk . preedit-underline) (skk-preedit-attr-child-beginning-mark . preedit-underline) (skk-preedit-attr-child-end-mark . preedit-underline) (skk-preedit-attr-child-committed . preedit-underline) (skk-child-context-beginning-mark . "【") (skk-child-context-end-mark . "】") (skk-show-cursor-on-preedit? . #t) (skk-show-candidates-with-okuri? . #f))) なので、落としどころとしては、'underline'や'reverse'に代わる「装 飾」レベルの抽象的な名前を追加するあたりじゃないでしょうか。例え ば'emphasized'とか。ただ、それをするほどのメリットが得られるかど うかは直感的な名前セットを考案できるかにかかっているので、それま では現状維持の方がいいと思います。 それができたら、それぞれのタグをどう描画すべきかをブリッジ毎に custom等で設定可能とする、あたりが目標になりますかね。今でも uim-colorを通してある程度可能ですが、全ブリッジ共有設定だったり、 上述のSCIMの場合と同じくツールキット側の色設定と無関係だったりす るので微妙ですね。 ------------------------------------------------ YAMAMOTO Kengo / YamaKen yamak****@bp***** FAMILY Given / Nick