Use the same order as AU, VST, LV2 GUIs. Show the "modified" asterisk
left of the preset-dropdown. This avoids a blank space between the
dropdown and the Add, Save, Delete buttons.
Copyright-holder and year information is extracted from git log.
git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
A Gtk::manage()d widget will be deleted when its parent container
is destroyed. Top-level context menus are not inside a container and
hence need to be manually deallocated.
This adds explicit delete calls for menus where there is a
member variable reference to the Menu.
This fixes an issue on MacOS/X to only show non-root volumes in
the file-open dialog. They're just as valid for save-as, export, video
files etc.
In case of a 2nd internal disk, it is also a valid choice as default
folder for new sessions.
Some MIDNAM files use Patch-Banks that do *not* have a common midi bank
(CC0, CC32) but the Patchbank is instead just a collection of patches.
There may be more than 127 patches in a patch-bank and each of those
may be in a different midi-bank (e.g. Roland SC-88 Pro).
Midnams like these are now properly supported via dropdowns (in the
patch add/modify dialog and timeline), but ignored by the grid
(patch-widget). More work is needed.
This fixes various issues with integer controls (some values are not
reachable due to incorrect rounding in AutoSpin) and also pulls
in the various benefits of BarController:
* mouse-drags
* numeric entry
* alternative entry modes (piano-keyboard, tempo-based values)
If this style remains, ClickBox & AutoSpin should be removed from
the codebase.
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
Do that by wrapping the packed controls box in a ScrolledWindow and
making it request the same width than the box but capped to 90% of the
screen width.
Also, when the box width exceeds the maximum value, try again with
one-letter automation buttons in case the reduced width avoids showing a
scroll bar.
The generic plugin UI uses spelled-out automation state buttons for
controls, which is good for readability and usability, but some plugins
have a very big amount of controls which means we need a lot of columns.
For those plugins, prefer one-letter automation states, to save width.
When there was a knobtable in the ControlUI, the behavior of the
automation state button changed by displaying one-char state as in track
headers. Factor out that logic to depend on a new boolean property of
the ControlUI, which should be set with set_short_autostate().
This regroups sizing logic in a single place and avoids future
discrepancies between the actual caption and the size allocated for it,
when several use-cases for smaller buttons are added.
Don't try to be smart when chosing which parameters need their
automation updated but rather trust the list that was populated at
creation time when all relevant information had been gathered.