A EnumControl provides control over a set of
discrete possible values, each represented by an object. In a
graphical user interface, such a control might be represented
by a set of buttons, each of which chooses one value or setting. For
example, a reverb control might provide several preset reverberation
settings, instead of providing continuously adjustable parameters
of the sort that would be represented by {@link FloatControl}
objects.
Controls that provide a choice between only two settings can often be implemented
instead as a {@link BooleanControl} , and controls that provide
a set of values along some quantifiable dimension might be implemented
instead as a FloatControl with a coarse resolution.
However, a key feature of EnumControl is that the returned values
are arbitrary objects, rather than numerical or boolean values. This means that each
returned object can provide further information. As an example, the settings
of a {@link EnumControl.Type#REVERB REVERB} control are instances of
{@link ReverbType} that can be queried for the parameter values
used for each setting. |