From d64290aaffd4721518747713929d79a78ba963f4 Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Sun, 28 Apr 2019 16:14:12 +0200 Subject: add owner-drawn themed button with animation --- alf/alfcompat.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'alf/alfcompat.h') 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 #include +#include #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*); -- cgit v1.2.3