public ViewDrawRibbonAppMenuRecentDec(KryptonRibbon ribbon,
IContextMenuProvider provider,
KryptonRibbonRecentDoc recentDoc,
int maxWidth,
NeedPaintHandler needPaintDelegate,
int index)
: base(provider.ProviderStateNormal.ItemHighlight.Back,
provider.ProviderStateNormal.ItemHighlight.Border,
provider.ProviderStateNormal.ItemHighlight,
PaletteMetricPadding.ContextMenuItemHighlight,
VisualOrientation.Top)
{
_maxWidth = maxWidth;
_provider = provider;
_recentDoc = recentDoc;
_shortcutText = (index < 10 ? @"&" + index.ToString() : "A");
// Use docker to organize horizontal items
ViewLayoutDocker docker = new ViewLayoutDocker();
// End of line gap
docker.Add(new ViewLayoutSeparator(5), ViewDockStyle.Right);
// Add the text/extraText/Image entry
FixedContentValue entryContent = new FixedContentValue(recentDoc.Text, recentDoc.ExtraText, recentDoc.Image, recentDoc.ImageTransparentColor);
RibbonRecentDocsEntryToContent entryPalette = new RibbonRecentDocsEntryToContent(ribbon.StateCommon.RibbonGeneral, ribbon.StateCommon.RibbonAppMenuDocsEntry);
ViewDrawContent entryDraw = new ViewDrawContent(entryPalette, entryContent, VisualOrientation.Top);
docker.Add(entryDraw, ViewDockStyle.Fill);
// Shortcut to Content gap
docker.Add(new ViewLayoutSeparator(5), ViewDockStyle.Left);
// Add the shortcut column
FixedContentValue shortcutContent = new FixedContentValue(_shortcutText, null, null, Color.Empty);
RibbonRecentDocsShortcutToContent shortcutPalette = new RibbonRecentDocsShortcutToContent(ribbon.StateCommon.RibbonGeneral, ribbon.StateCommon.RibbonAppMenuDocsEntry);
ViewDrawRibbonRecentShortcut shortcutDraw = new ViewDrawRibbonRecentShortcut(shortcutPalette, shortcutContent);
docker.Add(shortcutDraw, ViewDockStyle.Left);
// Start of line gap
docker.Add(new ViewLayoutSeparator(3), ViewDockStyle.Left);
// Attach a controller so menu item can be tracked and pressed
RecentDocController controller = new RecentDocController(_provider.ProviderViewManager, this, needPaintDelegate);
MouseController = controller;
KeyController = controller;
SourceController = controller;
Add(docker);
}