annotate man/custom.texi @ 793:e38acbeb1cae

[xemacs-hg @ 2002-03-29 04:46:17 by ben] lots o' fixes etc/ChangeLog: New file. Separated out all entries for etc/ into their own ChangeLog. Includes entries for the following files: etc/BABYL, etc/BETA, etc/CHARSETS, etc/DISTRIB, etc/Emacs.ad, etc/FTP, etc/GNUS-NEWS, etc/GOATS, etc/HELLO, etc/INSTALL, etc/MACHINES, etc/MAILINGLISTS, etc/MSDOS, etc/MYTHOLOGY, etc/NEWS, etc/OXYMORONS, etc/PACKAGES, etc/README, etc/TUTORIAL, etc/TUTORIAL.de, etc/TUTORIAL.ja, etc/TUTORIAL.ko, etc/TUTORIAL.se, etc/aliases.ksh, etc/altrasoft-logo.xpm, etc/check_cygwin_setup.sh, etc/custom/example-themes/europe-theme.el, etc/custom/example-themes/ex-custom-file, etc/custom/example-themes/example-theme.el, etc/e/eterm.ti, etc/edt-user.doc, etc/enriched.doc, etc/etags.1, etc/gnuserv.1, etc/gnuserv.README, etc/package-index.LATEST.gpg, etc/package-index.LATEST.pgp, etc/photos/jan.png, etc/recycle.xpm, etc/refcard.tex, etc/sample.Xdefaults, etc/sample.emacs, etc/sgml/CATALOG, etc/sgml/HTML32.dtd, etc/skk/SKK.tut.E, etc/smilies/Face_ase.xbm, etc/smilies/Face_ase2.xbm, etc/smilies/Face_ase3.xbm, etc/smilies/Face_smile.xbm, etc/smilies/Face_weep.xbm, etc/sounds, etc/toolbar, etc/toolbar/workshop-cap-up.xpm, etc/xemacs-ja.1, etc/xemacs.1, etc/yow.lines, etc\BETA, etc\NEWS, etc\README, etc\TUTORIAL, etc\TUTORIAL.de, etc\check_cygwin_setup.sh, etc\sample.init.el, etc\unicode\README, etc\unicode\mule-ucs\*, etc\unicode\other\* unicode/unicode-consortium/8859-16.TXT: New file. mule/english.el: Define this charset now, since a bug was fixed that formerly prevented it. mule/ethio-util.el: Fix compile errors involving Unicode `characters', which should be integers. Makefile.in.in: Always include gui.c, to fix compile error when TTY-only. EmacsFrame.c, abbrev.c, alloc.c, buffer.c, buffer.h, bytecode.c, bytecode.h, callint.c, callproc.c, casetab.c, casetab.h, charset.h, chartab.c, chartab.h, cmds.c, console-msw.c, console-msw.h, console-tty.c, console-x.c, console-x.h, console.c, console.h, data.c, database.c, device-gtk.c, device-msw.c, device-x.c, device.c, device.h, dialog-msw.c, doc.c, doprnt.c, dumper.c, dynarr.c, editfns.c, eldap.c, eldap.h, elhash.c, elhash.h, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, event-tty.c, event-unixoid.c, events.c, events.h, extents.c, extents.h, faces.c, faces.h, file-coding.c, file-coding.h, fileio.c, filelock.c, fns.c, frame-gtk.c, frame-msw.c, frame-tty.c, frame-x.c, frame.c, frame.h, free-hook.c, general-slots.h, glyphs-eimage.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gtk-xemacs.c, gui-msw.c, gui-x.c, gui-x.h, gui.c, gui.h, gutter.c, gutter.h, indent.c, input-method-xlib.c, insdel.c, keymap.c, keymap.h, lisp-disunion.h, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, marker.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, mule-canna.c, mule-ccl.c, mule-charset.c, mule-wnnfns.c, native-gtk-toolbar.c, objects-msw.c, objects-tty.c, objects-x.c, objects.c, objects.h, opaque.c, opaque.h, postgresql.c, postgresql.h, print.c, process-unix.c, process.c, process.h, rangetab.c, rangetab.h, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, scrollbar-gtk.c, scrollbar-msw.c, scrollbar-x.c, scrollbar.c, scrollbar.h, search.c, select-gtk.c, select-x.c, sound.c, specifier.c, specifier.h, strftime.c, symbols.c, symeval.h, syntax.h, text.c, text.h, toolbar-common.c, toolbar-msw.c, toolbar.c, toolbar.h, tooltalk.c, tooltalk.h, ui-gtk.c, ui-gtk.h, undo.c, vm-limit.c, window.c, window.h: Eliminate XSETFOO. Replace all usages with wrap_foo(). Make symbol->name a Lisp_Object, not Lisp_String *. Eliminate nearly all uses of Lisp_String * in favor of Lisp_Object, and correct macros so most of them favor Lisp_Object. Create new error-behavior ERROR_ME_DEBUG_WARN -- output warnings, but at level `debug' (usually ignored). Use it when instantiating specifiers, so problems can be debugged. Move log-warning-minimum-level into C so that we can optimize ERROR_ME_DEBUG_WARN. Fix warning levels consistent with new definitions. Add default_ and parent fields to char table; not yet implemented. New fun Dynarr_verify(); use for further error checking on Dynarrs. Rearrange code at top of lisp.h in conjunction with dynarr changes. Fix eifree(). Use Eistrings in various places (format_event_object(), where_is_to_char(), and callers thereof) to avoid fixed-size strings buffers. New fun write_eistring(). Reindent and fix GPM code to follow standards. Set default MS Windows font to Lucida Console (same size as Courier New but less interline spacing, so more lines fit). Increase default frame size on Windows to 50 lines. (If that's too big for the workspace, the frame will be shrunk as necessary.) Fix problem with text files with no newlines (). (Change `convert-eol' coding system to use `nil' for autodetect, consistent with make-coding-system.) Correct compile warnings in vm-limit.c. Fix handling of reverse-direction charsets to avoid errors when opening (e.g.) mule-ucs/lisp/reldata/uiso8859-6.el. Recode some object printing methods to use write_fmt_string() instead of a fixed buffer and sprintf. Turn on display of png comments as warnings (level `info'), now that they're unobtrusive. Revamped the sound documentation. Fixed bug in redisplay w.r.t. hscroll/truncation/continuation glyphs causing jumping up and down of the lines, since they're bigger than the line size. (It was seen most obviously when there's a horizontal scroll bar, e.g. do C-h a glyph or something like that.) The problem was that the glyph-contrib-p setting on glyphs was ignored even if it was set properly, which it wasn't until now.
author ben
date Fri, 29 Mar 2002 04:49:13 +0000
parents 3ecd8885ac67
children 42375619fa45
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 \input texinfo.tex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 @c %**start of header
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 @setfilename ../info/custom.info
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 @settitle The Customization Library
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 @afourpaper
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 @headings double
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 @c %**end of header
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 @ifinfo
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 @dircategory XEmacs Editor
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 @direntry
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 * Customizations: (custom). Customization Library.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 @end direntry
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 @end ifinfo
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 @node Top, Declaring Groups, (dir), (dir)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 @top The Customization Library
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 This manual describes how to declare customization groups, variables,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 and faces. It doesn't contain any examples, but please look at the file
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 @file{cus-edit.el} which contains many declarations you can learn from.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 * Declaring Groups::
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 * Declaring Variables::
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 * Declaring Faces::
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 * Usage for Package Authors::
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 * Utilities::
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 * The Init File::
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 * Wishlist::
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 All the customization declarations can be changes by keyword arguments.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 Groups, variables, and faces all share these common keywords:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 @item :group
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 @var{value} should be a customization group.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 Add @var{symbol} to that group.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 @item :link
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 @var{value} should be a widget type.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 Add @var{value} to the external links for this customization option.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 Useful widget types include @code{custom-manual}, @code{info-link}, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 @code{url-link}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 @item :load
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 Add @var{value} to the files that should be loaded before displaying
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 this customization option. The value should be either a string, which
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 should be a string which will be loaded with @code{load-library} unless
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 present in @code{load-history}, or a symbol which will be loaded with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 @code{require}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 @item :tag
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 @var{Value} should be a short string used for identifying the option in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 customization menus and buffers. By default the tag will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 automatically created from the options name.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 @node Declaring Groups, Declaring Variables, Top, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 @section Declaring Groups
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 Use @code{defgroup} to declare new customization groups.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 @defun defgroup symbol members doc [keyword value]...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 Declare @var{symbol} as a customization group containing @var{members}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 @var{symbol} does not need to be quoted.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 @var{doc} is the group documentation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 @var{members} should be an alist of the form ((@var{name}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 @var{widget})...) where @var{name} is a symbol and @var{widget} is a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 widget for editing that symbol. Useful widgets are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 @code{custom-variable} for editing variables, @code{custom-face} for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 editing faces, and @code{custom-group} for editing groups.@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 Internally, custom uses the symbol property @code{custom-group} to keep
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 track of the group members, and @code{group-documentation} for the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 documentation string.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 The following additional @var{keyword}'s are defined:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 @item :prefix
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 @var{value} should be a string. If the string is a prefix for the name
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 of a member of the group, that prefix will be ignored when creating a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 tag for that member.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 @node Declaring Variables, Declaring Faces, Declaring Groups, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 @section Declaring Variables
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 Use @code{defcustom} to declare user editable variables.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 @defun defcustom symbol value doc [keyword value]...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 Declare @var{symbol} as a customizable variable that defaults to @var{value}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101 Neither @var{symbol} nor @var{value} needs to be quoted.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 If @var{symbol} is not already bound, initialize it to @var{value}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 @var{doc} is the variable documentation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 The following additional @var{keyword}'s are defined:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 @item :type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 @var{value} should be a widget type.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 @item :options
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 @var{value} should be a list of possible members of the specified type.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 For hooks, this is a list of function names.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 @item :initialize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 @var{value} should be a function used to initialize the variable. It
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 takes two arguments, the symbol and value given in the @code{defcustom} call.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 Some predefined functions are:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 @item custom-initialize-set
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 Use the @code{:set} method to initialize the variable. Do not
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 initialize it if already bound. This is the default @code{:initialize}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 method.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 @item custom-initialize-default
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 Always use @code{set-default} to initialize the variable, even if a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 @code{:set} method has been specified.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 @item custom-initialize-reset
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 If the variable is already bound, reset it by calling the @code{:set}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 method with the value returned by the @code{:get} method.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135 @item custom-initialize-changed
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 Like @code{custom-initialize-reset}, but use @code{set-default} to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137 initialize the variable if it is not bound and has not been set
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138 already.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 @item :set
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 @var{value} should be a function to set the value of the symbol. It
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 takes two arguments, the symbol to set and the value to give it. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 default is @code{set-default}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 @item :get
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 @var{value} should be a function to extract the value of symbol. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 function takes one argument, a symbol, and should return the current
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 value for that symbol. The default is @code{default-value}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 @item :require
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 @var{value} should be a feature symbol. Each feature will be required
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 when the `defcustom' is evaluated, or when Emacs is started if the user
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 has saved this option.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 @xref{Sexp Types,,,widget,The Widget Library}, for information about
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 widgets to use together with the @code{:type} keyword.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 Internally, custom uses the symbol property @code{custom-type} to keep
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 track of the variables type, @code{standard-value} for the program
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 specified default value, @code{saved-value} for a value saved by the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 user, and @code{variable-documentation} for the documentation string.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 Use @code{custom-add-option} to specify that a specific function is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168 useful as an member of a hook.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 @defun custom-add-option symbol option
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 To the variable @var{symbol} add @var{option}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 If @var{symbol} is a hook variable, @var{option} should be a hook
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 member. For other types variables, the effect is undefined."
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177 @node Declaring Faces, Usage for Package Authors, Declaring Variables, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 @section Declaring Faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 Faces are declared with @code{defface}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 @defun defface face spec doc [keyword value]...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185 Declare @var{face} as a customizable face that defaults to @var{spec}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 @var{face} does not need to be quoted.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 If @var{face} has been set with `custom-set-face', set the face attributes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 as specified by that function, otherwise set the face attributes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190 according to @var{spec}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192 @var{doc} is the face documentation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 @var{spec} should be an alist of the form @samp{((@var{display} @var{atts})...)}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 @var{atts} is a list of face attributes and their values. The possible
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197 attributes are defined in the variable `custom-face-attributes'.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 The @var{atts} of the first entry in @var{spec} where the @var{display}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 matches the frame should take effect in that frame. @var{display} can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 either be the symbol `t', which will match all frames, or an alist of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 the form @samp{((@var{req} @var{item}...)...)}@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204 For the @var{display} to match a FRAME, the @var{req} property of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 frame must match one of the @var{item}. The following @var{req} are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206 defined:@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209 @item type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210 (the value of (window-system))@*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 Should be one of @code{x} or @code{tty}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 @item class
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 (the frame's color support)@*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 Should be one of @code{color}, @code{grayscale}, or @code{mono}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
217 @item background
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 (what color is used for the background text)@*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219 Should be one of @code{light} or @code{dark}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222 Internally, custom uses the symbol property @code{face-defface-spec} for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 the program specified default face properties, @code{saved-face} for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 properties saved by the user, and @code{face-documentation} for the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225 documentation string.@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229 @node Usage for Package Authors, Utilities, Declaring Faces, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
231 @section Usage for Package Authors
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
232
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
233 The recommended usage for the author of a typical emacs lisp package is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
234 to create one group identifying the package, and make all user options
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
235 and faces members of that group. If the package has more than around 20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
236 such options, they should be divided into a number of subgroups, with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
237 each subgroup being member of the top level group.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
238
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239 The top level group for the package should itself be member of one or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 more of the standard customization groups. There exists a group for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241 each @emph{finder} keyword. Press @kbd{C-h p} to see a list of finder
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
242 keywords, and add you group to each of them, using the @code{:group}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
243 keyword.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
244
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
245 @node Utilities, The Init File, Usage for Package Authors, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247 @section Utilities
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
248
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
249 These utilities can come in handy when adding customization support.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
250
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
251 @deffn Widget custom-manual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252 Widget type for specifying the info manual entry for a customization
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
253 option. It takes one argument, an info address.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
254 @end deffn
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
255
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
256 @defun custom-add-to-group group member widget
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
257 To existing @var{group} add a new @var{member} of type @var{widget},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
258 If there already is an entry for that member, overwrite it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
259 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
260
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
261 @defun custom-add-link symbol widget
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262 To the custom option @var{symbol} add the link @var{widget}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
264
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
265 @defun custom-add-load symbol load
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
266 To the custom option @var{symbol} add the dependency @var{load}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
267 @var{load} should be either a library file name, or a feature name.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
268 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
269
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270 @defun customize-menu-create symbol &optional name
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
271 Create menu for customization group @var{symbol}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272 If optional @var{name} is given, use that as the name of the menu.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 Otherwise the menu will be named `Customize'.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
274 The menu is in a format applicable to @code{easy-menu-define}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
275 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
276
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
277 @node The Init File, Wishlist, Utilities, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
278 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
279 @section The Init File
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
280
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
281 When you save the customizations, call to @code{custom-set-variables},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
282 @code{custom-set-faces} are inserted into the file specified by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
283 @code{custom-file}. By default @code{custom-file} is your @file{.emacs}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
284 file. If you use another file, you must explicitly load it yourself.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
285 The two functions will initialize variables and faces as you have
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
286 specified.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
287
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
288 @node Wishlist, , The Init File, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
289 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
290 @section Wishlist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
291
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
292 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
293 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
294 Better support for keyboard operations in the customize buffer.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
295
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
296 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
297 Integrate with @file{w3} so you can get customization buffers with much
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
298 better formatting. I'm thinking about adding a <custom>name</custom>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
299 tag. The latest w3 have some support for this, so come up with a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
300 convincing example.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
301
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
302 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
303 Add an `examples' section, with explained examples of custom type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
304 definitions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
305
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
306 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
307 Support selectable color themes. I.e., change many faces by setting one
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
308 variable.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
309
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
310 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
311 Support undo using lmi's @file{gnus-undo.el}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
312
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
313
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
314 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
315 Make it possible to append to `choice', `radio', and `set' options.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
316
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
317 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
318 Ask whether set or modified variables should be saved in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
319 @code{kill-buffer-hook}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
320
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
321 Ditto for @code{kill-emacs-query-functions}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
322
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
323 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
324 Command to check if there are any customization options that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
325 does not belong to an existing group.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
326
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
327 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
328 Optionally disable the point-cursor and instead highlight the selected
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
329 item in XEmacs. This is like the *Completions* buffer in XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
330 Suggested by Jens Lautenbacher
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
331 @samp{<jens@@lemming0.lem.uni-karlsruhe.de>}.@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
332
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
333 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
334 Explain why it is necessary that all choices have different default
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
335 values.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
336
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
337 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
338 Add some direct support for meta variables, i.e. make it possible to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
339 specify that this variable should be reset when that variable is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
340 changed.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
341
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
342 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
343 Add tutorial.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
344
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
345 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
346 Describe the @code{:type} syntax in this manual.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
347
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
348 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
349 Find a place is this manual for the following text:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
350
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
351 @strong{Radio vs. Buttons}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
352
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
353 Use a radio if you can't find a good way to describe the item in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
354 choice menu text. I.e. it is better to use a radio if you expect the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
355 user would otherwise manually select each item from the choice menu in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
356 turn to see what it expands too.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
357
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
358 Avoid radios if some of the items expands to complex structures.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
359
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
360 I mostly use radios when most of the items are of type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
361 @code{function-item} or @code{variable-item}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
362
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
363 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
364 Update customize buffers when @code{custom-set-variable} or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
365 @code{custom-save-customized} is called.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
366
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
367 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
368 Better handling of saved but uninitialized items.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
369
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
370 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
371 Detect when faces have been changed outside customize.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
372
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
373 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
374 Enable mouse help in Emacs by default.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
375
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
376 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
377 Add an easy way to display the standard settings when an item is modified.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
378
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
379 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
380 See if it is feasible to scan files for customization information
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
381 instead of loading them,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
382
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
383 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
384 Add hint message when user push a non-pushable tag.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
385
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
386 Suggest that the user unhide if hidden, and edit the value directly
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
387 otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
388
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
389 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
390 Use checkboxes and radio buttons in the state menus.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
391
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
392 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
393 Add option to hide @samp{[hide]} for short options. Default, on.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
394
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
395 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
396 Add option to hide @samp{[state]} for options with their standard
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
397 settings.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
398
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
399 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
400 There should be a way to specify site defaults for user options.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
401
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
402 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
403 There should be more buffer styles. The default `nested style, the old
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
404 `outline' style, a `numeric' style with numbers instead of stars, an
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
405 `empty' style with just the group name, and `compact' with only one line
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
406 per item.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
407
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
408 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
409 Newline and tab should be displayed as @samp{^J} and @samp{^I} in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
410 @code{regexp} and @code{file} widgets. I think this can be done in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
411 XEmacs by adding a display table to the face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
412
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
413 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
414 Use glyphs to draw the @code{customize-browse} tree.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
415
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
416 Add echo and balloon help. You should be able to read the documentation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
417 simply by moving the mouse pointer above the name.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
418
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
419 Add parent links.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
420
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
421 Add colors.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
422
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
423 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
424
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
425 @contents
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
426 @bye