Next: , Previous: , Up: Fringes   [Contents][Index]


39.13.4 フリンジのビットマップ

フリンジビットマップ(fringe bitmaps)は行の切り詰めや継続、バッファー境界、オーバーレイ矢印等にたいする論理的フリンジインジケーターを表現する実際のビットマップです。それぞれのビットマップはシンボルにより表されます。 これらのシンボルはフリンジインジケーターからビットマップへのマッピングを行う変数fringe-indicator-alist (Fringe Indicatorsを参照)、およびフリンジカーソルからビットマップへのマッピングを行う変数fringe-cursor-alist (Fringe Cursorsを参照)から参照されます。

Lispプログラムも行内に出現する文字の1つにdisplayプロパティを使用することにより、左フリンジまたは右フリンジ内にビットマップを直接表示することができます。そのような表示指定は以下の形式をもちます

(fringe bitmap [face])

fringeleft-fringeright-fringeいずれかのシンボル、bitmapは表示するビットマップを識別するシンボルです。オプションのfaceはビットマップの表示でフォアグラウンカラーおよびバックグラウンドカラーを使用するフェイスを命名します( faceが指定しないカラーにたいしてはfringeフェイスの属性を使用する)。faceを省略すると、fringeが指定しないカラーにdefaultフェイスの属性を使用することを意味します。defaultフェイスやfringeフェイスの属性に依存しない予測可能な結果を得るために、faceは省略せず常に特定のフェイスを与えることを推奨します。特にビットマップをfringeフェイスで表示したければ、faceとしてfringeを使用してください。

たとえば左フリンジに矢印を表示するためには、warningフェイスを使用して以下のようにできます:

(overlay-put
 (make-overlay (point) (point))
 'before-string (propertize
                 "x" 'display
                 `(left-fringe right-arrow warning)))

以下はEmacsが定義する標準的なフリンジビットマップと、(fringe-indicator-alistfringe-cursor-alistを通じて)Emacs内で現在それらが使用される方法のリストです。

left-arrowright-arrow

切り詰められた行を示すために使用される。

left-curly-arrowright-curly-arrow

継続された行を示すために使用される。

right-triangleleft-triangle

前者はオーバーレイ矢印により使用され、後者は使用されない。

up-arrowdown-arrow
bottom-left-anglebottom-right-angle
top-left-angletop-right-angle
left-bracketright-bracket
empty-line

バッファー境界を示すために使用される。

filled-rectanglehollow-rectangle
filled-squarehollow-square
vertical-barhorizontal-bar

フリンジカーソルの異なるタイプにたいして使用される。

exclamation-markquestion-mark

Emacsの中核機能では使用されない。

次のサブセクションではフリンジビットマップを独自に定義する方法を説明します。

Function: fringe-bitmaps-at-pos &optional pos window

この関数はウィンドウwindow内の位置posを含むディスプレイ行のフリンジビットマップをリターンする。リターン値は(left right ov)という形式をもつ。ここでleftは左フリンジ内のフリンジビットマップにたいするシンボル(ビットマップなしならnil)、rightは同様に右フリンジにたいして、ovが非nilなら左フリンジにオーバーレイ矢印が存在することを意味する。

window内でposが可視でなければ値はnilwindownilなら選択されたウィンドウを意味する。posnilならwindow内のポイントの値を意味する。