public override void CalcItemSize (Graphics dc, MenuItem item, int y, int x, bool menuBar)
{
item.X = x;
item.Y = y;
if (item.Visible == false) {
item.Width = 0;
item.Height = 0;
return;
}
if (item.Separator == true) {
item.Height = SEPARATOR_HEIGHT;
item.Width = SEPARATOR_MIN_WIDTH;
return;
}
if (item.MeasureEventDefined) {
MeasureItemEventArgs mi = new MeasureItemEventArgs (dc, item.Index);
item.PerformMeasureItem (mi);
item.Height = mi.ItemHeight;
item.Width = mi.ItemWidth;
return;
} else {
SizeF size;
size = dc.MeasureString (item.Text, MenuFont, int.MaxValue, string_format_menu_text);
item.Width = (int) size.Width;
item.Height = (int) size.Height;
if (!menuBar) {
if (item.Shortcut != Shortcut.None && item.ShowShortcut) {
item.XTab = MenuCheckSize.Width + MENU_TAB_SPACE + (int) size.Width;
size = dc.MeasureString (" " + item.GetShortCutText (), MenuFont);
item.Width += MENU_TAB_SPACE + (int) size.Width;
}
item.Width += 4 + (MenuCheckSize.Width * 2);
} else {
item.Width += MENU_BAR_ITEMS_SPACE;
x += item.Width;
}
if (item.Height < MenuHeight)
item.Height = MenuHeight;
}
}