Pinta.LevelsDialog.HandleColorPanelButtonPressEvent C# (CSharp) Method

HandleColorPanelButtonPressEvent() private method

private HandleColorPanelButtonPressEvent ( object sender, ButtonPressEventArgs args ) : void
sender object
args ButtonPressEventArgs
return void
        private void HandleColorPanelButtonPressEvent(object sender, ButtonPressEventArgs args)
        {
            if (args.Event.Type != Gdk.EventType.TwoButtonPress)
                return;

            Gtk.ColorSelectionDialog csd = new Gtk.ColorSelectionDialog ("Choose Color");

               	ColorPanelWidget panel = (ColorPanelWidget)sender;
            csd.ColorSelection.PreviousColor = panel.CairoColor.ToGdkColor ();
            csd.ColorSelection.CurrentColor = panel.CairoColor.ToGdkColor ();
            csd.ColorSelection.CurrentAlpha = panel.CairoColor.GdkColorAlpha ();

            int response = csd.Run ();

            if (response == (int)Gtk.ResponseType.Ok) {

                ColorBgra col = csd.ColorSelection.CurrentColor.ToBgraColor ();

                if (panel == colorpanelInLow)	{
                    Levels.ColorInLow = col;
                } else if (panel == colorpanelInHigh) {
                    Levels.ColorInHigh = col;
                } else if (panel == colorpanelOutLow) {
                    Levels.ColorOutLow = col;
            //                } else if (panel == colorpanelOutMid) {
            //                    ColorBgra lo = Levels.ColorInLow;
            //                    ColorBgra md = histogramInput.Histogram.GetMeanColor();
            //                    ColorBgra hi = Levels.ColorInHigh;
            //                    ColorBgra out_lo = Levels.ColorOutLow;
            //                    ColorBgra out_hi = Levels.ColorOutHigh;
            //
            //                    for (int i = 0; i < 3; i++) {
            //                        double logA = (col[i] - out_lo[i]) / (out_hi[i] - out_lo[i]);
            //                        double logBase = (md[i] - lo[i]) / (hi[i] - lo[i]);
            //                        double logVal = (logBase == 1.0) ? 0.0 : Math.Log (logA, logBase);
            //
            //                        Levels.SetGamma(i, (float)Utility.Clamp (logVal, 0.1, 10.0));
            //                    }
                } else if (panel == colorpanelOutHigh) {
                    Levels.ColorOutHigh = col;
                }
            }

            csd.Destroy ();
            UpdateFromLevelsOp ();
            UpdateLevels ();
        }