Skip to content

Commit a91d1b6

Browse files
committed
[SHELL32]
implement invert selection svn path=/trunk/; revision=67052
1 parent dd49012 commit a91d1b6

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

reactos/dll/win32/shell32/CDefView.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1554,9 +1554,10 @@ LRESULT CDefView::OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHa
15541554
*/
15551555
LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
15561556
{
1557-
DWORD dwCmdID;
1558-
DWORD dwCmd;
1559-
HWND hwndCmd;
1557+
DWORD dwCmdID;
1558+
DWORD dwCmd;
1559+
HWND hwndCmd;
1560+
int nCount;
15601561

15611562
dwCmdID = GET_WM_COMMAND_ID(wParam, lParam);
15621563
dwCmd = GET_WM_COMMAND_CMD(wParam, lParam);
@@ -1605,6 +1606,12 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand
16051606
m_ListView.SetItemState(-1, LVIS_SELECTED, LVIS_SELECTED);
16061607
break;
16071608

1609+
case FCIDM_SHVIEW_INVERTSELECTION:
1610+
nCount = m_ListView.GetItemCount();
1611+
for (int i=0; i < nCount; i++)
1612+
m_ListView.SetItemState(i, m_ListView.GetItemState(i, LVIS_SELECTED) ? 0 : LVIS_SELECTED, LVIS_SELECTED);
1613+
break;
1614+
16081615
case FCIDM_SHVIEW_REFRESH:
16091616
Refresh();
16101617
break;

reactos/include/reactos/rosctrls.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,11 @@ class CListView: public CWindow
165165
spacing.cy = HIWORD(ret);
166166
}
167167

168+
UINT GetItemState(int i, UINT mask)
169+
{
170+
return SendMessage(LVM_GETITEMSTATE, i, (LPARAM)mask);
171+
}
172+
168173
void SetItemState(int i, UINT state, UINT mask)
169174
{
170175
LV_ITEM item;

0 commit comments

Comments
 (0)