関数format-mode-line
を使用して、特定のモードライン構文にもとづいてモードラインやヘッダーラインに表示されるテキストを計算できます。
この関数は、あたかもwindowにたいしてモードラインを生成するかのようにformatに応じてテキスト行をフォーマットするが、さらにそのテキストを文字列としてリターンする。引数windowのデフォルトは選択されたウィンドウ。bufferが非nil
なら、使用されるすべての情報はbufferから取得される。デフォルトではwindowのバッファーから取得される。
文字列の値は通常はモードラインがもつであろうフェイス、キーマップ等に対応したテキストプロパティをもつ。formatにより指定されるface
プロパティをもたないすべての文字は、faceにより決定されるデフォルト値を取得する。faceがt
の場合はwindowが選択されていればmode-line
、それ以外はmode-line-inactive
であることを意味する。faceがnil
または省略された場合はデフォルトのフェイスを意味する。faceが整数なら、この関数はテキストプロパティをもたない値をリターンするだろう。
faceの値として他の有効なフェイスを指定することもできる。指定された場合、それはformatでフェイスを指定されていない文字のface
プロパティのフェイスを提供する。
faceとしてmode-line
、mode-line-inactive
、header-line
を使用することにより、フォーマットされた文字列のリターンに加えて、対応するフェイスのカレント定義を使用して実際にモードラインやヘッダーラインの再描画が行われることに注意(他のフェイスでは再描画は行われない)。
たとえば(format-mode-line
header-line-format)
は選択されたウィンドウに表示されるテキスト(ヘッダーラインがない場合は""
)をリターンするだろう。(format-mode-line
header-line-format
'header-line)
は、各文字がヘッダーライン内でもつであろうフェイスをもつ同じテキストをリターンするとともに、それに加えてヘッダーラインの再描画も行う。