1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-31 07:59:27 +02:00

AUP3: Fix a couple of accessibility issues in the History Dialog

This commit is contained in:
Leland Lucius 2020-08-05 08:56:44 -05:00
parent 81598541de
commit 486957fc91
2 changed files with 36 additions and 17 deletions

View File

@ -57,6 +57,7 @@ enum {
};
BEGIN_EVENT_TABLE(HistoryDialog, wxDialogWrapper)
EVT_SHOW(HistoryDialog::OnShow)
EVT_SIZE(HistoryDialog::OnSize)
EVT_CLOSE(HistoryDialog::OnCloseWindow)
EVT_LIST_ITEM_SELECTED(wxID_ANY, HistoryDialog::OnItemSelected)
@ -93,6 +94,7 @@ HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
{
mList = S
.MinSize()
.ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnListKeyDown)
.AddListControlReportMode(
{ { XO("Action"), wxLIST_FORMAT_LEFT, 260 },
{ XO("Used Space"), wxLIST_FORMAT_LEFT, 125 } },
@ -105,15 +107,13 @@ HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
S.StartMultiColumn(3, wxCENTRE);
{
mTotal = S.Id(ID_TOTAL)
.ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnChar)
.AddTextBox(XXO("&Total space used"), wxT("0"), 10);
S.AddPrompt(XXO("&Total space used"));
mTotal = S.Id(ID_TOTAL).Style(wxTE_READONLY).AddTextBox({}, wxT(""), 10);
S.AddVariableText( {} )->Hide();
#if defined(ALLOW_DISCARD)
mAvail = S.Id(ID_AVAIL)
.ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnChar)
.AddTextBox(XXO("&Undo levels available"), wxT("0"), 10);
S.AddPrompt(XXO("&Undo levels available"));
mAvail = S.Id(ID_AVAIL).Style(wxTE_READONLY).AddTextBox({}, wxT(""), 10);
S.AddVariableText( {} )->Hide();
S.AddPrompt(XXO("&Levels to discard"));
@ -130,9 +130,8 @@ HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
/* i18n-hint: (verb)*/
mDiscard = S.Id(ID_DISCARD).AddButton(XXO("&Discard"));
#endif
mClipboard = S
.ConnectRoot(wxEVT_KEY_DOWN, &HistoryDialog::OnChar)
.AddTextBox(XXO("Clip&board space used"), wxT("0"), 10);
S.AddPrompt(XXO("Clip&board space used"));
mClipboard = S.Style(wxTE_READONLY).AddTextBox({}, wxT(""), 10);
#if defined(ALLOW_DISCARD)
S.Id(ID_DISCARD_CLIPBOARD).AddButton(XXO("D&iscard"));
@ -172,11 +171,6 @@ HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
parent->Bind(EVT_UNDO_RESET, &HistoryDialog::UpdateDisplay, this);
}
void HistoryDialog::OnChar( wxEvent& )
{
// ignore it
}
void HistoryDialog::OnAudioIO(wxCommandEvent& evt)
{
evt.Skip();
@ -346,9 +340,33 @@ void HistoryDialog::OnItemSelected(wxListEvent &event)
UpdateLevels();
}
void HistoryDialog::OnListKeyDown(wxKeyEvent & event)
{
switch (event.GetKeyCode())
{
case WXK_RETURN:
// Don't know why wxListCtrls prevent default dialog action,
// but they do, so handle it.
EmulateButtonClickIfPresent(GetAffirmativeId());
break;
default:
event.Skip();
break;
}
}
void HistoryDialog::OnCloseWindow(wxCloseEvent & WXUNUSED(event))
{
this->Show(false);
this->Show(false);
}
void HistoryDialog::OnShow(wxShowEvent & event)
{
if (event.IsShown())
{
mList->SetFocus();
}
}
void HistoryDialog::OnSize(wxSizeEvent & WXUNUSED(event))

View File

@ -36,9 +36,10 @@ class HistoryDialog final : public wxDialogWrapper {
void DoUpdate();
void UpdateLevels();
void OnChar(wxEvent &event);
void OnShow(wxShowEvent & event);
void OnSize(wxSizeEvent & event);
void OnCloseWindow(wxCloseEvent & WXUNUSED(event));
void OnCloseWindow(wxCloseEvent & event);
void OnListKeyDown(wxKeyEvent & event);
void OnItemSelected(wxListEvent & event);
void OnDiscard(wxCommandEvent & event);
void OnDiscardClipboard(wxCommandEvent & event);