annotate man/lispref/dialog.texi @ 5714:489e76b85828

When an error is encountered while converting a Lisp menu specification to its internal form, don't fail an assert(). Instead, return 0 to skip the fault menu and show any errors in *Warnings*.
author Jerry James <james@xemacs.org>
date Mon, 21 Jan 2013 10:17:55 -0700
parents 576fb035e263
children 9fae6227ede5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 @c -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @c This is part of the XEmacs Lisp Reference Manual.
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 398
diff changeset
3 @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @c See the file lispref.texi for copying conditions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @setfilename ../../info/dialog.info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 @node Dialog Boxes, Toolbar, Menus, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @chapter Dialog Boxes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 @cindex dialog box
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 * Dialog Box Format::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 * Dialog Box Functions::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 @node Dialog Box Format
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 @section Dialog Box Format
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 A dialog box description is a list.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 The first element of the list is a string to display in the dialog box.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 The rest of the elements are descriptions of the dialog box's buttons.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 Each one is a vector of three elements:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 @itemize @minus
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 The first element is the text of the button.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 The second element is the @dfn{callback}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 The third element is @code{t} or @code{nil}, whether this button is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 selectable.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 If the callback of a button is a symbol, then it must name a command.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 It will be invoked with @code{call-interactively}. If it is a list,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 then it is evaluated with @code{eval}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 One (and only one) of the buttons may be @code{nil}. This marker means
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 that all following buttons should be flushright instead of flushleft.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 The syntax, more precisely:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 @example
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
47 form := <something to pass to `eval'>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
48 command := <a symbol or string, to pass to `call-interactively'>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
49 callback := command | form
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
50 active-p := <t, nil, or a form to evaluate to decide whether this
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
51 button should be selectable>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
52 name := <string>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
53 partition := 'nil'
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
54 button := '[' name callback active-p ']'
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
55 dialog := '(' name [ button ]+ [ partition [ button ]+ ] ')'
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 @node Dialog Box Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 @section Dialog Box Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 @defun popup-dialog-box dbox-desc
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 This function pops up a dialog box. @var{dbox-desc} describes how the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 dialog box will appear (@pxref{Dialog Box Format}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 @xref{Yes-or-No Queries}, for functions to ask a yes/no question using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 a dialog box.