Package org.pushingpixels.substance.internal.utils.menu

# Class MenuUtilities

java.lang.Object
org.pushingpixels.substance.internal.utils.menu.MenuUtilities

public class MenuUtilities extends Object
Menu-related utilities.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`MenuUtilities.MenuLayoutInfo`
Layout information for a single menu item.
`static class`
`MenuUtilities.MenuLayoutMetrics`
Layout metrics for a single popup menu.
`static class`
`MenuUtilities.MenuPropertyListener`
Listener to track changes in the menu items.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`LAYOUT_INFO`

## Constructor Summary

Constructors
Constructor
Description
`MenuUtilities()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`cleanPopupLayoutMetrics(JPopupMenu popupMenu)`
Cleans the layout metrics of the specified popup menu.
`static MenuUtilities.MenuLayoutInfo`
`getMenuLayoutInfo(boolean forPainting, JMenuItem menuItem, Font acceleratorFont, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)`
Returns the layout info for the specified menu item.
`protected static MenuUtilities.MenuLayoutMetrics`
`getMetrics(JPopupMenu popupMenu, boolean forPainting)`
Returns the layout metrics of the specified popup menu.
`static MenuUtilities.MenuLayoutMetrics`
`getPopupLayoutMetrics(JMenuItem menuItem, boolean forPainting)`
Returns the layout metrics of the popup menu of the specified menu item.
`static MenuUtilities.MenuLayoutMetrics`
`getPopupLayoutMetrics(JPopupMenu popupMenu, boolean forPainting)`
`static int`
`getPreferredWidth(JMenuItem menuItem)`
Returns the preferred width of the specified menu item.
`static int`
`getTextOffset(JComponent menuItem, Component menuItemParent)`
Returns the text offset of the specified menu item.
`static void`
`paintMenuItem(Graphics g, JMenuItem menuItem, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)`
Paints the specified menu item.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### LAYOUT_INFO

public static final String LAYOUT_INFO

See Also:
  - Constant Field Values

## Constructor Details

### MenuUtilities

public MenuUtilities()

## Method Details

### getMenuLayoutInfo

public static MenuUtilities.MenuLayoutInfo getMenuLayoutInfo(boolean forPainting, JMenuItem menuItem, Font acceleratorFont, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
Returns the layout info for the specified menu item.

Parameters:
  `menuItem` - Menu item.
  `acceleratorFont` - Font for the accelerator text.
  `checkIcon` - Check icon.
  `arrowIcon` - Arrow icon.
  `defaultTextIconGap` - Gap between the icon and the text.
Returns:
  Layout info for the specified menu item.

### paintMenuItem

public static void paintMenuItem(Graphics g, JMenuItem menuItem, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
Paints the specified menu item.

Parameters:
  `g` - Graphics context.
  `menuItem` - Menu item.
  `checkIcon` - Check icon.
  `arrowIcon` - Arrow icon.
  `defaultTextIconGap` - Gap between the icon and the text.

### getMetrics

protected static MenuUtilities.MenuLayoutMetrics getMetrics(JPopupMenu popupMenu, boolean forPainting)
Returns the layout metrics of the specified popup menu.

Parameters:
  `popupMenu` - Popup menu.
Returns:
  Layout metrics of the specified popup menu.

### getPopupLayoutMetrics

public static MenuUtilities.MenuLayoutMetrics getPopupLayoutMetrics(JMenuItem menuItem, boolean forPainting)
Returns the layout metrics of the popup menu of the specified menu item.

Parameters:
  `menuItem` - Menu item.
Returns:
  Layout metrics of the popup menu of the specified menu item.

### getPopupLayoutMetrics

public static MenuUtilities.MenuLayoutMetrics getPopupLayoutMetrics(JPopupMenu popupMenu, boolean forPainting)

### cleanPopupLayoutMetrics

public static void cleanPopupLayoutMetrics(JPopupMenu popupMenu)
Cleans the layout metrics of the specified popup menu.

Parameters:
  `popupMenu` - Popup menu.

### getPreferredWidth

public static int getPreferredWidth(JMenuItem menuItem)
Returns the preferred width of the specified menu item. The preferred width depends on the layout metrics of the entire popup menu of this menu item.

Parameters:
  `menuItem` - Menu item.
Returns:
  Preferred width of the specified menu item

### getTextOffset

public static int getTextOffset(JComponent menuItem, Component menuItemParent)
Returns the text offset of the specified menu item.

Parameters:
  `menuItem` - Menu item.
  `menuItemParent` - Menu item parent.
Returns:
  Text offset of the specified menu item.