ComponentFactory.Krypton.Ribbon.ViewDrawRibbonGroup.RenderNormalBefore C# (CSharp) Method

RenderNormalBefore() private method

private RenderNormalBefore ( RenderContext context ) : void
context ComponentFactory.Krypton.Toolkit.RenderContext
return void
        private void RenderNormalBefore(RenderContext context)
        {
            Rectangle drawRect = ClientRectangle;

            IPaletteRibbonBack paletteBorder;
            IPaletteRibbonBack paletteTitle;

            // Are we a group inside a context tab?
            PaletteState elementState;
            if ((_ribbon.SelectedTab != null) && !string.IsNullOrEmpty(_ribbon.SelectedTab.ContextName))
                elementState = Tracking ? PaletteState.ContextTracking : PaletteState.ContextNormal;
            else
                elementState = Tracking ? PaletteState.Tracking : PaletteState.Normal;

            // Decide on the palette to use
            switch (elementState)
            {
                case PaletteState.ContextNormal:
                    paletteBorder = _ribbon.StateContextNormal.RibbonGroupNormalBorder;
                    paletteTitle = _ribbon.StateContextNormal.RibbonGroupNormalTitle;
                    break;
                case PaletteState.ContextTracking:
                    paletteBorder = _ribbon.StateContextTracking.RibbonGroupNormalBorder;
                    paletteTitle = _ribbon.StateContextTracking.RibbonGroupNormalTitle;
                    break;
                case PaletteState.Tracking:
                    paletteBorder = _ribbon.StateTracking.RibbonGroupNormalBorder;
                    paletteTitle = _ribbon.StateTracking.RibbonGroupNormalTitle;
                    break;
                case PaletteState.Normal:
                default:
                    paletteBorder = _ribbon.StateNormal.RibbonGroupNormalBorder;
                    paletteTitle = _ribbon.StateNormal.RibbonGroupNormalTitle;
                    break;
            }

            ElementState = elementState;

            // Indicate the showing of the group inside a popup by adding focus override
            if (_ribbonGroup.ShowingAsPopup)
                elementState |= PaletteState.FocusOverride;

            // Draw the group border
            _paletteContextBack.SetInherit(paletteBorder);
            _mementoRibbonBack1 = context.Renderer.RenderRibbon.DrawRibbonBack(_ribbon.RibbonShape, context, drawRect, elementState, _paletteContextBack, VisualOrientation.Top, false, _mementoRibbonBack1);

            // Reduce the drawing rectangle to just the title area
            Rectangle titleRect = drawRect;
            titleRect.X++;
            titleRect.Width -= 2;
            titleRect.Y = titleRect.Bottom - _viewNormalTitle.Height;
            titleRect.Height = _viewNormalTitle.Height - 1;

            if (paletteBorder.GetRibbonBackColorStyle(State) == PaletteRibbonColorStyle.RibbonGroupNormalBorderTrackingLight)
            {
                // Redraw the title area inside the light border area
                titleRect.X++;
                titleRect.Width -= 2;
                titleRect.Height--;
            }

            // Draw the group title
            _mementoRibbonBack2 = context.Renderer.RenderRibbon.DrawRibbonBack(_ribbon.RibbonShape, context, titleRect, State, paletteTitle, VisualOrientation.Top, false, _mementoRibbonBack2);
        }