ツールチップとは、マウスポインタの現在位置に関連する便利なヒント(いわゆる「チップス」)を表示するために使用される特殊なフレーム(フレームを参照)のことです。Emacsではツールチップを用いて、テキストのアクティブな部分(特殊な意味を持つプロパティを参照)や、メニュー項目(拡張メニュー項目を参照)やツールバーボタン(ツールバーを参照)といった各種UI要素に関するヘルプ文字列を表示します。
Tooltip Modeは、ツールチップの表示を有効にするマイナーモードです。このモードをオフにすると、ツールチップはエコーエリアに表示されるようになります。テキストモード(通称「TTY」)のフレームでは、ツールチップは常にエコーエリアに表示されます。
EmacsをGTK+ツールキットまたはHaikuウィンドウシステム対応でビルドした場合、デフォルトではツールキットの関数を用いてツールチップが表示され、ツールチップの外観はツールキットの設定によって制御されます。ツールキットが提供するツールチップは、変数
use-system-tooltips の値を nil
に変更することで無効化できます。本サブセクションの残りの部分では、Emacs自体によって表示される非ツールキットのツールチップの制御方法について説明します。
ツールチップは、ツールチップフレームと呼ばれる特殊なフレームに表示され、このフレームには独自のフレームパラメータがあります(フレームパラメータを参照)。他のフレームとは異なり、ツールチップフレームのデフォルトパラメータは特殊な変数に格納されています。
このカスタマイズ可能なオプションには、ツールチップの表示に使用されるデフォルトのフレームパラメータが設定されています。フォントや色のパラメータはすべて無視され、代わりに
tooltip フェイスの対応する属性が使用されます。left または top
パラメータが含まれている場合は、ツールチップを表示すべき位置として、絶対的なフレーム相対座標として使用されます。(ツールチップのマウス相対位置は、The GNU Emacs Manual の Tooltips
で説明されている変数を使用してカスタマイズできます。)なお、left および top パラメータが存在する場合は、マウス相対オフセットの値が上書きされます。
tooltip
フェイスは、ツールチップに表示されるテキストの外観を決定します。一般的には、デフォルトのフレームフォントよりも小さいことが望ましいサイズのバリアブルピッチフォントを使用する必要があります。
この異常なフックは、Emacsがツールチップを表示する必要がある際に呼び出される関数のリストです。各関数には、直前のマウス移動イベントのコピーである単一の引数
event が渡されます。このリスト内の関数が実際にツールチップを表示する場合は、nil
以外の値を返す必要があり、そうすることで残りの関数は呼び出されなくなります。この変数のデフォルト値は、単一の関数 tooltip-help-tips です。
tooltip-functions
リストに登録するための関数を自作する場合、ツールチップ表示のトリガーとなったマウスイベントのバッファ情報が必要になることがあります。以下の関数でその情報を取得できます。
この関数は、eventが発生したバッファを返します。tooltip-functionsの関数の引数を指定して呼び出すことで、ツールチップをトリガーしたテキストを含むバッファを取得できます。なお、イベントがバッファ上(例:ツールバー上)で発生しない場合があり、その場合はこの関数はnilを返します。
ツールチップ表示のその他の側面は、いくつかのカスタマイズ可能な設定によって制御されます。The GNU Emacs ManualのTooltipsを参照してください。