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