Next: Pointer Shape, Previous: Pop-Up Menus, Up: Frames
A dialog box is a variant of a pop-up menu—it looks a little
different, it always appears in the center of a frame, and it has just
one level and one or more buttons. The main use of dialog boxes is
for asking questions that the user can answer with “yes”, “no”,
and a few other alternatives. With a single button, they can also
force the user to acknowledge important information. The functions
y-or-n-p
and yes-or-no-p
use dialog boxes instead of the
keyboard, when called from commands invoked by mouse clicks.
This function displays a pop-up dialog box and returns an indication of what selection the user makes. The argument contents specifies the alternatives to offer; it has this format:
(title (string . value)...)which looks like the list that specifies a single pane for
x-popup-menu
.The return value is value from the chosen alternative.
As for
x-popup-menu
, an element of the list may be just a string instead of a cons cell(
string.
value)
. That makes a box that cannot be selected.If
nil
appears in the list, it separates the left-hand items from the right-hand items; items that precede thenil
appear on the left, and items that follow thenil
appear on the right. If you don't include anil
in the list, then approximately half the items appear on each side.Dialog boxes always appear in the center of a frame; the argument position specifies which frame. The possible values are as in
x-popup-menu
, but the precise coordinates or the individual window don't matter; only the frame matters.If header is non-
nil
, the frame title for the box is ‘Information’, otherwise it is ‘Question’. The former is used formessage-box
(see message-box). (On text terminals, the box title is not displayed.)In some configurations, Emacs cannot display a real dialog box; so instead it displays the same items in a pop-up menu in the center of the frame.
If the user gets rid of the dialog box without making a valid choice, for instance using the window manager, then this produces a quit and
x-popup-dialog
does not return.