Next: , Previous: , Up: モードラインのフォーマット   [Contents][Index]


24.4.7 ウィンドウのヘッダーライン

最下部にモードラインをもつことができるのと同じように、ウィンドウは最上部にヘッダーライン(header line)をもつことができます。ヘッダーライン機能は、それがheader-line-formatによって制御されることを除けばモードラインと同じように機能します。

Variable: header-line-format

すべてのバッファーにたいしてローカルなこの変数は、そのバッファーを表示するバッファーにたいしてヘッダーラインを表示する方法を指定する。この変数の値のフォーマットはmode-line-formatにたいするフォーマットと同じ(モードラインのデータ構造を参照)。この変数は通常はnilなので、通常のバッファーはヘッダーラインをもたない。

バッファーでdisplay-line-numbers-mode (display-line-numbers-mode in The GNU Emacs Manualを参照)がオンになっていると、バッファーのテキストは行番号の表示に必要なスクリーンスペース分インデントされて表示されます。それとは対照的にヘッダーラインのテキストは自動的にインデントされません。ヘッダーラインに行番号が表示されることはありませんし、ヘッダーラインとその下にあるバッファーのテキストが直接関連する必要はないからです。バッファーのテキストに合わせてヘッダーラインのテキストを位置揃えする必要があるLispプログラムや、tabulated-list-mode (Tabulated Listモードを参照)のように列形式データを表示するバッファーは、マイナーモードheader-line-indent-modeをオンにする必要があります。

Command: header-line-indent-mode

このバッファーローカルなマイナーモードはスクリーン上で表示されている行番号の幅(そのウィンドウで表示されている行番号範囲に応じて大きく異なる可能性あり)の変更を追跡して、行番号の幅が変更された際にヘッダーラインとバッファーラインのテキストを常に位置揃えさせる手段をLispプログラムに提供する。このようなLispプログラムはバッファーでこのモードをオンにして、常時テキストのインデントを確実に調節するために、header-line-formatの中でheader-line-indentおよびheader-line-indent-widthという変数を使う必要がある。

Variable: header-line-indent

そのウィンドウで表示されているバッファーでheader-line-indent-modeの場合には、表示中の行番号のカレント幅と同じ幅をもつ空白文字列がこの変数の値となる。空白の個数はヘッダーラインのテキストのフェイスにおいて、サイズも含めてフレームのデフォルトフォントと同じフォントが使用されている前提で計算される。この前提が成り立たない場合には、かわりに下記のheader-line-indent-widthを使うこと。これは値をヘッダーラインのテキストの先頭に追加することによって、バッファーのテキストに合わせてヘッダーラインのテキスト全体のインデントを再調整するというシンプルな状況で使用されることを意図した変数である。たとえば以下のheader-line-formatの定義では:

(setq header-line-format
      `("" header-line-indent ,my-header-line))

ここでmy-header-lineはヘッダーラインの実際のテキストを生成するフォーマット文字列。これによりヘッダーラインのテキストはその下にあるバッファーと同じように常にインデントされることが保証される。

Variable: header-line-indent-width

This variable’s value is kept updated to provide the current width, in units of the frame’s canonical character width, used for displaying the line numbers, provided that header-line-indent-mode is turned on in the buffer shown in the window. It can be used for aligning the header-line text with the buffer text when header-line-indent is not flexible enough. For example, if the header line uses a font whose metrics is different from the default face’s font, your Lisp program can calculate the width of line-number display in pixels, by multiplying the value of this variable by the value returned by frame-char-width (see フレームのフォント), and then use the result to align header-line text using the :align-to display property spec (see スペースの指定) in pixels on the relevant parts of header-line-format.

Function: window-header-line-height &optional window

この関数はwindowのヘッダーラインの高さをピクセルでリターンする。windowは生きたウィンドウでなければならずデフォルトは選択されたウィンドウ。

高さが1行しかないウィンドウがヘッダーラインを表示することは決してありません。また高さが2行しかないウィンドウは、同時にモードラインとヘッダーラインを表示できません。そのようなウィンドウがモードラインをもつ場合にはヘッダーラインは表示されません。

This page has generated for branch:master, commit:762705fb24fd90db318f2e51c1e762452d26f7e2 to check Japanese translation.