# Interface SyWindowType

All Superinterfaces:
  `SyBoundedReadableType<SySpaceViewportType>, SySizedReadableType<SySpaceViewportType>, SyWindowReadableType`

public interface SyWindowType extends SyWindowReadableType
The type of windows.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `com.io7m.jattribute.core.AttributeType<SyWindowCloseBehaviour>`
  `closeButtonBehaviour()`
  `com.io7m.jattribute.core.AttributeType<SyVisibility>`
  `closeButtonVisibility()`
  `Optional<SyComponentType>`
  `componentForViewportPosition(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceViewportType> position, SyComponentQuery query)`
  Find a component given a viewport position.
  `Optional<SyComponentType>`
  `componentForWindowPosition(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceWindowType> w_position, SyComponentQuery query)`
  Find the component under the given window-relative position.
  `SyComponentType`
  `contentArea()`
  `com.io7m.jattribute.core.AttributeType<Boolean>`
  `decorated()`
  `void`
  `eventSend(SyWindowEventType event)`
  Send an event to the window.
  `void`
  `layout(SyLayoutContextType layoutContext)`
  Execute a layout pass on the window.
  `com.io7m.jattribute.core.AttributeType<SyVisibility>`
  `maximizeButtonVisibility()`
  `com.io7m.jattribute.core.AttributeType<SyVisibility>`
  `menuButtonVisibility()`
  `com.io7m.jattribute.core.AttributeType<Integer>`
  `positionSnapping()`
  An attribute that, when set to a non-zero value, specifies a snapping value for position values.
  `SyScreenType`
  `screen()`
  `void`
  `setMaximizeToggle(com.io7m.jregions.core.parameterized.sizes.PAreaSizeI<SySpaceViewportType> viewportSize)`
  Toggle the "maximized" nature of the window.
  `void`
  `setPosition(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceViewportType> newPosition)`
  Set the window position.
  `void`
  `setSize(com.io7m.jregions.core.parameterized.sizes.PAreaSizeI<SySpaceViewportType> newSize)`
  Set the window size.
  `com.io7m.jattribute.core.AttributeType<Integer>`
  `sizeSnapping()`
  An attribute that, when set to a non-zero value, specifies a snapping value for size values.
  `com.io7m.jattribute.core.AttributeType<SyText>`
  `title()`
  `com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceWindowType>`
  `transformViewportRelative(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceViewportType> viewportPosition)`
  Transform the given viewport position to a window-relative position.

  ### Methods inherited from interface SyBoundedReadableType

  `boundingArea, position`

  ### Methods inherited from interface SySizedReadableType

  `size, sizeUpperLimit`

  ### Methods inherited from interface SyWindowReadableType

  `deletionPolicy, id, layer, maximized, rootNodeReadable`

- ## Method Details

  - ### screen

    SyScreenType screen()
    Returns:
      The screen to which this window belongs.

  - ### layout

    void layout(SyLayoutContextType layoutContext)
    Execute a layout pass on the window.
    Parameters:
      `layoutContext` - The layout context

  - ### eventSend

    void eventSend(SyWindowEventType event)
    Send an event to the window.
    Parameters:
      `event` - The event

  - ### componentForViewportPosition

    Optional<SyComponentType> componentForViewportPosition(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceViewportType> position, SyComponentQuery query)
    Find a component given a viewport position.
    Parameters:
      `position` - The position
      `query` - The type of position query
    Returns:
      A component, if any
    See Also:
      - `SyMouseFocusAcceptingReadableType`

  - ### transformViewportRelative

    com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceWindowType> transformViewportRelative(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceViewportType> viewportPosition)
    Transform the given viewport position to a window-relative position.
    Parameters:
      `viewportPosition` - The viewport position
    Returns:
      A window-relative position

  - ### componentForWindowPosition

    Optional<SyComponentType> componentForWindowPosition(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceWindowType> w_position, SyComponentQuery query)
    Find the component under the given window-relative position.
    Parameters:
      `w_position` - The window-relative position
      `query` - The type of position query
    Returns:
      The component, if any
    See Also:
      - `SyMouseFocusAcceptingReadableType`

  - ### setMaximizeToggle

    void setMaximizeToggle(com.io7m.jregions.core.parameterized.sizes.PAreaSizeI<SySpaceViewportType> viewportSize)
    Toggle the "maximized" nature of the window.
    Parameters:
      `viewportSize` - The size of the maximized window

  - ### decorated

    com.io7m.jattribute.core.AttributeType<Boolean> decorated()
    Specified by:
      `decorated` in interface `SyWindowReadableType`
    Returns:
      An attribute indicating if the window is decorated

  - ### setPosition

    void setPosition(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceViewportType> newPosition)
    Set the window position.
    Parameters:
      `newPosition` - The new position

  - ### setSize

    void setSize(com.io7m.jregions.core.parameterized.sizes.PAreaSizeI<SySpaceViewportType> newSize)
    Set the window size.
    Parameters:
      `newSize` - The new size

  - ### contentArea

    SyComponentType contentArea()
    Returns:
      The content area component

  - ### title

    com.io7m.jattribute.core.AttributeType<SyText> title()
    Specified by:
      `title` in interface `SyWindowReadableType`
    Returns:
      An attribute representing the window title

  - ### positionSnapping

    com.io7m.jattribute.core.AttributeType<Integer> positionSnapping()
    Description copied from interface: `SyWindowReadableType`
    An attribute that, when set to a non-zero value, specifies a snapping value for position values. For a non-zero snapping value `n`, the resulting position values will be `k * n` for some non-negative `k`.
    Specified by:
      `positionSnapping` in interface `SyWindowReadableType`
    Returns:
      The position snapping value

  - ### sizeSnapping

    com.io7m.jattribute.core.AttributeType<Integer> sizeSnapping()
    Description copied from interface: `SyWindowReadableType`
    An attribute that, when set to a non-zero value, specifies a snapping value for size values. For a non-zero snapping value `n`, the resulting size values will be `k * n` for some non-negative `k`.
    Specified by:
      `sizeSnapping` in interface `SyWindowReadableType`
    Returns:
      The size snapping value

  - ### closeButtonBehaviour

    com.io7m.jattribute.core.AttributeType<SyWindowCloseBehaviour> closeButtonBehaviour()
    Specified by:
      `closeButtonBehaviour` in interface `SyWindowReadableType`
    Returns:
      A property denoting the window close button behaviour

  - ### closeButtonVisibility

    com.io7m.jattribute.core.AttributeType<SyVisibility> closeButtonVisibility()
    Specified by:
      `closeButtonVisibility` in interface `SyWindowReadableType`
    Returns:
      An attribute denoting the visibility of the window's close button

  - ### menuButtonVisibility

    com.io7m.jattribute.core.AttributeType<SyVisibility> menuButtonVisibility()
    Specified by:
      `menuButtonVisibility` in interface `SyWindowReadableType`
    Returns:
      An attribute denoting the visibility of the window's menu button

  - ### maximizeButtonVisibility

    com.io7m.jattribute.core.AttributeType<SyVisibility> maximizeButtonVisibility()
    Specified by:
      `maximizeButtonVisibility` in interface `SyWindowReadableType`
    Returns:
      An attribute denoting the visibility of the window's maximize button