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
All Methods Instance Methods Concrete Methods 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 aShape
.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.
-
-
-
Method Detail
-
whenDisplayable
protected void whenDisplayable(Component w, Runnable action)
Execute the given action when the given window becomes displayable.
-
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 ofnull
means to remove the mask.
-
setWindowMask
public void setWindowMask(Component w, Shape mask)
Set the window mask based on aShape
.
-
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. TheWS_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
-
-