mirror of
https://github.com/reactos/reactos.git
synced 2025-06-04 00:40:31 +00:00
[COMCTL32] Sync with Wine Staging 1.9.11. CORE-11368
svn path=/trunk/; revision=71540
This commit is contained in:
parent
1331bd1889
commit
9158c74670
20 changed files with 423 additions and 477 deletions
|
@ -4,8 +4,8 @@ add_definitions(
|
|||
-D_WINE
|
||||
-D_COMCTL32_)
|
||||
|
||||
remove_definitions(-D_WIN32_WINNT=0x502)
|
||||
add_definitions(-D_WIN32_WINNT=0x600)
|
||||
remove_definitions(-D_WIN32_WINNT=0x502 -DWINVER=0x502)
|
||||
add_definitions(-D_WIN32_WINNT=0x600 -DWINVER=0x600)
|
||||
|
||||
include_directories(BEFORE ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
|
||||
spec2def(comctl32.dll comctl32.spec ADD_IMPORTLIB)
|
||||
|
|
|
@ -303,10 +303,7 @@ static BOOL ANIMATE_PaintFrame(ANIMATE_INFO* infoPtr, HDC hDC)
|
|||
HBITMAP hbmOld2 = SelectObject(hdcFinal, hbmFinal);
|
||||
RECT rect;
|
||||
|
||||
rect.left = 0;
|
||||
rect.top = 0;
|
||||
rect.right = nWidth;
|
||||
rect.bottom = nHeight;
|
||||
SetRect(&rect, 0, 0, nWidth, nHeight);
|
||||
|
||||
if(!infoPtr->hbrushBG)
|
||||
infoPtr->hbrushBG = GetCurrentObject(hDC, OBJ_BRUSH);
|
||||
|
|
|
@ -1301,7 +1301,7 @@ static LRESULT COMBOEX_DrawItem (COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *di
|
|||
RECT exrc, cbrc, edrc;
|
||||
GetWindowRect (infoPtr->hwndSelf, &exrc);
|
||||
GetWindowRect (infoPtr->hwndCombo, &cbrc);
|
||||
edrc.left = edrc.top = edrc.right = edrc.bottom = -1;
|
||||
SetRect(&edrc, -1, -1, -1, -1);
|
||||
if (infoPtr->hwndEdit) GetWindowRect (infoPtr->hwndEdit, &edrc);
|
||||
TRACE("window rects ex=(%s), cb=(%s), ed=(%s)\n",
|
||||
wine_dbgstr_rect(&exrc), wine_dbgstr_rect(&cbrc),
|
||||
|
@ -1456,10 +1456,7 @@ static LRESULT COMBOEX_DrawItem (COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *di
|
|||
x = xbase + xioff;
|
||||
y = dis->rcItem.top +
|
||||
(dis->rcItem.bottom - dis->rcItem.top - txtsize.cy) / 2;
|
||||
rect.left = x;
|
||||
rect.right = x + txtsize.cx;
|
||||
rect.top = dis->rcItem.top + 1;
|
||||
rect.bottom = dis->rcItem.bottom - 1;
|
||||
SetRect(&rect, x, dis->rcItem.top + 1, x + txtsize.cx, dis->rcItem.bottom - 1);
|
||||
TRACE("drawing item %d text, rect=(%s)\n",
|
||||
dis->itemID, wine_dbgstr_rect(&rect));
|
||||
ExtTextOutW (dis->hDC, x, y, ETO_OPAQUE | ETO_CLIPPED,
|
||||
|
|
|
@ -1,28 +1,87 @@
|
|||
diff -pudN e:\wine\dlls\comctl32/comctl32.h e:\reactos\dll\win32\comctl32/comctl32.h
|
||||
--- e:\wine\dlls\comctl32/comctl32.h 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/comctl32.h 2014-03-05 11:47:40 +0100
|
||||
@@ -53,67 +53,6 @@
|
||||
extern HMODULE COMCTL32_hModule DECLSPEC_HIDDEN;
|
||||
extern HBRUSH COMCTL32_hPattern55AABrush DECLSPEC_HIDDEN;
|
||||
|
||||
-/* Property sheet / Wizard */
|
||||
-#define IDD_PROPSHEET 1006
|
||||
-#define IDD_WIZARD 1020
|
||||
-
|
||||
-#define IDC_TABCONTROL 12320
|
||||
-#define IDC_APPLY_BUTTON 12321
|
||||
-#define IDC_BACK_BUTTON 12323
|
||||
-#define IDC_NEXT_BUTTON 12324
|
||||
-#define IDC_FINISH_BUTTON 12325
|
||||
-#define IDC_SUNKEN_LINE 12326
|
||||
-#define IDC_SUNKEN_LINEHEADER 12327
|
||||
-
|
||||
-#define IDS_CLOSE 4160
|
||||
-
|
||||
-/* Toolbar customization dialog */
|
||||
-#define IDD_TBCUSTOMIZE 200
|
||||
-
|
||||
-#define IDC_AVAILBTN_LBOX 201
|
||||
-#define IDC_RESET_BTN 202
|
||||
-#define IDC_TOOLBARBTN_LBOX 203
|
||||
-#define IDC_REMOVE_BTN 204
|
||||
-#define IDC_HELP_BTN 205
|
||||
-#define IDC_MOVEUP_BTN 206
|
||||
-#define IDC_MOVEDN_BTN 207
|
||||
-
|
||||
-#define IDS_SEPARATOR 1024
|
||||
-
|
||||
-/* Toolbar imagelist bitmaps */
|
||||
-#define IDB_STD_SMALL 120
|
||||
-#define IDB_STD_LARGE 121
|
||||
-#define IDB_VIEW_SMALL 124
|
||||
-#define IDB_VIEW_LARGE 125
|
||||
-#define IDB_HIST_SMALL 130
|
||||
-#define IDB_HIST_LARGE 131
|
||||
-
|
||||
-#define IDM_TODAY 4163
|
||||
-#define IDM_GOTODAY 4164
|
||||
-
|
||||
-/* Treeview Checkboxes */
|
||||
-
|
||||
-#define IDT_CHECK 401
|
||||
-
|
||||
-
|
||||
-/* Cursors */
|
||||
-#define IDC_MOVEBUTTON 102
|
||||
-#define IDC_COPY 104
|
||||
-#define IDC_DIVIDER 106
|
||||
-#define IDC_DIVIDEROPEN 107
|
||||
-
|
||||
-
|
||||
-/* DragList resources */
|
||||
-#define IDI_DRAGARROW 501
|
||||
-
|
||||
-/* HOTKEY internal strings */
|
||||
-#define HKY_NONE 2048
|
||||
-
|
||||
-/* Tooltip icons */
|
||||
-#define IDI_TT_INFO_SM 22
|
||||
-#define IDI_TT_WARN_SM 25
|
||||
-#define IDI_TT_ERROR_SM 28
|
||||
-
|
||||
typedef struct
|
||||
{
|
||||
COLORREF clrBtnHighlight; /* COLOR_BTNHIGHLIGHT */
|
||||
@@ -149,8 +88,6 @@ INT Str_GetPtrAtoW (LPCSTR lpSrc, LPWST
|
||||
BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc) DECLSPEC_HIDDEN;
|
||||
BOOL Str_SetPtrWtoA (LPSTR *lppDest, LPCWSTR lpSrc) DECLSPEC_HIDDEN;
|
||||
|
||||
-#define COMCTL32_VERSION_MINOR 81
|
||||
-
|
||||
/* Our internal stack structure of the window procedures to subclass */
|
||||
typedef struct _SUBCLASSPROCS {
|
||||
SUBCLASSPROC subproc;
|
||||
diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commctrl.c
|
||||
--- e:\wine\dlls\comctl32/commctrl.c 2015-02-21 17:13:09 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/commctrl.c 2015-08-27 22:05:04 +0100
|
||||
@@ -52,25 +52,26 @@
|
||||
* -- ICC_WIN95_CLASSES
|
||||
*/
|
||||
|
||||
-#include <stdarg.h>
|
||||
-#include <string.h>
|
||||
-#include <stdlib.h>
|
||||
+#include "comctl32.h"
|
||||
|
||||
-#include "windef.h"
|
||||
-#include "winbase.h"
|
||||
-#include "wingdi.h"
|
||||
-#include "winuser.h"
|
||||
-#include "winnls.h"
|
||||
-#include "commctrl.h"
|
||||
-#include "winerror.h"
|
||||
-#include "winreg.h"
|
||||
#define NO_SHLWAPI_STREAM
|
||||
-#include "shlwapi.h"
|
||||
-#include "comctl32.h"
|
||||
-#include "wine/debug.h"
|
||||
+#include <shlwapi.h>
|
||||
--- e:\wine\dlls\comctl32/commctrl.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/commctrl.c 2016-03-01 20:00:53 +0100
|
||||
@@ -60,6 +60,19 @@
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(commctrl);
|
||||
|
||||
|
@ -42,7 +101,7 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
|
||||
static LRESULT WINAPI COMCTL32_SubclassProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
@@ -92,6 +93,67 @@ static const WCHAR strCC32SubclassInfo[]
|
||||
@@ -81,6 +94,67 @@ static const WCHAR strCC32SubclassInfo[]
|
||||
'C','C','3','2','S','u','b','c','l','a','s','s','I','n','f','o',0
|
||||
};
|
||||
|
||||
|
@ -110,7 +169,7 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
|
||||
/***********************************************************************
|
||||
* DllMain [Internal]
|
||||
@@ -928,6 +990,12 @@ HRESULT WINAPI DllGetVersion (DLLVERSION
|
||||
@@ -917,6 +991,12 @@ HRESULT WINAPI DllGetVersion (DLLVERSION
|
||||
HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
|
||||
{
|
||||
TRACE("(%u, %s): stub\n", bInstall, debugstr_w(cmdline));
|
||||
|
@ -123,17 +182,18 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -1591,12 +1659,114 @@ LRESULT WINAPI SetPathWordBreakProc(HWND
|
||||
@@ -1580,33 +1660,114 @@ LRESULT WINAPI SetPathWordBreakProc(HWND
|
||||
*
|
||||
* Draw text with shadow.
|
||||
*/
|
||||
-int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT *rect, DWORD dwFlags,
|
||||
-int WINAPI DrawShadowText(HDC hdc, LPCWSTR text, UINT length, RECT *rect, DWORD flags,
|
||||
- COLORREF crText, COLORREF crShadow, int offset_x, int offset_y)
|
||||
+int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT *prc, DWORD dwFlags,
|
||||
COLORREF crText, COLORREF crShadow, int ixOffset, int iyOffset)
|
||||
+ COLORREF crText, COLORREF crShadow, int ixOffset, int iyOffset)
|
||||
{
|
||||
- FIXME("(%p, %s, %d, %p, %d, 0x%08x, 0x%08x, %d, %d): stub\n", hdc, debugstr_w(pszText), cch, rect, dwFlags,
|
||||
- crText, crShadow, ixOffset, iyOffset);
|
||||
- return DrawTextW(hdc, pszText, cch, rect, DT_LEFT);
|
||||
- int bkmode, ret;
|
||||
- COLORREF clr;
|
||||
- RECT r;
|
||||
+ COLORREF crOldText;
|
||||
+ RECT rcText;
|
||||
+ INT iRet, x, y, x2, y2;
|
||||
|
@ -143,7 +203,9 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
+ HDC hdcMem;
|
||||
+ HFONT hOldFont;
|
||||
+ BLENDFUNCTION bf;
|
||||
+
|
||||
|
||||
- FIXME("(%p, %s, %d, %p, 0x%08x, 0x%08x, 0x%08x, %d, %d): semi-stub\n", hdc, debugstr_w(text),
|
||||
- length, rect, flags, crText, crShadow, offset_x, offset_y);
|
||||
+ /* Create 32 bit DIB section for the shadow */
|
||||
+ ZeroMemory(&bi, sizeof(bi));
|
||||
+ bi.bmiHeader.biSize = sizeof(bi.bmiHeader);
|
||||
|
@ -158,7 +220,9 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
+ ERR("CreateDIBSection failed\n");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
|
||||
- bkmode = SetBkMode(hdc, TRANSPARENT);
|
||||
- clr = SetTextColor(hdc, crShadow);
|
||||
+ /* Create memory device context for new DIB section and select it */
|
||||
+ hdcMem = CreateCompatibleDC(hdc);
|
||||
+ if(!hdcMem)
|
||||
|
@ -167,9 +231,14 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
+ DeleteObject(hbm);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
|
||||
- /* FIXME: for shadow we need to render normally, blur it, and blend with current background. */
|
||||
- r = *rect;
|
||||
- OffsetRect(&r, 1, 1);
|
||||
- DrawTextW(hdc, text, length, &r, flags);
|
||||
+ hbmOld = (HBITMAP)SelectObject(hdcMem, hbm);
|
||||
+
|
||||
|
||||
- SetTextColor(hdc, crText);
|
||||
+ /* Draw text on our helper bitmap */
|
||||
+ hOldFont = (HFONT)SelectObject(hdcMem, GetCurrentObject(hdc, OBJ_FONT));
|
||||
+ SetTextColor(hdcMem, RGB(16, 16, 16));
|
||||
|
@ -178,10 +247,14 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
+ SetRect(&rcText, 0, 0, prc->right - prc->left, prc->bottom - prc->top);
|
||||
+ DrawTextW(hdcMem, pszText, cch, &rcText, dwFlags);
|
||||
+ SelectObject(hdcMem, hOldFont);
|
||||
+
|
||||
|
||||
- /* with text color on top of a shadow */
|
||||
- ret = DrawTextW(hdc, text, length, rect, flags);
|
||||
+ /* Flush GDI so data pointed by pBits is valid */
|
||||
+ GdiFlush();
|
||||
+
|
||||
|
||||
- SetTextColor(hdc, clr);
|
||||
- SetBkMode(hdc, bkmode);
|
||||
+ /* Set alpha of pixels (forget about colors for now. They will be changed in next loop).
|
||||
+ We copy text image 4*5 times and each time alpha is added */
|
||||
+ for (x = 0; x < bi.bmiHeader.biWidth; ++x)
|
||||
|
@ -189,7 +262,8 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
+ {
|
||||
+ BYTE *pDest = &pBits[(y * bi.bmiHeader.biWidth + x) * 4];
|
||||
+ UINT Alpha = 0;
|
||||
+
|
||||
|
||||
- return ret;
|
||||
+ for (x2 = x - 4 + 1; x2 <= x; ++x2)
|
||||
+ for (y2 = y; y2 < y + 5; ++y2)
|
||||
+ {
|
||||
|
@ -242,9 +316,9 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
}
|
||||
|
||||
/***********************************************************************
|
||||
@@ -1646,3 +1816,15 @@ HRESULT WINAPI LoadIconWithScaleDown(HIN
|
||||
FIXME("stub: %p %s %d %d %p\n", hinst, wine_dbgstr_w(name), cx, cy, icon);
|
||||
return E_NOTIMPL;
|
||||
@@ -1695,3 +1856,15 @@ HRESULT WINAPI LoadIconMetric(HINSTANCE
|
||||
|
||||
return LoadIconWithScaleDown(hinst, name, cx, cy, icon);
|
||||
}
|
||||
+
|
||||
+/***********************************************************************
|
||||
|
@ -259,9 +333,9 @@ diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commct
|
|||
+ return TRUE;
|
||||
+}
|
||||
diff -pudN e:\wine\dlls\comctl32/imagelist.c e:\reactos\dll\win32\comctl32/imagelist.c
|
||||
--- e:\wine\dlls\comctl32/imagelist.c 2015-02-21 17:13:09 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/imagelist.c 2015-08-27 22:05:04 +0100
|
||||
@@ -33,27 +33,14 @@
|
||||
--- e:\wine\dlls\comctl32/imagelist.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/imagelist.c 2016-06-05 19:39:00 +0100
|
||||
@@ -33,7 +33,7 @@
|
||||
*
|
||||
* TODO:
|
||||
* - Add support for ILD_PRESERVEALPHA, ILD_SCALE, ILD_DPISCALE
|
||||
|
@ -270,54 +344,42 @@ diff -pudN e:\wine\dlls\comctl32/imagelist.c e:\reactos\dll\win32\comctl32/image
|
|||
* - Thread-safe locking
|
||||
*/
|
||||
|
||||
-#include <stdarg.h>
|
||||
-#include <stdlib.h>
|
||||
-#include <string.h>
|
||||
-
|
||||
-#define COBJMACROS
|
||||
-
|
||||
-#include "winerror.h"
|
||||
-#include "windef.h"
|
||||
-#include "winbase.h"
|
||||
-#include "objbase.h"
|
||||
-#include "wingdi.h"
|
||||
-#include "winuser.h"
|
||||
-#include "commctrl.h"
|
||||
#include "comctl32.h"
|
||||
-#include "commoncontrols.h"
|
||||
-#include "wine/debug.h"
|
||||
-#include "wine/exception.h"
|
||||
+
|
||||
+#include <commoncontrols.h>
|
||||
+#include <wine/exception.h>
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(imagelist);
|
||||
|
||||
@@ -1246,7 +1233,7 @@ ImageList_DrawEx (HIMAGELIST himl, INT i
|
||||
@@ -1229,8 +1229,11 @@ ImageList_DrawEx (HIMAGELIST himl, INT i
|
||||
return ImageList_DrawIndirect (&imldp);
|
||||
}
|
||||
|
||||
|
||||
-static BOOL alpha_blend_image( HIMAGELIST himl, HDC dest_dc, int dest_x, int dest_y,
|
||||
-
|
||||
+#ifdef __REACTOS__
|
||||
+static BOOL alpha_blend_image( HIMAGELIST himl, HDC srce_dc, HDC dest_dc, int dest_x, int dest_y,
|
||||
+#else
|
||||
static BOOL alpha_blend_image( HIMAGELIST himl, HDC dest_dc, int dest_x, int dest_y,
|
||||
+#endif
|
||||
int src_x, int src_y, int cx, int cy, BLENDFUNCTION func,
|
||||
UINT style, COLORREF blend_col )
|
||||
{
|
||||
@@ -1271,9 +1258,9 @@ static BOOL alpha_blend_image( HIMAGELIS
|
||||
@@ -1255,9 +1258,17 @@ static BOOL alpha_blend_image( HIMAGELIS
|
||||
info->bmiHeader.biYPelsPerMeter = 0;
|
||||
info->bmiHeader.biClrUsed = 0;
|
||||
info->bmiHeader.biClrImportant = 0;
|
||||
- if (!(bmp = CreateDIBSection( himl->hdcImage, info, DIB_RGB_COLORS, &bits, 0, 0 ))) goto done;
|
||||
+#ifdef __REACTOS__
|
||||
+ if (!(bmp = CreateDIBSection( srce_dc, info, DIB_RGB_COLORS, &bits, 0, 0 ))) goto done;
|
||||
+#else
|
||||
if (!(bmp = CreateDIBSection( himl->hdcImage, info, DIB_RGB_COLORS, &bits, 0, 0 ))) goto done;
|
||||
+#endif
|
||||
SelectObject( hdc, bmp );
|
||||
- BitBlt( hdc, 0, 0, cx, cy, himl->hdcImage, src_x, src_y, SRCCOPY );
|
||||
+#ifdef __REACTOS__
|
||||
+ BitBlt( hdc, 0, 0, cx, cy, srce_dc, src_x, src_y, SRCCOPY );
|
||||
+#else
|
||||
BitBlt( hdc, 0, 0, cx, cy, himl->hdcImage, src_x, src_y, SRCCOPY );
|
||||
+#endif
|
||||
|
||||
if (blend_col != CLR_NONE)
|
||||
{
|
||||
@@ -1346,6 +1333,66 @@ done:
|
||||
@@ -1330,6 +1341,68 @@ done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
+#ifdef __REACTOS__
|
||||
+HDC saturate_image( HIMAGELIST himl, HDC dest_dc, int dest_x, int dest_y,
|
||||
+ int src_x, int src_y, int cx, int cy, COLORREF rgbFg)
|
||||
+{
|
||||
|
@ -377,14 +439,16 @@ diff -pudN e:\wine\dlls\comctl32/imagelist.c e:\reactos\dll\win32\comctl32/image
|
|||
+ /* return the handle to our desaturated dc, that will substitute its original counterpart in the next calls */
|
||||
+ return hdc;
|
||||
+}
|
||||
+#endif /* __REACTOS__ */
|
||||
+
|
||||
/*************************************************************************
|
||||
* ImageList_DrawIndirect [COMCTL32.@]
|
||||
*
|
||||
@@ -1422,6 +1469,21 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
@@ -1406,6 +1479,23 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
oldImageFg = SetTextColor( hImageDC, RGB( 0, 0, 0 ) );
|
||||
oldImageBk = SetBkColor( hImageDC, RGB( 0xff, 0xff, 0xff ) );
|
||||
|
||||
+#ifdef __REACTOS__
|
||||
+ /*
|
||||
+ * If the ILS_SATURATE bit is enabled we should multiply the
|
||||
+ * RGB colors of the original image by the contents of rgbFg.
|
||||
|
@ -399,40 +463,50 @@ diff -pudN e:\wine\dlls\comctl32/imagelist.c e:\reactos\dll\win32\comctl32/image
|
|||
+ pt.x = 0;
|
||||
+ pt.y = 0;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
has_alpha = (himl->has_alpha && himl->has_alpha[pimldp->i]);
|
||||
if (!bMask && (has_alpha || (fState & ILS_ALPHA)))
|
||||
{
|
||||
@@ -1442,7 +1504,7 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
@@ -1426,7 +1516,11 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
|
||||
if (bIsTransparent)
|
||||
{
|
||||
- bResult = alpha_blend_image( himl, pimldp->hdcDst, pimldp->x, pimldp->y,
|
||||
+#ifdef __REACTOS__
|
||||
+ bResult = alpha_blend_image( himl, hImageListDC, pimldp->hdcDst, pimldp->x, pimldp->y,
|
||||
+#else
|
||||
bResult = alpha_blend_image( himl, pimldp->hdcDst, pimldp->x, pimldp->y,
|
||||
+#endif
|
||||
pt.x, pt.y, cx, cy, func, fStyle, blend_col );
|
||||
goto end;
|
||||
}
|
||||
@@ -1452,7 +1514,7 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
@@ -1436,7 +1530,11 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
|
||||
hOldBrush = SelectObject (hImageDC, CreateSolidBrush (colour));
|
||||
PatBlt( hImageDC, 0, 0, cx, cy, PATCOPY );
|
||||
- alpha_blend_image( himl, hImageDC, 0, 0, pt.x, pt.y, cx, cy, func, fStyle, blend_col );
|
||||
+#ifdef __REACTOS__
|
||||
+ alpha_blend_image( himl, hImageListDC, hImageDC, 0, 0, pt.x, pt.y, cx, cy, func, fStyle, blend_col );
|
||||
+#else
|
||||
alpha_blend_image( himl, hImageDC, 0, 0, pt.x, pt.y, cx, cy, func, fStyle, blend_col );
|
||||
+#endif
|
||||
DeleteObject (SelectObject (hImageDC, hOldBrush));
|
||||
bResult = BitBlt( pimldp->hdcDst, pimldp->x, pimldp->y, cx, cy, hImageDC, 0, 0, SRCCOPY );
|
||||
goto end;
|
||||
@@ -1546,7 +1608,6 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
@@ -1530,7 +1628,9 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR
|
||||
}
|
||||
}
|
||||
|
||||
- if (fState & ILS_SATURATE) FIXME("ILS_SATURATE: unimplemented!\n");
|
||||
+#ifndef __REACTOS__
|
||||
if (fState & ILS_SATURATE) FIXME("ILS_SATURATE: unimplemented!\n");
|
||||
+#endif
|
||||
if (fState & ILS_GLOW) FIXME("ILS_GLOW: unimplemented!\n");
|
||||
if (fState & ILS_SHADOW) FIXME("ILS_SHADOW: unimplemented!\n");
|
||||
|
||||
Common subdirectories: e:\wine\dlls\comctl32/lang and e:\reactos\dll\win32\comctl32/lang
|
||||
diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listview.c
|
||||
--- e:\wine\dlls\comctl32/listview.c 2015-04-05 20:44:57 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/listview.c 2015-08-27 22:05:04 +0100
|
||||
@@ -306,6 +287,9 @@ typedef struct tagLISTVIEW_INFO
|
||||
--- e:\wine\dlls\comctl32/listview.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/listview.c 2016-06-05 19:39:00 +0100
|
||||
@@ -287,6 +287,9 @@ typedef struct tagLISTVIEW_INFO
|
||||
COLORREF clrBk;
|
||||
COLORREF clrText;
|
||||
COLORREF clrTextBk;
|
||||
|
@ -442,7 +516,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
|
||||
/* font */
|
||||
HFONT hDefaultFont;
|
||||
@@ -1698,8 +1682,24 @@ static inline BOOL LISTVIEW_GetItemW(con
|
||||
@@ -1678,8 +1681,24 @@ static inline BOOL LISTVIEW_GetItemW(con
|
||||
/* used to handle collapse main item column case */
|
||||
static inline BOOL LISTVIEW_DrawFocusRect(const LISTVIEW_INFO *infoPtr, HDC hdc)
|
||||
{
|
||||
|
@ -467,7 +541,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
}
|
||||
|
||||
/* Listview invalidation functions: use _only_ these functions to invalidate */
|
||||
@@ -4682,7 +4682,12 @@ static void LISTVIEW_DrawItemPart(LISTVI
|
||||
@@ -4671,7 +4690,12 @@ static void LISTVIEW_DrawItemPart(LISTVI
|
||||
if (infoPtr->uView == LV_VIEW_DETAILS && infoPtr->dwLvExStyle & LVS_EX_GRIDLINES)
|
||||
rcLabel.bottom--;
|
||||
|
||||
|
@ -481,7 +555,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
}
|
||||
|
||||
/***
|
||||
@@ -5228,7 +5233,11 @@ enddraw:
|
||||
@@ -5212,7 +5236,11 @@ enddraw:
|
||||
|
||||
/* Draw marquee rectangle if appropriate */
|
||||
if (infoPtr->bMarqueeSelect)
|
||||
|
@ -493,7 +567,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
|
||||
if (cdmode & CDRF_NOTIFYPOSTPAINT)
|
||||
notify_postpaint(infoPtr, &nmlvcd);
|
||||
@@ -8024,6 +8033,9 @@ static BOOL LISTVIEW_SetBkColor(LISTVIEW
|
||||
@@ -8013,6 +8041,9 @@ static BOOL LISTVIEW_SetBkColor(LISTVIEW
|
||||
{
|
||||
TRACE("(color=%x)\n", color);
|
||||
|
||||
|
@ -503,7 +577,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
if(infoPtr->clrBk != color) {
|
||||
if (infoPtr->clrBk != CLR_NONE) DeleteObject(infoPtr->hBkBrush);
|
||||
infoPtr->clrBk = color;
|
||||
@@ -8702,7 +8714,7 @@ static DWORD LISTVIEW_SetIconSpacing(LIS
|
||||
@@ -8688,7 +8719,7 @@ static DWORD LISTVIEW_SetIconSpacing(LIS
|
||||
return oldspacing;
|
||||
}
|
||||
|
||||
|
@ -512,7 +586,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
{
|
||||
INT cx, cy;
|
||||
|
||||
@@ -8713,8 +8725,8 @@ static inline void set_icon_size(SIZE *s
|
||||
@@ -8699,8 +8730,8 @@ static inline void set_icon_size(SIZE *s
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -523,7 +597,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
}
|
||||
}
|
||||
|
||||
@@ -9451,6 +9463,9 @@ static LRESULT LISTVIEW_NCCreate(HWND hw
|
||||
@@ -9435,6 +9466,9 @@ static LRESULT LISTVIEW_NCCreate(HWND hw
|
||||
infoPtr->clrText = CLR_DEFAULT;
|
||||
infoPtr->clrTextBk = CLR_DEFAULT;
|
||||
LISTVIEW_SetBkColor(infoPtr, comctl32_color.clrWindow);
|
||||
|
@ -533,7 +607,7 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
|
||||
/* set default values */
|
||||
infoPtr->nFocusedItem = -1;
|
||||
@@ -11735,6 +11750,14 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg
|
||||
@@ -11718,6 +11752,14 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg
|
||||
|
||||
case WM_SYSCOLORCHANGE:
|
||||
COMCTL32_RefreshSysColors();
|
||||
|
@ -549,9 +623,9 @@ diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listvi
|
|||
|
||||
/* case WM_TIMER: */
|
||||
diff -pudN e:\wine\dlls\comctl32/propsheet.c e:\reactos\dll\win32\comctl32/propsheet.c
|
||||
--- e:\wine\dlls\comctl32/propsheet.c 2015-03-21 14:04:48 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/propsheet.c 2015-08-27 22:05:04 +0100
|
||||
@@ -2432,12 +2416,19 @@ static void PROPSHEET_SetWizButtons(HWND
|
||||
--- e:\wine\dlls\comctl32/propsheet.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/propsheet.c 2016-06-05 19:39:01 +0100
|
||||
@@ -2355,12 +2355,19 @@ static void PROPSHEET_SetWizButtons(HWND
|
||||
HWND hwndFinish = GetDlgItem(hwndDlg, IDC_FINISH_BUTTON);
|
||||
BOOL enable_finish = ((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH);
|
||||
|
||||
|
@ -571,7 +645,7 @@ diff -pudN e:\wine\dlls\comctl32/propsheet.c e:\reactos\dll\win32\comctl32/props
|
|||
/* set the default pushbutton to an enabled button */
|
||||
if (enable_finish)
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
|
||||
@@ -2447,6 +2438,7 @@ static void PROPSHEET_SetWizButtons(HWND
|
||||
@@ -2370,6 +2377,7 @@ static void PROPSHEET_SetWizButtons(HWND
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
|
||||
else
|
||||
SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
|
||||
|
@ -579,7 +653,7 @@ diff -pudN e:\wine\dlls\comctl32/propsheet.c e:\reactos\dll\win32\comctl32/props
|
|||
|
||||
if (!psInfo->hasFinish)
|
||||
{
|
||||
@@ -2466,6 +2458,25 @@ static void PROPSHEET_SetWizButtons(HWND
|
||||
@@ -2389,6 +2397,25 @@ static void PROPSHEET_SetWizButtons(HWND
|
||||
ShowWindow(hwndNext, SW_SHOW);
|
||||
}
|
||||
}
|
||||
|
@ -606,8 +680,8 @@ diff -pudN e:\wine\dlls\comctl32/propsheet.c e:\reactos\dll\win32\comctl32/props
|
|||
|
||||
/******************************************************************************
|
||||
diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
||||
--- e:\wine\dlls\comctl32/rebar.c 2015-04-05 20:44:57 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/rebar.c 2015-08-27 22:05:04 +0100
|
||||
--- e:\wine\dlls\comctl32/rebar.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/rebar.c 2016-06-05 19:39:01 +0100
|
||||
@@ -50,7 +50,6 @@
|
||||
* - WM_QUERYNEWPALETTE
|
||||
* - WM_RBUTTONDOWN
|
||||
|
@ -616,7 +690,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
* - WM_VKEYTOITEM
|
||||
* - WM_WININICHANGE
|
||||
* Notifications:
|
||||
@@ -1844,16 +1828,43 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
@@ -1821,16 +1820,43 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
RECT cr;
|
||||
COLORREF old = CLR_NONE, new;
|
||||
HTHEME theme = GetWindowTheme (infoPtr->hwndSelf);
|
||||
|
@ -660,7 +734,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
/* draw band separator between rows */
|
||||
if (lpBand->iRow != oldrow) {
|
||||
oldrow = lpBand->iRow;
|
||||
@@ -1878,6 +1889,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
@@ -1855,6 +1881,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
}
|
||||
TRACE ("drawing band separator bottom (%s)\n",
|
||||
wine_dbgstr_rect(&rcRowSep));
|
||||
|
@ -670,7 +744,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
}
|
||||
}
|
||||
|
||||
@@ -1888,6 +1902,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
@@ -1865,6 +1894,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
if (infoPtr->dwStyle & CCS_VERT) {
|
||||
rcSep.bottom = rcSep.top;
|
||||
rcSep.top -= SEP_WIDTH_SIZE;
|
||||
|
@ -680,7 +754,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
if (theme)
|
||||
DrawThemeEdge (theme, hdc, RP_BAND, 0, &rcSep, EDGE_ETCHED, BF_BOTTOM, NULL);
|
||||
else
|
||||
@@ -1896,6 +1913,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
@@ -1873,6 +1905,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
else {
|
||||
rcSep.right = rcSep.left;
|
||||
rcSep.left -= SEP_WIDTH_SIZE;
|
||||
|
@ -690,7 +764,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
if (theme)
|
||||
DrawThemeEdge (theme, hdc, RP_BAND, 0, &rcSep, EDGE_ETCHED, BF_RIGHT, NULL);
|
||||
else
|
||||
@@ -1926,6 +1946,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
@@ -1903,6 +1938,9 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -700,7 +774,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
if (theme)
|
||||
{
|
||||
/* When themed, the background color is ignored (but not a
|
||||
@@ -1933,6 +1956,7 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
@@ -1910,6 +1948,7 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
DrawThemeBackground (theme, hdc, 0, 0, &cr, &rcBand);
|
||||
}
|
||||
else
|
||||
|
@ -708,7 +782,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
{
|
||||
old = SetBkColor (hdc, new);
|
||||
TRACE("%s background color=0x%06x, band %s\n",
|
||||
@@ -1943,7 +1967,26 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
@@ -1920,7 +1959,26 @@ static LRESULT REBAR_EraseBkGnd (const R
|
||||
if (lpBand->clrBack != CLR_NONE)
|
||||
SetBkColor (hdc, old);
|
||||
}
|
||||
|
@ -735,12 +809,15 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -2912,12 +2955,22 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, INT
|
||||
@@ -2889,12 +2947,26 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, INT
|
||||
|
||||
|
||||
static LRESULT
|
||||
-REBAR_SizeToRect (REBAR_INFO *infoPtr, const RECT *lpRect)
|
||||
+#ifdef __REACTOS__
|
||||
+REBAR_SizeToRect (REBAR_INFO *infoPtr, WPARAM flags, RECT *lpRect)
|
||||
+#else
|
||||
REBAR_SizeToRect (REBAR_INFO *infoPtr, const RECT *lpRect)
|
||||
+#endif
|
||||
{
|
||||
if (!lpRect) return FALSE;
|
||||
|
||||
|
@ -759,7 +836,7 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -3224,7 +3277,11 @@ REBAR_NCCalcSize (const REBAR_INFO *info
|
||||
@@ -3201,7 +3273,11 @@ REBAR_NCCalcSize (const REBAR_INFO *info
|
||||
else if ((theme = GetWindowTheme (infoPtr->hwndSelf)))
|
||||
{
|
||||
/* FIXME: should use GetThemeInt */
|
||||
|
@ -771,16 +848,19 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
}
|
||||
TRACE("new client=(%s)\n", wine_dbgstr_rect(rect));
|
||||
return 0;
|
||||
@@ -3675,7 +3732,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
|
||||
@@ -3652,7 +3728,11 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
|
||||
return REBAR_ShowBand (infoPtr, wParam, lParam);
|
||||
|
||||
case RB_SIZETORECT:
|
||||
- return REBAR_SizeToRect (infoPtr, (LPCRECT)lParam);
|
||||
+#ifdef __REACTOS__
|
||||
+ return REBAR_SizeToRect (infoPtr, wParam, (LPRECT)lParam);
|
||||
+#else
|
||||
return REBAR_SizeToRect (infoPtr, (LPCRECT)lParam);
|
||||
+#endif
|
||||
|
||||
|
||||
/* Messages passed to parent */
|
||||
@@ -3758,6 +3815,11 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
|
||||
@@ -3735,6 +3815,11 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
|
||||
|
||||
case WM_SYSCOLORCHANGE:
|
||||
COMCTL32_RefreshSysColors();
|
||||
|
@ -793,8 +873,8 @@ diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
|
|||
|
||||
/* case WM_VKEYTOITEM: supported according to ControlSpy */
|
||||
diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar.c
|
||||
--- e:\wine\dlls\comctl32/toolbar.c 2015-07-14 15:44:34 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/toolbar.c 2015-09-08 13:22:39 +0100
|
||||
--- e:\wine\dlls\comctl32/toolbar.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/toolbar.c 2016-06-05 19:39:01 +0100
|
||||
@@ -33,11 +33,9 @@
|
||||
* - TBSTYLE_REGISTERDROP
|
||||
* - TBSTYLE_EX_DOUBLEBUFFER
|
||||
|
@ -807,7 +887,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
* - WM_WININICHANGE
|
||||
* - Notifications:
|
||||
* - NM_CHAR
|
||||
@@ -139,6 +123,10 @@ typedef struct
|
||||
@@ -125,6 +123,10 @@ typedef struct
|
||||
INT nOldHit;
|
||||
INT nHotItem; /* index of the "hot" item */
|
||||
SIZE szPadding; /* padding values around button */
|
||||
|
@ -818,7 +898,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
INT iTopMargin; /* the top margin */
|
||||
INT iListGap; /* default gap between text and image for toolbar with list style */
|
||||
HFONT hDefaultFont;
|
||||
@@ -204,12 +192,24 @@ typedef enum
|
||||
@@ -190,12 +192,24 @@ typedef enum
|
||||
#define ARROW_HEIGHT 3
|
||||
#define INSERTMARK_WIDTH 2
|
||||
|
||||
|
@ -843,7 +923,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
|
||||
/* how wide to treat the bitmap if it isn't present */
|
||||
#define NONLIST_NOTEXT_OFFSET 2
|
||||
@@ -253,7 +253,12 @@ static LRESULT TOOLBAR_SetButtonInfo(TOO
|
||||
@@ -239,7 +253,12 @@ static LRESULT TOOLBAR_SetButtonInfo(TOO
|
||||
|
||||
static inline int default_top_margin(const TOOLBAR_INFO *infoPtr)
|
||||
{
|
||||
|
@ -856,7 +936,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
}
|
||||
|
||||
static inline BOOL TOOLBAR_HasDropDownArrows(DWORD exStyle)
|
||||
@@ -737,10 +742,14 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in
|
||||
@@ -723,10 +742,14 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in
|
||||
const NMTBCUSTOMDRAW *tbcd, DWORD dwItemCDFlag)
|
||||
{
|
||||
HIMAGELIST himl = NULL;
|
||||
|
@ -872,7 +952,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
|
||||
if (tbcd->nmcd.uItemState & (CDIS_DISABLED | CDIS_INDETERMINATE))
|
||||
{
|
||||
@@ -748,7 +757,22 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in
|
||||
@@ -734,7 +757,22 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in
|
||||
if (!himl)
|
||||
{
|
||||
himl = TOOLBAR_GetImageListForDrawing(infoPtr, btnPtr, IMAGE_LIST_DEFAULT, &index);
|
||||
|
@ -895,7 +975,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
}
|
||||
}
|
||||
else if (tbcd->nmcd.uItemState & CDIS_CHECKED ||
|
||||
@@ -779,9 +803,34 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in
|
||||
@@ -765,9 +803,34 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in
|
||||
index, himl, left, top, offset);
|
||||
|
||||
if (draw_masked)
|
||||
|
@ -930,7 +1010,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
}
|
||||
|
||||
/* draws a blank frame for a toolbar button */
|
||||
@@ -898,14 +947,15 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO *
|
||||
@@ -884,14 +947,15 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO *
|
||||
InflateRect(&rcsep, -infoPtr->szPadding.cx, -infoPtr->szPadding.cy);
|
||||
TOOLBAR_DrawFlatHorizontalSeparator (&rcsep, hdc, infoPtr);
|
||||
}
|
||||
|
@ -954,7 +1034,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
}
|
||||
|
||||
/* get a pointer to the text */
|
||||
@@ -1042,7 +1092,11 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO *
|
||||
@@ -1028,7 +1092,11 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO *
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -966,7 +1046,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
{
|
||||
int partId = drawSepDropDownArrow ? TP_SPLITBUTTON : TP_BUTTON;
|
||||
int stateId = TS_NORMAL;
|
||||
@@ -1059,7 +1113,12 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO *
|
||||
@@ -1045,7 +1113,12 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO *
|
||||
|
||||
DrawThemeBackground (theme, hdc, partId, stateId, &rc, NULL);
|
||||
}
|
||||
|
@ -979,7 +1059,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
TOOLBAR_DrawFrame(infoPtr, &tbcd, &rc, dwItemCDFlag);
|
||||
|
||||
if (drawSepDropDownArrow)
|
||||
@@ -1587,9 +1646,14 @@ static inline SIZE TOOLBAR_MeasureButton
|
||||
@@ -1571,9 +1644,14 @@ static inline SIZE TOOLBAR_MeasureButton
|
||||
/* ... add on the necessary padding */
|
||||
if (bValidImageList)
|
||||
{
|
||||
|
@ -994,7 +1074,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
sizeButton.cy += LISTPAD_CY;
|
||||
}
|
||||
else
|
||||
@@ -1606,7 +1670,11 @@ static inline SIZE TOOLBAR_MeasureButton
|
||||
@@ -1590,7 +1668,11 @@ static inline SIZE TOOLBAR_MeasureButton
|
||||
{
|
||||
if (bHasBitmap)
|
||||
{
|
||||
|
@ -1006,7 +1086,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
if (sizeString.cy > 0)
|
||||
sizeButton.cy += 1 + sizeString.cy;
|
||||
sizeButton.cx = infoPtr->szPadding.cx +
|
||||
@@ -1711,7 +1779,14 @@ TOOLBAR_LayoutToolbar(TOOLBAR_INFO *info
|
||||
@@ -1695,7 +1777,14 @@ TOOLBAR_LayoutToolbar(TOOLBAR_INFO *info
|
||||
{
|
||||
if (btnPtr->cx)
|
||||
cx = btnPtr->cx;
|
||||
|
@ -1021,7 +1101,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
{
|
||||
SIZE sz;
|
||||
HDC hdc;
|
||||
@@ -1970,6 +2045,17 @@ TOOLBAR_RelayEvent (HWND hwndTip, HWND h
|
||||
@@ -1954,6 +2043,17 @@ TOOLBAR_RelayEvent (HWND hwndTip, HWND h
|
||||
SendMessageW (hwndTip, TTM_RELAYEVENT, 0, (LPARAM)&msg);
|
||||
}
|
||||
|
||||
|
@ -1039,7 +1119,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
static void
|
||||
TOOLBAR_TooltipAddTool(const TOOLBAR_INFO *infoPtr, const TBUTTON_INFO *button)
|
||||
{
|
||||
@@ -3551,6 +3637,36 @@ TOOLBAR_GetMaxSize (const TOOLBAR_INFO *
|
||||
@@ -3535,6 +3635,36 @@ TOOLBAR_GetMaxSize (const TOOLBAR_INFO *
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1076,7 +1156,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
|
||||
/* << TOOLBAR_GetObject >> */
|
||||
|
||||
@@ -4806,6 +4922,44 @@ TOOLBAR_SetMaxTextRows (TOOLBAR_INFO *in
|
||||
@@ -4790,6 +4920,44 @@ TOOLBAR_SetMaxTextRows (TOOLBAR_INFO *in
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1121,16 +1201,18 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
|
||||
/* MSDN gives slightly wrong info on padding.
|
||||
* 1. It is not only used on buttons with the BTNS_AUTOSIZE style
|
||||
@@ -6052,6 +6206,8 @@ TOOLBAR_NCCreate (HWND hwnd, WPARAM wPar
|
||||
@@ -6030,6 +6198,10 @@ TOOLBAR_NCCreate (HWND hwnd, WPARAM wPar
|
||||
infoPtr->clrBtnShadow = CLR_DEFAULT;
|
||||
infoPtr->szPadding.cx = DEFPAD_CX;
|
||||
infoPtr->szPadding.cy = DEFPAD_CY;
|
||||
+#ifdef __REACTOS__
|
||||
+ infoPtr->szSpacing.cx = DEFSPACE_CX;
|
||||
+ infoPtr->szSpacing.cy = DEFSPACE_CY;
|
||||
+#endif
|
||||
infoPtr->iListGap = DEFLISTGAP;
|
||||
infoPtr->iTopMargin = default_top_margin(infoPtr);
|
||||
infoPtr->dwStyle = lpcs->style;
|
||||
@@ -6461,7 +6617,7 @@ TOOLBAR_SysColorChange (void)
|
||||
@@ -6439,7 +6611,7 @@ TOOLBAR_SysColorChange (void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1139,7 +1221,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
/* update theme after a WM_THEMECHANGED message */
|
||||
static LRESULT theme_changed (HWND hwnd)
|
||||
{
|
||||
@@ -6470,7 +6626,7 @@ static LRESULT theme_changed (HWND hwnd)
|
||||
@@ -6448,7 +6620,7 @@ static LRESULT theme_changed (HWND hwnd)
|
||||
OpenThemeData (hwnd, themeClass);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1148,7 +1230,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
|
||||
static LRESULT WINAPI
|
||||
ToolbarWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
@@ -6575,6 +6731,10 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg,
|
||||
@@ -6553,6 +6725,10 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg,
|
||||
|
||||
case TB_GETMAXSIZE:
|
||||
return TOOLBAR_GetMaxSize (infoPtr, (LPSIZE)lParam);
|
||||
|
@ -1159,7 +1241,7 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
|
||||
/* case TB_GETOBJECT: */ /* 4.71 */
|
||||
|
||||
@@ -6716,6 +6876,11 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg,
|
||||
@@ -6694,6 +6870,11 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg,
|
||||
case TB_SETMAXTEXTROWS:
|
||||
return TOOLBAR_SetMaxTextRows (infoPtr, wParam);
|
||||
|
||||
|
@ -1171,12 +1253,10 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
case TB_SETPADDING:
|
||||
return TOOLBAR_SetPadding (infoPtr, lParam);
|
||||
|
||||
@@ -6855,8 +7020,12 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg,
|
||||
case WM_SYSCOLORCHANGE:
|
||||
@@ -6835,7 +7016,11 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg,
|
||||
return TOOLBAR_SysColorChange ();
|
||||
|
||||
- case WM_THEMECHANGED:
|
||||
+ case WM_THEMECHANGED:
|
||||
case WM_THEMECHANGED:
|
||||
+#ifdef __REACTOS__
|
||||
+ return TOOLBAR_ThemeChanged(hwnd);
|
||||
+#else
|
||||
|
@ -1186,9 +1266,9 @@ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar
|
|||
/* case WM_WININICHANGE: */
|
||||
|
||||
diff -pudN e:\wine\dlls\comctl32/tooltips.c e:\reactos\dll\win32\comctl32/tooltips.c
|
||||
--- e:\wine\dlls\comctl32/tooltips.c 2015-05-25 19:35:13 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/tooltips.c 2015-08-27 22:05:04 +0100
|
||||
@@ -2009,7 +1996,36 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO
|
||||
--- e:\wine\dlls\comctl32/tooltips.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/tooltips.c 2016-06-05 19:39:01 +0100
|
||||
@@ -2013,7 +2013,36 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO
|
||||
static LRESULT
|
||||
TOOLTIPS_NotifyFormat (TOOLTIPS_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
|
@ -1226,16 +1306,16 @@ diff -pudN e:\wine\dlls\comctl32/tooltips.c e:\reactos\dll\win32\comctl32/toolti
|
|||
return 0;
|
||||
}
|
||||
diff -pudN e:\wine\dlls\comctl32/treeview.c e:\reactos\dll\win32\comctl32/treeview.c
|
||||
--- e:\wine\dlls\comctl32/treeview.c 2015-07-14 15:44:34 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/treeview.c 2015-08-27 22:05:04 +0100
|
||||
@@ -2890,7 +2868,14 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr,
|
||||
--- e:\wine\dlls\comctl32/treeview.c 2016-05-31 18:00:02 +0100
|
||||
+++ e:\reactos\dll\win32\comctl32/treeview.c 2016-03-01 20:00:54 +0100
|
||||
@@ -2888,7 +2888,14 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr,
|
||||
}
|
||||
}
|
||||
|
||||
+ //
|
||||
+ // FIXME: This is correct, but is causes and infinite loop of WM_PAINT
|
||||
+ // messages, resulting in continuous painting of the scroll bar in reactos.
|
||||
+ // Comment out until the real bug is found
|
||||
+ // Comment out until the real bug is found. CORE-4912
|
||||
+ //
|
||||
+#ifndef __REACTOS__
|
||||
TREEVIEW_UpdateScrollBars(infoPtr);
|
||||
|
|
|
@ -771,10 +771,7 @@ DATETIME_Refresh (DATETIME_INFO *infoPtr, HDC hdc)
|
|||
GetTextExtentPoint32W (hdc, txt, strlenW(txt), &size);
|
||||
}
|
||||
|
||||
selection.left = 0;
|
||||
selection.top = 0;
|
||||
selection.right = size.cx;
|
||||
selection.bottom = size.cy;
|
||||
SetRect(&selection, 0, 0, size.cx, size.cy);
|
||||
/* center rectangle */
|
||||
OffsetRect(&selection, (field->right + field->left - size.cx)/2,
|
||||
(field->bottom - size.cy)/2);
|
||||
|
@ -1543,7 +1540,6 @@ static LRESULT WINAPI
|
|||
DATETIME_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
DATETIME_INFO *infoPtr = ((DATETIME_INFO *)GetWindowLongPtrW (hwnd, 0));
|
||||
LRESULT ret;
|
||||
|
||||
TRACE ("%x, %lx, %lx\n", uMsg, wParam, lParam);
|
||||
|
||||
|
@ -1559,8 +1555,7 @@ DATETIME_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
return DATETIME_SetSystemTime (infoPtr, wParam, (SYSTEMTIME *) lParam);
|
||||
|
||||
case DTM_GETRANGE:
|
||||
ret = SendMessageW (infoPtr->hMonthCal, MCM_GETRANGE, wParam, lParam);
|
||||
return ret ? ret : 1; /* bug emulation */
|
||||
return SendMessageW (infoPtr->hMonthCal, MCM_GETRANGE, wParam, lParam);
|
||||
|
||||
case DTM_SETRANGE:
|
||||
return SendMessageW (infoPtr->hMonthCal, MCM_SETRANGE, wParam, lParam);
|
||||
|
|
|
@ -70,6 +70,7 @@ typedef struct
|
|||
INT iHotItem; /* index of hot item (cursor is over this item) */
|
||||
INT iHotDivider; /* index of the hot divider (used while dragging an item or by HDM_SETHOTDIVIDER) */
|
||||
INT iMargin; /* width of the margin that surrounds a bitmap */
|
||||
INT filter_change_timeout; /* change timeout set with HDM_SETFILTERCHANGETIMEOUT */
|
||||
|
||||
HIMAGELIST himl; /* handle to an image list (may be 0) */
|
||||
HEADER_ITEM *items; /* pointer to array of HEADER_ITEM's */
|
||||
|
@ -991,7 +992,7 @@ HEADER_FreeCallbackItems(HEADER_ITEM *lpItem)
|
|||
lpItem->iImage = I_IMAGECALLBACK;
|
||||
}
|
||||
|
||||
static LRESULT
|
||||
static HIMAGELIST
|
||||
HEADER_CreateDragImage (HEADER_INFO *infoPtr, INT iItem)
|
||||
{
|
||||
HEADER_ITEM *lpItem;
|
||||
|
@ -1005,7 +1006,7 @@ HEADER_CreateDragImage (HEADER_INFO *infoPtr, INT iItem)
|
|||
HFONT hFont;
|
||||
|
||||
if (iItem >= infoPtr->uNumItem)
|
||||
return FALSE;
|
||||
return NULL;
|
||||
|
||||
if (!infoPtr->bRectsValid)
|
||||
HEADER_SetItemBounds(infoPtr);
|
||||
|
@ -1033,12 +1034,12 @@ HEADER_CreateDragImage (HEADER_INFO *infoPtr, INT iItem)
|
|||
DeleteDC(hMemoryDC);
|
||||
|
||||
if (hMemory == NULL) /* if anything failed */
|
||||
return FALSE;
|
||||
|
||||
return NULL;
|
||||
|
||||
himl = ImageList_Create(width, height, ILC_COLORDDB, 1, 1);
|
||||
ImageList_Add(himl, hMemory, NULL);
|
||||
DeleteObject(hMemory);
|
||||
return (LRESULT)himl;
|
||||
return himl;
|
||||
}
|
||||
|
||||
static LRESULT
|
||||
|
@ -1526,6 +1527,7 @@ HEADER_Create (HWND hwnd, const CREATESTRUCTW *lpcs)
|
|||
infoPtr->iMargin = 3*GetSystemMetrics(SM_CXEDGE);
|
||||
infoPtr->nNotifyFormat =
|
||||
SendMessageW (infoPtr->hwndNotify, WM_NOTIFYFORMAT, (WPARAM)hwnd, NF_QUERY);
|
||||
infoPtr->filter_change_timeout = 1000;
|
||||
|
||||
hdc = GetDC (0);
|
||||
hOldFont = SelectObject (hdc, GetStockObject (SYSTEM_FONT));
|
||||
|
@ -1822,7 +1824,7 @@ HEADER_MouseMove (HEADER_INFO *infoPtr, LPARAM lParam)
|
|||
{
|
||||
if (!HEADER_SendNotifyWithHDItemT(infoPtr, HDN_BEGINDRAG, infoPtr->iMoveItem, NULL))
|
||||
{
|
||||
HIMAGELIST hDragItem = (HIMAGELIST)HEADER_CreateDragImage(infoPtr, infoPtr->iMoveItem);
|
||||
HIMAGELIST hDragItem = HEADER_CreateDragImage(infoPtr, infoPtr->iMoveItem);
|
||||
if (hDragItem != NULL)
|
||||
{
|
||||
HEADER_ITEM *lpItem = &infoPtr->items[infoPtr->iMoveItem];
|
||||
|
@ -2040,6 +2042,14 @@ static LRESULT HEADER_ThemeChanged(const HEADER_INFO *infoPtr)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static INT HEADER_SetFilterChangeTimeout(HEADER_INFO *infoPtr, INT timeout)
|
||||
{
|
||||
INT old_timeout = infoPtr->filter_change_timeout;
|
||||
|
||||
if (timeout != 0)
|
||||
infoPtr->filter_change_timeout = timeout;
|
||||
return old_timeout;
|
||||
}
|
||||
|
||||
static LRESULT WINAPI
|
||||
HEADER_WindowProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
|
@ -2053,7 +2063,7 @@ HEADER_WindowProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||
/* case HDM_CLEARFILTER: */
|
||||
|
||||
case HDM_CREATEDRAGIMAGE:
|
||||
return HEADER_CreateDragImage (infoPtr, (INT)wParam);
|
||||
return (LRESULT)HEADER_CreateDragImage (infoPtr, (INT)wParam);
|
||||
|
||||
case HDM_DELETEITEM:
|
||||
return HEADER_DeleteItem (infoPtr, (INT)wParam);
|
||||
|
@ -2098,7 +2108,8 @@ HEADER_WindowProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||
case HDM_SETBITMAPMARGIN:
|
||||
return HEADER_SetBitmapMargin(infoPtr, (INT)wParam);
|
||||
|
||||
/* case HDM_SETFILTERCHANGETIMEOUT: */
|
||||
case HDM_SETFILTERCHANGETIMEOUT:
|
||||
return HEADER_SetFilterChangeTimeout(infoPtr, (INT)lParam);
|
||||
|
||||
case HDM_SETHOTDIVIDER:
|
||||
return HEADER_SetHotDivider(infoPtr, wParam, lParam);
|
||||
|
|
|
@ -917,11 +917,7 @@ ImageList_DragEnter (HWND hwndLock, INT x, INT y)
|
|||
InternalDrag.y = y;
|
||||
|
||||
/* draw the drag image and save the background */
|
||||
if (!ImageList_DragShowNolock(TRUE)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return ImageList_DragShowNolock(TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -316,7 +316,7 @@ typedef struct tagLISTVIEW_INFO
|
|||
/* painting */
|
||||
BOOL bIsDrawing; /* Drawing in progress */
|
||||
INT nMeasureItemHeight; /* WM_MEASUREITEM result */
|
||||
BOOL bRedraw; /* WM_SETREDRAW switch */
|
||||
BOOL redraw; /* WM_SETREDRAW switch */
|
||||
|
||||
/* misc */
|
||||
DWORD iVersion; /* CCM_[G,S]ETVERSION */
|
||||
|
@ -828,31 +828,30 @@ static inline void notify_itemactivate(const LISTVIEW_INFO *infoPtr, const LVHIT
|
|||
NMITEMACTIVATE nmia;
|
||||
LVITEMW item;
|
||||
|
||||
if (htInfo) {
|
||||
nmia.uNewState = 0;
|
||||
nmia.uOldState = 0;
|
||||
nmia.uChanged = 0;
|
||||
nmia.uKeyFlags = 0;
|
||||
|
||||
item.mask = LVIF_PARAM|LVIF_STATE;
|
||||
item.iItem = htInfo->iItem;
|
||||
item.iSubItem = 0;
|
||||
item.stateMask = (UINT)-1;
|
||||
if (LISTVIEW_GetItemT(infoPtr, &item, TRUE)) {
|
||||
nmia.lParam = item.lParam;
|
||||
nmia.uOldState = item.state;
|
||||
nmia.uNewState = item.state | LVIS_ACTIVATING;
|
||||
nmia.uChanged = LVIF_STATE;
|
||||
}
|
||||
|
||||
nmia.iItem = htInfo->iItem;
|
||||
nmia.iSubItem = htInfo->iSubItem;
|
||||
nmia.ptAction = htInfo->pt;
|
||||
|
||||
if (GetKeyState(VK_SHIFT) & 0x8000) nmia.uKeyFlags |= LVKF_SHIFT;
|
||||
if (GetKeyState(VK_CONTROL) & 0x8000) nmia.uKeyFlags |= LVKF_CONTROL;
|
||||
if (GetKeyState(VK_MENU) & 0x8000) nmia.uKeyFlags |= LVKF_ALT;
|
||||
nmia.uNewState = 0;
|
||||
nmia.uOldState = 0;
|
||||
nmia.uChanged = 0;
|
||||
nmia.uKeyFlags = 0;
|
||||
|
||||
item.mask = LVIF_PARAM|LVIF_STATE;
|
||||
item.iItem = htInfo->iItem;
|
||||
item.iSubItem = 0;
|
||||
item.stateMask = (UINT)-1;
|
||||
if (LISTVIEW_GetItemT(infoPtr, &item, TRUE)) {
|
||||
nmia.lParam = item.lParam;
|
||||
nmia.uOldState = item.state;
|
||||
nmia.uNewState = item.state | LVIS_ACTIVATING;
|
||||
nmia.uChanged = LVIF_STATE;
|
||||
}
|
||||
|
||||
nmia.iItem = htInfo->iItem;
|
||||
nmia.iSubItem = htInfo->iSubItem;
|
||||
nmia.ptAction = htInfo->pt;
|
||||
|
||||
if (GetKeyState(VK_SHIFT) & 0x8000) nmia.uKeyFlags |= LVKF_SHIFT;
|
||||
if (GetKeyState(VK_CONTROL) & 0x8000) nmia.uKeyFlags |= LVKF_CONTROL;
|
||||
if (GetKeyState(VK_MENU) & 0x8000) nmia.uKeyFlags |= LVKF_ALT;
|
||||
|
||||
notify_hdr(infoPtr, LVN_ITEMACTIVATE, (LPNMHDR)&nmia);
|
||||
}
|
||||
|
||||
|
@ -1706,7 +1705,7 @@ static inline BOOL LISTVIEW_DrawFocusRect(const LISTVIEW_INFO *infoPtr, HDC hdc)
|
|||
|
||||
static inline BOOL is_redrawing(const LISTVIEW_INFO *infoPtr)
|
||||
{
|
||||
return infoPtr->bRedraw;
|
||||
return infoPtr->redraw;
|
||||
}
|
||||
|
||||
static inline void LISTVIEW_InvalidateRect(const LISTVIEW_INFO *infoPtr, const RECT* rect)
|
||||
|
@ -3123,7 +3122,11 @@ static RANGES ranges_clone(RANGES ranges)
|
|||
RANGE *newrng = Alloc(sizeof(RANGE));
|
||||
if (!newrng) goto fail;
|
||||
*newrng = *((RANGE*)DPA_GetPtr(ranges->hdpa, i));
|
||||
DPA_SetPtr(clone->hdpa, i, newrng);
|
||||
if (!DPA_SetPtr(clone->hdpa, i, newrng))
|
||||
{
|
||||
Free(newrng);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
return clone;
|
||||
|
||||
|
@ -4749,7 +4752,7 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
|||
|
||||
- CDDS_ITEMPREPAINT
|
||||
- CDDS_ITEMPREPAINT|CDDS_SUBITEM | => sent n times, where n is number of subitems,
|
||||
CDDS_ITEMPOSTPAINT|CDDS_SUBITEM | including item iself
|
||||
CDDS_ITEMPOSTPAINT|CDDS_SUBITEM | including item itself
|
||||
- CDDS_ITEMPOSTPAINT
|
||||
|
||||
other styles:
|
||||
|
@ -4795,11 +4798,6 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
|||
|
||||
if (cdsubitemmode & CDRF_NOTIFYSUBITEMDRAW)
|
||||
subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd);
|
||||
else
|
||||
{
|
||||
nmlvcd.clrTextBk = infoPtr->clrTextBk;
|
||||
nmlvcd.clrText = infoPtr->clrText;
|
||||
}
|
||||
|
||||
if (subitems->nItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW))
|
||||
prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE);
|
||||
|
@ -5450,9 +5448,7 @@ static HIMAGELIST LISTVIEW_CreateDragImage(LISTVIEW_INFO *infoPtr, INT iItem, LP
|
|||
hOldbmp = SelectObject(hdc, hbmp);
|
||||
hOldFont = SelectObject(hdc, infoPtr->hFont);
|
||||
|
||||
rcItem.left = rcItem.top = 0;
|
||||
rcItem.right = size.cx;
|
||||
rcItem.bottom = size.cy;
|
||||
SetRect(&rcItem, 0, 0, size.cx, size.cy);
|
||||
FillRect(hdc, &rcItem, infoPtr->hBkBrush);
|
||||
|
||||
pos.x = pos.y = 0;
|
||||
|
@ -5761,10 +5757,9 @@ static void LISTVIEW_ScrollOnInsert(LISTVIEW_INFO *infoPtr, INT nItem, INT dir)
|
|||
if (infoPtr->uView == LV_VIEW_DETAILS) return;
|
||||
|
||||
/* now for LISTs, we have to deal with the columns to the right */
|
||||
rcScroll.left = (nItemCol + 1) * infoPtr->nItemWidth;
|
||||
rcScroll.top = 0;
|
||||
rcScroll.right = (infoPtr->nItemCount / nPerCol + 1) * infoPtr->nItemWidth;
|
||||
rcScroll.bottom = nPerCol * infoPtr->nItemHeight;
|
||||
SetRect(&rcScroll, (nItemCol + 1) * infoPtr->nItemWidth, 0,
|
||||
(infoPtr->nItemCount / nPerCol + 1) * infoPtr->nItemWidth,
|
||||
nPerCol * infoPtr->nItemHeight);
|
||||
OffsetRect(&rcScroll, Origin.x, Origin.y);
|
||||
if (IntersectRect(&rcScroll, &rcScroll, &infoPtr->rcList))
|
||||
InvalidateRect(infoPtr->hwndSelf, &rcScroll, TRUE);
|
||||
|
@ -8492,10 +8487,7 @@ static HIMAGELIST LISTVIEW_CreateCheckBoxIL(const LISTVIEW_INFO *infoPtr)
|
|||
hbm_mask = CreateBitmap(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 1, 1, NULL);
|
||||
ReleaseDC(infoPtr->hwndSelf, hdc_wnd);
|
||||
|
||||
rc.left = rc.top = 0;
|
||||
rc.right = GetSystemMetrics(SM_CXSMICON);
|
||||
rc.bottom = GetSystemMetrics(SM_CYSMICON);
|
||||
|
||||
SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON));
|
||||
hbm_orig = SelectObject(hdc, hbm_mask);
|
||||
FillRect(hdc, &rc, hbr_white);
|
||||
InflateRect(&rc, -2, -2);
|
||||
|
@ -8855,10 +8847,8 @@ static BOOL LISTVIEW_SetItemCount(LISTVIEW_INFO *infoPtr, INT nItems, DWORD dwFl
|
|||
|
||||
if (infoPtr->uView == LV_VIEW_DETAILS)
|
||||
{
|
||||
rcErase.left = 0;
|
||||
rcErase.top = nFrom * infoPtr->nItemHeight;
|
||||
rcErase.right = infoPtr->nItemWidth;
|
||||
rcErase.bottom = nTo * infoPtr->nItemHeight;
|
||||
SetRect(&rcErase, 0, nFrom * infoPtr->nItemHeight, infoPtr->nItemWidth,
|
||||
nTo * infoPtr->nItemHeight);
|
||||
OffsetRect(&rcErase, Origin.x, Origin.y);
|
||||
if (IntersectRect(&rcErase, &rcErase, &infoPtr->rcList))
|
||||
LISTVIEW_InvalidateRect(infoPtr, &rcErase);
|
||||
|
@ -9484,7 +9474,7 @@ static LRESULT LISTVIEW_NCCreate(HWND hwnd, const CREATESTRUCTW *lpcs)
|
|||
infoPtr->nFocusedItem = -1;
|
||||
infoPtr->nSelectionMark = -1;
|
||||
infoPtr->nHotItem = -1;
|
||||
infoPtr->bRedraw = TRUE;
|
||||
infoPtr->redraw = TRUE;
|
||||
infoPtr->bNoItemMetrics = TRUE;
|
||||
infoPtr->bDoChangeNotify = TRUE;
|
||||
infoPtr->autoSpacing = TRUE;
|
||||
|
@ -10076,7 +10066,7 @@ static LRESULT LISTVIEW_KillFocus(LISTVIEW_INFO *infoPtr)
|
|||
LISTVIEW_InvalidateRect(infoPtr, &infoPtr->marqueeRect);
|
||||
ReleaseCapture();
|
||||
|
||||
SetRect(&infoPtr->marqueeRect, 0, 0, 0, 0);
|
||||
SetRectEmpty(&infoPtr->marqueeRect);
|
||||
|
||||
infoPtr->bMarqueeSelect = FALSE;
|
||||
infoPtr->bScrolling = FALSE;
|
||||
|
@ -10345,8 +10335,8 @@ static LRESULT LISTVIEW_LButtonUp(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, INT
|
|||
ReleaseCapture();
|
||||
}
|
||||
|
||||
SetRect(&infoPtr->marqueeRect, 0, 0, 0, 0);
|
||||
SetRect(&infoPtr->marqueeDrawRect, 0, 0, 0, 0);
|
||||
SetRectEmpty(&infoPtr->marqueeRect);
|
||||
SetRectEmpty(&infoPtr->marqueeDrawRect);
|
||||
|
||||
infoPtr->bDragging = FALSE;
|
||||
infoPtr->bMarqueeSelect = FALSE;
|
||||
|
@ -10967,22 +10957,21 @@ static LRESULT LISTVIEW_SetFont(LISTVIEW_INFO *infoPtr, HFONT hFont, WORD fRedra
|
|||
*
|
||||
* PARAMETER(S):
|
||||
* [I] infoPtr : valid pointer to the listview structure
|
||||
* [I] bRedraw: state of redraw flag
|
||||
* [I] redraw: state of redraw flag
|
||||
*
|
||||
* RETURN:
|
||||
* DefWinProc return value
|
||||
* Zero.
|
||||
*/
|
||||
static LRESULT LISTVIEW_SetRedraw(LISTVIEW_INFO *infoPtr, BOOL bRedraw)
|
||||
static LRESULT LISTVIEW_SetRedraw(LISTVIEW_INFO *infoPtr, BOOL redraw)
|
||||
{
|
||||
TRACE("infoPtr->bRedraw=%d, bRedraw=%d\n", infoPtr->bRedraw, bRedraw);
|
||||
TRACE("old=%d, new=%d\n", infoPtr->redraw, redraw);
|
||||
|
||||
/* we cannot use straight equality here because _any_ non-zero value is TRUE */
|
||||
if ((infoPtr->bRedraw && bRedraw) || (!infoPtr->bRedraw && !bRedraw)) return 0;
|
||||
if (infoPtr->redraw == !!redraw)
|
||||
return 0;
|
||||
|
||||
infoPtr->bRedraw = bRedraw;
|
||||
if (!(infoPtr->redraw = !!redraw))
|
||||
return 0;
|
||||
|
||||
if(!bRedraw) return 0;
|
||||
|
||||
if (is_autoarrange(infoPtr))
|
||||
LISTVIEW_Arrange(infoPtr, LVA_DEFAULT);
|
||||
LISTVIEW_UpdateScroll(infoPtr);
|
||||
|
|
|
@ -102,7 +102,6 @@ typedef struct
|
|||
HFONT hFont;
|
||||
HFONT hBoldFont;
|
||||
int textHeight;
|
||||
int textWidth;
|
||||
int height_increment;
|
||||
int width_increment;
|
||||
INT delta; /* scroll rate; # of months that the */
|
||||
|
@ -1140,6 +1139,18 @@ static void MONTHCAL_PaintLeadTrailMonths(const MONTHCAL_INFO *infoPtr, HDC hdc,
|
|||
}
|
||||
}
|
||||
|
||||
static int get_localized_dayname(const MONTHCAL_INFO *infoPtr, unsigned int day, WCHAR *buff, unsigned int count)
|
||||
{
|
||||
LCTYPE lctype;
|
||||
|
||||
if (infoPtr->dwStyle & MCS_SHORTDAYSOFWEEK)
|
||||
lctype = LOCALE_SSHORTESTDAYNAME1 + day;
|
||||
else
|
||||
lctype = LOCALE_SABBREVDAYNAME1 + day;
|
||||
|
||||
return GetLocaleInfoW(LOCALE_USER_DEFAULT, lctype, buff, count);
|
||||
}
|
||||
|
||||
/* paint a calendar area */
|
||||
static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx)
|
||||
{
|
||||
|
@ -1180,7 +1191,7 @@ static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const
|
|||
|
||||
i = infoPtr->firstDay;
|
||||
for(j = 0; j < 7; j++) {
|
||||
GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SABBREVDAYNAME1 + (i+j+6)%7, buf, countof(buf));
|
||||
get_localized_dayname(infoPtr, (i + j + 6) % 7, buf, countof(buf));
|
||||
DrawTextW(hdc, buf, strlenW(buf), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
|
||||
OffsetRect(&r, infoPtr->width_increment, 0);
|
||||
}
|
||||
|
@ -1436,6 +1447,9 @@ MONTHCAL_SetRange(MONTHCAL_INFO *infoPtr, SHORT limits, SYSTEMTIME *range)
|
|||
(limits & GDTR_MAX && !MONTHCAL_ValidateDate(&range[1])))
|
||||
return FALSE;
|
||||
|
||||
infoPtr->rangeValid = 0;
|
||||
infoPtr->minDate = infoPtr->maxDate = st_null;
|
||||
|
||||
if (limits & GDTR_MIN)
|
||||
{
|
||||
if (!MONTHCAL_ValidateTime(&range[0]))
|
||||
|
@ -1487,7 +1501,7 @@ MONTHCAL_GetRange(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *range)
|
|||
{
|
||||
TRACE("%p\n", range);
|
||||
|
||||
if(!range) return FALSE;
|
||||
if (!range) return 0;
|
||||
|
||||
range[1] = infoPtr->maxDate;
|
||||
range[0] = infoPtr->minDate;
|
||||
|
@ -1786,18 +1800,6 @@ MONTHCAL_HitTest(const MONTHCAL_INFO *infoPtr, MCHITTESTINFO *lpht)
|
|||
if (lpht->cbSize == sizeof(MCHITTESTINFO))
|
||||
memcpy(&htinfo.rc, &lpht->rc, sizeof(MCHITTESTINFO) - MCHITTESTINFO_V1_SIZE);
|
||||
|
||||
/* Comment in for debugging...
|
||||
TRACE("%d %d wd[%d %d %d %d] d[%d %d %d %d] t[%d %d %d %d] wn[%d %d %d %d]\n", x, y,
|
||||
infoPtr->wdays.left, infoPtr->wdays.right,
|
||||
infoPtr->wdays.top, infoPtr->wdays.bottom,
|
||||
infoPtr->days.left, infoPtr->days.right,
|
||||
infoPtr->days.top, infoPtr->days.bottom,
|
||||
infoPtr->todayrect.left, infoPtr->todayrect.right,
|
||||
infoPtr->todayrect.top, infoPtr->todayrect.bottom,
|
||||
infoPtr->weeknums.left, infoPtr->weeknums.right,
|
||||
infoPtr->weeknums.top, infoPtr->weeknums.bottom);
|
||||
*/
|
||||
|
||||
/* guess in what calendar we are */
|
||||
calIdx = MONTHCAL_GetCalendarFromPoint(infoPtr, &lpht->pt);
|
||||
if (calIdx == -1)
|
||||
|
@ -2475,9 +2477,10 @@ static void MONTHCAL_UpdateSize(MONTHCAL_INFO *infoPtr)
|
|||
INT xdiv, dx, dy, i, j, x, y, c_dx, c_dy;
|
||||
WCHAR buff[80];
|
||||
TEXTMETRICW tm;
|
||||
SIZE size, sz;
|
||||
INT day_width;
|
||||
RECT client;
|
||||
HFONT font;
|
||||
SIZE size;
|
||||
HDC hdc;
|
||||
|
||||
GetClientRect(infoPtr->hwndSelf, &client);
|
||||
|
@ -2489,28 +2492,30 @@ static void MONTHCAL_UpdateSize(MONTHCAL_INFO *infoPtr)
|
|||
GetTextMetricsW(hdc, &tm);
|
||||
infoPtr->textHeight = tm.tmHeight + tm.tmExternalLeading + tm.tmInternalLeading;
|
||||
|
||||
/* find largest abbreviated day name for current locale */
|
||||
size.cx = sz.cx = 0;
|
||||
/* find widest day name for current locale and font */
|
||||
day_width = 0;
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
if(GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SABBREVDAYNAME1 + i,
|
||||
buff, countof(buff)))
|
||||
SIZE sz;
|
||||
|
||||
if (get_localized_dayname(infoPtr, i, buff, countof(buff)))
|
||||
{
|
||||
GetTextExtentPoint32W(hdc, buff, lstrlenW(buff), &sz);
|
||||
if (sz.cx > size.cx) size.cx = sz.cx;
|
||||
if (sz.cx > day_width) day_width = sz.cx;
|
||||
}
|
||||
else /* locale independent fallback on failure */
|
||||
{
|
||||
static const WCHAR SunW[] = { 'S','u','n',0 };
|
||||
|
||||
GetTextExtentPoint32W(hdc, SunW, lstrlenW(SunW), &size);
|
||||
static const WCHAR sunW[] = { 'S','u','n' };
|
||||
GetTextExtentPoint32W(hdc, sunW, countof(sunW), &sz);
|
||||
day_width = sz.cx;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
infoPtr->textWidth = size.cx + 2;
|
||||
day_width += 2;
|
||||
|
||||
/* recalculate the height and width increments and offsets */
|
||||
size.cx = 0;
|
||||
GetTextExtentPoint32W(hdc, O0W, 2, &size);
|
||||
|
||||
/* restore the originally selected font */
|
||||
|
@ -2519,7 +2524,7 @@ static void MONTHCAL_UpdateSize(MONTHCAL_INFO *infoPtr)
|
|||
|
||||
xdiv = (infoPtr->dwStyle & MCS_WEEKNUMBERS) ? 8 : 7;
|
||||
|
||||
infoPtr->width_increment = size.cx * 2 + 4;
|
||||
infoPtr->width_increment = max(day_width, size.cx * 2 + 4);
|
||||
infoPtr->height_increment = infoPtr->textHeight;
|
||||
|
||||
/* calculate title area */
|
||||
|
@ -2696,7 +2701,7 @@ static INT MONTHCAL_StyleChanged(MONTHCAL_INFO *infoPtr, WPARAM wStyleType,
|
|||
infoPtr->dwStyle = lpss->styleNew;
|
||||
|
||||
/* make room for week numbers */
|
||||
if ((lpss->styleNew ^ lpss->styleOld) & MCS_WEEKNUMBERS)
|
||||
if ((lpss->styleNew ^ lpss->styleOld) & (MCS_WEEKNUMBERS | MCS_SHORTDAYSOFWEEK))
|
||||
MONTHCAL_UpdateSize(infoPtr);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -656,13 +656,8 @@ PAGER_NCCalcSize(PAGER_INFO* infoPtr, WPARAM wParam, LPRECT lpRect)
|
|||
lpRect->bottom -= infoPtr->nButtonSize;
|
||||
}
|
||||
|
||||
TRACE("nPos=%d, nHeight=%d, window=%s\n",
|
||||
infoPtr->nPos, infoPtr->nHeight,
|
||||
wine_dbgstr_rect(&rcWindow));
|
||||
|
||||
TRACE("[%p] client rect set to %dx%d at (%d,%d) BtnState[%d,%d]\n",
|
||||
infoPtr->hwndSelf, lpRect->right-lpRect->left, lpRect->bottom-lpRect->top,
|
||||
lpRect->left, lpRect->top,
|
||||
TRACE("nPos=%d, nHeight=%d, window=%s\n", infoPtr->nPos, infoPtr->nHeight, wine_dbgstr_rect(&rcWindow));
|
||||
TRACE("[%p] client rect set to %s BtnState[%d,%d]\n", infoPtr->hwndSelf, wine_dbgstr_rect(lpRect),
|
||||
infoPtr->TLbtnState, infoPtr->BRbtnState);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -152,10 +152,7 @@ typedef void (*ProgressDrawProc)(const ProgressDrawInfo* di, int start, int end)
|
|||
static void draw_solid_bar_H (const ProgressDrawInfo* di, int start, int end)
|
||||
{
|
||||
RECT r;
|
||||
r.left = di->rect.left + start;
|
||||
r.top = di->rect.top;
|
||||
r.right = di->rect.left + end;
|
||||
r.bottom = di->rect.bottom;
|
||||
SetRect(&r, di->rect.left + start, di->rect.top, di->rect.left + end, di->rect.bottom);
|
||||
FillRect (di->hdc, &r, di->hbrBar);
|
||||
}
|
||||
|
||||
|
@ -163,10 +160,7 @@ static void draw_solid_bar_H (const ProgressDrawInfo* di, int start, int end)
|
|||
static void draw_solid_bkg_H (const ProgressDrawInfo* di, int start, int end)
|
||||
{
|
||||
RECT r;
|
||||
r.left = di->rect.left + start;
|
||||
r.top = di->rect.top;
|
||||
r.right = di->rect.left + end;
|
||||
r.bottom = di->rect.bottom;
|
||||
SetRect(&r, di->rect.left + start, di->rect.top, di->rect.left + end, di->rect.bottom);
|
||||
FillRect (di->hdc, &r, di->hbrBk);
|
||||
}
|
||||
|
||||
|
@ -174,10 +168,7 @@ static void draw_solid_bkg_H (const ProgressDrawInfo* di, int start, int end)
|
|||
static void draw_solid_bar_V (const ProgressDrawInfo* di, int start, int end)
|
||||
{
|
||||
RECT r;
|
||||
r.left = di->rect.left;
|
||||
r.top = di->rect.bottom - end;
|
||||
r.right = di->rect.right;
|
||||
r.bottom = di->rect.bottom - start;
|
||||
SetRect(&r, di->rect.left, di->rect.bottom - end, di->rect.right, di->rect.bottom - start);
|
||||
FillRect (di->hdc, &r, di->hbrBar);
|
||||
}
|
||||
|
||||
|
@ -185,10 +176,7 @@ static void draw_solid_bar_V (const ProgressDrawInfo* di, int start, int end)
|
|||
static void draw_solid_bkg_V (const ProgressDrawInfo* di, int start, int end)
|
||||
{
|
||||
RECT r;
|
||||
r.left = di->rect.left;
|
||||
r.top = di->rect.bottom - end;
|
||||
r.right = di->rect.right;
|
||||
r.bottom = di->rect.bottom - start;
|
||||
SetRect(&r, di->rect.left, di->rect.bottom - end, di->rect.right, di->rect.bottom - start);
|
||||
FillRect (di->hdc, &r, di->hbrBk);
|
||||
}
|
||||
|
||||
|
@ -271,11 +259,7 @@ static void draw_theme_bkg_H (const ProgressDrawInfo* di, int start, int end)
|
|||
{
|
||||
RECT bgrect, r;
|
||||
|
||||
r.left = di->rect.left + start;
|
||||
r.top = di->rect.top;
|
||||
r.right = di->rect.left + end;
|
||||
r.bottom = di->rect.bottom;
|
||||
|
||||
SetRect(&r, di->rect.left + start, di->rect.top, di->rect.left + end, di->rect.bottom);
|
||||
bgrect = di->bgRect;
|
||||
OffsetRect(&bgrect, -bgrect.left, -bgrect.top);
|
||||
|
||||
|
@ -287,11 +271,7 @@ static void draw_theme_bkg_V (const ProgressDrawInfo* di, int start, int end)
|
|||
{
|
||||
RECT bgrect, r;
|
||||
|
||||
r.left = di->rect.left;
|
||||
r.top = di->rect.bottom - end;
|
||||
r.right = di->rect.right;
|
||||
r.bottom = di->rect.bottom - start;
|
||||
|
||||
SetRect(&r, di->rect.left, di->rect.bottom - end, di->rect.right, di->rect.bottom - start);
|
||||
bgrect = di->bgRect;
|
||||
OffsetRect(&bgrect, -bgrect.left, -bgrect.top);
|
||||
|
||||
|
|
|
@ -694,11 +694,7 @@ static BOOL PROPSHEET_SizeMismatch(HWND hwndDlg, const PropSheetInfo* psInfo)
|
|||
/*
|
||||
* Biggest page size.
|
||||
*/
|
||||
rcPage.left = 0;
|
||||
rcPage.top = 0;
|
||||
rcPage.right = psInfo->width;
|
||||
rcPage.bottom = psInfo->height;
|
||||
|
||||
SetRect(&rcPage, 0, 0, psInfo->width, psInfo->height);
|
||||
MapDialogRect(hwndDlg, &rcPage);
|
||||
TRACE("biggest page %s\n", wine_dbgstr_rect(&rcPage));
|
||||
|
||||
|
@ -732,11 +728,7 @@ static BOOL PROPSHEET_AdjustSize(HWND hwndDlg, PropSheetInfo* psInfo)
|
|||
/*
|
||||
* Biggest page size.
|
||||
*/
|
||||
rc.left = 0;
|
||||
rc.top = 0;
|
||||
rc.right = psInfo->width;
|
||||
rc.bottom = psInfo->height;
|
||||
|
||||
SetRect(&rc, 0, 0, psInfo->width, psInfo->height);
|
||||
MapDialogRect(hwndDlg, &rc);
|
||||
|
||||
/* retrieve the dialog units */
|
||||
|
@ -807,10 +799,7 @@ static BOOL PROPSHEET_AdjustSizeWizard(HWND hwndDlg, const PropSheetInfo* psInfo
|
|||
RECT rc, lineRect, dialogRect;
|
||||
|
||||
/* Biggest page size */
|
||||
rc.left = 0;
|
||||
rc.top = 0;
|
||||
rc.right = psInfo->width;
|
||||
rc.bottom = psInfo->height;
|
||||
SetRect(&rc, 0, 0, psInfo->width, psInfo->height);
|
||||
MapDialogRect(hwndDlg, &rc);
|
||||
|
||||
TRACE("Biggest page %s\n", wine_dbgstr_rect(&rc));
|
||||
|
@ -3368,11 +3357,7 @@ static LRESULT PROPSHEET_Paint(HWND hwnd, HDC hdcParam)
|
|||
|
||||
GetClientRect(hwndLine, &r);
|
||||
MapWindowPoints(hwndLine, hwnd, (LPPOINT) &r, 2);
|
||||
|
||||
rzone.left = 0;
|
||||
rzone.top = 0;
|
||||
rzone.right = r.right;
|
||||
rzone.bottom = r.top - 1;
|
||||
SetRect(&rzone, 0, 0, r.right, r.top - 1);
|
||||
|
||||
hbr = GetSysColorBrush(COLOR_WINDOW);
|
||||
FillRect(hdc, &rzone, hbr);
|
||||
|
|
|
@ -790,15 +790,11 @@ REBAR_CalcHorzBand (const REBAR_INFO *infoPtr, UINT rstart, UINT rend)
|
|||
|
||||
/* flag if notify required and invalidate rectangle */
|
||||
if (lpBand->fDraw & NTF_INVALIDATE) {
|
||||
TRACE("invalidating (%d,%d)-(%d,%d)\n",
|
||||
lpBand->rcBand.left,
|
||||
lpBand->rcBand.top,
|
||||
lpBand->rcBand.right + SEP_WIDTH,
|
||||
lpBand->rcBand.bottom + SEP_WIDTH);
|
||||
lpBand->fDraw &= ~NTF_INVALIDATE;
|
||||
work = lpBand->rcBand;
|
||||
work.right += SEP_WIDTH;
|
||||
work.bottom += SEP_WIDTH;
|
||||
TRACE("invalidating %s\n", wine_dbgstr_rect(&work));
|
||||
InvalidateRect(infoPtr->hwndSelf, &work, TRUE);
|
||||
if (lpBand->hwndChild) InvalidateRect(lpBand->hwndChild, NULL, TRUE);
|
||||
}
|
||||
|
@ -911,15 +907,11 @@ REBAR_CalcVertBand (const REBAR_INFO *infoPtr, UINT rstart, UINT rend)
|
|||
}
|
||||
|
||||
if (lpBand->fDraw & NTF_INVALIDATE) {
|
||||
TRACE("invalidating (%d,%d)-(%d,%d)\n",
|
||||
rcBand.left,
|
||||
rcBand.top,
|
||||
rcBand.right + SEP_WIDTH,
|
||||
rcBand.bottom + SEP_WIDTH);
|
||||
lpBand->fDraw &= ~NTF_INVALIDATE;
|
||||
work = rcBand;
|
||||
work.bottom += SEP_WIDTH;
|
||||
work.right += SEP_WIDTH;
|
||||
TRACE("invalidating %s\n", wine_dbgstr_rect(&work));
|
||||
InvalidateRect(infoPtr->hwndSelf, &work, TRUE);
|
||||
if (lpBand->hwndChild) InvalidateRect(lpBand->hwndChild, NULL, TRUE);
|
||||
}
|
||||
|
|
|
@ -130,60 +130,26 @@ STATUSBAR_ComputeHeight(STATUS_INFO *infoPtr)
|
|||
static void
|
||||
STATUSBAR_DrawSizeGrip (HTHEME theme, HDC hdc, LPRECT lpRect)
|
||||
{
|
||||
HPEN hPenFace, hPenShadow, hPenHighlight, hOldPen;
|
||||
POINT pt;
|
||||
INT i;
|
||||
RECT rc = *lpRect;
|
||||
|
||||
TRACE("draw size grip %s\n", wine_dbgstr_rect(lpRect));
|
||||
|
||||
if (theme)
|
||||
{
|
||||
RECT gripperRect;
|
||||
SIZE gripperSize;
|
||||
gripperRect = *lpRect;
|
||||
if (SUCCEEDED (GetThemePartSize (theme, hdc, SP_GRIPPER, 0, lpRect,
|
||||
TS_DRAW, &gripperSize)))
|
||||
{
|
||||
gripperRect.left = gripperRect.right - gripperSize.cx;
|
||||
gripperRect.top = gripperRect.bottom - gripperSize.cy;
|
||||
if (SUCCEEDED (DrawThemeBackground(theme, hdc, SP_GRIPPER, 0, &gripperRect, NULL)))
|
||||
rc.left = rc.right - gripperSize.cx;
|
||||
rc.top = rc.bottom - gripperSize.cy;
|
||||
if (SUCCEEDED (DrawThemeBackground(theme, hdc, SP_GRIPPER, 0, &rc, NULL)))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
pt.x = lpRect->right - 1;
|
||||
pt.y = lpRect->bottom - 1;
|
||||
|
||||
hPenFace = CreatePen( PS_SOLID, 1, comctl32_color.clr3dFace);
|
||||
hOldPen = SelectObject( hdc, hPenFace );
|
||||
MoveToEx (hdc, pt.x - 12, pt.y, NULL);
|
||||
LineTo (hdc, pt.x, pt.y);
|
||||
LineTo (hdc, pt.x, pt.y - 13);
|
||||
|
||||
pt.x--;
|
||||
pt.y--;
|
||||
|
||||
hPenShadow = CreatePen( PS_SOLID, 1, comctl32_color.clr3dShadow);
|
||||
SelectObject( hdc, hPenShadow );
|
||||
for (i = 1; i < 11; i += 4) {
|
||||
MoveToEx (hdc, pt.x - i, pt.y, NULL);
|
||||
LineTo (hdc, pt.x + 1, pt.y - i - 1);
|
||||
|
||||
MoveToEx (hdc, pt.x - i - 1, pt.y, NULL);
|
||||
LineTo (hdc, pt.x + 1, pt.y - i - 2);
|
||||
}
|
||||
|
||||
hPenHighlight = CreatePen( PS_SOLID, 1, comctl32_color.clr3dHilight);
|
||||
SelectObject( hdc, hPenHighlight );
|
||||
for (i = 3; i < 13; i += 4) {
|
||||
MoveToEx (hdc, pt.x - i, pt.y, NULL);
|
||||
LineTo (hdc, pt.x + 1, pt.y - i - 1);
|
||||
}
|
||||
|
||||
SelectObject (hdc, hOldPen);
|
||||
DeleteObject( hPenFace );
|
||||
DeleteObject( hPenShadow );
|
||||
DeleteObject( hPenHighlight );
|
||||
rc.left = max( rc.left, rc.right - GetSystemMetrics(SM_CXVSCROLL) - 1 );
|
||||
rc.top = max( rc.top, rc.bottom - GetSystemMetrics(SM_CYHSCROLL) - 1 );
|
||||
DrawFrameControl( hdc, &rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
|
||||
#include "comctl32.h"
|
||||
|
||||
#include <wine/list.h>
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(syslink);
|
||||
|
||||
INT WINAPI StrCmpNIW(LPCWSTR,LPCWSTR,INT);
|
||||
|
@ -51,7 +53,7 @@ typedef enum
|
|||
|
||||
typedef struct _DOC_ITEM
|
||||
{
|
||||
struct _DOC_ITEM *Next; /* Address to the next item */
|
||||
struct list entry;
|
||||
UINT nText; /* Number of characters of the text */
|
||||
SL_ITEM_TYPE Type; /* type of the item */
|
||||
PDOC_TEXTBLOCK Blocks; /* Array of text blocks */
|
||||
|
@ -76,7 +78,7 @@ typedef struct
|
|||
HWND Self; /* The window handle for this control */
|
||||
HWND Notify; /* The parent handle to receive notifications */
|
||||
DWORD Style; /* Styles for this control */
|
||||
PDOC_ITEM Items; /* Address to the first document item */
|
||||
struct list Items; /* Document items list */
|
||||
BOOL HasFocus; /* Whether the control has the input focus */
|
||||
int MouseDownID; /* ID of the link that the mouse button first selected */
|
||||
HFONT Font; /* Handle to the font for text */
|
||||
|
@ -112,6 +114,8 @@ static VOID SYSLINK_FreeDocItem (PDOC_ITEM DocItem)
|
|||
Free(DocItem->u.Link.szUrl);
|
||||
}
|
||||
|
||||
Free(DocItem->Blocks);
|
||||
|
||||
/* we don't free Text because it's just a pointer to a character in the
|
||||
entire window text string */
|
||||
|
||||
|
@ -135,22 +139,15 @@ static PDOC_ITEM SYSLINK_AppendDocItem (SYSLINK_INFO *infoPtr, LPCWSTR Text, UIN
|
|||
return NULL;
|
||||
}
|
||||
|
||||
Item->Next = NULL;
|
||||
Item->nText = textlen;
|
||||
Item->Type = type;
|
||||
Item->Blocks = NULL;
|
||||
|
||||
if(LastItem != NULL)
|
||||
{
|
||||
LastItem->Next = Item;
|
||||
}
|
||||
else
|
||||
{
|
||||
infoPtr->Items = Item;
|
||||
}
|
||||
|
||||
lstrcpynW(Item->Text, Text, textlen + 1);
|
||||
|
||||
if (LastItem)
|
||||
list_add_after(&LastItem->entry, &Item->entry);
|
||||
else
|
||||
list_add_tail(&infoPtr->Items, &Item->entry);
|
||||
|
||||
return Item;
|
||||
}
|
||||
|
||||
|
@ -160,17 +157,13 @@ static PDOC_ITEM SYSLINK_AppendDocItem (SYSLINK_INFO *infoPtr, LPCWSTR Text, UIN
|
|||
*/
|
||||
static VOID SYSLINK_ClearDoc (SYSLINK_INFO *infoPtr)
|
||||
{
|
||||
PDOC_ITEM Item, Next;
|
||||
|
||||
Item = infoPtr->Items;
|
||||
while(Item != NULL)
|
||||
DOC_ITEM *Item, *Item2;
|
||||
|
||||
LIST_FOR_EACH_ENTRY_SAFE(Item, Item2, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
Next = Item->Next;
|
||||
list_remove(&Item->entry);
|
||||
SYSLINK_FreeDocItem(Item);
|
||||
Item = Next;
|
||||
}
|
||||
|
||||
infoPtr->Items = NULL;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -514,15 +507,12 @@ static VOID SYSLINK_RepaintLink (const SYSLINK_INFO *infoPtr, const DOC_ITEM *Do
|
|||
*/
|
||||
static PDOC_ITEM SYSLINK_GetLinkItemByIndex (const SYSLINK_INFO *infoPtr, int iLink)
|
||||
{
|
||||
PDOC_ITEM Current = infoPtr->Items;
|
||||
DOC_ITEM *Current;
|
||||
|
||||
while(Current != NULL)
|
||||
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
if((Current->Type == slLink) && (iLink-- <= 0))
|
||||
{
|
||||
if ((Current->Type == slLink) && (iLink-- <= 0))
|
||||
return Current;
|
||||
}
|
||||
Current = Current->Next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -533,10 +523,10 @@ static PDOC_ITEM SYSLINK_GetLinkItemByIndex (const SYSLINK_INFO *infoPtr, int iL
|
|||
*/
|
||||
static PDOC_ITEM SYSLINK_GetFocusLink (const SYSLINK_INFO *infoPtr, int *LinkId)
|
||||
{
|
||||
PDOC_ITEM Current = infoPtr->Items;
|
||||
DOC_ITEM *Current;
|
||||
int id = 0;
|
||||
|
||||
while(Current != NULL)
|
||||
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
if(Current->Type == slLink)
|
||||
{
|
||||
|
@ -548,8 +538,8 @@ static PDOC_ITEM SYSLINK_GetFocusLink (const SYSLINK_INFO *infoPtr, int *LinkId)
|
|||
}
|
||||
id++;
|
||||
}
|
||||
Current = Current->Next;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -559,13 +549,13 @@ static PDOC_ITEM SYSLINK_GetFocusLink (const SYSLINK_INFO *infoPtr, int *LinkId)
|
|||
*/
|
||||
static PDOC_ITEM SYSLINK_GetNextLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Current)
|
||||
{
|
||||
for(Current = (Current != NULL ? Current->Next : infoPtr->Items);
|
||||
Current != NULL;
|
||||
Current = Current->Next)
|
||||
DOC_ITEM *Next;
|
||||
|
||||
LIST_FOR_EACH_ENTRY(Next, Current ? &Current->entry : &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
if(Current->Type == slLink)
|
||||
if (Next->Type == slLink)
|
||||
{
|
||||
return Current;
|
||||
return Next;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
|
@ -577,38 +567,17 @@ static PDOC_ITEM SYSLINK_GetNextLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Cur
|
|||
*/
|
||||
static PDOC_ITEM SYSLINK_GetPrevLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Current)
|
||||
{
|
||||
if(Current == NULL)
|
||||
DOC_ITEM *Prev;
|
||||
|
||||
LIST_FOR_EACH_ENTRY_REV(Prev, Current ? &Current->entry : list_tail(&infoPtr->Items), DOC_ITEM, entry)
|
||||
{
|
||||
/* returns the last link */
|
||||
PDOC_ITEM Last = NULL;
|
||||
|
||||
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
|
||||
if (Prev->Type == slLink)
|
||||
{
|
||||
if(Current->Type == slLink)
|
||||
{
|
||||
Last = Current;
|
||||
}
|
||||
return Prev;
|
||||
}
|
||||
return Last;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* returns the previous link */
|
||||
PDOC_ITEM Cur, Prev = NULL;
|
||||
|
||||
for(Cur = infoPtr->Items; Cur != NULL; Cur = Cur->Next)
|
||||
{
|
||||
if(Cur == Current)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(Cur->Type == slLink)
|
||||
{
|
||||
Prev = Cur;
|
||||
}
|
||||
}
|
||||
return Prev;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -672,7 +641,7 @@ static VOID SYSLINK_Render (const SYSLINK_INFO *infoPtr, HDC hdc, PRECT pRect)
|
|||
GetTextMetricsW( hdc, &tm );
|
||||
LineHeight = tm.tmHeight + tm.tmExternalLeading;
|
||||
|
||||
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
|
||||
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
int n, nBlocks;
|
||||
LPWSTR tx;
|
||||
|
@ -766,10 +735,7 @@ static VOID SYSLINK_Render (const SYSLINK_INFO *infoPtr, HDC hdc, PRECT pRect)
|
|||
|
||||
cbl->nChars = LineLen;
|
||||
cbl->nSkip = SkipChars;
|
||||
cbl->rc.left = x;
|
||||
cbl->rc.top = y;
|
||||
cbl->rc.right = x + szDim.cx;
|
||||
cbl->rc.bottom = y + szDim.cy;
|
||||
SetRect(&cbl->rc, x, y, x + szDim.cx, y + szDim.cy);
|
||||
|
||||
if (cbl->rc.right > szDoc.cx)
|
||||
szDoc.cx = cbl->rc.right;
|
||||
|
@ -852,7 +818,7 @@ static LRESULT SYSLINK_Draw (const SYSLINK_INFO *infoPtr, HDC hdc)
|
|||
|
||||
DeleteObject(hBrush);
|
||||
|
||||
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
|
||||
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
int n;
|
||||
LPWSTR tx;
|
||||
|
@ -1016,8 +982,8 @@ static LRESULT SYSLINK_SetText (SYSLINK_INFO *infoPtr, LPCWSTR Text)
|
|||
static PDOC_ITEM SYSLINK_SetFocusLink (const SYSLINK_INFO *infoPtr, const DOC_ITEM *DocItem)
|
||||
{
|
||||
PDOC_ITEM Current, PrevFocus = NULL;
|
||||
|
||||
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
|
||||
|
||||
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
if(Current->Type == slLink)
|
||||
{
|
||||
|
@ -1225,7 +1191,7 @@ static LRESULT SYSLINK_HitTest (const SYSLINK_INFO *infoPtr, PLHITTESTINFO HitTe
|
|||
PDOC_ITEM Current;
|
||||
int id = 0;
|
||||
|
||||
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
|
||||
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
if(Current->Type == slLink)
|
||||
{
|
||||
|
@ -1374,7 +1340,7 @@ static PDOC_ITEM SYSLINK_LinkAtPt (const SYSLINK_INFO *infoPtr, const POINT *pt,
|
|||
PDOC_ITEM Current;
|
||||
int id = 0;
|
||||
|
||||
for(Current = infoPtr->Items; Current != NULL; Current = Current->Next)
|
||||
LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry)
|
||||
{
|
||||
if((Current->Type == slLink) && SYSLINK_PtInDocItem(Current, *pt) &&
|
||||
(!MustBeEnabled || (Current->u.Link.state & LIS_ENABLED)))
|
||||
|
@ -1740,6 +1706,9 @@ static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message,
|
|||
return 0;
|
||||
|
||||
case WM_CREATE:
|
||||
{
|
||||
CREATESTRUCTW *cs = (CREATESTRUCTW*)lParam;
|
||||
|
||||
/* allocate memory for info struct */
|
||||
infoPtr = Alloc (sizeof(SYSLINK_INFO));
|
||||
if (!infoPtr) return -1;
|
||||
|
@ -1747,11 +1716,11 @@ static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message,
|
|||
|
||||
/* initialize the info struct */
|
||||
infoPtr->Self = hwnd;
|
||||
infoPtr->Notify = ((LPCREATESTRUCTW)lParam)->hwndParent;
|
||||
infoPtr->Style = ((LPCREATESTRUCTW)lParam)->style;
|
||||
infoPtr->Notify = cs->hwndParent;
|
||||
infoPtr->Style = cs->style;
|
||||
infoPtr->Font = 0;
|
||||
infoPtr->LinkFont = 0;
|
||||
infoPtr->Items = NULL;
|
||||
list_init(&infoPtr->Items);
|
||||
infoPtr->HasFocus = FALSE;
|
||||
infoPtr->MouseDownID = -1;
|
||||
infoPtr->TextColor = comctl32_color.clrWindowText;
|
||||
|
@ -1760,9 +1729,9 @@ static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message,
|
|||
infoPtr->BreakChar = ' ';
|
||||
infoPtr->IgnoreReturn = infoPtr->Style & LWS_IGNORERETURN;
|
||||
TRACE("SysLink Ctrl creation, hwnd=%p\n", hwnd);
|
||||
SYSLINK_SetText(infoPtr, ((LPCREATESTRUCTW)lParam)->lpszName);
|
||||
SYSLINK_SetText(infoPtr, cs->lpszName);
|
||||
return 0;
|
||||
|
||||
}
|
||||
case WM_DESTROY:
|
||||
TRACE("SysLink Ctrl destruction, hwnd=%p\n", hwnd);
|
||||
SYSLINK_ClearDoc(infoPtr);
|
||||
|
|
|
@ -1229,8 +1229,7 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
|||
tabwidth = max(tabwidth, infoPtr->tabMinWidth);
|
||||
|
||||
curr->rect.right = curr->rect.left + tabwidth;
|
||||
TRACE("for <%s>, l,r=%d,%d\n",
|
||||
debugstr_w(curr->pszText), curr->rect.left, curr->rect.right);
|
||||
TRACE("for <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1249,8 +1248,7 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
|||
|
||||
curr->rect.left = 0;
|
||||
curItemRowCount++;
|
||||
TRACE("wrapping <%s>, l,r=%d,%d\n", debugstr_w(curr->pszText),
|
||||
curr->rect.left, curr->rect.right);
|
||||
TRACE("wrapping <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect));
|
||||
}
|
||||
|
||||
curr->rect.bottom = 0;
|
||||
|
@ -1363,9 +1361,7 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
|||
else
|
||||
curItemLeftPos = curr->rect.right;
|
||||
|
||||
TRACE("arranging <%s>, l,r=%d,%d, row=%d\n",
|
||||
debugstr_w(curr->pszText), curr->rect.left,
|
||||
curr->rect.right, curr->rect.top);
|
||||
TRACE("arranging <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1415,9 +1411,7 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
|||
item->rect.left += iCount * widthDiff;
|
||||
item->rect.right += (iCount + 1) * widthDiff;
|
||||
|
||||
TRACE("adjusting 1 <%s>, l,r=%d,%d\n",
|
||||
debugstr_w(item->pszText),
|
||||
item->rect.left, item->rect.right);
|
||||
TRACE("adjusting 1 <%s>, rect %s\n", debugstr_w(item->pszText), wine_dbgstr_rect(&item->rect));
|
||||
|
||||
}
|
||||
TAB_GetItem(infoPtr, iIndex - 1)->rect.right += remainder;
|
||||
|
@ -1427,13 +1421,9 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
|||
start->rect.left = clientRect.left;
|
||||
start->rect.right = clientRect.right - 4;
|
||||
|
||||
TRACE("adjusting 2 <%s>, l,r=%d,%d\n",
|
||||
debugstr_w(start->pszText),
|
||||
start->rect.left, start->rect.right);
|
||||
|
||||
TRACE("adjusting 2 <%s>, rect %s\n", debugstr_w(start->pszText), wine_dbgstr_rect(&start->rect));
|
||||
}
|
||||
|
||||
|
||||
iIndexStart = iIndexEnd;
|
||||
}
|
||||
}
|
||||
|
@ -1765,8 +1755,7 @@ TAB_DrawItemInterior(const TAB_INFO *infoPtr, HDC hdc, INT iItem, RECT *drawRect
|
|||
rcImage = *drawRect;
|
||||
|
||||
rcTemp = *drawRect;
|
||||
|
||||
rcText.left = rcText.top = rcText.right = rcText.bottom = 0;
|
||||
SetRectEmpty(&rcText);
|
||||
|
||||
/* get the rectangle that the text fits in */
|
||||
if (item->pszText)
|
||||
|
|
|
@ -1290,9 +1290,7 @@ TOOLBAR_MeasureString(const TOOLBAR_INFO *infoPtr, const TBUTTON_INFO *btnPtr,
|
|||
GetTextExtentPoint32W (hdc, lpText, strlenW (lpText), lpSize);
|
||||
|
||||
/* feed above size into the rectangle for DrawText */
|
||||
myrect.left = myrect.top = 0;
|
||||
myrect.right = lpSize->cx;
|
||||
myrect.bottom = lpSize->cy;
|
||||
SetRect(&myrect, 0, 0, lpSize->cx, lpSize->cy);
|
||||
|
||||
/* Use DrawText to get true size as drawn (less pesky "&") */
|
||||
DrawTextW (hdc, lpText, -1, &myrect, DT_VCENTER | DT_SINGLELINE |
|
||||
|
@ -7017,7 +7015,7 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
case WM_SYSCOLORCHANGE:
|
||||
return TOOLBAR_SysColorChange ();
|
||||
|
||||
case WM_THEMECHANGED:
|
||||
case WM_THEMECHANGED:
|
||||
#ifdef __REACTOS__
|
||||
return TOOLBAR_ThemeChanged(hwnd);
|
||||
#else
|
||||
|
|
|
@ -498,6 +498,12 @@ TOOLTIPS_GetTipText (const TOOLTIPS_INFO *infoPtr, INT nTool, WCHAR *buffer)
|
|||
buffer[0] = '\0';
|
||||
}
|
||||
|
||||
if (!(GetWindowLongW(infoPtr->hwndSelf, GWL_STYLE) & TTS_NOPREFIX)) {
|
||||
WCHAR *ptrW;
|
||||
if ((ptrW = strchrW(buffer, '\t')))
|
||||
*ptrW = 0;
|
||||
}
|
||||
|
||||
TRACE("%s\n", debugstr_w(buffer));
|
||||
}
|
||||
|
||||
|
|
|
@ -482,16 +482,12 @@ TRACKBAR_DrawOneTic (const TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos, int fla
|
|||
|
||||
if (flags & TBS_VERT) {
|
||||
offsetthumb = (infoPtr->rcThumb.bottom - infoPtr->rcThumb.top)/2;
|
||||
rcTics.left = infoPtr->rcThumb.left - 2;
|
||||
rcTics.right = infoPtr->rcThumb.right + 2;
|
||||
rcTics.top = infoPtr->rcChannel.top + offsetthumb;
|
||||
rcTics.bottom = infoPtr->rcChannel.bottom - offsetthumb - 1;
|
||||
SetRect(&rcTics, infoPtr->rcThumb.left - 2, infoPtr->rcChannel.top + offsetthumb,
|
||||
infoPtr->rcThumb.right + 2, infoPtr->rcChannel.bottom - offsetthumb - 1);
|
||||
} else {
|
||||
offsetthumb = (infoPtr->rcThumb.right - infoPtr->rcThumb.left)/2;
|
||||
rcTics.left = infoPtr->rcChannel.left + offsetthumb;
|
||||
rcTics.right = infoPtr->rcChannel.right - offsetthumb - 1;
|
||||
rcTics.top = infoPtr->rcThumb.top - 2;
|
||||
rcTics.bottom = infoPtr->rcThumb.bottom + 2;
|
||||
SetRect(&rcTics, infoPtr->rcChannel.left + offsetthumb, infoPtr->rcThumb.top - 2,
|
||||
infoPtr->rcChannel.right - offsetthumb - 1, infoPtr->rcThumb.bottom + 2);
|
||||
}
|
||||
|
||||
if (flags & (TBS_TOP | TBS_LEFT)) {
|
||||
|
|
|
@ -54,7 +54,7 @@ reactos/dll/win32/browseui # Out of sync
|
|||
reactos/dll/win32/cabinet # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/clusapi # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/comcat # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/comctl32 # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/comctl32 # Synced to WineStaging-1.9.11
|
||||
reactos/dll/win32/comdlg32 # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/compstui # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/credui # Synced to WineStaging-1.9.4
|
||||
|
|
Loading…
Reference in a new issue