2) Step #1 of removing eTemplate's limitation on allowing only a grid as root element of the widget tree (which can NOT directly contain further grids, thought references to other templates/grids are ok). The storage layer allows now a real tree. Redering and editing only works on the old data variable, which is now a reference to the first grid in the tree.
More to come ...
- needed (= not to be empty) fields are enforced now
- min and max values and format of int and float fields
- validator for text-fields (perl regular expression)
The input-validation is handled completly withing eTemplate, the application dont need to implement any code, just set the right attributes in the template. Validation-errors are displayed in red behind the concerning field, try the template 'etemplate.validation-test' in the editor.
- load_via works now in boetemplate::read
- included templates are relative to the includeing tpl, if they contain no '.'
- xul_io is alway writing the comple/absolute name
- HBox gets width=100% if alignment other then left set (new!)
- added links as 2. option to label
- added header function to uietemplate
- added vbox and hbox support: container to put widgets in one row or column
- complete rows and column can now be disabled (even with a simple comparison with a variable in content, eg. disabled if the var is empty)
- labels and helptexts from tpls with 'test' in there name, get no longer written to the lang-file
- update the documentation
relative means it contains no '.' and it will then be prefixed with the name of tpl it is used in (plus a '.')
eg. tpl-name 'etemplate.tab_widget.test' tab-names 'work|privat|note' will expand to 'etemplate.tab_widget.test.work', ...