Pinta.LevelsDialog.HandleGradientOutputValueChanged C# (CSharp) Method

HandleGradientOutputValueChanged() private method

private HandleGradientOutputValueChanged ( object sender, Pinta.Core.IndexEventArgs e ) : void
sender object
e Pinta.Core.IndexEventArgs
return void
        private void HandleGradientOutputValueChanged(object sender, IndexEventArgs e)
        {
            if (gradientOutput.ValueIndex != -1 && gradientOutput.ValueIndex != e.Index)
                return;

            int val = gradientOutput.GetValue (e.Index);
            int hi = gradientOutput.GetValue (2);
            int lo = gradientOutput.GetValue (0);
            int med = FromGammaValue ();

            switch (e.Index) {
            case 0 :
                spinOutLow.Value = val;
                gradientOutput.SetValue (1, med);
                break;

            case 1 :
                med = gradientOutput.GetValue (1);
                spinOutGamma.Value = Utility.Clamp(1 / Math.Log (0.5, (float)(med - lo) / (float)(hi - lo)), 0.1, 10.0);
                break;

            case 2 :
                spinOutHigh.Value = val;
                gradientOutput.SetValue (1, med);
                break;
            }

            UpdateLevels ();
        }