9. The form surface
Contents of ATD 0.1
The surface of a designer (grammar/form.lark): which element types and attributes play which part of the layout (DESL §7). A host's component for a kind of surface serves all designer types of that kind.
surface table { … } (DESL §7.2 to §7.4) holds:
rows <Type> { … }: the rows' element type;columns <Type> { … }: the columns' element type, with the attributes that playname,valueType,title,parentandoptionsas settings (DESL'sColumns);cells <Type> { … }: the cells' element type, withcolumnanditems(DESL'sCells);views <Type> { … }: the views' element type, withname,activeandsettings(DESL'sViews);valueType(section 9.2), and settings.
valueType <key> ["<label>"] { … } is a value type (DESL §7.5): settings of DESL's ValueType (key, many, editor, comparisons, sort), and convert <type> <conversion> for each conversion to another value type (DESL §7.6: written-form, parse, match-option, wrap, unwrap, or a settings map).
surface hierarchy { … } (DESL §7.7) holds levels <Type> { … }, entries <Type> { … }, notes <Type> { … }, filters <Type> { … }, widths <Type> { … } and labels <attribute> { … }, each with the attributes that play its parts as settings (DESL's HierarchyMembers, Notes, Filters, Widths and Labels), and settings of DESL's Hierarchy (collapsed, ids). widths names the element type that keeps the widths of the columns of levels, which the user changes by dragging (DESL §7.7.1): its settings level and width name the attributes of a column's depth and of its width in pixels.