A form consist of read only text for documentation and some fields, where each the fields contain two parts, as tag and a value. The tags are used to identify the fields, so the documentation can refer to the foo field, meaning the field tagged with `Foo'. Here is an example form:
Here is some documentation. Name: My Name Choose: This option Address: Some Place In some City Some country. See also _other work_ for more information. Numbers: count to three below [INS] [DEL] One [INS] [DEL] Eh, two? [INS] [DEL] Five! [INS] Select multiple: [X] This [ ] That [X] Thus Select one: (*) One ( ) Another One. ( ) A Final One. [Apply Form] [Reset Form]
The top level widgets in is example are tagged `Name', `Choose', `Address', `_other work_', `Numbers', `Select multiple', `Select one', `[Apply Form]', and `[Reset Form]'. There are basically two thing the user can do within a form, namely editing the editable text fields and activating the buttons.
In the example, the value for the `Name' is most likely displayed in an editable text field, and so are values for each of the members of the `Numbers' list. All the normal Emacs editing operations are available for editing these fields. The only restriction is that each change you make must be contained within a single editable text field. For example, capitalizing all text from the middle of one field to the middle of another field is prohibited.
Editing text fields are created by the editable-field
widget.
The editing text fields are highlighted with the
widget-field-face
face, making them easy to find.
Some portions of the buffer have an associated action, which can be invoked by a standard key or mouse command. These portions are called buttons. The default commands for activating a button are:
widget-global-map
(by default the global map).
widget-global-map
(by default the global map).
There are several different kind of buttons, all of which are present in the example:
menu-choice
widget. In
the example, `Choose' is an option field tag.
editable-list
widget.
link
widget.
radio-button-choice
widget can be
selected at any time. When you invoke one of the unselected radio
buttons, it will be selected and the previous selected radio button will
become unselected.
push-button
widget. The main
difference from the link
widget is that the buttons are will be
displayed as GUI buttons when possible.
enough.
To make them easier to locate, buttons are emphasized in the buffer.
You can use all the normal Emacs commands to move around in a form buffer, plus you will have these additional commands:
Go to the first, previous, next, last section, table of contents.