Thinking about drill-down functionality.
The Active Zones metaphor in CSI is implemented as a stack.
This is convenient, a Zone gets pushed on the Stack (e.g PanWidth) when you Activate it.
Then, when you Deactivate it, it gets popped off the Stack.
However Zones used in a drill-down role have a slightly different set of rules.
They can Activate and Deactivate just like any other Zone.
However in addition, they should also Deactivate if the parent Zone gets Deactivated.
How about this simple syntax:
Code:
Zone "VST: ReaComp (Cockos)"
SelectedTrackNavigator
Threshold FXParam Thresh
Character FXParam Gain
Attack FXParam Attack
Release FXParam Release
Ratio FXParam Ratio
Compressor FXParam Bypass
Parallel FXParam Wet
CompressorMeter FXParam GainReductionDB
DrillDownButton GoSubZone "VST: ReaComp (Cockos)" ReaCompSubZone
ZoneEnd
Zone ReaCompSubZone
SelectedTrackNavigator
Threshold FXParam Thresh
Character FXParam Gain
Attack FXParam Attack
Release FXParam Release
Ratio FXParam Ratio
Compressor FXParam Bypass
Parallel FXParam Wet
CompressorMeter FXParam GainReductionDB
DrillDownButton GoSubZone "VST: ReaComp (Cockos)" ReaCompSubSubZone
ZoneEnd
Zone ReaCompSubSubZone
SelectedTrackNavigator
Threshold FXParam Thresh
Character FXParam Gain
Attack FXParam Attack
Release FXParam Release
Ratio FXParam Ratio
Compressor FXParam Bypass
Parallel FXParam Wet
CompressorMeter FXParam GainReductionDB
ZoneEnd
This states that when "VST: ReaComp (Cockos)" get Deactivated, ReaCompSubZone and ReaCompSubSubZone also get Deactivated.
What do you think ?