-;;; Displaying buffers.
-(defconst display-buffer-default-specifiers
- '((reuse-window nil same visible)
- (pop-up-window (largest . nil) (lru . nil))
- (pop-up-window-min-height . 40)
- (pop-up-window-min-width . 80)
- (reuse-window other nil nil)
- (reuse-window nil other visible)
- (reuse-window nil nil t)
- (reuse-window-even-sizes . t))
- "Buffer display default specifiers.
-The value specified here is used when no other specifiers have
-been specified by the user or the application. Consult the
-documentation of `display-buffer-alist' for a description of
-buffer display specifiers.")
-
-(defconst display-buffer-macro-specifiers
- '((same-window
- ;; Use the same window.
- (reuse-window same nil nil))
- (same-frame
- ;; Avoid other frames.
- (reuse-window nil same nil)
- (pop-up-window (largest . nil) (lru . nil))
- (reuse-window nil other nil))
- ;; (other-window
- ;; ;; Avoid selected window.
- ;; (reuse-window other same visible)
- ;; (pop-up-window (largest . nil) (lru . nil))
- ;; (reuse-window other other visible))
- (same-frame-other-window
- ;; Avoid other frames and selected window.
- (reuse-window other same nil)
- (pop-up-window (largest . nil) (lru . nil))
- (reuse-window other other nil))
- (other-frame
- ;; Avoid selected frame.
- (reuse-window nil same other)
- (pop-up-frame)
- (reuse-window nil other other))
- (default
- ;; The default specifiers.
- display-buffer-default-specifiers))
- "Buffer display macro specifiers.")
-
-(defcustom display-buffer-alist
- '((((regexp . ".*"))
- ;; Reuse window showing same buffer on same frame.
- reuse-window (reuse-window nil same nil)
- ;; Pop up window.
- pop-up-window
- ;; Split largest or lru window.
- (pop-up-window (largest . nil) (lru . nil))
- (pop-up-window-min-height . 40) ; split-height-threshold / 2
- (pop-up-window-min-width . 80) ; split-width-threshold / 2
- ;; Reuse any but selected window on same frame.
- reuse-window (reuse-window other nil nil)
- (reuse-window-even-sizes . t)))
- "List associating buffer identifiers with display specifiers.
-The car of each element of this list is built from a set of cons
-cells called buffer identifiers. `display-buffer' shows a buffer
-according to the display specifiers in the element's cdr
-\(elements are true lists) if at least one of the identifiers
-matches the first or third argument of `display-buffer'. Such a
-match occurs in one of the following three cases:
-
-- The car of the buffer identifier is the symbol `name' and its
- cdr is a string equalling the name of the buffer specified by
- the first \(BUFFER-OR-NAME) argument of `display-buffer'.
-
-- The car is the symbol `regexp' and the cdr is a regular
- expression matching the name of the buffer specified by the
- first \(BUFFER-OR-NAME) argument of `display-buffer'.
-
-- The car is the symbol `label' and the cdr is a symbol equalling
- the third \(LABEL) argument of `display-buffer'.
-
-Display specifiers are either symbols, cons cells, or lists.
-Five specifiers have been reserved to indicate the basic method
-for displaying the buffer: `reuse-window', `pop-up-window',
-`pop-up-frame', `use-side-window', and `fun-with-args'.
-
-A list whose car is the symbol `reuse-window' indicates that an
-existing window shall be reused for displaying the buffer. The
-second element of this list specifies the window to use and can
-be one of the following symbols:
-
- nil stands for any window.
-
- `same' stands for the selected window.
-
- `other' stands for any but the selected window.
-
-The third element specifies whether the buffer shown in a window
-that shall be reused must be the same buffer that shall be
-displayed or another buffer and can be one of the following:
-
- nil means to not care about the window's buffer.
-
- `same' means the window must show the buffer already.
-
- `other' means the window must not show the buffer yet.
-
-The fourth element specifies the set of frames to search for a
-suitable window and can be one of the following:
-
- nil to reuse a window on the selected frame.
-
- `visible' to search visible frames on the current terminal.
-
- `other' stands for any visible frame but the selected one.
-
- 0 \(the number zero) to search visible and iconified frames on
- the current terminal.
-
- t to search arbitrary frames including invisible ones.
-
-If more than one window fits the constraints imposed by these
-elements, the least recently used candidate is chosen. A side
-window is never reused unless it already shows the buffer.
-
-The following two specifiers are useful when the method equals
-`reuse-window':
-
-- A cons cell whose car is the symbol `reuse-window-even-sizes'
- and whose cdr is non-nil means to even out the sizes of a
- reused window and the selected window provided they (1) appear
- adjacent to each other and (2) the selected window is larger
- than the window chosen. If the cdr is nil, this means that the
- window sizes are left alone.
-
-- A cons cell whose car is the symbol `reuse-window-dedicated'
- and whose cdr is non-nil means that a window can be reused even
- if it's weakly dedicated to its buffer. If the cdr is t, a
- strongly dedicated window can be reused to show the buffer.
- Any other non-nil value means only weakly dedicated windows can
- be reused. If the cdr is nil, dedicated windows are not
- reused.
-
- This specifier should be used in emergency cases only since
- windows are usually made dedicated in order to prevent
- `display-buffer' from reusing them.
-
-A list whose car is the symbol `pop-up-window' and whose cdr is
-built from cons cells representing window/side tuples indicates
-that a new window shall be made for displaying the buffer on the
-selected frame.
-
-Window/side tuples are cons cells. The car of such a tuple
-identifies the window that shall be split. Possible values are
-`largest', `lru', `selected', and `root' to split the largest,
-least recently used, selected or root window of the selected
-frame.
-
-If the frame has side windows, these values do allow to split
-only the selected frame's main window or one of its subwindows.
-Setting the car to one of `left', `top', `right' and `bottom'
-splits the corresponding side window, provided such a window
-exists.
-
-The cdr of each pair specifies on which side of the window to
-split the new window shall appear and can be one of `below',
-`right', `above', or `left' with the obvious meanings. If the
-cdr is nil, the window is split in a fashion suitable for its
-current dimensions. If the cdr specifies a function, that
-function is called with one argument - the window to split. The
-function is supposed to split that window and return the new
-window.
-
-`display-buffer' scans these tuples until it can either produce a
-suitable window or fails. The default value for
-`display-buffer-alist' contains the tuples \(largest . nil) and
-\(lru . nil) in order to split the largest window first and, if
-that fails, the least recently used one.
-
-The following specifiers are useful if the method specifier is
-`pop-up-window'.
-
-- A cons cell whose car is the symbol `pop-up-window-min-height'
- specifiies the minimum height of the new window. If the cdr is
- an integer number, it specifies the minimum number of lines of
- the window. A floating point number gives the minimum fraction
- of the window height with respect to the height of the frame's
- root window. A new window is created only if it can be made at
- least as high as specified by the number. If the cdr is nil,
- this means to use the value of `window-min-height'.
-
-- A cons cell whose car is the symbol `pop-up-window-min-width'
- specifies the minimum width of the new window. If the cdr is
- an integer number, it specifies the minimum number of columns
- of the window. A floating point number gives the minimum
- fraction of the window width with respect to the width of the
- frame's root window. A new window is created only if it can be
- made at least as wide as specified by the number. If the cdr
- is nil, this means to use the value of `window-min-width'.
-
-- A cons cell whose car is `pop-up-window-set-height' with
- the following interpretations for the cdr:
-
- - nil means leave the height of the new window alone.
-
- - A number specifies the desired height of the new window. An
- integer number specifies the number of lines of the window.
- A floating point number gives the fraction of the window
- height with respect to the height of the frame's root window.
-
- - If the cdr specifies a function, that function is called with
- one argument - the new window. The function is supposed to
- adjust the height of the window; its return value is ignored.
- Suitable functions are `shrink-window-if-larger-than-buffer'
- and `fit-window-to-buffer'.
-
-- A cons cell whose car equals `pop-up-window-set-width' with
- the following interpretations for the cdr:
-
- - nil means leave the width of the new window alone.
-
- - A number specifies the desired width of the new window. An
- integer number specifies the number of columns of the window.
- A floating point number gives the fraction of the window
- width with respect to the width of the frame's root window.
-
- - If the cdr specifies a function, that function is called with
- one argument - the new window. The function is supposed to
- adjust the width of the window; its return value is ignored.
-
- Observe that specifying `pop-up-window-set-height' or
- `pop-up-window-set-width' may override restrictions given by
- the `pop-up-window-min-height' and `pop-up-window-min-width'
- specifiers.
-
-- A cons cell whose car is `pop-up-window-split-unsplittable' and
- whose cdr is non-nil allows to make a new window on an
- unsplittable frame. If the cdr is nil, unsplittable frames are
- not split. This specifier should be used in special cases only
- since frames are usually made unsplittable in order to prevent
- `display-buffer' from splitting them.
-
-A list whose car is the symbol `pop-up-frame' specifies that a
-new frame shall be made for displaying the buffer. The second
-element, if non-nil, allows popping up a new frame on graphic
-displays only.
-
-The following specifiers are useful if the method specifier is
-`pop-up-frame'.
-
-- A list whose car is the symbol `pop-up-frame-function' together
- with a valid function as cdr specifies the function for
- creating a new frame. If the cdr is nil, the default function
- `make-frame' is called. The function is called with the
- parameters and values provided by the specifier described next.
-
-- A list whose car is the symbol `pop-up-frame-alist' followed by
- an arbitrary number of frame parameter/value tuples, each given
- as a cons cell, specifies the parameters passed to the pop-up
- frame function.
-
-A list of three elements whose car is the symbol
-`use-side-window' specifies that the buffer shall be displayed in
-a side window of the selected frame. The second element denotes
-the side of the frame where the window appears or shall be made.
-The third element denotes the slot used by the window. If a side
-window with the specified slot exists already, that window is
-reused. If no such window exists it is created.
-
-The following specifiers are useful in connection with the
-`use-side-window' method specifier: `reuse-window-dedicated',
-`pop-up-window-min-height', `pop-up-window-min-width',
-`pop-up-window-set-height' and `pop-up-window-set-width'.
-
-A list whose car is the symbol `fun-with-args' specifies that the
-function specified in the second element of the list is
-responsible for displaying the buffer. `display-buffer' calls
-this function with the buffer as first argument and the remaining
-elements of the list as second argument.
-
-The function should choose or create a window, display the buffer
-in it, and return the window. It is also responsible for giving
-the variable `display-buffer-window' and the `quit-restore'
-parameter of the window used a meaningful value.
-
-Within the body of this function avoid calling `display-buffer'
-with the same buffer as argument since this may lead to endless
-recursion.
-
-Instead of supplying basic method specifiers, it's sometimes more
-convenient to use macro specifiers. They provide some commonly
-used display methods but do not support the fine control provided
-by the basic method specifiers. Macro specifiers are symbols.
-The following macro specifiers are provided:
-
- `same-window' to display the buffer in the selected window.
-
- `same-frame' to display the buffer on the selected frame.
-
- `other-window' to display the buffer in any window but the
- selected one.
-
- `same-frame-other-window' as `other-window' but stay on the
- selected frame.
-
- `other-frame' to display the buffer on another visible
- frame.
-
- `default' to use the default value of `display-buffer-alist'.
-
-One specifier is useful with any method specifier: A list whose
-car is the symbol `dedicate' and whose cdr is non-nil will
-dedicate the window to its buffer. The following values are
-supported:
-
-- nil to not dedicate the window to the buffer.
-
-- `weak' to weakly dedicate the window to the buffer.
-
-- t to strongly dedicate the window to the buffer.
-
-A cons cell whose car is `other-window-means-other-frame' and
-whose cdr is non-nil means that you want calls of
-`display-buffer' with the second argument t or the symbol
-`other-window' to display the buffer in another frame. This
-means, for example, that you prefer functions like
-`find-file-other-window' or `switch-to-buffer-other-window' to
-make a new frame instead of a new window on the selected frame.
-
-Usually, applications are free to override the specifiers of
-`display-buffer-alist' by passing their own specifiers as second
-argument of `display-buffer'. For every `display-buffer-alist'
-entry you can, however, add a cons cell whose car is the symbol
-`override' and whose cdr is non-nil, to explicitly override any
-value supplied by the application.
-
-Overriding specifiers supplied by the calling application is, in
-general, not advisable. It permits, for example, to change the
-semantics of a function like `display-buffer-other-window' by
-using the location specifiers `same-window' or `other-frame'."
- :risky t
- :type
- '(repeat
- :offset 9
- ;; Associations of buffer identifiers and display specifiers.
- (list
- :format "%v"
- ;; Buffer identifiers.
- (repeat
- :tag "Buffer identifiers"
- (choice
- :tag "Identifier"
- :format "%[%t%] %v" :size 15
- (cons
- :tag "Name"
- :format "%v"
- :help-echo "A buffer name."
- (const :format "" name)
- (string :format "Name: %v\n" :size 32))
- (cons
- :tag "Regexp"
- :format "%v"
- :help-echo "A regular expression matching buffer names."
- (const :format "" regexp)
- (string :format "Regexp: %v\n" :size 32))
- (cons
- :tag "Label"
- :format "%v"
- :help-echo "A symbol equalling the buffer display label."
- (const :format "" label)
- (symbol :format "Label: %v\n" :size 32))))
-
- ;; Display specifiers.
- (repeat
- :offset 9
- :tag "Display specifiers"
- :inline t
- (list
- :inline t
- :format "%v"
- (choice
- :tag "Method"
- :value (reuse-window
- (reuse-window nil same nil)
- (reuse-window-even-sizes . t))
- :inline t
- :help-echo "Method for displaying the buffer."
- :format "%[Method%] %v" :size 15
-
- ;; Reuse window specifiers.
- (list
- :tag "Reuse window"
- :value (reuse-window
- (reuse-window nil same nil)
- (reuse-window-even-sizes . t))
- :format "%t\n%v"
- :inline t
- ;; For customization purposes only.
- (const :format "" reuse-window)
- (set
- :format "%v"
- :inline t
- ;; The window to reuse.
- (list
- :format "%v\n"
- (const :format "" reuse-window)
- ;; The window type.
- (choice
- :tag "Window"
- :help-echo "Window to reuse."
- :value nil
- :format "%[Window%] %v" :size 15
- (const :tag "Any" :format "%t" nil)
- (const :tag "Selected only" :format "%t" same)
- (const :tag "Any but selected" :format "%t" other))
- ;; The window's buffer.
- (choice
- :tag "Buffer"
- :help-echo "Buffer shown by reused window."
- :value t
- :format " %[Buffer%] %v" :size 15
- (const :tag "Any buffer" :format "%t" nil)
- (const :tag "Same buffer" :format "%t" same)
- (const :tag "Other buffer" :format "%t" other))
- ;; The window's frame.
- (choice
- :help-echo "Frame to search for a window to reuse."
- :tag "Frame"
- :value nil
- :format " %[Frame%] %v" :size 15
- (const :tag "Selected frame only" :format "%t" nil)
- (const :tag "Visible frames" :format "%t" visible)
- (const :tag "Visible but unselected" :format "%t" other)
- (const :tag "Visible and iconified" :format "%t" 0)
- (const :tag "Any frame" :format "%t" t)))
- ;; Whether window sizes should be evened out.
- (cons
- :format "%v\n"
- :tag "Even window sizes"
- (const :format "" reuse-window-even-sizes)
- (choice
- :tag "Even window sizes"
- :help-echo "Whether to even sizes of selected and reused window."
- :value t
- :format "%[Even window sizes%] %v" :size 15
- (const :tag "Off" :format "%t" nil)
- (const :tag "Even window sizes" :format "%t" t)))
- ;; Whether to reuse a dedicated window
- (cons
- :format "%v\n"
- (const :format "" reuse-window-dedicated)
- (choice
- :tag "Reuse dedicated window" :value nil
- :help-echo "Reuse a window even if it is dedicated to its buffer."
- :format "%[Reuse dedicated window%] %v" :size 15
- (const :tag "Off" :format "%t" nil)
- (const :tag "Reuse weakly dedicated windows" :format "%t" weak)
- (const :tag "Reuse any dedicated window" :format "%t" t)))))
-
- ;; Pop-up window specifiers.
- (list
- :tag "Pop-up window"
- :value (pop-up-window (pop-up-window (largest . nil) (lru . nil)))
- :format "%t\n%v"
- :inline t
- (const :format "" pop-up-window)
- (set
- :format "%v"
- :inline t
- ;; Pop-up window list.
- (list
- :format "%v"
- :value (pop-up-window (largest . nil) (lru . nil))
- (const :format "" pop-up-window)
- (repeat
- :tag "Window / Side tuples"
- :inline t
- (cons
- :format "%v\n"
- (choice
- :tag "Window"
- :help-echo "The window to split."
- :value largest
- :format "%[Window%] %v"
- (const :tag "Largest" :format "%t" largest)
- (const :tag "Least recently used" :format "%t" lru)
- (const :tag "Selected" :format "%t" selected)
- (const :tag "Root" :format "%t" root)
- (const :tag "Left" :format "%t" left)
- (const :tag "Top" :format "%t" top)
- (const :tag "Right" :format "%t" right)
- (const :tag "Bottom" :format "%t" bottom))
- (choice
- :tag "Side"
- :help-echo "The position of the new window with respect to the window to split."
- :value nil
- :format " %[Side%] %v"
- (const :tag "Dynamic" :format "%t" nil)
- (const :tag "Below" :format "%t" below)
- (const :tag "Right" :format "%t" right)
- (const :tag "Above" :format "%t" above)
- (const :tag "Left" :format "%t" left)
- (function
- :tag "Function" :format "%v" :size 25)))))
- ;; Minimum height of pop-up windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-min-height)
- (choice
- :help-echo "Minimum height of popped-up window."
- :format "%[Minimum height%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of lines" :value 12 :size 5)
- (float :tag "Fraction of frame height" :value .25 :size 5)))
- ;; Minimum width of pop-up windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-min-width)
- (choice
- :help-echo "Minimum width of popped-up window."
- :format "%[Minimum width%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of columns" :value 12 :size 5)
- (float :tag "Fraction of frame width" :value .25 :size 5)))
- ;; Desired height of pop-up windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-set-height)
- (choice
- :help-echo "Desired height of popped-up window."
- :format "%[Desired height%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of lines" :value 12 :size 5)
- (float :tag "Fraction of frame height" :value .25 :size 5)
- (function :tag "Function" :size 25)))
- ;; Desired width of pop-up windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-set-width)
- (choice
- :help-echo "Desired width of popped-up window."
- :format "%[Desired width%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of column" :value 12 :size 5)
- (float :tag "Fraction of frame width" :value .25 :size 5)
- (function :tag "Function" :size 25)))
- ;; Split unsplittable frames.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-unsplittable)
- (choice
- :help-echo "Allow popping up a window on \"unsplittable\" frames."
- :format "%[Split unsplittable frame%] %v"
- (const :tag "Off" :format "%t" nil)
- (const :tag "Allow" :format "%t" t)))))
-
- ;; Pop-up frame specifiers.
- (list
- :tag "Pop-up frame"
- :value (pop-up-frame
- (pop-up-frame))
- :format "%t\n%v"
- :inline t
- (const :format "" pop-up-frame)
- (set
- :format "%v"
- :inline t
- ;; Pop-up frame.
- (list
- :tag "Pop-up a new frame"
- :value (pop-up-frame)
- :format "%v"
- (const :format "" pop-up-frame)
- (choice
- :tag "Pop-up a new frame"
- :help-echo "Whether to pop-up a new frame on a display."
- :format "%[Display%] %v\n" :size 15
- (const :tag "On any display" :format "%t" nil)
- (const :tag "On graphic displays only" :format "%t" t)))
- ;; Pop-up frame function.
- (cons
- :format "%v\n"
- (const :format "" pop-up-frame-function)
- (choice
- :tag "Pop-up frame function"
- :value nil
- :help-echo "Function to use to pop-up a new frame."
- :format "%[Function%] %v" :size 15
- (const :tag "Default" :format "%t" nil)
- (function
- :value make-frame
- :format "%t: %v"
- :size 25)))
- ;; Pop-up frame alist.
- (list
- :format "%v"
- (const :format "" pop-up-frame-alist)
- (repeat
- :tag "Parameter / Value tuples"
- :inline t
- (cons
- :format "%v\n"
- (symbol
- :tag "Parameter"
- :format "Parameter: %v"
- :size 16)
- (sexp
- :tag "Value"
- :format " Value: %v"
- :size 8))))))
-
- ;; Use side-window specifiers.
- (list
- :tag "Use side-window"
- :value (use-side-window (use-side-window bottom 0))
- :format "%t\n%v"
- :inline t
- ;; For customization purposes only.
- (const :format "" use-side-window)
- (set
- :format "%v"
- :inline t
- ;; Side and slot.
- (list
- :format "%v\n"
- :value (use-side-window bottom 0)
- (const :format "" use-side-window)
- ;; The side.
- (choice
- :tag "Side"
- :help-echo "Side of frame."
- :value bottom
- :format "%[Side%] %v" :size 15
- (const :tag "Left" :format "%t" left)
- (const :tag "Top" :format "%t" top)
- (const :tag "Right" :format "%t" right)
- (const :tag "Bottom" :format "%t" bottom))
- ;; The slot
- (number
- :tag "Slot"
- :help-echo "The slot (an arbitrary number, where 0 stands for the center slot)."
- :value 0
- :format " Slot: %v" :size 8))
- ;; Whether to reuse a dedicated side window
- (cons
- :format "%v\n"
- (const :format "" reuse-window-dedicated)
- (choice
- :tag "Reuse dedicated side window" :value nil
- :help-echo "Reuse a side window even if it is dedicated to its buffer."
- :format "%[Reuse dedicated side window%] %v" :size 15
- (const :tag "Off" :format "%t" nil)
- (const :tag "Reuse weakly dedicated side windows" :format "%t" weak)
- (const :tag "Reuse any dedicated side window" :format "%t" t)))
- ;; Minimum height of pop-up side windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-min-height)
- (choice
- :help-echo "Minimum height of popped-up side window."
- :format "%[Minimum height%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of lines" :value 12 :size 5)
- (float :tag "Fraction of frame height" :value .25 :size 5)))
- ;; Minimum width of pop-up windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-min-width)
- (choice
- :help-echo "Minimum width of popped-up side window."
- :format "%[Minimum width%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of columns" :value 12 :size 5)
- (float :tag "Fraction of frame width" :value .25 :size 5)))
- ;; Desired height of pop-up windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-set-height)
- (choice
- :help-echo "Desired height of popped-up side window."
- :format "%[Desired height%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of lines" :value 12 :size 5)
- (float :tag "Fraction of frame height" :value .25 :size 5)
- (function :tag "Function" :size 25)))
- ;; Desired width of pop-up windows.
- (cons
- :format "%v\n"
- (const :format "" pop-up-window-set-width)
- (choice
- :help-echo "Desired width of popped-up side window."
- :format "%[Desired width%] %v"
- (const :tag "Default" :format "%t" :value nil)
- (integer :tag "Number of column" :value 12 :size 5)
- (float :tag "Fraction of frame width" :value .25 :size 5)
- (function :tag "Function" :size 25)))))
-
- ;; Function with argument specifiers.
- (list
- :tag "Function with arguments"
- :value (fun-with-args (fun-with-args 'ignore))
- :format "%t\n%v"
- :inline t
- ;; For customization purposes only.
- (const :format "" fun-with-args)
- (set
- :format "%v"
- :inline t
- (list
- :format "%v"
- :value (fun-with-args 'ignore)
- (const :format "" fun-with-args)
- (function :tag "Function" :format "%t: %v\n" :size 25)
- (list
- :format "%v"
- (repeat
- :tag "Arguments"
- :inline t
- (sexp
- :format "%v\n"
- :size 16))))))
-
- ;; Macro specifiers.
- (list
- :tag "Same window"
- :format "%t%v"
- :inline t
- (const :format "\n" same-window))
- (list
- :tag "Same frame"
- :format "%t%v"
- :inline t
- (const :format "\n" same-frame))
- (list
- :tag "Other window"
- :format "%t%v"
- :inline t
- (const :format "\n" other-window))
- (list
- :tag "Same frame other window"
- :format "%t%v"
- :inline t
- (const :format "\n" same-frame-other-window))
- (list
- :tag "Other frame"
- :format "%t%v"
- :inline t
- (const :format "\n" other-frame))
- (list
- :tag "Default"
- :format "%t%v"
- :inline t
- (const :format "\n" default)))))
-
- (set
- :format "%v"
- :inline t
- ;; Dedicate window to buffer.
- (cons
- :format "%v"
- (const :format "" dedicate)
- (choice
- :help-echo "Mark window as dedicated to its buffer."
- :format "%[Dedicate window to buffer%] %v\n" :size 15
- (const :tag "Off" :format "%t" nil)
- (const :tag "Weak" :format "%t" weak)
- (const :tag "Strong" :format "%t" t)))
- ;; No other window.
- (cons
- :format "%v"
- (const :format "" no-other-window)
- (choice
- :help-echo "Whether `other-window' shall ignore the window."
- :format "%[No other window%] %v\n" :size 15
- (const :tag "Off" :format "%t" nil)
- (const :tag "Ignore" :format "%t" t)))
- ;; Other window means other frame.
- (cons
- :format "%v"
- (const :format "" other-window-means-other-frame)
- (choice
- :help-echo "Whether other window means same or other frame."
- :format "%[Same or other frame%] %v\n" :size 15
- (const :tag "Same frame" :format "%t" nil)
- (const :tag "Other frame" :format "%t" t)))
- ;; Overriding.
- (cons
- :format "%v\n"
- (const :format "" override)
- (choice
- :help-echo "Override application supplied specifiers."
- :format "%[Override%] %v"
- (const :tag "Off" :format "%t" nil)
- (const :tag "Override" :format "%t" t))))))
- :group 'windows
- :group 'frames)