mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Add select all to all generic list controls.
This commit is contained in:
parent
7deeb813a7
commit
fc6bbbff76
2 changed files with 26 additions and 1 deletions
|
@ -229,6 +229,11 @@ LRESULT CALLBACK GenericListControl::wndProc(HWND hwnd, UINT msg, WPARAM wParam,
|
|||
if (KeyDownAsync(VK_CONTROL))
|
||||
list->ProcessCopy();
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
if (KeyDownAsync(VK_CONTROL))
|
||||
list->SelectAll();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -238,7 +243,7 @@ LRESULT CALLBACK GenericListControl::wndProc(HWND hwnd, UINT msg, WPARAM wParam,
|
|||
|
||||
void GenericListControl::ProcessCopy()
|
||||
{
|
||||
int start = ListView_GetSelectionMark(handle);
|
||||
int start = GetSelectedIndex();
|
||||
int size;
|
||||
if (start == -1)
|
||||
size = GetRowCount();
|
||||
|
@ -251,6 +256,20 @@ void GenericListControl::ProcessCopy()
|
|||
void GenericListControl::CopyRows(int start, int size)
|
||||
{
|
||||
std::wstring data;
|
||||
|
||||
if (start == 0 && size == GetRowCount())
|
||||
{
|
||||
// Let's also copy the header if everything is selected.
|
||||
for (int c = 0; c < columnCount; ++c)
|
||||
{
|
||||
data.append(columns[c].name);
|
||||
if (c < columnCount - 1)
|
||||
data.append(L"\t");
|
||||
else
|
||||
data.append(L"\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
for (int r = start; r < start + size; ++r)
|
||||
{
|
||||
for (int c = 0; c < columnCount; ++c)
|
||||
|
@ -267,6 +286,11 @@ void GenericListControl::CopyRows(int start, int size)
|
|||
W32Util::CopyTextToClipboard(handle, data);
|
||||
}
|
||||
|
||||
void GenericListControl::SelectAll()
|
||||
{
|
||||
ListView_SetItemState(handle, -1, LVIS_SELECTED, LVIS_SELECTED);
|
||||
}
|
||||
|
||||
int GenericListControl::GetSelectedIndex()
|
||||
{
|
||||
return ListView_GetNextItem(handle, -1, LVNI_SELECTED);
|
||||
|
|
|
@ -47,6 +47,7 @@ private:
|
|||
static LRESULT CALLBACK wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
void ResizeColumns();
|
||||
void ProcessCopy();
|
||||
void SelectAll();
|
||||
|
||||
HWND handle;
|
||||
WNDPROC oldProc;
|
||||
|
|
Loading…
Add table
Reference in a new issue