# Interface SyMenuItemType

All Superinterfaces:
  `SyActiveReadableType, SyActiveType, SyBoundedReadableType<SySpaceParentRelativeType>, SyBoundedType<SySpaceParentRelativeType>, SyComponentReadableType, SyComponentType, SyEventReceiverType, SyKeyboardFocusableReadableType, SyKeyboardFocusableType, SyMouseFocusAcceptingReadableType, SyMouseFocusAcceptingType, SySizedReadableType<SySpaceParentRelativeType>, SySizedType<SySpaceParentRelativeType>, SyThemeableReadableType, SyThemeableType, SyVisibleReadableType, SyVisibleType`

All Known Subinterfaces:
  `SyMenuItemAtomType, SyMenuItemSeparatorType, SyMenuItemSubmenuType`

public sealed interface SyMenuItemType extends SyComponentType permits SyMenuItemAtomType, SyMenuItemSeparatorType, SyMenuItemSubmenuType
The base type of menu items.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isMouseOverMenuDescendant()`
  `SyMenuType`
  `menu()`
  `com.io7m.jregions.core.parameterized.sizes.PAreaSizeI<SySpaceParentRelativeType>`
  `minimumSizeRequired(SyLayoutContextType layoutContext)`
  Determine the minimum size required to render this menu item.

  ### Methods inherited from interface SyActiveReadableType

  `isMouseOver`

  ### Methods inherited from interface SyActiveType

  `activity, setActive`

  ### Methods inherited from interface SyBoundedReadableType

  `boundingArea`

  ### Methods inherited from interface SyBoundedType

  `position, setPosition`

  ### Methods inherited from interface SyComponentReadableType

  `ancestorMatchingReadable, childCount, isActive, isVisible, nodeReadable, relativePositionOf, screen, viewportPositionOf, windowReadable`

  ### Methods inherited from interface SyComponentType

  `ancestorMatching, childAdd, childRemove, childrenClear, componentForWindowRelative, layout, node, window`

  ### Methods inherited from interface SyEventReceiverType

  `eventSend`

  ### Methods inherited from interface SyKeyboardFocusableType

  `keyboardFocusBehavior`

  ### Methods inherited from interface SyMouseFocusAcceptingReadableType

  `isMouseQueryAccepting`

  ### Methods inherited from interface SyMouseFocusAcceptingType

  `setMouseQueryAccepting`

  ### Methods inherited from interface SySizedType

  `setSize, setSizeUpperLimit, size, sizeUpperLimit`

  ### Methods inherited from interface SyThemeableReadableType

  `themeClassesDefaultForComponent, themeClassesExtra, themeClassesInPreferenceOrder`

  ### Methods inherited from interface SyVisibleType

  `setVisible, visibility`

- ## Method Details

  - ### minimumSizeRequired

    com.io7m.jregions.core.parameterized.sizes.PAreaSizeI<SySpaceParentRelativeType> minimumSizeRequired(SyLayoutContextType layoutContext)
    Determine the minimum size required to render this menu item. This method is used to determine the region required to render the menu containing all of the items.
    Parameters:
      `layoutContext` - The layout context
    Returns:
      The minimum size required for this item

  - ### menu

    SyMenuType menu()
    Returns:
      The menu that owns the item

  - ### isMouseOverMenuDescendant

    boolean isMouseOverMenuDescendant()
    Returns:
      `true` if this menu has a descendant that is currently under the mouse cursor