elisp: Dialog Boxes

 
 28.17 Dialog Boxes
 ==================
 
 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.
 
  -- Function: x-popup-dialog position contents &optional header
      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 the ‘nil’ appear on the
      left, and items that follow the ‘nil’ appear on the right.  If you
      don’t include a ‘nil’ 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 for
      ‘message-box’ (Seemessage-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.