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