surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.09k stars 394 forks source link

Tabs/layout panels #1683

Open baconpaul opened 4 years ago

baconpaul commented 4 years ago

Tabs are an interesting construct. Lets make sure we can do them in some form in the XML

mkruselj commented 3 years ago

Tabs are the way out of the hell that is FX control positioning API!

mkruselj commented 3 years ago

The path to tabs in skin engine is through using widget groups, which we already have in the skin model. However, skin engine should be able to create its own widget groups, and then create a non-parameter widget that we would link to x such widget groups, and that non-param widget would be our tab control.

mkruselj commented 3 years ago

Additionally: let's consider tabs as just panels that we can show/hide based on widget state.

In doing this, we define panels containing parameters, so with that we could create layouts for each individual oscillator or filter type. For example, reorder things so that Skew Horizontal is right next to Skew Vertical for WT oscillator, say (#1723).

This would also be used by all the effects and filters, as well!