public VisualPopupAppMenu(KryptonRibbon ribbon,
RibbonAppButton appButton,
IPalette palette,
PaletteMode paletteMode,
PaletteRedirect redirector,
Rectangle rectAppButtonTopHalf,
Rectangle rectAppButtonBottomHalf,
bool keyboardActivated)
: base(true)
{
// Remember incoming state
_redirector = redirector;
_ribbon = ribbon;
_rectAppButtonTopHalf = rectAppButtonTopHalf;
_rectAppButtonBottomHalf = rectAppButtonBottomHalf;
// Create the view manager instance with root element
ViewManager = new ViewContextMenuManager(this, new ViewLayoutNull());
// Set the initial resolved palette to the appropriate setting
if (palette != null)
SetPalette(palette);
else
SetPalette(KryptonManager.GetPaletteForMode(paletteMode));
// Set of context menu columns
_viewColumns = new ViewLayoutStack(true);
// Create provider instance
_provider = new AppButtonMenuProvider((ViewContextMenuManager)ViewManager,
_ribbon.RibbonAppButton.AppButtonMenuItems,
_viewColumns, palette, paletteMode,
redirector, NeedPaintDelegate);
_provider.Closing += new CancelEventHandler(OnProviderClosing);
_provider.Close += new EventHandler<CloseReasonEventArgs>(OnProviderClose);
_provider.Dispose += new EventHandler(OnProviderClose);
CreateAppButtonBottom();
CreateButtonSpecView();
CreateContextMenuView(appButton);
CreateRecentDocumentsView();
CreateInnerBacking(CreateInsideCanvas());
CreateOuterBacking();
CreateOutsideDocker();
CreateButtonManager(appButton);
ViewManager.Root = _drawOutsideDocker;
// With keyboard activate we select the first valid item
if (keyboardActivated)
((ViewContextMenuManager)ViewManager).KeyDown();
}