[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:4096] Tooltip are incompletely implemented.



>>>>> [meadow-develop : No.4115] にて
>>>>> "himi" = MIYASHITA Hisashi (宮下 尚:HIMI) <himi@xxxxxxxxxxx> さんは書きました:
himi> > tooltip を表示できるように、Emacs-21.3.50 の実装を import 
himi> > しました。

himi> ざっと見てみました。

レビューありがとうございます。

himi> windowは、message thread で作成してください。main threadで
himi> 作成してはいけません。
himi> ちなみに、これを放っておくと何が起こってもおかしくありません。

ここら辺は良く理解していないので、次の developer's meeting ででも
解説してもらえるとありがたいです。

ちなみに、NTEmacs の my_create_tip_window()@w32fns.c では
> /* Create a tooltip window. Unlike my_create_window, we do not do this
>    indirectly via the Window thread, as we do not need to process Window
>    messages for the tooltip.  Creating tooltips indirectly also creates
>    deadlocks when tooltips are created for menu items.  */
と、tooltip window を message thread で作成する必要はないし、逆に
デッドロックの原因となると記述してあります。

Meadow には関係ないですか?


himi> SetWindowLong()でwindow初期化処理を行っていますが、他のAPIで
himi> 処理できる内容に関しては、使用を避けたほうが懸命です。

現状では、ここで設定した値を利用していなかったので、この設定を削
除しました。後ほど、良く考えて対応します。


himi> fontが、なんか、"default"を固定で選んでいますね。見なかった
himi> ことにとりあえずするのもなんなので、tooltip用のFRを作るのが
himi> 良さそうです。
^^;;

tooltip-frame-parameters でフォントを指定できるようにしました。
次のように指定します。

(w32-add-font
 "tipfont"
 '((strict-spec
    ((:char-spec ascii :height any)
     (w32-logfont "MS UI Gothic" 0 12 400 0 nil nil nil 128 1 3 49))
    ((:char-spec japanese-jisx0208 :height any)
     (w32-logfont "MS UI Gothic" 0 12 400 0 nil nil nil 128 1 3 49)))))

(setq tooltip-frame-parameters
      (append 
       '((internal-border-width . 1)
	 (font . "tipfont"))
       tooltip-frame-parameters))


himi> あと、Emacs Lispのpremitive functionの名前以外は、関数名には
himi> 一貫性のためにmw32_のprefixをつけてください。

了解です。
命名規則は次のような理解で正しいですか?

(1) mw32*.[ch] 内に閉じた extern 変数、関数の prefix は `mw32_' 
    とする。static の場合は、`x_' の prefix があれば、`mw32_' に
    変更する。

(2) mw32*.[ch] 外から参照される extern 変数、関数については、
   (a) Meadow で新規にmw32*.[ch] 外に 追加したものは、prefix を 
      `mw32_' とする。
   (b) 上記以外は、prefix を、`x_' や `w32_' のまま変更しない。
       (premitive function はここに含まれる)

--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
          http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)