Always give ArdourButton a chance to handle Press or Release events if you override them.
This allows ArdourButtons to do the "Pressed" animation
And it now correctly eats the event so button clicks don't select the channelstrip.
This is a preliminary test to find out if 'All Users' would be a better place for our (writable) config files, as opposed to the user's personal 'AppData' folder (which we used in Mixbus2). N.B. this should not effect any previous operations on Windows or non-Windows platforms.
It'd be nice if we could use 'ARDOUR::config_dir_name' for this purpose (or perhaps 'PROGRAM_VERSION'). However, neither is implemented widely enough at present to make this practical. Keep an eye on them though, as possible future strategies.
ArdourButtons now have a "pushed" animation.
The gradient is now implemented in the button, rather than providing 2 colors in the theme, which was burdensome.
Lots of code cleanup in ArdourButton. Removed several unnecessary flags.
Refactor more stuff into route_ui.
The goal is to preserve a consistent layout and sizing of the buttons.
Button height should not resize based on text, because font styles differ and this leads to inconsistent button heights
Button width should not be based on text or font size; instead, font size just determines how many chars will be visible in the button
There are some elements of the editor page which _do_ scale based on the text width, and thats probably sensible because the text is predefined, and needs to fit
TODO: needs undo. only works in top quarter of automation lane. selection model feels weird sometimes. needs to show gain curve when you are using Range tool
Consistent mixer strip button height.
The latter works by setting all the button size request heights to the
calculated height of the alphabet. Thus, all buttons of the same class will be
the same height regardless of their actual text.