ComponentFactory.Krypton.Ribbon.ViewDrawRibbonGroupImage.RenderBefore C# (CSharp) Method

RenderBefore() public method

Perform rendering before child elements are rendered.
public RenderBefore ( RenderContext context ) : void
context ComponentFactory.Krypton.Toolkit.RenderContext Rendering context.
return void
        public override void RenderBefore(RenderContext context)
        {
            IPaletteRibbonBack paletteBorder;
            IPaletteRibbonBack paletteBack;

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

            // Decide on the palette to use
            switch (State)
            {
                case PaletteState.Pressed:
                    paletteBorder = _ribbon.StatePressed.RibbonGroupCollapsedFrameBorder;
                    paletteBack = _ribbon.StatePressed.RibbonGroupCollapsedFrameBack;
                    break;
                case PaletteState.ContextNormal:
                    paletteBorder = _ribbon.StateContextNormal.RibbonGroupCollapsedFrameBorder;
                    paletteBack = _ribbon.StateContextNormal.RibbonGroupCollapsedFrameBack;
                    break;
                case PaletteState.ContextTracking:
                    paletteBorder = _ribbon.StateContextTracking.RibbonGroupCollapsedFrameBorder;
                    paletteBack = _ribbon.StateContextTracking.RibbonGroupCollapsedFrameBack;
                    break;
                case PaletteState.Tracking:
                    paletteBorder = _ribbon.StateTracking.RibbonGroupCollapsedFrameBorder;
                    paletteBack = _ribbon.StateTracking.RibbonGroupCollapsedFrameBack;
                    break;
                case PaletteState.Normal:
                default:
                    paletteBorder = _ribbon.StateNormal.RibbonGroupCollapsedFrameBorder;
                    paletteBack = _ribbon.StateNormal.RibbonGroupCollapsedFrameBack;
                    break;
            }

            // The background is slightly inside the rounded border
            Rectangle backRect = ClientRectangle;
            backRect.Inflate(-1, -1);

            // Draw the background for the group image area
            _memento1 = context.Renderer.RenderRibbon.DrawRibbonBack(_ribbon.RibbonShape, context, backRect, State, paletteBack, VisualOrientation.Top, false, _memento1);

            // Draw the border around the group image area
            _memento2 = context.Renderer.RenderRibbon.DrawRibbonBack(_ribbon.RibbonShape, context, ClientRectangle, State, paletteBorder, VisualOrientation.Top, false, _memento2);

            // If we have an image for drawing
            if (_ribbonGroup.Image != null)
            {
                // Determine the rectangle for the fixed size of image drawing
                Rectangle drawRect = new Rectangle(new Point(ClientLocation.X + _imageOffsetX,
                                                             ClientLocation.Y + _offsetY),
                                                   _imageSize);

                context.Graphics.DrawImage(_ribbonGroup.Image, drawRect);
            }
        }