diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2019-04-28 16:14:12 +0200 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2019-04-28 16:14:12 +0200 |
| commit | d64290aaffd4721518747713929d79a78ba963f4 (patch) | |
| tree | b891c41a49b5d5ad2ba3ba85e87fea262cb949c1 /alf/alfcompat.h | |
| parent | 6b301ea64ca71777e38611d8c49dd119808b4365 (diff) | |
add owner-drawn themed button with animation
Diffstat (limited to 'alf/alfcompat.h')
| -rw-r--r-- | alf/alfcompat.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/alf/alfcompat.h b/alf/alfcompat.h index b0a43ec..e0faf62 100644 --- a/alf/alfcompat.h +++ b/alf/alfcompat.h @@ -2,6 +2,7 @@ #include <windows.h> #include <rpc.h> +#include <uxtheme.h> #ifndef WM_DPICHANGED #define WM_DPICHANGED 0x02E0 @@ -44,6 +45,32 @@ ALF_GetAveCharWidth(HDC hdc); void ALF_UniqueCounterValue(LONG_PTR *pCounterId, LONG_PTR *pCounterValue); +typedef void *ALF_Compat_HANIMATIONBUFFER; + +typedef enum { + ALF_Compat_BPAS_NONE, + ALF_Compat_BPAS_LINEAR, + ALF_Compat_BPAS_CUBIC, + ALF_Compat_BPAS_SINE +} ALF_Compat_BP_ANIMATIONSTYLE; + +typedef struct { + DWORD cbSize; + DWORD dwFlags; + ALF_Compat_BP_ANIMATIONSTYLE style; + DWORD dwDuration; +} ALF_Compat_BP_ANIMATIONPARAMS; + +typedef struct { + DWORD cbSize; + DWORD dwFlags; + const RECT *prcExclude; + const BLENDFUNCTION *pBlendFunction; +} ALF_Compat_BP_PAINTPARAMS; + +#ifndef TMT_TRANSITIONDURATION +#define TMT_TRANSITIONDURATION 6000 +#endif extern BOOL (WINAPI *ALF_Compat_IsAppThemed)(void); extern UINT (WINAPI *ALF_Compat_GetDpiForWindow)(HWND); @@ -53,3 +80,18 @@ extern BOOL (WINAPI *ALF_Compat_SetWindowSubclass)(HWND, ALF_COMPAT_SUBCLASSPROC extern LRESULT (WINAPI *ALF_Compat_DefSubclassProc)(HWND, UINT, WPARAM, LPARAM); extern BOOL (WINAPI *ALF_Compat_RemoveWindowSubclass)(HWND, ALF_COMPAT_SUBCLASSPROC, UINT_PTR); extern BOOL (WINAPI *ALF_Compat_SystemParametersInfoForDpi)(UINT,UINT,PVOID,UINT,UINT); +extern HTHEME (WINAPI *ALF_Compat_OpenThemeData)(HWND, LPCWSTR); +extern HRESULT (WINAPI *ALF_Compat_CloseThemeData)(HTHEME); +extern BOOL (WINAPI *ALF_Compat_IsThemeBackgroundPartiallyTransparent)(HTHEME,int,int); +extern HRESULT (WINAPI *ALF_Compat_DrawThemeParentBackground)(HWND,HDC,RECT *); +extern HRESULT (WINAPI *ALF_Compat_DrawThemeBackground)(HTHEME, HDC, int, int, const RECT *, const RECT *); +extern HRESULT (WINAPI *ALF_Compat_GetThemeBackgroundContentRect)(HTHEME,HDC,int,int,const RECT *,RECT *); +extern HRESULT (WINAPI *ALF_Compat_GetThemeTextExtent)(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,const RECT *, RECT *); +extern HRESULT (WINAPI *ALF_Compat_DrawThemeText)(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD,const RECT *); +extern BOOL (WINAPI *ALF_Compat_TrackMouseEvent)(LPTRACKMOUSEEVENT tme); +extern HRESULT (WINAPI *ALF_Compat_BufferedPaintInit)(void); +extern HRESULT (WINAPI *ALF_Compat_BufferedPaintUnInit)(void); +extern ALF_Compat_HANIMATIONBUFFER (WINAPI *ALF_Compat_BeginBufferedAnimation)(HWND,HDC,const RECT *,DWORD,ALF_Compat_BP_PAINTPARAMS *,ALF_Compat_BP_ANIMATIONPARAMS *,HDC *,HDC *); +extern HRESULT (WINAPI *ALF_Compat_EndBufferedAnimation)(ALF_Compat_HANIMATIONBUFFER,BOOL); +extern BOOL (WINAPI *ALF_Compat_BufferedPaintRenderAnimation)(HWND,HDC); +extern HRESULT (WINAPI *ALF_Compat_GetThemeTransitionDuration)(HTHEME,int,int,int,int,DWORD*); |
