- Macros Dialog expand/shrink now optically stable.
- Fade Ends macro now works (The ':' is in the right place)
- Macros can call other macros, but only one deep, now.
- MacroIDs are textual names now, not Macro007
- Macros Dialog expand/shrink saves the changes so they are not lost by resizing.
Previously the ID for a macro was, e.g. Macro003. However this would
not work if macros were added or deleted, since chains containing the old
macro references would now refer to a different macro. So changed to using
names.
User could have made a macro call itself.
Or could have an 'exploding' macro chain with 'too much' in it.
So limit it to a macro can call a macro, but not deeper.
- New Tools menu, with macros and some nyquist in it
- Also has Macros... dialog, which can both edit and apply macros.
- 'Macros' feature was previously called 'Chains', so a lot of renaming.
Done by giving Macros... dialog an Expand / Shrink button
so that we can use it as just an apply-to-projects dialog, if we want.
The dialog is modal, and can be kept open whilst we work. So for example
we could put useful presets into it as macros.
... Because xgettext will just remove the \, not replace \n with newline.
That's consistent with Lisp reader behavior in this documentation:
http://www.lispworks.com/documentation/lw70/CLHS/Body/02_de.htm
The XLisp reader, which replaces \n with newline, is nonstandard.
So, to accommodate xgettext, use (format nil "...~%...") instead, or where
you can't do that in a $ header line, just make a line break inside the ""
There are a few "\n" left alone in sample-data-export.ny which are neither
in $ lines nor inside (_ "...")
... The code that parses the header was always just throwing them out.
The code that populates menus deduces whether to add ellipses, as there are
controls or not, regardless what the $name line said.
... The rule that one should avoid markup in translatable strings conflicted
with the more important rule against concatenating too many strings that are
too short.
... allowing (_ "...") for single strings, and allowing a sequence of such
inside outer ( ) for choice controls, but still accepting the old syntax too