view man/lispref/dialog.texi @ 5179:14fda1dbdb26

add memory usage info for specifiers -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-03-29 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (lisp_object_storage_size): * alloc.c (Fobject_memory_usage): * alloc.c (lisp_object_memory_usage_full): Don't crash if passed a non-record object (int or char). * alloc.c (tree_memory_usage_1): * lrecord.h: New function tree_memory_usage() to return the memory usage of a tree of conses and/or vectors. * lisp.h: * lisp.h (PRIVATE_UNVERIFIED_LIST_LOOP_7): Add SAFE_LIST_LOOP_* functions for looping over a list not known to be correct or non-circular, but without signalling an error -- instead, just stop enumerating when an error detected. * emacs.c (main_1): * specifier.c: * specifier.c (specifier_memory_usage): * specifier.c (vars_of_specifier): * symsinit.h: Add memory usage info for specifiers.
author Ben Wing <ben@xemacs.org>
date Mon, 29 Mar 2010 22:47:55 -0500
parents 576fb035e263
children 9fae6227ede5
line wrap: on
line source

@c -*-texinfo-*-
@c This is part of the XEmacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/dialog.info
@node Dialog Boxes, Toolbar, Menus, Top
@chapter Dialog Boxes
@cindex dialog box

@menu
* Dialog Box Format::
* Dialog Box Functions::
@end menu

@node Dialog Box Format
@section Dialog Box Format

A dialog box description is a list.

@itemize @bullet
@item
The first element of the list is a string to display in the dialog box.
@item
The rest of the elements are descriptions of the dialog box's buttons.
Each one is a vector of three elements:
@itemize @minus
@item
The first element is the text of the button.
@item
The second element is the @dfn{callback}.
@item
The third element is @code{t} or @code{nil}, whether this button is
selectable.
@end itemize
@end itemize

If the callback of a button is a symbol, then it must name a command.
It will be invoked with @code{call-interactively}.  If it is a list,
then it is evaluated with @code{eval}.

One (and only one) of the buttons may be @code{nil}.  This marker means
that all following buttons should be flushright instead of flushleft.

The syntax, more precisely:

@example
   form         :=  <something to pass to `eval'>
   command      :=  <a symbol or string, to pass to `call-interactively'>
   callback     :=  command | form
   active-p     :=  <t, nil, or a form to evaluate to decide whether this
                    button should be selectable>
   name         :=  <string>
   partition    :=  'nil'
   button       :=  '['  name callback active-p ']'
   dialog       :=  '(' name [ button ]+ [ partition [ button ]+ ] ')'
@end example

@node Dialog Box Functions
@section Dialog Box Functions

@defun popup-dialog-box dbox-desc
This function pops up a dialog box.  @var{dbox-desc} describes how the
dialog box will appear (@pxref{Dialog Box Format}).
@end defun

@xref{Yes-or-No Queries}, for functions to ask a yes/no question using
a dialog box.