ComponentFactory.Krypton.Toolkit.RenderStandard.DrawRibbonAppButtonBorder2 C# (CSharp) Method

DrawRibbonAppButtonBorder2() protected method

Internal rendering method.
protected DrawRibbonAppButtonBorder2 ( Graphics g, MementoRibbonAppButton memento, PaletteState state, Color bottomLight, bool trackBorderAsPressed ) : void
g System.Drawing.Graphics
memento MementoRibbonAppButton
state PaletteState
bottomLight Color
trackBorderAsPressed bool
return void
        protected virtual void DrawRibbonAppButtonBorder2(Graphics g,
                                                          MementoRibbonAppButton memento,
                                                          PaletteState state,
                                                          Color bottomLight,
                                                          bool trackBorderAsPressed)
        {
            bool pressed = (state == PaletteState.Pressed);
            bool tracking = (state == PaletteState.Tracking);

            // Override tracking/pressed states?
            if (tracking && trackBorderAsPressed)
            {
                pressed = true;
                tracking = false;
            }

            Color borderGlowColor;
            if (pressed)
                borderGlowColor = _whiten80;
            else if (tracking && !pressed)
                borderGlowColor = Color.FromArgb(200, bottomLight);
            else
                borderGlowColor = _whiten120;

            using (Pen p = new Pen(borderGlowColor))
                g.DrawEllipse(p, memento.borderMain1);

            using (Pen p = new Pen(Color.FromArgb(100, 52, 59, 64)))
                g.DrawEllipse(p, memento.rect);

            if (pressed)
            {
                borderGlowColor = _whiten60;
                using (Pen p = new Pen(borderGlowColor))
                    g.DrawEllipse(p, memento.borderMain3);
            }

            borderGlowColor = (pressed ? _whiten50 : _whiten80);
            using (Pen p = new Pen(borderGlowColor))
                g.DrawArc(p, memento.borderMain2, 180, 180);

            if (!pressed)
            {
                borderGlowColor = _whiten30;
                using (Pen p = new Pen(borderGlowColor))
                    g.DrawArc(p, memento.borderMain4, 180, 180);
            }

            if (tracking && !pressed)
                using (Pen p = new Pen(Color.FromArgb(100, borderGlowColor)))
                    g.DrawEllipse(p, memento.rect);
        }
RenderStandard