Fixed so that updates to theme are applied immediately. Previously theming only worked properly after a restart with the new theme. Paul found that you could create a Chimera MixerBoard with a track in each of the four different themes.
I chose to completely recreate the MixerBoard on a prefs update, rather than the more fiddly detail of retheming each component of it.
The default for Standalone Nyquist is a very conservative
300 ms, but that's too long when using ALSA (see bug 570),
so use 100 ms default (same as Audacity).
... in cases such as: dragging an envelope point, then hitting space to play,
which forces the drag to finish early. If you move the mouse, cursor will
remain "ban", even while the mouse button remains down but no drag is really
happening.
... Copied the top and bottom single rows of pixels from the corresponding
three images (MacUpButton, MacDownButton, MacHiliteButton) in Classic theme.
Because the previous images were a bit pinkish at the bottom and darkish at the
top and looked just a little bit wrong.
100% transparent black was appearing as black. Now it appears as the background colour.
AButton backgrounds now support alpha channel, which they did not before.
... and some parts of drawing too (snap lines and zoom boxes)
Many new source files
No UI changes intended, except:
small changes in drawing zoom boxes (hide narrow enough boxes)
update display of selection as you drag the selected label (not just at
mouse up)
status bar preview messages for clicks on cutlines or clip boundaries
ESC key is implemented for all drags -- including now those which would
make new Undo items if they completed -- and in all cases, "should"
restore the state of the project as it was at button-down, though some
details are not yet right for restoring the set of selected tracks
A TrackPanelCell abstract class dispatches keystroke and mousewheel events;
subclasses for vertical rulers, track control panels, and tracks provide
overrides.
TrackPanelCell also has a hit test routine that returns a status message,
a preview cursor, and an object that inherits from abstract class UIHandle.
UIHandle in turn implements policies for click, drag, release, ESC key,
drawing of extra decorations during drag, and cursor and status message changes
during drag.
There are eighteen (immediate) subclasses of UIHandle, for:
Note track channel buttons
Other pushbuttons (close, menu, mute, solo, minimize)
Sliders (pan, gain, velocity)
Note track stretch
Selections (new, extended with Shift, spectral)
Envelope editing
Sample editing
Zoom tool
Time shift
Wave track vertical ruler clicks and drags
Note track vertical ruler clicks and drags
Clicking a cutline or clip boundary
Dragging or stretching a label
Clicking a label box and selecting text within it
Other clicks on Label track
Resizing a track or channels of a stereo track
Clicking TCP to select and dragging to rearrange tracks
Click on the empty area, to deselect all tracks
A few of these have effects at button-down; others not until button up, and
such have ESC key implemented.
Perhaps it would be better that all clicking actions are consistently delayed
until button up?