- Try to match the native control for the SetBkColor message.
- Correct processing in NCCalcSize message processing.
This commit is contained in:
parent
9302f85da8
commit
1251aa79cc
|
@ -598,6 +598,18 @@ PAGER_SetFixedHeight(HWND hwnd, PAGER_INFO* infoPtr)
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
* For the PGM_RECALCSIZE message (but not the other uses in *
|
||||||
|
* this module), the native control does only the following: *
|
||||||
|
* *
|
||||||
|
* if (some condition) *
|
||||||
|
* PostMessageA(hwnd, EM_FMTLINES, 0, 0); *
|
||||||
|
* return DefWindowProcA(hwnd, PGM_RECALCSIZE, 0, 0); *
|
||||||
|
* *
|
||||||
|
* When we figure out what the "some condition" is we will *
|
||||||
|
* implement that for the message processing. *
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
static LRESULT
|
static LRESULT
|
||||||
PAGER_RecalcSize(HWND hwnd)
|
PAGER_RecalcSize(HWND hwnd)
|
||||||
{
|
{
|
||||||
|
@ -634,8 +646,12 @@ PAGER_SetBkColor (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
infoPtr->clrBk = (COLORREF)lParam;
|
infoPtr->clrBk = (COLORREF)lParam;
|
||||||
TRACE("[%04x] %06lx\n", hwnd, infoPtr->clrBk);
|
TRACE("[%04x] %06lx\n", hwnd, infoPtr->clrBk);
|
||||||
|
|
||||||
PAGER_RecalcSize(hwnd);
|
/* the native control seems to do things this way */
|
||||||
SendMessageA(hwnd, WM_NCPAINT, (WPARAM)0, (LPARAM)0);
|
SetWindowPos(hwnd, 0,0,0,0,0,
|
||||||
|
SWP_FRAMECHANGED | SWP_NOSIZE | SWP_NOMOVE |
|
||||||
|
SWP_NOZORDER | SWP_NOACTIVATE);
|
||||||
|
|
||||||
|
RedrawWindow(hwnd, 0, 0, RDW_ERASE | RDW_INVALIDATE);
|
||||||
|
|
||||||
return (LRESULT)clrTemp;
|
return (LRESULT)clrTemp;
|
||||||
}
|
}
|
||||||
|
@ -850,6 +866,9 @@ PAGER_NCCalcSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
DefWindowProcA (hwnd, WM_NCCALCSIZE, wParam, lParam);
|
DefWindowProcA (hwnd, WM_NCCALCSIZE, wParam, lParam);
|
||||||
|
|
||||||
|
TRACE("orig rect=(%d,%d)-(%d,%d)\n",
|
||||||
|
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom);
|
||||||
|
|
||||||
if (PAGER_IsHorizontal(hwnd))
|
if (PAGER_IsHorizontal(hwnd))
|
||||||
{
|
{
|
||||||
infoPtr->nWidth = lpRect->right - lpRect->left;
|
infoPtr->nWidth = lpRect->right - lpRect->left;
|
||||||
|
@ -860,7 +879,7 @@ PAGER_NCCalcSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
GetWindowRect (hwnd, &rcmyw);
|
GetWindowRect (hwnd, &rcmyw);
|
||||||
|
|
||||||
/* Reset buttons and hide any grey ones */
|
/* Reset buttons and hide any grey ones */
|
||||||
scrollRange = infoPtr->nWidth - (rcmyw.right - rcmyw.bottom);
|
scrollRange = infoPtr->nWidth - (rcmyw.right - rcmyw.left);
|
||||||
|
|
||||||
TRACE("nPos=%d, scrollrange=%d, nWidth=%d, myw=(%d,%d)-(%d,%d)\n",
|
TRACE("nPos=%d, scrollrange=%d, nWidth=%d, myw=(%d,%d)-(%d,%d)\n",
|
||||||
infoPtr->nPos, scrollRange, infoPtr->nWidth,
|
infoPtr->nPos, scrollRange, infoPtr->nWidth,
|
||||||
|
@ -882,9 +901,9 @@ PAGER_NCCalcSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (PtInRect (&rbrc, cursor) && infoPtr->BRbtnState)
|
if (PtInRect (&rbrc, cursor) && infoPtr->BRbtnState)
|
||||||
RedrawWindow (hwnd, 0, 0, RDW_INVALIDATE | RDW_ERASE);
|
RedrawWindow (hwnd, 0, 0, RDW_INVALIDATE | RDW_ERASE);
|
||||||
}
|
}
|
||||||
if (infoPtr->TLbtnState) /* != PGF_INVISIBLE */
|
if (infoPtr->TLbtnState && (lpRect->left + infoPtr->nButtonSize < lpRect->right))
|
||||||
lpRect->left += infoPtr->nButtonSize;
|
lpRect->left += infoPtr->nButtonSize;
|
||||||
if (infoPtr->BRbtnState)
|
if (infoPtr->BRbtnState && (lpRect->right - infoPtr->nButtonSize > lpRect->left))
|
||||||
lpRect->right -= infoPtr->nButtonSize;
|
lpRect->right -= infoPtr->nButtonSize;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -941,9 +960,9 @@ PAGER_NCCalcSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (PtInRect (&rbrc, cursor) && infoPtr->BRbtnState)
|
if (PtInRect (&rbrc, cursor) && infoPtr->BRbtnState)
|
||||||
RedrawWindow (hwnd, 0, 0, RDW_INVALIDATE | RDW_ERASE);
|
RedrawWindow (hwnd, 0, 0, RDW_INVALIDATE | RDW_ERASE);
|
||||||
}
|
}
|
||||||
if (infoPtr->TLbtnState)
|
if (infoPtr->TLbtnState && (lpRect->top + infoPtr->nButtonSize < lpRect->bottom))
|
||||||
lpRect->top += infoPtr->nButtonSize;
|
lpRect->top += infoPtr->nButtonSize;
|
||||||
if (infoPtr->BRbtnState)
|
if (infoPtr->BRbtnState && (lpRect->bottom - infoPtr->nButtonSize > lpRect->top))
|
||||||
lpRect->bottom -= infoPtr->nButtonSize;
|
lpRect->bottom -= infoPtr->nButtonSize;
|
||||||
/* ???? */
|
/* ???? */
|
||||||
if ((lpRect->bottom < 0) || (lpRect->bottom > infoPtr->nHeight))
|
if ((lpRect->bottom < 0) || (lpRect->bottom > infoPtr->nHeight))
|
||||||
|
|
Loading…
Reference in New Issue