Request
Provide a mechanism for customising the display formats of the pan and width UI text labels in the TCP and MCP panels on a per-theme basis.
Benefit
Currently, the display formats of the pan and width text labels in the TCP and MCP panels are hardcoded to
100%L .. center .. 100%R and
-100W .. 0W .. 100W, respectively.
Firstly, this can be problematic for narrow layouts where screen space is at premium (e.g. the
center pan label text could be too wide for narrow MCP panels with dual pan controls positioned side by side).
Secondly, some themers and users might just prefer alternative label formats in order to mimic other DAWs or simply due to personal preference.
Implementation suggestion
The proposed solution introduces a mechanism for specifying pan and width text label formats on a per-theme basis, similarly to the existing
tcp_voltext_flags and
mcp_voltext_flags properties. While the pan labels are the main problem, for the sake of completeness the width labels should be included in scope as well as the changes are relatively simple to implement.
For simplicity of implementation, only the display of the pan and width UI labels on the TCP and MCP panels should be controlled by the flags; pan and width values displayed anywhere else should continue to use the existing hardcoded formats (e.g. various dialogs, informational messages, tooltips etc.)
The following new bitfield properties should be introduced. The defaults have been chosen to ensure backward compatibility with existing themes.
Code:
tcp.pan.label.flags (default: 12)
mcp.pan.label.flags (default: 12)
master.tcp.pan.label.flags (default: 12)
master.mcp.pan.label.flags (default: 12)
tcp.width.label.flags (default: 2)
mcp.width.label.flags (default: 2)
master.tcp.width.label.flags (default: 2)
master.mcp.width.label.flags (default: 2)
Pan flag format
Code:
value description
----- --------------------------------------------------------------------
CENTER LABEL FORMAT (use only one value from 0 to 3)
0 display 'center' for center pan values
1 display 'CENTER' for center pan values
2 display 'C' for center pan values
3 display '0' for center pan values
OPTION SWITCHES (can be toggled individually)
4 display percentage sign ('%') after numeric values (but before
the 'L' or 'R' characters, if present)
8 display 'L' and 'R' characters after left and right pan values,
respectively (after the percentage sign, if present)
16 display minus sign ('-') before left pan values
32 display plus sign ('+') before right pan values
Examples:
Flag value: 12 (0 + 4 + 8) — current default behaviour
Pan labels: 100%L .. center .. 100%R
Flag value: 10 (2 + 8)
Pan labels: 100L .. C .. 100R
Flag value: 55 (3 + 4 + 16 + 32)
Pan labels: -100% .. 0% .. +100%
Flag value: 17 (1 + 16)
Pan labels: -100 .. CENTER .. 100
Width flag format
Code:
value description
----- --------------------------------------------------------------------
OPTION SWITCHES (can be toggled individually)
1 display percentage sign ('%') after numeric values
2 display 'W' character after numeric values
(and after the percentage sign, if present)
4 display plus sign ('+') before positive values
Examples:
Flag value: 2 — current default behaviour
Pan labels: -100W .. 0W .. 100W
Flag value: 5 (1 + 4)
Pan labels: -100% .. 0% .. +100%
Flag value: 4
Pan labels: -100 .. 0 .. +100