It combines the old IdentInterface with the ParamsInterface, providing an identifier and parameters (if needed).
The main purpose of the change is to make the class hierarchy (as viewed via doxygen) much easier to follow.
... excepting the duplication still remaining in TrackPanel::FindTrackRect.
Subdivision of the panel's area is defined recusively using helper classes
that each report a refinement of a sub-rectangle on one of the two axes until
what remains is a rectangle occupied by one cell only.
TrackPanelCellIterator, which iterated over TrackPanel's subdivision by other
means, is replaced by this.
CellularPanel thus requires only one virtual function definition for
subdivision, not two as before, and from that figures out in a generalized way
how to find a cell given a point, or a rectangle given a cell, or an iteration
over all cells within visible bounds.
In future, a rewrite of drawing may invoke virtual functions not only on the
cell objects, but also on the groupings of them. For instance to draw the
focus rectangle of a stereo track, which surrounds several of the cells -- the
control panel, the channels, and the resizer between. So it's good to reify
such groupings of cells as objects.
... Remove mention of obsolete plans for TrackPanel refactor, superseded by a
different refactor now accomplished.
Remove detailed mention of names of functions and data members that implement
drawing.
Move most of Roger's comments about drawing into Overlay.h which is now the
more relevant place.
Commented more correctly what TrackPanelListener is.
OnTrackSetChanged sets mUpToDate to false, which assumes that
MixerBoard::OnPaint(evt) will be called, but on Linux, the event
appears to be eaten by MixerTrackCluster::OnPaint and TrackClusters
were not updated.
... The \t escape is changed to tab by the XLisp reader, but that is not
standard Common Lisp behavior, which would just strip the \ character and leave
t.
xgettext follows standard behavior when making the .pot file, so using \t
caused a mismatch between the catalog and the string actually looked up,
resulting in a translation failure.
There was only one occurence of \t in translatable strings in all of plug-ins.
I left alone the occurrences in non-translatable strings.
... BSD version of sed doesn't know -r, but does know -E.
BSD versions of head and tail didn't know --lines= but do know -n.
Also changed the mode to executable and added #! line.
... Don't trim leading whitespace from source file lines before passing them
to eval.
So when a string in Lisp code is (_ "like
this")
(the Lisp reader allows embedded newlines in quoted strings),
then the string extracted to the .pot file by xgettext contains the spaces, and
the string literal seen by our Lisp interpreter will also retain the spaces and
match the msgid in the catalog exactly.