Пример #1
0
        /// <summary>Set the brightness based on point x,y relative to the VSlider</summary>
        private void SelectBrightness(int x, int y)
        {
            var dim = LayoutDimensions;

            if (dim.Empty || dim.VSlider.IsEmpty)
            {
                return;
            }

            var v = VerticalLayout
                                ? Math_.Clamp(Math_.Frac(dim.VSlider.Left, x, dim.VSlider.Right), 0.0, 1.0)
                                : Math_.Clamp(Math_.Frac(dim.VSlider.Bottom, y, dim.VSlider.Top), 0.0, 1.0);

            HSVColour = HSV.FromAHSV(HSVColour.A, HSVColour.H, HSVColour.S, (float)v);
        }
Пример #2
0
        /// <summary>Set the alpha based on point x,y relative to the VSlider</summary>
        private void SelectAlpha(int x, int y)
        {
            var dim = LayoutDimensions;

            if (dim.Empty || dim.ASlider.IsEmpty)
            {
                return;
            }

            var a = VerticalLayout
                                ? Math_.Clamp(Math_.Frac(dim.ASlider.Left, x, dim.ASlider.Right), 0.0, 1.0)
                                : Math_.Clamp(Math_.Frac(dim.ASlider.Bottom, y, dim.ASlider.Top), 0.0, 1.0);

            HSVColour = HSV.FromAHSV((float)a, HSVColour.H, HSVColour.S, HSVColour.V);
        }
Пример #3
0
        /// <summary>Set up the text box fields</summary>
        private void SetupFields()
        {
            // Validation
            CancelEventHandler Validating = (s, a) =>
            {
                a.Cancel = !byte.TryParse(((TextBox)s).Text, out var dummy);
            };

            m_edit_red.Validating   += Validating;
            m_edit_green.Validating += Validating;
            m_edit_blue.Validating  += Validating;
            m_edit_alpha.Validating += Validating;
            m_edit_hue.Validating   += Validating;
            m_edit_sat.Validating   += Validating;
            m_edit_lum.Validating   += Validating;

            // Accept value
            Action <byte?, byte?, byte?, byte?> SetARGB = (a, r, g, b) =>
            {
                var c = m_wheel.Colour;
                m_wheel.Colour = Color.FromArgb(a ?? c.A, r ?? c.R, g ?? c.G, b ?? c.B);
            };
            Action <float?, float?, float?, float?> SetAHSV = (a, h, s, v) =>
            {
                var c = m_wheel.HSVColour;
                if (a.HasValue)
                {
                    a = Math_.Clamp(a.Value / 255f, 0f, 1f);
                }
                if (h.HasValue)
                {
                    h = Math_.Clamp(h.Value / 255f, 0f, 1f);
                }
                if (s.HasValue)
                {
                    s = Math_.Clamp(s.Value / 255f, 0f, 1f);
                }
                if (v.HasValue)
                {
                    v = Math_.Clamp(v.Value / 255f, 0f, 1f);
                }
                m_wheel.HSVColour = HSV.FromAHSV(a ?? c.A, h ?? c.H, s ?? c.S, v ?? c.V);
            };

            m_edit_alpha.Validated += (s, a) => SetARGB(byte.Parse(((TextBox)s).Text), null, null, null);
            m_edit_red.Validated   += (s, a) => SetARGB(null, byte.Parse(((TextBox)s).Text), null, null);
            m_edit_green.Validated += (s, a) => SetARGB(null, null, byte.Parse(((TextBox)s).Text), null);
            m_edit_blue.Validated  += (s, a) => SetARGB(null, null, null, byte.Parse(((TextBox)s).Text));
            m_edit_hue.Validated   += (s, a) => SetAHSV(null, byte.Parse(((TextBox)s).Text), null, null);
            m_edit_sat.Validated   += (s, a) => SetAHSV(null, null, byte.Parse(((TextBox)s).Text), null);
            m_edit_lum.Validated   += (s, a) => SetAHSV(null, null, null, byte.Parse(((TextBox)s).Text));

            m_edit_hex.Validating += (s, a) =>
            {
                a.Cancel = !uint.TryParse(((TextBox)s).Text, NumberStyles.HexNumber, null, out var dummy);
            };
            m_edit_hex.Validated += (s, a) =>
            {
                var argb = uint.Parse(((TextBox)s).Text, NumberStyles.HexNumber);
                unchecked { m_wheel.Colour = Color.FromArgb((int)argb); }
            };
        }