mirror of
https://github.com/cookiengineer/audacity
synced 2025-07-16 16:47:41 +02:00
Bug 2692 - Mac: VI users get trapped in radio buttons of Keyboard Preferences
This also corrects similar problems in other locations as well.
This commit is contained in:
parent
cf09d4feea
commit
7a55c90b9d
@ -854,7 +854,7 @@ void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S)
|
||||
m_pTimerSavePathTextCtrl = NewPathControl(
|
||||
S.GetParent(), ID_AUTOSAVEPATH_TEXT,
|
||||
XO("Save Project As:"), sInitialValue);
|
||||
m_pTimerSavePathTextCtrl->SetEditable(false);
|
||||
m_pTimerSavePathTextCtrl->SetReadOnly(true);
|
||||
S.AddWindow(m_pTimerSavePathTextCtrl);
|
||||
m_pTimerSavePathButtonCtrl = S.Id(ID_AUTOSAVEPATH_BUTTON).AddButton(XXO("Select..."));
|
||||
}
|
||||
@ -871,7 +871,7 @@ void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S)
|
||||
m_pTimerExportPathTextCtrl = NewPathControl(
|
||||
S.GetParent(), ID_AUTOEXPORTPATH_TEXT,
|
||||
XO("Export Project As:"), {});
|
||||
m_pTimerExportPathTextCtrl->SetEditable(false);
|
||||
m_pTimerExportPathTextCtrl->SetReadOnly(true);
|
||||
S.AddWindow(m_pTimerExportPathTextCtrl);
|
||||
m_pTimerExportPathButtonCtrl = S.Id(ID_AUTOEXPORTPATH_BUTTON).AddButton(XXO("Select..."));
|
||||
}
|
||||
|
@ -345,18 +345,25 @@ void ExportMP3Options::PopulateOrExchange(ShuttleGui & S)
|
||||
S.StartTwoColumn();
|
||||
{
|
||||
S.AddPrompt(XXO("Bit Rate Mode:"));
|
||||
S.StartHorizontalLay();
|
||||
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
S.StartRadioButtonGroup(MP3RateModeSetting);
|
||||
S.StartHorizontalLay();
|
||||
{
|
||||
mSET = S.Id(ID_SET).TieRadioButton();
|
||||
mVBR = S.Id(ID_VBR).TieRadioButton();
|
||||
mABR = S.Id(ID_ABR).TieRadioButton();
|
||||
mCBR = S.Id(ID_CBR).TieRadioButton();
|
||||
S.StartRadioButtonGroup(MP3RateModeSetting);
|
||||
{
|
||||
mSET = S.Id(ID_SET).TieRadioButton();
|
||||
mVBR = S.Id(ID_VBR).TieRadioButton();
|
||||
mABR = S.Id(ID_ABR).TieRadioButton();
|
||||
mCBR = S.Id(ID_CBR).TieRadioButton();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
S.EndPanel();
|
||||
|
||||
/* PRL: unfortunately this bit of procedural code must
|
||||
interrupt the mostly-declarative dialog description, until
|
||||
@ -407,20 +414,30 @@ void ExportMP3Options::PopulateOrExchange(ShuttleGui & S)
|
||||
varModeNames );
|
||||
|
||||
S.AddPrompt(XXO("Channel Mode:"));
|
||||
S.StartMultiColumn(3, wxEXPAND);
|
||||
S.StartMultiColumn(2, wxEXPAND);
|
||||
{
|
||||
S.StartRadioButtonGroup(MP3ChannelModeSetting);
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
mJoint = S.Disable(mono)
|
||||
.TieRadioButton();
|
||||
mStereo = S.Disable(mono)
|
||||
.TieRadioButton();
|
||||
S.StartHorizontalLay();
|
||||
{
|
||||
S.StartRadioButtonGroup(MP3ChannelModeSetting);
|
||||
{
|
||||
mJoint = S.Disable(mono)
|
||||
.TieRadioButton();
|
||||
mStereo = S.Disable(mono)
|
||||
.TieRadioButton();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
S.EndPanel();
|
||||
|
||||
mMono = S.Id(ID_MONO).AddCheckBox(XXO("Force export to mono"), mono);
|
||||
}
|
||||
S.EndTwoColumn();
|
||||
S.EndMultiColumn();
|
||||
}
|
||||
S.EndTwoColumn();
|
||||
}
|
||||
|
@ -329,15 +329,22 @@ void ExportMultipleDialog::PopulateOrExchange(ShuttleGui& S)
|
||||
{
|
||||
// Row 1
|
||||
S.SetBorder(1);
|
||||
mTrack = S.Id(TrackID)
|
||||
.AddRadioButton(XXO("Tracks"));
|
||||
|
||||
// Row 2
|
||||
S.SetBorder(1);
|
||||
mLabel = S.Id(LabelID)
|
||||
.AddRadioButtonToGroup(XXO("Labels"));
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
mTrack = S.Id(TrackID)
|
||||
.AddRadioButton(XXO("Tracks"));
|
||||
|
||||
// Row 2
|
||||
S.SetBorder(1);
|
||||
mLabel = S.Id(LabelID)
|
||||
.AddRadioButtonToGroup(XXO("Labels"));
|
||||
}
|
||||
S.EndPanel();
|
||||
|
||||
S.SetBorder(3);
|
||||
|
||||
S.StartMultiColumn(2, wxEXPAND);
|
||||
S.SetStretchyCol(1);
|
||||
{
|
||||
@ -372,23 +379,30 @@ void ExportMultipleDialog::PopulateOrExchange(ShuttleGui& S)
|
||||
S.StartStatic(XO("Name files:"), 1);
|
||||
{
|
||||
S.SetBorder(2);
|
||||
S.StartRadioButtonGroup({
|
||||
wxT("/Export/TrackNameWithOrWithoutNumbers"),
|
||||
{
|
||||
{ wxT("labelTrack"), XXO("Using Label/Track Name") },
|
||||
{ wxT("numberBefore"), XXO("Numbering before Label/Track Name") },
|
||||
{ wxT("numberAfter"), XXO("Numbering after File name prefix") },
|
||||
},
|
||||
0 // labelTrack
|
||||
});
|
||||
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
mByName = S.Id(ByNameID).TieRadioButton();
|
||||
S.StartRadioButtonGroup({
|
||||
wxT("/Export/TrackNameWithOrWithoutNumbers"),
|
||||
{
|
||||
{ wxT("labelTrack"), XXO("Using Label/Track Name") },
|
||||
{ wxT("numberBefore"), XXO("Numbering before Label/Track Name") },
|
||||
{ wxT("numberAfter"), XXO("Numbering after File name prefix") },
|
||||
},
|
||||
0 // labelTrack
|
||||
});
|
||||
{
|
||||
mByName = S.Id(ByNameID).TieRadioButton();
|
||||
|
||||
mByNumberAndName = S.Id(ByNameAndNumberID).TieRadioButton();
|
||||
mByNumberAndName = S.Id(ByNameAndNumberID).TieRadioButton();
|
||||
|
||||
mByNumber = S.Id(ByNumberID).TieRadioButton();
|
||||
mByNumber = S.Id(ByNumberID).TieRadioButton();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
S.EndPanel();
|
||||
|
||||
S.StartMultiColumn(3, wxEXPAND);
|
||||
S.SetStretchyCol(2);
|
||||
|
@ -110,12 +110,18 @@ void ImportExportPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
|
||||
S.StartStatic(XO("When exporting tracks to an audio file"));
|
||||
{
|
||||
S.StartRadioButtonGroup(ImportExportPrefs::ExportDownMixSetting);
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
S.TieRadioButton();
|
||||
S.TieRadioButton();
|
||||
S.StartRadioButtonGroup(ImportExportPrefs::ExportDownMixSetting);
|
||||
{
|
||||
S.TieRadioButton();
|
||||
S.TieRadioButton();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
S.EndPanel();
|
||||
|
||||
S.TieCheckBox(XXO("S&how Metadata Tags editor before export"),
|
||||
{wxT("/AudioFiles/ShowId3Dialog"),
|
||||
@ -129,24 +135,36 @@ void ImportExportPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
|
||||
S.StartStatic(XO("Exported Label Style:"));
|
||||
{
|
||||
S.StartRadioButtonGroup(ImportExportPrefs::LabelStyleSetting);
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
S.TieRadioButton();
|
||||
S.TieRadioButton();
|
||||
S.StartRadioButtonGroup(ImportExportPrefs::LabelStyleSetting);
|
||||
{
|
||||
S.TieRadioButton();
|
||||
S.TieRadioButton();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
S.EndPanel();
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
#ifdef USE_MIDI
|
||||
S.StartStatic(XO("Exported Allegro (.gro) files save time as:"));
|
||||
{
|
||||
S.StartRadioButtonGroup(ImportExportPrefs::AllegroStyleSetting);
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
S.TieRadioButton();
|
||||
S.TieRadioButton();
|
||||
S.StartRadioButtonGroup(ImportExportPrefs::AllegroStyleSetting);
|
||||
{
|
||||
S.TieRadioButton();
|
||||
S.TieRadioButton();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
S.EndPanel();
|
||||
}
|
||||
S.EndStatic();
|
||||
#endif
|
||||
|
@ -176,52 +176,53 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
|
||||
S.StartStatic(XO("Key Bindings"), 1);
|
||||
{
|
||||
S.StartMultiColumn(3, wxEXPAND);
|
||||
S.StartHorizontalLay(wxEXPAND, 0);
|
||||
{
|
||||
S.SetStretchyCol(1);
|
||||
S.Position(wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL).AddTitle(XO("View by:"));
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
// Bug 2692: Place button group in panel so tabbing will work and,
|
||||
// on the Mac, VoiceOver will announce as radio buttons.
|
||||
S.StartPanel();
|
||||
{
|
||||
S.AddTitle(XO("View by:"));
|
||||
S.StartRadioButtonGroup({
|
||||
wxT("/Prefs/KeyConfig/ViewBy"),
|
||||
{
|
||||
{ wxT("tree"), XXO("&Tree") },
|
||||
{ wxT("name"), XXO("&Name") },
|
||||
{ wxT("key"), XXO("&Key") },
|
||||
},
|
||||
0 // tree
|
||||
});
|
||||
S.StartHorizontalLay();
|
||||
{
|
||||
mViewByTree = S.Id(ViewByTreeID)
|
||||
.Name(XO("View by tree"))
|
||||
.TieRadioButton();
|
||||
mViewByName = S.Id(ViewByNameID)
|
||||
.Name(XO("View by name"))
|
||||
.TieRadioButton();
|
||||
mViewByKey = S.Id(ViewByKeyID)
|
||||
.Name(XO("View by key"))
|
||||
.TieRadioButton();
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
// so that name can be set on a standard control
|
||||
if (mViewByTree) mViewByTree->SetAccessible(safenew WindowAccessible(mViewByTree));
|
||||
if (mViewByName) mViewByName->SetAccessible(safenew WindowAccessible(mViewByName));
|
||||
if (mViewByKey) mViewByKey->SetAccessible(safenew WindowAccessible(mViewByKey));
|
||||
S.StartRadioButtonGroup({
|
||||
wxT("/Prefs/KeyConfig/ViewBy"),
|
||||
{
|
||||
{ wxT("tree"), XXO("&Tree") },
|
||||
{ wxT("name"), XXO("&Name") },
|
||||
{ wxT("key"), XXO("&Key") },
|
||||
},
|
||||
0 // tree
|
||||
});
|
||||
{
|
||||
mViewByTree = S.Id(ViewByTreeID)
|
||||
.Name(XO("View by tree"))
|
||||
.TieRadioButton();
|
||||
mViewByName = S.Id(ViewByNameID)
|
||||
.Name(XO("View by name"))
|
||||
.TieRadioButton();
|
||||
mViewByKey = S.Id(ViewByKeyID)
|
||||
.Name(XO("View by key"))
|
||||
.TieRadioButton();
|
||||
#if !defined(__WXMAC__) && wxUSE_ACCESSIBILITY
|
||||
// so that name can be set on a standard control
|
||||
if (mViewByTree) mViewByTree->SetAccessible(safenew WindowAccessible(mViewByTree));
|
||||
if (mViewByName) mViewByName->SetAccessible(safenew WindowAccessible(mViewByName));
|
||||
if (mViewByKey) mViewByKey->SetAccessible(safenew WindowAccessible(mViewByKey));
|
||||
#endif
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
S.EndPanel();
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL, 0);
|
||||
{
|
||||
// just a spacer
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
S.AddSpace(wxDefaultCoord, wxDefaultCoord, 1);
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
S.StartHorizontalLay(wxALIGN_CENTER_VERTICAL, 0);
|
||||
{
|
||||
mFilterLabel = S.AddVariableText(XO("Searc&h:"));
|
||||
mFilterLabel = S.Position(wxALIGN_CENTER_VERTICAL).AddVariableText(XO("Searc&h:"));
|
||||
|
||||
if (!mFilter) {
|
||||
mFilter = safenew wxTextCtrl(S.GetParent(),
|
||||
@ -245,8 +246,9 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
S.EndThreeColumn();
|
||||
S.AddSpace(-1, 2);
|
||||
S.EndHorizontalLay();
|
||||
|
||||
S.AddSpace(wxDefaultCoord, 2);
|
||||
|
||||
S.StartHorizontalLay(wxEXPAND, 1);
|
||||
{
|
||||
@ -273,7 +275,7 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
wxSize(210, -1),
|
||||
#endif
|
||||
wxTE_PROCESS_ENTER);
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
#if !defined(__WXMAC__) && wxUSE_ACCESSIBILITY
|
||||
// so that name can be set on a standard control
|
||||
mKey->SetAccessible(safenew WindowAccessible(mKey));
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user