org.salespointframework.desktop.interop
Class WindowsExtensions

java.lang.Object
  extended by org.salespointframework.desktop.interop.WindowsExtensions

public class WindowsExtensions
extends java.lang.Object

This class enables Windows specific features via platform dependent JNI calls

Since:
4.0.1
Author:
Thomas Kissinger

Nested Class Summary
static class WindowsExtensions.JProxyFrame
           
static class WindowsExtensions.JumpList
           
static class WindowsExtensions.JumpListItem
           
static class WindowsExtensions.WinFeatureLevel
           
 
Field Summary
private static WindowsExtensions _instance
           
static java.lang.String AppID
           
static boolean enableExtensions
           
static boolean enableIconOverlay
           
static boolean enableOutput
           
private  WindowsExtensions.WinFeatureLevel featureLevel
           
static java.awt.Color glassColor
           
private static int SC_CLOSE
           
private  IconTabbedPane tabbedPane
           
static int TBPF_ERROR
           
static int TBPF_INDETERMINATE
           
static int TBPF_NOPROGRESS
           
static int TBPF_NORMAL
           
static int TBPF_PAUSED
           
static boolean useGlass
           
static boolean useWndProcHook
           
protected  java.lang.String winapi64dll
           
protected  java.lang.String winapidll
           
private static int WM_ACTIVATE
           
private static int WM_COMMAND
           
private static int WM_DWMSENDICONICLIVEPREVIEWBITMAP
           
private static int WM_DWMSENDICONICTHUMBNAIL
           
private static int WM_SYSCOMMAND
           
 
Constructor Summary
private WindowsExtensions()
           
 
Method Summary
private static boolean ActivateTab(long hwnd)
           
private static int AddButton(java.lang.String fn, java.lang.String tooltip)
           
 boolean addTab(WindowsExtensions.JProxyFrame pf, java.awt.Window wnd, int index)
           
private static boolean AddTaskToJumpList(java.lang.String args, java.lang.String name)
           
private static boolean AddTaskToJumpList2(java.lang.String exec, java.lang.String args, java.lang.String name)
           
private static int BeginJumpList(java.lang.String appId)
           
private  void checkOS()
           
private static boolean CommitJumpList()
           
private static void CreateImageList()
           
private static boolean DeleteJumpList(java.lang.String appId)
           
private static boolean DeleteTab(long hwnd)
           
private static void DwmEnableBlurBehindWindow(long hwnd)
           
private static void DwmEnableBlurBehindWindowRect(long hwnd, int x1, int y1, int x2, int y2, boolean enable)
           
private static void DwmExtendFrameIntoClientArea(long hwnd, int top, int right, int bottom, int left)
           
private static boolean DwmIsCompositionEnabled()
           
 boolean enableGlass(java.awt.Window wnd, java.awt.Color glassColor)
           
 boolean enableWndProcHook(java.awt.Window wnd)
           
private  int[] flipData(int[] data, int w, int h)
           
 WindowsExtensions.WinFeatureLevel getFeatureLevel()
           
static long getHandle(java.awt.Component cmp)
           
static WindowsExtensions getInstance()
           
private static long GetWndProc(long hwnd)
           
static int hookedWndProc(java.lang.String params)
           
private static void HookWndProc(long hwnd)
           
private static boolean InvalidateIconics(long hwnd)
           
 boolean invalidateIconis(java.awt.Window wnd)
           
 boolean isGlassAvailable()
           
 boolean isGlassCompatible(java.awt.Component cmp)
           
private  void loadLibraries()
           
 void prepareWindow(java.awt.Window wnd)
           
private static boolean RegisterTab(long hwnd, long hwndmdi)
           
 boolean removeTab(WindowsExtensions.JProxyFrame pf)
           
private static void ResetButtons()
           
private static boolean SetAppId(java.lang.String appId)
           
private static boolean SetIconic(long hwnd, boolean enable)
           
 boolean setIconicPreview(long hwnd, int[] data, int w, int h, int x, int y)
           
private static boolean SetIconicPreview(long hwnd, int[] data, int w, int h, int x, int y)
           
 boolean setIconicThumb(long hwnd, int[] data, int w, int h)
           
private static boolean SetIconicThumb(long hwnd, int[] data, int w, int h)
           
private static boolean SetLayeredWindowAttributes(long hwnd, int r, int g, int b)
           
