From: Zhiyi Zhang zzhang@codeweavers.com
--- dlls/comctl32/datetime.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c index 2772cfec00c..a4084f20cb2 100644 --- a/dlls/comctl32/datetime.c +++ b/dlls/comctl32/datetime.c @@ -43,8 +43,10 @@ #include "winnls.h" #include "commctrl.h" #include "comctl32.h" +#if __WINE_COMCTL32_VERSION == 6 #include "uxtheme.h" #include "vsstyle.h" +#endif #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(datetime); @@ -127,7 +129,6 @@ static BOOL DATETIME_SendSimpleNotify (const DATETIME_INFO *infoPtr, UINT code); static BOOL DATETIME_SendDateTimeChangeNotify (const DATETIME_INFO *infoPtr); static const WCHAR allowedformatchars[] = L"dhHmMstyX"; static const int maxrepetition [] = {4,2,2,2,4,2,2,4,-1}; -static const WCHAR *themeClass = WC_SCROLLBARW;
/* valid date limits */ static const SYSTEMTIME max_allowed_date = { .wYear = 9999, .wMonth = 12, .wDayOfWeek = 0, .wDay = 31 }; @@ -710,8 +711,10 @@ static int DATETIME_GetFieldWidth (const DATETIME_INFO *infoPtr, HDC hdc, int co static void DATETIME_Refresh (DATETIME_INFO *infoPtr, HDC hdc) { +#if __WINE_COMCTL32_VERSION == 6 HTHEME theme; int state; +#endif
TRACE("\n");
@@ -779,6 +782,7 @@ DATETIME_Refresh (DATETIME_INFO *infoPtr, HDC hdc) if (infoPtr->dwStyle & DTS_UPDOWN) return;
+#if __WINE_COMCTL32_VERSION == 6 theme = GetWindowTheme(infoPtr->hwndSelf); if (theme) { @@ -794,6 +798,7 @@ DATETIME_Refresh (DATETIME_INFO *infoPtr, HDC hdc) DrawThemeBackground(theme, hdc, SBP_ARROWBTN, state, &infoPtr->calbutton, NULL); } else +#endif { DrawFrameControl(hdc, &infoPtr->calbutton, DFC_SCROLL, DFCS_SCROLLDOWN | (infoPtr->bCalDepressed ? DFCS_PUSHED : 0) | @@ -1304,6 +1309,7 @@ DATETIME_NCCreate (HWND hwnd, const CREATESTRUCTW *lpcs) return 1; }
+#if __WINE_COMCTL32_VERSION == 6 static LRESULT DATETIME_NCPaint (HWND hwnd, HRGN region) { INT cxEdge, cyEdge; @@ -1346,6 +1352,7 @@ static LRESULT DATETIME_NCPaint (HWND hwnd, HRGN region) DeleteObject(clipRgn); return 0; } +#endif
static LRESULT DATETIME_MouseMove (DATETIME_INFO *infoPtr, LONG x, LONG y) { @@ -1529,16 +1536,18 @@ DATETIME_StyleChanged(DATETIME_INFO *infoPtr, WPARAM wStyleType, const STYLESTRU return 0; }
+#if __WINE_COMCTL32_VERSION == 6 static LRESULT DATETIME_ThemeChanged (DATETIME_INFO *infoPtr) { HTHEME theme;
theme = GetWindowTheme(infoPtr->hwndSelf); CloseThemeData(theme); - OpenThemeData(infoPtr->hwndSelf, themeClass); + OpenThemeData(infoPtr->hwndSelf, WC_SCROLLBARW); InvalidateRect(infoPtr->hwndSelf, NULL, TRUE); return 0; } +#endif
static BOOL DATETIME_GetIdealSize(DATETIME_INFO *infoPtr, SIZE *size) { @@ -1633,7 +1642,9 @@ DATETIME_Create (HWND hwnd, const CREATESTRUCTW *lpcs) infoPtr->hFont = GetStockObject(DEFAULT_GUI_FONT);
SetWindowLongPtrW (hwnd, 0, (DWORD_PTR)infoPtr); - OpenThemeData(hwnd, themeClass); +#if __WINE_COMCTL32_VERSION == 6 + OpenThemeData(hwnd, WC_SCROLLBARW); +#endif
return 0; } @@ -1643,10 +1654,9 @@ DATETIME_Create (HWND hwnd, const CREATESTRUCTW *lpcs) static LRESULT DATETIME_Destroy (DATETIME_INFO *infoPtr) { - HTHEME theme; - - theme = GetWindowTheme(infoPtr->hwndSelf); - CloseThemeData(theme); +#if __WINE_COMCTL32_VERSION == 6 + CloseThemeData(GetWindowTheme(infoPtr->hwndSelf)); +#endif
if (infoPtr->hwndCheckbut) DestroyWindow(infoPtr->hwndCheckbut); @@ -1773,8 +1783,10 @@ DATETIME_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) case WM_NCCREATE: return DATETIME_NCCreate (hwnd, (LPCREATESTRUCTW)lParam);
+#if __WINE_COMCTL32_VERSION == 6 case WM_NCPAINT: return DATETIME_NCPaint(hwnd, (HRGN)wParam); +#endif
case WM_MOUSEMOVE: return DATETIME_MouseMove(infoPtr, (SHORT)LOWORD(lParam), (SHORT)HIWORD(lParam)); @@ -1812,8 +1824,10 @@ DATETIME_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) case WM_STYLECHANGED: return DATETIME_StyleChanged(infoPtr, wParam, (LPSTYLESTRUCT)lParam);
+#if __WINE_COMCTL32_VERSION == 6 case WM_THEMECHANGED: return DATETIME_ThemeChanged(infoPtr); +#endif
case WM_SETFONT: return DATETIME_SetFont(infoPtr, (HFONT)wParam, (BOOL)lParam);