diff man/custom.texi @ 134:34a5b81f86ba r20-2b1

Import from CVS: tag r20-2b1
author cvs
date Mon, 13 Aug 2007 09:30:11 +0200
parents 9b50b4588a93
children b980b6286996
line wrap: on
line diff
--- a/man/custom.texi	Mon Aug 13 09:29:37 2007 +0200
+++ b/man/custom.texi	Mon Aug 13 09:30:11 2007 +0200
@@ -13,7 +13,7 @@
 @comment  node-name,  next,  previous,  up
 @top The Customization Library
 
-Version: 1.84
+Version: 1.89
 
 @menu
 * Introduction::                
@@ -492,9 +492,50 @@
 @table @code
 @item :type	
 @var{value} should be a widget type.
+
 @item :options
 @var{value} should be a list of possible members of the specified type.
 For hooks, this is a list of function names.
+
+@item :initialize
+@var{value} should be a function used to initialize the variable.  It
+takes two arguments, the symbol and value given in the @code{defcustom} call.
+Some predefined functions are:
+
+@table @code
+@item custom-initialize-set
+Use the @code{:set} method to initialize the variable.  Do not
+initialize it if already bound.  This is the default @code{:initialize}
+method. 
+
+@item custom-initialize-default
+Always use @code{set-default} to initialize the variable, even if a
+@code{:set} method has been specified.
+
+@item custom-initialize-reset
+If the variable is already bound, reset it by calling the @code{:set}
+method with the value returned by the @code{:get} method.
+
+@item custom-initialize-changed
+Like @code{custom-initialize-reset}, but use @code{set-default} to
+initialize the variable if it is not bound and has not been set
+already. 
+@end table
+
+@item :set 
+@var{value} should be a function to set the value of the symbol.  It
+takes two arguments, the symbol to set and the value to give it.  The
+default is @code{set-default}.
+
+@item :get
+@var{value} should be a function to extract the value of symbol.  The
+function takes one argument, a symbol, and should return the current
+value for that symbol.  The default is @code{default-value}.
+
+@item :require
+@var{value} should be a feature symbol.  Each feature will be required
+after initialization, of the the user have saved this option.
+
 @end table
 
 @xref{Sexp Types,,,widget,The Widget Library}, for information about
@@ -565,7 +606,7 @@
   
 Internally, custom uses the symbol property @code{factory-face} for the
 program specified default face properties, @code{saved-face} for
-properties saved by the user, and @code{face-doc-string} for the
+properties saved by the user, and @code{face-documentation} for the
 documentation string.@refill
 
 @end defun
@@ -634,11 +675,6 @@
 @section Wishlist
 
 @itemize @bullet
-@item
-The menu items should be grayed out when the information is
-missing.  I.e. if a variable doesn't have a factory setting, the user
-should not be allowed to select the @samp{Factory} menu item.
-
 @item 
 Better support for keyboard operations in the customize buffer.
 
@@ -663,10 +699,6 @@
 Make it possible to append to `choice', `radio', and `set' options.
 
 @item
-Make it possible to customize code, for example to enable or disable a
-global minor mode.
-
-@item
 Ask whether set or modified variables should be saved in
 @code{kill-buffer-hook}. 
 
@@ -689,6 +721,32 @@
 Make it possible to include a comment/remark/annotation when saving an
 option.
 
+@item
+Add some direct support for meta variables, i.e. make it possible to
+specify that this variable should be reset when that variable is
+changed. 
+
+@item
+Add tutorial.
+
+@item
+Describe the @code{:type} syntax in this manual.
+
+@item
+Find a place is this manual for the following text:
+
+@strong{Radio vs. Buttons}
+
+Use a radio if you can't find a good way to describe the item in the
+choice menu text.  I.e. it is better to use a radio if you expect the
+user would otherwise manually select each item from the choice menu in
+turn to see what it expands too.
+
+Avoid radios if some of the items expands to complex structures.
+
+I mostly use radios when most of the items are of type
+@code{function-item} or @code{variable-item}.
+
 @end itemize
 
 @contents