aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref/modes.texi
diff options
context:
space:
mode:
authorEli Zaretskii <[email protected]>2010-12-18 10:53:28 +0200
committerEli Zaretskii <[email protected]>2010-12-18 10:53:28 +0200
commit287e63bb58cf30457222598c64b4bf551cdeb381 (patch)
tree10867687196a469f722029109d6960c44595a4f6 /doc/lispref/modes.texi
parent30d621a239c131219cade1d57742c5e852bcc4f9 (diff)
Fallout from fixing bug #7587.
doc/lispref/modes.texi (Emulating Mode Line): Update documentation of format-mode-line according to changes that fixed bug #7587. etc/NEWS: Mention the incompatible change in format-mode-line wrt its FACE argument.
Diffstat (limited to 'doc/lispref/modes.texi')
-rw-r--r--doc/lispref/modes.texi40
1 files changed, 27 insertions, 13 deletions
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 0b6547177e..5c5e6cd3fb 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -2111,29 +2111,43 @@ the text that would appear in a mode line or header line
based on a certain mode-line specification.
@defun format-mode-line format &optional face window buffer
-This function formats a line of text according to @var{format} as if
-it were generating the mode line for @var{window}, but instead of
-displaying the text in the mode line or the header line, it returns
-the text as a string. The argument @var{window} defaults to the
-selected window. If @var{buffer} is non-@code{nil}, all the
-information used is taken from @var{buffer}; by default, it comes from
-@var{window}'s buffer.
+This function formats a line of text according to @var{format} as if it
+were generating the mode line for @var{window}, but it also returns the
+text as a string. The argument @var{window} defaults to the selected
+window. If @var{buffer} is non-@code{nil}, all the information used is
+taken from @var{buffer}; by default, it comes from @var{window}'s
+buffer.
The value string normally has text properties that correspond to the
faces, keymaps, etc., that the mode line would have. And any character
-for which no @code{face} property is specified gets a default
-value which is usually @var{face}. (If @var{face} is @code{t},
-that stands for either @code{mode-line} if @var{window} is selected,
-otherwise @code{mode-line-inactive}. If @var{face} is @code{nil} or
-omitted, that stands for no face property.)
+for which no @code{face} property is specified gets a default value
+determined by @var{face}. If @var{face} is @code{t}, that stands for
+either @code{mode-line} if @var{window} is selected, otherwise
+@code{mode-line-inactive}. If @var{face} is @code{nil} or omitted, that
+stands for no face property.
However, if @var{face} is an integer, the value has no text properties.
+You can also specify other valid faces as the value of @var{face}.
+If the value is a @dfn{basic face}, one of @code{default}, @code{mode-line},
+@code{mode-line-inactive}, @code{header-line}, or @code{tool-bar}, that
+face provides the @code{face} property for characters whose face is not
+specified by @var{format}. Any other face is treated as @code{default},
+but you can remap one of the basic faces (@pxref{Face Remapping}) to get
+the same effect as with non-basic faces.
+
+Note that using @code{mode-line}, @code{mode-line-inactive}, or
+@code{header-line} as @var{face} will actually redisplay the mode line
+or the header line, respectively, using the current definitions of the
+corresponding face, in addition to returning the formatted string.
+(Other faces do not cause redisplay.)
+
For example, @code{(format-mode-line header-line-format)} returns the
text that would appear in the selected window's header line (@code{""}
if it has no header line). @code{(format-mode-line header-line-format
'header-line)} returns the same text, with each character
-carrying the face that it will have in the header line itself.
+carrying the face that it will have in the header line itself, and also
+redraws the header line.
@end defun
@node Imenu