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);
}