private static boolean SetOverlayIcon(long hwnd, java.lang.String fn)
           
 boolean setOverlayIcon(java.awt.Window wnd, java.awt.image.BufferedImage img)
           
private static boolean SetOverlayIcon2(long hwnd, int[] data, int w, int h)
           
 boolean setProgressBarState(java.awt.Window wnd, int state)
           
 boolean setProgressBarValue(java.awt.Window wnd, long completed, long total)
           
private static boolean SetProgressState(long hwnd, int state)
           
private static boolean SetProgressValue(long hwnd, long completed, long total)
           
 void setTabbedPane(IconTabbedPane tp)
           
private static boolean SetTabOrder(long hwnd, long after)
           
private static boolean SetThumbButtons(long hwnd)
           
private static boolean SetThumbnailClip(long hwnd, int x1, int y1, int x2, int y2)
           
private static void setTransparency(long hwnd, float alpha)
           
 boolean setWindowIconic(java.awt.Window wnd, boolean enable)
           
private static boolean SetWindowText(long hwnd, java.lang.String text)
           
 boolean setWindowText(java.awt.Window wnd, java.lang.String text)
           
private static void SetWndProc(long hwnd, long wndproc)
           
private static boolean UnregisterTab(long hwnd)
           
private static boolean UpdateThumbButtons(long hwnd)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WM_COMMAND

private static final int WM_COMMAND
See Also:
Constant Field Values

WM_DWMSENDICONICTHUMBNAIL

private static final int WM_DWMSENDICONICTHUMBNAIL
See Also:
Constant Field Values

WM_DWMSENDICONICLIVEPREVIEWBITMAP

private static final int WM_DWMSENDICONICLIVEPREVIEWBITMAP
See Also:
Constant Field Values

WM_ACTIVATE

private static final int WM_ACTIVATE
See Also:
Constant Field Values

WM_SYSCOMMAND

private static final int WM_SYSCOMMAND
See Also:
Constant Field Values

SC_CLOSE

private static final int SC_CLOSE
See Also:
Constant Field Values

TBPF_NOPROGRESS

public static final int TBPF_NOPROGRESS
See Also:
Constant Field Values

TBPF_INDETERMINATE

public static final int TBPF_INDETERMINATE
See Also:
Constant Field Values

TBPF_NORMAL

public static final int TBPF_NORMAL
See Also:
Constant Field Values

TBPF_ERROR

public static final int TBPF_ERROR
See Also:
Constant Field Values

TBPF_PAUSED

public static final int TBPF_PAUSED
See Also:
Constant Field Values

_instance

private static WindowsExtensions _instance

enableExtensions

public static boolean enableExtensions

useGlass

public static boolean useGlass

useWndProcHook

public static boolean useWndProcHook

enableIconOverlay

public static boolean enableIconOverlay

enableOutput

public static boolean enableOutput

featureLevel

private WindowsExtensions.WinFeatureLevel featureLevel

AppID

public static final java.lang.String AppID
See Also:
Constant Field Values

glassColor

public static java.awt.Color glassColor

tabbedPane

private IconTabbedPane tabbedPane

winapidll

protected java.lang.String winapidll

winapi64dll

protected java.lang.String winapi64dll
Constructor Detail

WindowsExtensions

private WindowsExtensions()
Method Detail

DwmIsCompositionEnabled

private static boolean DwmIsCompositionEnabled()

DwmExtendFrameIntoClientArea

private static void DwmExtendFrameIntoClientArea(long hwnd,
                                                 int top,
                                                 int right,
                                                 int bottom,
                                                 int left)

DwmEnableBlurBehindWindow

private static void DwmEnableBlurBehindWindow(long hwnd)

DwmEnableBlurBehindWindowRect

private static void DwmEnableBlurBehindWindowRect(long hwnd,
                                                  int x1,
                                                  int y1,
                                                  int x2,
                                                  int y2,
                                                  boolean enable)

setTransparency

private static void setTransparency(long hwnd,
                                    float alpha)

SetLayeredWindowAttributes

private static boolean SetLayeredWindowAttributes(long hwnd,
                                                  int r,
                                                  int g,
                                                  int b)

GetWndProc

private static long GetWndProc(long hwnd)

SetWndProc

private static void SetWndProc(long hwnd,
                               long wndproc)

HookWndProc

private static void HookWndProc(long hwnd)

SetAppId

private static boolean SetAppId(java.lang.String appId)

BeginJumpList

