comctl32/listview: Implement LVM_ISITEMVISIBLE.
This commit is contained in:
parent
9c565342d0
commit
76cb9c0d77
|
@ -6944,6 +6944,44 @@ fail:
|
|||
return -1;
|
||||
}
|
||||
|
||||
/***
|
||||
* DESCRIPTION:
|
||||
* Checks item visibility.
|
||||
*
|
||||
* PARAMETER(S):
|
||||
* [I] infoPtr : valid pointer to the listview structure
|
||||
* [I] nFirst : item index to check for
|
||||
*
|
||||
* RETURN:
|
||||
* Item visible : TRUE
|
||||
* Item invisible or failure : FALSE
|
||||
*/
|
||||
static BOOL LISTVIEW_IsItemVisible(const LISTVIEW_INFO *infoPtr, INT nItem)
|
||||
{
|
||||
POINT Origin, Position;
|
||||
RECT rcItem;
|
||||
HDC hdc;
|
||||
BOOL ret;
|
||||
|
||||
TRACE("nItem=%d\n", nItem);
|
||||
|
||||
if (nItem < 0 || nItem >= DPA_GetPtrCount(infoPtr->hdpaItems)) return FALSE;
|
||||
|
||||
LISTVIEW_GetOrigin(infoPtr, &Origin);
|
||||
LISTVIEW_GetItemOrigin(infoPtr, nItem, &Position);
|
||||
rcItem.left = Position.x + Origin.x;
|
||||
rcItem.top = Position.y + Origin.y;
|
||||
rcItem.right = rcItem.left + infoPtr->nItemWidth;
|
||||
rcItem.bottom = rcItem.top + infoPtr->nItemHeight;
|
||||
|
||||
hdc = GetDC(infoPtr->hwndSelf);
|
||||
if (!hdc) return FALSE;
|
||||
ret = RectVisible(hdc, &rcItem);
|
||||
ReleaseDC(infoPtr->hwndSelf, hdc);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/***
|
||||
* DESCRIPTION:
|
||||
* Redraws a range of items.
|
||||
|
@ -10340,6 +10378,9 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
|
||||
/* case LVM_ISGROUPVIEWENABLED: */
|
||||
|
||||
case LVM_ISITEMVISIBLE:
|
||||
return LISTVIEW_IsItemVisible(infoPtr, (INT)wParam);
|
||||
|
||||
/* case LVM_MAPIDTOINDEX: */
|
||||
|
||||
/* case LVM_MAPINDEXTOID: */
|
||||
|
|
|
@ -3252,6 +3252,7 @@ static const WCHAR WC_LISTVIEWW[] = { 'S','y','s',
|
|||
#define LVM_CANCELEDITLABEL (LVM_FIRST + 179)
|
||||
#define LVM_MAPINDEXTOID (LVM_FIRST + 180)
|
||||
#define LVM_MAPIDTOINDEX (LVM_FIRST + 181)
|
||||
#define LVM_ISITEMVISIBLE (LVM_FIRST + 182)
|
||||
|
||||
#define LVN_FIRST (0U-100U)
|
||||
#define LVN_LAST (0U-199U)
|
||||
|
|
Loading…
Reference in New Issue