checklist WidgetSyntax:
type ::= (checklist [keyword argument]... type ... )
A widget to represent a multiplice choice. Its super is the
default widget.
The type arguments represent each checklist item. The widget’s value will be a list containing the values of all checked type arguments.
Example:
(widget-create 'checklist
:notify (lambda (widget child &optional _event)
(funcall
(widget-value (widget-get-sibling child))
'toggle))
:value (list 'tool-bar-mode 'menu-bar-mode)
'(item :tag "Tool-bar" tool-bar-mode)
'(item :tag "Menu-bar" menu-bar-mode))))
It either overrides or adds the following properties:
:convert-widgetAs other composite widgets, a function that takes care of converting each checklist item.
:copyA function to copy each checklist item.
:formatBy default, it inserts its value.
:entry-formatThis string will be inserted for each entry in the list. The following ‘%’ escapes are available:
Replaced with the buffer representation of the type widget.
Replace with the checkbox.
Insert a literal ‘%’.
:button-argsA list of keywords to pass to the checkboxes. Useful for setting, e.g., the ‘:help-echo’ for each checkbox.
:buttonsThe widgets representing the checkboxes.
:childrenThe widgets representing each type.
:argsThe list of types.
:value-createThe function that takes care of inserting all values.
:value-getA function that returns all values of selected items.
:validateA function that ensures all selected children are valid.
:matchThe checklist widget will match a list whose elements all match at least one of the specified type arguments.
:match-inlineLike the :match function, but taking into account the
:inline property.
:greedyUsually a checklist will only match if the items are in the exact
sequence given in the specification. By setting :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.