[Scim-imengine-dev 1438] Re: カーソル位置取得のサンプルコード

アーカイブの一覧に戻る

Takashi Nakamoto blued****@bpost*****
2006年 12月 7日 (木) 02:05:17 JST


中本です。

Takashi Nakamoto <blued****@bpost*****> wrote:
> > これを使えば、言語による候補ウィンドウ縦横問題も解決できますし、一部で蔓
> > 延している?「SCIMでは独自UIを作れない」という誤った認識も払拭できるの
> > で、暇があったらscim-anthyにも独自候補ウィンドウを実装してくれると嬉しい
> > です:)
> 
> 1. AnthyInstanceでIMEngineInstanceBaseの*_lookup_tableメソッドと
>    *_aux_stringメソッドをオーバライドして、ヘルパーにイベントを投げる
> 2. ヘルパー側で描画する
> 
> ってな感じになるのでしょうか。できそうなので、やってみます。来週か再来
> 週ぐらいに。

作ってみました。大変かと思いきや、数百行程度のコード追加するだけでそこ
そこのものができました。

今のところヘルパーでの描画をさぼって、GtkLabelを使って lookup_table と
aux_string を表示していますが、そのあたりはGdkかPango使ってごりごりや
ればいいだけなので、大変ですができます。やります。

けれども、いくつか自己解決できなさそうな問題点があるので、ヘルプお願い
します。
 1. xim経由で変換する際、プリエディットウィンドウに重なって候補ウィンド
  ウが表示される
 2. スクリーンの下端や右端で変換すると、ウィンドウがスクリーンの外には
    み出てしまう。

1.はどうしたらいいのか分からないです。scimの仕組みに詳しくないので、ぜ
ひヘルプお願いします。

2.は独自候補ウィンドウでない場合には、プリエディット文字列に重なってで
も無理矢理スクリーン内におさまるようにして候補ウィンドウを表示します。
しかし、プリエディット文字列に重なってしまうので、あんまり良くないです。

そもそも、スクリーンの下端や右端で変換することがないので今まであんまり
気にはなっていませんでしたが、自分で実装すると気になります。とりあえず、
プリエディット文字列に重なってでもスクリーン内におさまるように実装して
みますが、もっといい解決策があれば教えてくださいませ。欲しいのはカーソ
ルの直上の座標です。そうすれば、カーソルの直上に候補ウィンドウを表示す
ることができます。

p.s.
今日友達に教えてもらった話。
MS-IMEで普通にひらがなモードで日本語を入力しているときに、「\(円マーク)」
を2つ続けて入力すると、なぜか半角英数モードになってしまいます。
これって、いったいなんの意味があるんでしょう。

-- 
 中本 崇志 (Takashi Nakamoto)
 E-mail: blued****@bpost*****
 Blog: http://bd.tank.jp/diary/



Scim-imengine-dev メーリングリストの案内
アーカイブの一覧に戻る