public VisualPopupGroup(KryptonRibbon ribbon,
KryptonRibbonGroup ribbonGroup,
IRenderer renderer)
: base(renderer, true)
{
Debug.Assert(ribbon != null);
Debug.Assert(ribbonGroup != null);
// Remember references needed later
_ribbon = ribbon;
_ribbonGroup = ribbonGroup;
// Create a view element for drawing the group
_viewGroup = new ViewDrawRibbonGroup(ribbon, ribbonGroup, NeedPaintDelegate);
_viewGroup.Collapsed = false;
// Create the background that will contain the actual group instance
_viewBackground = new ViewDrawRibbonGroupsBorder(ribbon, true, NeedPaintDelegate);
_viewBackground.Add(_viewGroup);
// Attach the root to the view manager instance
ViewManager = new ViewRibbonPopupGroupManager(this, ribbon, _viewBackground, _viewGroup, NeedPaintDelegate);
// Create and add a hidden button to act as the focus target
_hiddenFocusTarget = new Button();
_hiddenFocusTarget.TabStop = false;
_hiddenFocusTarget.Location = new Point(-_hiddenFocusTarget.Width, -_hiddenFocusTarget.Height);
CommonHelper.AddControlToParent(this, _hiddenFocusTarget);
}