private static int BeginJumpList(java.lang.String appId)

AddTaskToJumpList

private static boolean AddTaskToJumpList(java.lang.String args,
                                         java.lang.String name)

AddTaskToJumpList2

private static boolean AddTaskToJumpList2(java.lang.String exec,
                                          java.lang.String args,
                                          java.lang.String name)

CommitJumpList

private static boolean CommitJumpList()

DeleteJumpList

private static boolean DeleteJumpList(java.lang.String appId)

CreateImageList

private static void CreateImageList()

ResetButtons

private static void ResetButtons()

AddButton

private static int AddButton(java.lang.String fn,
                             java.lang.String tooltip)

SetThumbButtons

private static boolean SetThumbButtons(long hwnd)

UpdateThumbButtons

private static boolean UpdateThumbButtons(long hwnd)

SetProgressValue

private static boolean SetProgressValue(long hwnd,
                                        long completed,
                                        long total)

SetProgressState

private static boolean SetProgressState(long hwnd,
                                        int state)

SetOverlayIcon

private static boolean SetOverlayIcon(long hwnd,
                                      java.lang.String fn)

SetOverlayIcon2

private static boolean SetOverlayIcon2(long hwnd,
                                       int[] data,
                                       int w,
                                       int h)

SetIconic

private static boolean SetIconic(long hwnd,
                                 boolean enable)

RegisterTab

private static boolean RegisterTab(long hwnd,
                                   long hwndmdi)

SetTabOrder

private static boolean SetTabOrder(long hwnd,
                                   long after)

UnregisterTab

private static boolean UnregisterTab(long hwnd)

ActivateTab

private static boolean ActivateTab(long hwnd)

DeleteTab

private static boolean DeleteTab(long hwnd)

SetThumbnailClip

private static boolean SetThumbnailClip(long hwnd,
                                        int x1,
                                        int y1,
                                        int x2,
                                        int y2)

SetIconicThumb

private static boolean SetIconicThumb(long hwnd,
                                      int[] data,
                                      int w,
                                      int h)

SetIconicPreview

private static boolean SetIconicPreview(long hwnd,
                                        int[] data,
                                        int w,
                                        int h,
                                        int x,
                                        int y)

InvalidateIconics

private static boolean InvalidateIconics(long hwnd)

SetWindowText

private static boolean SetWindowText(long hwnd,
                                     java.lang.String text)

getInstance

public static WindowsExtensions getInstance()

checkOS

private void checkOS()

loadLibraries

private void loadLibraries()

getFeatureLevel

public WindowsExtensions.WinFeatureLevel getFeatureLevel()

hookedWndProc

public static int hookedWndProc(java.lang.String params)

getHandle

public static long getHandle(java.awt.Component cmp)

setTabbedPane

public void setTabbedPane(IconTabbedPane tp)

isGlassAvailable

public boolean isGlassAvailable()

prepareWindow

public void prepareWindow(java.awt.Window wnd)

invalidateIconis

public boolean invalidateIconis(java.awt.Window wnd)

enableWndProcHook

public boolean enableWndProcHook(java.awt.Window wnd)

setWindowIconic

public boolean setWindowIconic(java.awt.Window wnd,
                               boolean enable)

setWindowText

public boolean setWindowText(java.awt.Window wnd,
                             java.lang.String text)

setProgressBarValue

public boolean setProgressBarValue(java.awt.Window wnd,
                                   long completed,
                                   long total)

setProgressBarState

public boolean setProgressBarState(java.awt.Window wnd,
                                   int state)

setOverlayIcon

public boolean setOverlayIcon(java.awt.Window wnd,
                              java.awt.image.BufferedImage img)

isGlassCompatible

public boolean isGlassCompatible(java.awt.Component cmp)

enableGlass

public boolean enableGlass(java.awt.Window wnd,
                           java.awt.Color glassColor)

flipData

private int[] flipData(int[] data,
                       int w,
                       int h)

setIconicThumb

public boolean setIconicThumb(long hwnd,
                              int[] data,
                              int w,
                              int h)

setIconicPreview

public boolean setIconicPreview(long hwnd,
                                int[] data,
                                int w,
                                int h,
                                int x,
                                int y)

addTab

public boolean addTab(WindowsExtensions.JProxyFrame pf,
                      java.awt.Window wnd,
                      int index)

removeTab

public boolean removeTab(WindowsExtensions.JProxyFrame pf)