Mercurial > hg > xemacs-beta
diff man/widget.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/widget.texi Mon Aug 13 09:29:37 2007 +0200 +++ b/man/widget.texi Mon Aug 13 09:30:11 2007 +0200 @@ -13,7 +13,7 @@ @comment node-name, next, previous, up @top The Emacs Widget Library -Version: 1.84 +Version: 1.89 @menu * Introduction:: @@ -24,6 +24,8 @@ * Sexp Types:: * Widget Properties:: * Defining New Widgets:: +* Widget Browser:: +* Widget Minor Mode:: * Widget Wishlist.:: @end menu @@ -229,9 +231,10 @@ Activating one of these will convert it to the other. This is useful for implementing multiple-choice fields. You can create it wit @item The @samp{@b{( )}} and @samp{@b{(*)}} buttons. -Only one radio button in a @code{radio-button-choice} widget can be selected at any -time. When you push one of the unselected radio buttons, it will be -selected and the previous selected radio button will become unselected. +Only one radio button in a @code{radio-button-choice} widget can be +selected at any time. When you push one of the unselected radio +buttons, it will be selected and the previous selected radio button will +become unselected. @item The @samp{@b{[Apply Form]}} @samp{@b{[Reset Form]}} buttons. These are explicit buttons made with the @code{push-button} widget. The main difference from the @code{link} widget is that the buttons are will be @@ -585,6 +588,7 @@ * checkbox:: * checklist:: * editable-list:: +* group:: @end menu @node link, url-link, Basic Types, Basic Types @@ -921,6 +925,13 @@ Insert a literal @samp{%}. @end table +@item :greedy +Usually, a checklist will only match if the items are in the exact +sequence given in the specification. By setting @code{:greedy} to +non-nil, it will allow the items to come in any sequence. However, if +you extract the value they will be in the sequence given in the +checklist. I.e. the original sequence is forgotten. + @item button-args A list of keywords to pass to the checkboxes. Useful for setting e.g. the @samp{:help-echo} for each checkbox. @@ -935,7 +946,7 @@ The list of types. @end table -@node editable-list, , checklist, Basic Types +@node editable-list, group, checklist, Basic Types @comment node-name, next, previous, up @subsection The @code{editable-list} Widget @@ -945,7 +956,7 @@ TYPE ::= (editable-list [KEYWORD ARGUMENT]... TYPE) @end example -The value is a list, where each member represent one widget of type +The value is a list, where each member represents one widget of type @var{type}. The following extra properties are recognized. @@ -987,30 +998,43 @@ @end table +@node group, , editable-list, Basic Types +@comment node-name, next, previous, up +@subsection The @code{group} Widget + +This widget simply group other widget together. + +Syntax: + +@example +TYPE ::= (group [KEYWORD ARGUMENT]... TYPE...) +@end example + +The value is a list, with one member for each @var{type}. + @node Sexp Types, Widget Properties, Basic Types, Top @comment @section Sexp Types A number of widgets for editing s-expressions (lisp types) are also -available. These basically fall in three categories: @dfn{atoms}, -@dfn{composite types}, and @dfn{generic}. +available. These basically fall in the following categories. @menu +* constants:: * generic:: * atoms:: * composite:: @end menu -@node generic, atoms, Sexp Types, Sexp Types +@node constants, generic, Sexp Types, Sexp Types @comment node-name, next, previous, up -@subsection The Generic Widget. +@subsection The Constant Widgets. -The @code{const} and @code{sexp} widgets can contain any lisp -expression. In the case of the @code{const} widget the user is +The @code{const} widget can contain any lisp expression, but the user is prohibited from editing edit it, which is mainly useful as a component of one of the composite widgets. -The syntax for the generic widgets is +The syntax for the @code{const} widget is @example TYPE ::= (const [KEYWORD ARGUMENT]... [ VALUE ]) @@ -1024,6 +1048,33 @@ buffer. @end deffn +There are two variations of the @code{const} widget, namely +@code{variable-item} and @code{function-item}. These should contain a +symbol with a variable or function binding. The major difference from +the @code{const} widget is that they will allow the user to see the +variable or function documentation for the symbol. + +@deffn Widget variable-item +An immutable symbol that is bound as a variable. +@end deffn + +@deffn Widget function-item +An immutable symbol that is bound as a function. +@end deffn + +@node generic, atoms, constants, Sexp Types +@comment node-name, next, previous, up +@subsection Generic Sexp Widget. + +The @code{sexp} widget can contain any lisp expression, and allows the +user to edit it inline in the buffer. + +The syntax for the @code{const} widget is + +@example +TYPE ::= (const [KEYWORD ARGUMENT]... [ VALUE ]) +@end example + @deffn Widget sexp This will allow you to edit any valid s-expression in an editable buffer field. @@ -1116,8 +1167,8 @@ component. There must be exactly two components. @end deffn -@deffn Widget lisp -The value of a @code{lisp} widget is a list containing the value of +@deffn Widget list +The value of a @code{list} widget is a list containing the value of each of its component. @end deffn @@ -1258,7 +1309,7 @@ @code{:deactivated} keywords instead. -@node Defining New Widgets, Widget Wishlist., Widget Properties, Top +@node Defining New Widgets, Widget Browser, Widget Properties, Top @comment node-name, next, previous, up @section Defining New Widgets @@ -1362,7 +1413,48 @@ default'' in this text. @end deffn -@node Widget Wishlist., , Defining New Widgets, Top +@node Widget Browser, Widget Minor Mode, Defining New Widgets, Top +@comment node-name, next, previous, up +@section Widget Browser + +There is a separate package to browse widgets. This is intended to help +programmers who want to examine the content of a widget. The browser +shows the value of each keyword, but uses links for certain keywords +such as `:parent', which avoids printing cyclic structures. + +@deffn Command widget-browse WIDGET +Create a widget browser for WIDGET. +When called interactively, prompt for WIDGET. +@end deffn + +@deffn Command widget-browse-other-window WIDGET +Create a widget browser for WIDGET and show it in another window. +When called interactively, prompt for WIDGET. +@end deffn + +@deffn Command widget-browse-at POS +Create a widget browser for the widget at POS. +When called interactively, use the position of point. +@end deffn + +@node Widget Minor Mode, Widget Wishlist., Widget Browser, Top +@comment node-name, next, previous, up +@section Widget Minor Mode + +There is a minor mode for manipulating widgets in major modes that +doesn't provide any support for widgets themselves. This is mostly +intended to be useful for programmers doing experiments. + +@deffn Command widget-minor-mode +Togle minor mode for traversing widgets. +With arg, turn widget mode on if and only if arg is positive. +@end deffn + +@defvar widget-minor-mode-keymap +Keymap used in @code{widget-minor-mode}. +@end defvar + +@node Widget Wishlist., , Widget Minor Mode, Top @comment node-name, next, previous, up @section Wishlist. @@ -1390,7 +1482,7 @@ specific to the first widget where I happended to use them. @item -Flag to make @code{widget-move} skip a specified button. +Finish @code{:tab-order}. @item Document `helper' functions for defining new widgets. @@ -1422,13 +1514,27 @@ Perhaps the correct model is delegation? @item -Document @code{widget-browse}. - -@item Make indentation work with glyphs and propertional fonts. @item -Add object and class hierarchies to the browser. +Add commands to show overview of object and class hierarchies to the +browser. + +@item +Find a way to disable mouse highlight for inactive widgets. + +@item +Add @code{property-list} widget. + +@item +Add @code{association-list} widget. + +@item +Add @code{key-binding} widget. + +@item +Find clean way to implement variable length list. +See @code{TeX-printer-list} for an explanation. @end itemize