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 java.lang.Object

Window utilities with differing native implementations.

### Nested Class Summary

Nested Classes
`protected class` `WindowUtils.NativeWindowUtils.TransparentContentPane`

### Constructor Summary

Constructors
`NativeWindowUtils()`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected java.util.List<DesktopWindow>` `getAllWindows​(boolean onlyVisibleWindows)` Requests a list of all currently available Desktop windows.
`java.awt.GraphicsConfiguration` `getAlphaCompatibleGraphicsConfiguration()` Return the default graphics configuration.
`protected java.awt.Dimension` `getIconSize​(WinDef.HICON hIcon)` Detects the size of an icon.
`protected java.lang.String` `getProcessFilePath​(WinDef.HWND hwnd)` Detects the full file path of the process associated with the specified window handle.
`protected java.awt.Window` `getWindow​(java.awt.Component c)`
`protected java.awt.image.BufferedImage` `getWindowIcon​(WinDef.HWND hwnd)` Obtains the set icon for the window associated with the specified window handle.
`protected java.awt.Rectangle` `getWindowLocationAndSize​(WinDef.HWND hwnd)` Requests the location and size of the window associated with the specified window handle.
`protected java.lang.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​(java.awt.Component root, boolean buffered)`
`protected void` `setForceHeavyweightPopups​(java.awt.Window w, boolean force)` Use this method to ensure heavyweight popups are used in conjunction with a given window.
`protected void` `setLayersTransparent​(java.awt.Window w, boolean transparent)`
`protected void` `setMask​(java.awt.Component c, java.awt.image.Raster raster)` Override this method to provide bitmap masking of the given heavyweight component.
`void` `setWindowAlpha​(java.awt.Window w, float alpha)` Set the overall alpha transparency of the window.
`protected void` `setWindowMask​(java.awt.Component w, java.awt.image.Raster raster)` Set the window mask based on the given Raster, which should be treated as a bitmap (zero/nonzero values only).
`void` `setWindowMask​(java.awt.Component w, java.awt.Shape mask)` Set the window mask based on a `Shape`.
`void` `setWindowMask​(java.awt.Component w, javax.swing.Icon mask)` Set the window mask based on an Icon.
`void` `setWindowTransparent​(java.awt.Window w, boolean transparent)` Set the window to be transparent.
`protected java.awt.image.Raster` `toRaster​(java.awt.Component c, javax.swing.Icon mask)`
`protected java.awt.image.Raster` `toRaster​(java.awt.Shape mask)`
`protected java.awt.Shape` `toShape​(java.awt.image.Raster raster)`
`protected void` `whenDisplayable​(java.awt.Component w, java.lang.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 Detail

#### NativeWindowUtils

    public NativeWindowUtils()

### Method Detail

#### getWindow

    protected java.awt.Window getWindow​(java.awt.Component c)

#### whenDisplayable

    protected void whenDisplayable​(java.awt.Component w,
                                   java.lang.Runnable action)

Execute the given action when the given window becomes displayable.

#### toRaster

    protected java.awt.image.Raster toRaster​(java.awt.Shape mask)

#### toRaster

    protected java.awt.image.Raster toRaster​(java.awt.Component c,
                                             javax.swing.Icon mask)

#### toShape

    protected java.awt.Shape toShape​(java.awt.image.Raster raster)

#### setWindowAlpha

    public void setWindowAlpha​(java.awt.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 java.awt.GraphicsConfiguration getAlphaCompatibleGraphicsConfiguration()

Return the default graphics configuration.

#### setWindowTransparent

    public void setWindowTransparent​(java.awt.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​(java.awt.Component root,
                                     boolean buffered)

#### setLayersTransparent

    protected void setLayersTransparent​(java.awt.Window w,
                                        boolean transparent)

#### setMask

    protected void setMask​(java.awt.Component c,
                           java.awt.image.Raster raster)

Override this method to provide bitmap masking of the given heavyweight component.

#### setWindowMask

    protected void setWindowMask​(java.awt.Component w,
                                 java.awt.image.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​(java.awt.Component w,
                              java.awt.Shape mask)

Set the window mask based on a `Shape`.

#### setWindowMask

    public void setWindowMask​(java.awt.Component w,
                              javax.swing.Icon mask)

Set the window mask based on an Icon. All non-transparent pixels will be included in the mask.

#### setForceHeavyweightPopups

    protected void setForceHeavyweightPopups​(java.awt.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 java.awt.image.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:
  `java.lang.UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the current platform.

#### getIconSize

    protected java.awt.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:
  `java.lang.UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the current platform.

#### getAllWindows

    protected java.util.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:
  `java.lang.UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the current platform.

#### getWindowTitle

    protected java.lang.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:
  `java.lang.UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the

#### getProcessFilePath

    protected java.lang.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:
  `java.lang.UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the

#### getWindowLocationAndSize

    protected java.awt.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:
  `java.lang.UnsupportedOperationException` - Thrown if this method wasn't yet implemented for the