Copyright (C) 2000-2012 |
GNU Info (widget)compositeComposite Sexp Widgets ---------------------- The syntax for the composite widget is: TYPE ::= (NAME [KEYWORD ARGUMENT]... COMPONENT...) where each COMPONENT must be a widget type. Each component widget will be displayed in the buffer, and will be editable by the user. - Widget: cons The value of a `cons' widget is a cons-cell where the `car' is the value of the first component and the `cdr' is the value of the second component. There must be exactly two components. - Widget: list The value of a `list' widget is a list containing the value of each of its component. - Widget: vector The value of a `vector' widget is a vector containing the value of each of its component. The above suffice for specifying fixed size lists and vectors. To get variable length lists and vectors, you can use a `choice', `set', or `repeat' widgets together with the `:inline' keywords. If any component of a composite widget has the `:inline' keyword set, its value must be a list which will then be spliced into the composite. For example, to specify a list whose first element must be a file name, and whose remaining arguments should either by the symbol `t' or two files, you can use the following widget specification: (list file (choice (const t) (list :inline t :value ("foo" "bar") string string))) The value of a widget of this type will either have the form `(file t)' or `(file string string)'. This concept of inline is probably hard to understand. It was certainly hard to implement, so instead of confusing you more by trying to explain it here, I'll just suggest you meditate over it for a while. - Widget: choice Allows you to edit a sexp which may have one of a fixed set of types. It is currently implemented with the `choice-menu' basic widget, and has a similar syntax. - Widget: set Allows you to specify a type which must be a list whose elements all belong to given set. The elements of the list are not significant. This is implemented on top of the `checklist' basic widget, and has a similar syntax. - Widget: repeat Allows you to specify a variable length list whose members are all of the same type. Implemented on top of the `editable-list' basic widget, and has a similar syntax. automatically generated by info2www version 1.2.2.9 |