Esempio n. 1
0
        private LinearGradientBrush ThumbColorLinearGradientTrueDefault(int x, int y, int r, int alpha = 255)
        {
            UInt32 shadowColor = 0xff000000 | 0xff000000 & (UInt32)ThumbColorTrue.ToArgb();
            Color  alphaColor  = Color.FromArgb(alpha, ThumbColorTrue);
            uint   alphaMask   = 0x01000000 * (uint)alpha;

            SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder br1 = new SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder(new Point(x, y - r), new Point(x, y + r), alphaColor, alphaColor);
            br1.AddPosition(0).AddColor(0xb3ffb3 | (alphaMask))
            .AddPosition(0.40).AddColor(0x80ff80 | (alphaMask))
            .AddPosition(1).AddColor(0x00bf00 | (alphaMask));
            return(br1.Build());
        }
Esempio n. 2
0
        private LinearGradientBrush ThumbColorLinearGradientTrue(int x, int y, int r, int alpha = 255)
        {
            if (DefaultThumbColor)
            {
                return(ThumbColorLinearGradientTrueDefault(x, y, r, alpha));
            }
            UInt32 shadowColor = 0xff000000 | 0xff000000 & (UInt32)ThumbColorTrue.ToArgb();
            Color  alphaColor  = Color.FromArgb(alpha, ThumbColorTrue);

            SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder br1 = new SDLMMSharp.SDLMMControl.LinearGradientBrushBuilder(new Point(x - r, y - r), new Point(x + r, y + r), alphaColor, alphaColor);

            br1.AddPosition(0).AddColor(alphaColor)
            .AddPosition(1).AddColor(shadowColor);
            return(br1.Build());
        }
Esempio n. 3
0
        private void DrawThumbWithoutBitmap()
        {
            int r  = SliderRect.Height / 2;
            int x  = SliderRect.Left + r;
            int x2 = SliderRect.Left + SliderRect.Width - r;
            int y  = SliderRect.Top + r;

            if (Transforming)
            {
                int offset = 0;
                int x3     = 0;
                if (Checked)
                {
                    offset = (int)(Progress * (-SliderRect.Width));
                    x3     = x2 + offset;
                    if (x3 < x)
                    {
                        x3 = x;
                    }
                    if (HasShadow)
                    {
                        CurrentRenderTarget.fillCircle(x3 + ShadowOffset, y + ShadowOffset, r + ShadowAdditionRadius, ShadowColor);
                    }
                    if (UseGradient)
                    {
                        using (LinearGradientBrush brush = ThumbColorLinearGradientTrue(x3, y, r + 1))
                        {
                            CurrentRenderTarget.fillCircle(x3, y, r, brush);
                        }
                        using (LinearGradientBrush brush = ThumbColorLinearGradient(x3, y, r + 1, (int)(Progress * 255)))
                        {
                            CurrentRenderTarget.fillCircle(x3, y, r, brush);
                        }
                    }
                    else
                    {
                        CurrentRenderTarget.fillCircle(x3, y, r, ThumbColorTrue.ToArgb());
                        CurrentRenderTarget.fillCircle(x3, y, r, Color.FromArgb((int)(Progress * 255), ThumbColor).ToArgb());
                    }
                }
                else
                {
                    offset = (int)(Progress * SliderRect.Width);
                    x3     = x + offset;
                    if (x3 > x2)
                    {
                        x3 = x2;
                    }
                    if (HasShadow)
                    {
                        CurrentRenderTarget.fillCircle(x3 + ShadowOffset, y + ShadowOffset, r + ShadowAdditionRadius, ShadowColor);
                    }
                    if (UseGradient)
                    {
                        using (LinearGradientBrush brush = ThumbColorLinearGradient(x3, y, r + 1))
                        {
                            CurrentRenderTarget.fillCircle(x3, y, r, brush);
                        }
                        using (LinearGradientBrush brush = ThumbColorLinearGradientTrue(x3, y, r + 1, (int)(Progress * 255)))
                        {
                            CurrentRenderTarget.fillCircle(x3, y, r, brush);
                        }
                    }
                    else
                    {
                        CurrentRenderTarget.fillCircle(x3, y, r, ThumbColor.ToArgb());
                        CurrentRenderTarget.fillCircle(x3, y, r, Color.FromArgb((int)(Progress * 255), ThumbColorTrue).ToArgb());
                    }
                }
            }
            else
            {
                if (!Checked)
                {
                    if (HasShadow)
                    {
                        CurrentRenderTarget.fillCircle(x + ShadowOffset, y + ShadowOffset, r + ShadowAdditionRadius, ShadowColor);
                    }
                    if (UseGradient)
                    {
                        using (LinearGradientBrush brush = ThumbColorLinearGradient(x, y, r + 1))
                        {
                            CurrentRenderTarget.fillCircle(x, y, r, brush);
                        }
                    }
                    else
                    {
                        CurrentRenderTarget.fillCircle(x, y, r, ThumbColor.ToArgb());
                    }
                }
                else
                {
                    if (HasShadow)
                    {
                        CurrentRenderTarget.fillCircle(x2 + ShadowOffset, y + ShadowOffset, r + ShadowAdditionRadius, ShadowColor);
                    }
                    if (UseGradient)
                    {
                        using (LinearGradientBrush brush = ThumbColorLinearGradientTrue(x2, y, r + 1))
                        {
                            CurrentRenderTarget.fillCircle(x2, y, r, brush);
                        }
                    }
                    else
                    {
                        CurrentRenderTarget.fillCircle(x2, y, r, ThumbColorTrue.ToArgb());
                    }
                }
            }
        }