Package com.sun.jna.platform

# Class WindowUtils.NativeWindowUtils

java.lang.Object
com.sun.jna.platform.WindowUtils.NativeWindowUtils

Enclosing class:
  WindowUtils

public abstract static class WindowUtils.NativeWindowUtils extends Object
Window utilities with differing native implementations.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected class`
  `WindowUtils.NativeWindowUtils.TransparentContentPane`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NativeWindowUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected List<DesktopWindow>`
  `getAllWindows(boolean onlyVisibleWindows)`
  Requests a list of all currently available Desktop windows.
  `GraphicsConfiguration`
  `getAlphaCompatibleGraphicsConfiguration()`
  Return the default graphics configuration.
  `protected Dimension`
  `getIconSize(WinDef.HICON hIcon)`
  Detects the size of an icon.
  `protected String`
  `getProcessFilePath(WinDef.HWND hwnd)`
  Detects the full file path of the process associated with the specified window handle.
  `protected Window`
  `getWindow(Component c)`
  `protected BufferedImage`
  `getWindowIcon(WinDef.HWND hwnd)`
  Obtains the set icon for the window associated with the specified window handle.
  `protected Rectangle`
  `getWindowLocationAndSize(WinDef.HWND hwnd)`
  Requests the location and size of the window associated with the specified window handle.
  `protected String`
  `getWindowTitle(WinDef.HWND hwnd)`
  Tries to obtain the Window's title which belongs to the specified window handle.
  `boolean`
  `isWindowAlphaSupported()`
  Default: no support.
  `protected void`
  `setDoubleBuffered(Component root, boolean buffered)`
  `protected void`
  `setForceHeavyweightPopups(Window w, boolean force)`
  Use this method to ensure heavyweight popups are used in conjunction with a given window.
  `protected void`
  `setLayersTransparent(Window w, boolean transparent)`
  `protected void`
  `setMask(Component c, Raster raster)`
  Override this method to provide bitmap masking of the given heavyweight component.
  `void`
  `setWindowAlpha(Window w, float alpha)`
  Set the overall alpha transparency of the window.
  `protected void`
  `setWindowMask(Component w, Raster raster)`
  Set the window mask based on the given Raster, which should be treated as a bitmap (zero/nonzero values only).
  `void`
  `setWindowMask(Component w, Shape mask)`
  Set the window mask based on a `Shape`.
  `void`
  `setWindowMask(Component w, Icon mask)`
  Set the window mask based on an Icon.
  `void`
  `setWindowTransparent(Window w, boolean transparent)`
  Set the window to be transparent.
  `protected Raster`
  `toRaster(Component c, Icon mask)`
  `protected Raster`
  `toRaster(Shape mask)`
  `protected Shape`
  `toShape(Raster raster)`
  `protected void`
  `whenDisplayable(Component w, Runnable action)`
  Execute the given action when the given window becomes displayable.

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

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

- ## Constructor Details

  - ### NativeWindowUtils

    public NativeWindowUtils()

- ## Method Details

  - ### getWindow

    protected Window getWindow(Component c)

  - ### whenDisplayable

    protected void whenDisplayable(Component w, Runnable action)
    Execute the given action when the given window becomes displayable.

  - ### toRaster

    protected Raster toRaster(Shape mask)

  - ### toRaster

    protected Raster toRaster(Component c, Icon mask)

  - ### toShape

    protected Shape toShape(Raster raster)

  - ### setWindowAlpha

    public void setWindowAlpha(Window w, float alpha)
    Set the overall alpha transparency of the window. An alpha of 1.0 is fully opaque, 0.0 is fully transparent.

  - ### isWindowAlphaSupported

    public boolean isWindowAlphaSupported()
    Default: no support.

  - ### getAlphaCompatibleGraphicsConfiguration

    public GraphicsConfiguration getAlphaCompatibleGraphicsConfiguration()
    Return the default graphics configuration.

  - ### setWindowTransparent

    public void setWindowTransparent(Window w, boolean transparent)
    Set the window to be transparent. Only explicitly painted pixels will be non-transparent. All pixels will be composited with whatever is under the window using their alpha values.

  - ### setDoubleBuffered

    protected void setDoubleBuffered(Component root, boolean buffered)

  - ### setLayersTransparent

    protected void setLayersTransparent(Window w, boolean transparent)

  - ### setMask

    protected void setMask(Component c, Raster raster)
    Override this method to provide bitmap masking of the given heavyweight component.

  - ### setWindowMask

    protected void setWindowMask(Component w, Raster raster)
    Set the window mask based on the given Raster, which should be treated as a bitmap (zero/nonzero values only). A value of `null` means to remove the mask.

  - ### setWindowMask

    public void setWindowMask(Component w, Shape mask)
    Set the window mask based on a `Shape`.

  - ### setWindowMask

    public void setWindowMask(Component w, Icon mask)
    Set the window mask based on an Icon. All non-transparent pixels will be included in the mask.

  - ### setForceHeavyweightPopups

    protected void setForceHeavyweightPopups(Window w, boolean force)
    Use this method to ensure heavyweight popups are used in conjunction with a given window. This prevents the window's alpha setting or mask region from being applied to the popup.

  - ### getWindowIcon

    protected BufferedImage getWindowIcon(WinDef.HWND hwnd)
    Obtains the set icon for the window associated with the specified window handle.
    Parameters:
      `hwnd` - The concerning window handle.
    Returns:
      Either the window's icon or `null` if an error occurred.
    Throws:
      `UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the current platform.

  - ### getIconSize

    protected Dimension getIconSize(WinDef.HICON hIcon)
    Detects the size of an icon.
    Parameters:
      `hIcon` - The icon handle type.
    Returns:
      Either the requested icon's dimension or an `Dimension` instance of `(0, 0)`.
    Throws:
      `UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the current platform.

  - ### getAllWindows

    protected List<DesktopWindow> getAllWindows(boolean onlyVisibleWindows)
    Requests a list of all currently available Desktop windows.
    Parameters:
      `onlyVisibleWindows` - Specifies whether only currently visible windows will be considered (`true`). That are windows which are not minimized. The `WS_VISIBLE` flag will be checked (see: User32.IsWindowVisible(HWND)).
    Returns:
      A list with all windows and some detailed information.
    Throws:
      `UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the current platform.

  - ### getWindowTitle

    protected String getWindowTitle(WinDef.HWND hwnd)
    Tries to obtain the Window's title which belongs to the specified window handle.
    Parameters:
      `hwnd` - The concerning window handle.
    Returns:
      Either the title or an empty string of no title was found or an error occurred.
    Throws:
      `UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the

  - ### getProcessFilePath

    protected String getProcessFilePath(WinDef.HWND hwnd)
    Detects the full file path of the process associated with the specified window handle.
    Parameters:
      `hwnd` - The concerning window handle for which the PE file path is required.
    Returns:
      The full file path of the PE file that is associated with the specified window handle.
    Throws:
      `UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the

  - ### getWindowLocationAndSize

    protected Rectangle getWindowLocationAndSize(WinDef.HWND hwnd)
    Requests the location and size of the window associated with the specified window handle.
    Parameters:
      `hwnd` - The concerning window handle.
    Returns:
      The location and size of the window.
    Throws:
      `UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the