1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-26 09:08:44 +02:00

Require an identifier for each popup menu item

This commit is contained in:
Paul Licameli 2020-02-03 15:33:48 -05:00
parent f68da05c1d
commit 99e3dd5d3f
9 changed files with 78 additions and 76 deletions

View File

@ -73,7 +73,7 @@ enum
BEGIN_POPUP_MENU(LabelTrackMenuTable) BEGIN_POPUP_MENU(LabelTrackMenuTable)
BEGIN_POPUP_MENU_SECTION( "Basic" ) BEGIN_POPUP_MENU_SECTION( "Basic" )
POPUP_MENU_ITEM(OnSetFontID, XO("&Font..."), OnSetFont) POPUP_MENU_ITEM( "Font", OnSetFontID, XO("&Font..."), OnSetFont)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU() END_POPUP_MENU()

View File

@ -132,8 +132,8 @@ void NoteTrackMenuTable::OnChangeOctave(wxCommandEvent &event)
BEGIN_POPUP_MENU(NoteTrackMenuTable) BEGIN_POPUP_MENU(NoteTrackMenuTable)
BEGIN_POPUP_MENU_SECTION( "Basic" ) BEGIN_POPUP_MENU_SECTION( "Basic" )
POPUP_MENU_ITEM(OnUpOctaveID, XO("Up &Octave"), OnChangeOctave) POPUP_MENU_ITEM( "Up", OnUpOctaveID, XO("Up &Octave"), OnChangeOctave)
POPUP_MENU_ITEM(OnDownOctaveID, XO("Down Octa&ve"), OnChangeOctave) POPUP_MENU_ITEM( "Down", OnDownOctaveID, XO("Down Octa&ve"), OnChangeOctave)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU() END_POPUP_MENU()

View File

@ -258,20 +258,20 @@ BEGIN_POPUP_MENU(NoteTrackVRulerMenuTable)
BEGIN_POPUP_MENU_SECTION( "Zoom" ) BEGIN_POPUP_MENU_SECTION( "Zoom" )
BEGIN_POPUP_MENU_SECTION( "Basic" ) BEGIN_POPUP_MENU_SECTION( "Basic" )
POPUP_MENU_ITEM(OnZoomResetID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset) POPUP_MENU_ITEM( "Reset", OnZoomResetID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
POPUP_MENU_ITEM(OnZoomMaxID, XO("Max Zoom"), OnZoomMax) POPUP_MENU_ITEM( "Max", OnZoomMaxID, XO("Max Zoom"), OnZoomMax)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "InOut" ) BEGIN_POPUP_MENU_SECTION( "InOut" )
POPUP_MENU_ITEM(OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical) POPUP_MENU_ITEM( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical)
POPUP_MENU_ITEM(OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical) POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "Pan" ) BEGIN_POPUP_MENU_SECTION( "Pan" )
BEGIN_POPUP_MENU_SECTION( "Octaves" ) BEGIN_POPUP_MENU_SECTION( "Octaves" )
POPUP_MENU_ITEM(OnUpOctaveID, XO("Up &Octave"), OnUpOctave) POPUP_MENU_ITEM( "Up", OnUpOctaveID, XO("Up &Octave"), OnUpOctave)
POPUP_MENU_ITEM(OnDownOctaveID, XO("Down Octa&ve"), OnDownOctave) POPUP_MENU_ITEM( "Down", OnDownOctaveID, XO("Down Octa&ve"), OnDownOctave)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()

View File

@ -281,7 +281,8 @@ BEGIN_POPUP_MENU_SECTION( "Scales" )
{ {
const auto & names = SpectrogramSettings::GetScaleNames(); const auto & names = SpectrogramSettings::GetScaleNames();
for (int ii = 0, nn = names.size(); ii < nn; ++ii) { for (int ii = 0, nn = names.size(); ii < nn; ++ii) {
POPUP_MENU_RADIO_ITEM(OnFirstSpectrumScaleID + ii, names[ii].Msgid(), POPUP_MENU_RADIO_ITEM( names[ii].Internal(),
OnFirstSpectrumScaleID + ii, names[ii].Msgid(),
OnSpectrumScaleType); OnSpectrumScaleType);
} }
} }
@ -289,10 +290,10 @@ END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "Zoom" ) BEGIN_POPUP_MENU_SECTION( "Zoom" )
POPUP_MENU_ITEM(OnZoomResetID, XO("Zoom Reset"), OnZoomReset) POPUP_MENU_ITEM( "Reset", OnZoomResetID, XO("Zoom Reset"), OnZoomReset)
POPUP_MENU_ITEM(OnZoomFitVerticalID, XO("Zoom to Fit\tShift-Right-Click"), OnZoomFitVertical) POPUP_MENU_ITEM( "Fit", OnZoomFitVerticalID, XO("Zoom to Fit\tShift-Right-Click"), OnZoomFitVertical)
POPUP_MENU_ITEM(OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical) POPUP_MENU_ITEM( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical)
POPUP_MENU_ITEM(OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical) POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU() END_POPUP_MENU()

View File

@ -206,13 +206,13 @@ const TranslatableString GetWaveColorStr(int colorIndex)
BEGIN_POPUP_MENU(WaveColorMenuTable) BEGIN_POPUP_MENU(WaveColorMenuTable)
POPUP_MENU_RADIO_ITEM(OnInstrument1ID, POPUP_MENU_RADIO_ITEM( "Instrument1", OnInstrument1ID,
GetWaveColorStr(0), OnWaveColorChange) GetWaveColorStr(0), OnWaveColorChange)
POPUP_MENU_RADIO_ITEM(OnInstrument2ID, POPUP_MENU_RADIO_ITEM( "Instrument2", OnInstrument2ID,
GetWaveColorStr(1), OnWaveColorChange) GetWaveColorStr(1), OnWaveColorChange)
POPUP_MENU_RADIO_ITEM(OnInstrument3ID, POPUP_MENU_RADIO_ITEM( "Instrument3", OnInstrument3ID,
GetWaveColorStr(2), OnWaveColorChange) GetWaveColorStr(2), OnWaveColorChange)
POPUP_MENU_RADIO_ITEM(OnInstrument4ID, POPUP_MENU_RADIO_ITEM( "Instrument4", OnInstrument4ID,
GetWaveColorStr(3), OnWaveColorChange) GetWaveColorStr(3), OnWaveColorChange)
END_POPUP_MENU() END_POPUP_MENU()
@ -300,11 +300,11 @@ void FormatMenuTable::InitMenu(wxMenu *pMenu)
} }
BEGIN_POPUP_MENU(FormatMenuTable) BEGIN_POPUP_MENU(FormatMenuTable)
POPUP_MENU_RADIO_ITEM(On16BitID, POPUP_MENU_RADIO_ITEM( "16Bit", On16BitID,
GetSampleFormatStr(int16Sample), OnFormatChange) GetSampleFormatStr(int16Sample), OnFormatChange)
POPUP_MENU_RADIO_ITEM(On24BitID, POPUP_MENU_RADIO_ITEM("24Bit", On24BitID,
GetSampleFormatStr(int24Sample), OnFormatChange) GetSampleFormatStr( int24Sample), OnFormatChange)
POPUP_MENU_RADIO_ITEM(OnFloatID, POPUP_MENU_RADIO_ITEM( "Float", OnFloatID,
GetSampleFormatStr(floatSample), OnFormatChange) GetSampleFormatStr(floatSample), OnFormatChange)
END_POPUP_MENU() END_POPUP_MENU()
@ -428,19 +428,19 @@ void RateMenuTable::InitMenu(wxMenu *pMenu)
// If we did, we'd get no message when clicking on Other... // If we did, we'd get no message when clicking on Other...
// when it is already selected. // when it is already selected.
BEGIN_POPUP_MENU(RateMenuTable) BEGIN_POPUP_MENU(RateMenuTable)
POPUP_MENU_CHECK_ITEM(OnRate8ID, XO("8000 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "8000", OnRate8ID, XO("8000 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate11ID, XO("11025 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "11025", OnRate11ID, XO("11025 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate16ID, XO("16000 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "16000", OnRate16ID, XO("16000 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate22ID, XO("22050 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "22050", OnRate22ID, XO("22050 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate44ID, XO("44100 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "44100", OnRate44ID, XO("44100 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate48ID, XO("48000 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "48000", OnRate48ID, XO("48000 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate88ID, XO("88200 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "88200", OnRate88ID, XO("88200 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate96ID, XO("96000 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "96000", OnRate96ID, XO("96000 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate176ID, XO("176400 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "176400", OnRate176ID, XO("176400 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate192ID, XO("192000 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "192000", OnRate192ID, XO("192000 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate352ID, XO("352800 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "352800", OnRate352ID, XO("352800 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRate384ID, XO("384000 Hz"), OnRateChange) POPUP_MENU_CHECK_ITEM( "384000", OnRate384ID, XO("384000 Hz"), OnRateChange)
POPUP_MENU_CHECK_ITEM(OnRateOtherID, XO("&Other..."), OnRateOther) POPUP_MENU_CHECK_ITEM( "Other", OnRateOtherID, XO("&Other..."), OnRateOther)
END_POPUP_MENU() END_POPUP_MENU()
const int nRates = 12; const int nRates = 12;
@ -771,19 +771,19 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
BEGIN_POPUP_MENU_SECTION( "SubViews" ) BEGIN_POPUP_MENU_SECTION( "SubViews" )
if ( WaveTrackSubViews::slots() > 1 ) if ( WaveTrackSubViews::slots() > 1 )
POPUP_MENU_CHECK_ITEM(OnMultiViewID, XO("&Multi-view"), OnMultiView) POPUP_MENU_CHECK_ITEM( "MultiView", OnMultiViewID, XO("&Multi-view"), OnMultiView)
int id = OnSetDisplayId; int id = OnSetDisplayId;
for ( const auto &type : AllTypes() ) { for ( const auto &type : AllTypes() ) {
if ( view.GetMultiView() ) { if ( view.GetMultiView() ) {
POPUP_MENU_CHECK_ITEM(id++, type.name.Msgid(), OnSetDisplay) POPUP_MENU_CHECK_ITEM( type.name.Internal(), id++, type.name.Msgid(), OnSetDisplay)
} }
else { else {
POPUP_MENU_RADIO_ITEM(id++, type.name.Msgid(), OnSetDisplay) POPUP_MENU_RADIO_ITEM( type.name.Internal(), id++, type.name.Msgid(), OnSetDisplay)
} }
} }
POPUP_MENU_ITEM(OnSpectrogramSettingsID, XO("S&pectrogram Settings..."), OnSpectrogramSettings) POPUP_MENU_ITEM( "SpectrogramSettings", OnSpectrogramSettingsID, XO("S&pectrogram Settings..."), OnSpectrogramSettings)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "Channels" ) BEGIN_POPUP_MENU_SECTION( "Channels" )
@ -792,13 +792,13 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
// POPUP_MENU_RADIO_ITEM(OnChannelMonoID, XO("&Mono"), OnChannelChange) // POPUP_MENU_RADIO_ITEM(OnChannelMonoID, XO("&Mono"), OnChannelChange)
// POPUP_MENU_RADIO_ITEM(OnChannelLeftID, XO("&Left Channel"), OnChannelChange) // POPUP_MENU_RADIO_ITEM(OnChannelLeftID, XO("&Left Channel"), OnChannelChange)
// POPUP_MENU_RADIO_ITEM(OnChannelRightID, XO("R&ight Channel"), OnChannelChange) // POPUP_MENU_RADIO_ITEM(OnChannelRightID, XO("R&ight Channel"), OnChannelChange)
POPUP_MENU_ITEM(OnMergeStereoID, XO("Ma&ke Stereo Track"), OnMergeStereo) POPUP_MENU_ITEM( "MakeStereo", OnMergeStereoID, XO("Ma&ke Stereo Track"), OnMergeStereo)
POPUP_MENU_ITEM(OnSwapChannelsID, XO("Swap Stereo &Channels"), OnSwapChannels) POPUP_MENU_ITEM( "Swap", OnSwapChannelsID, XO("Swap Stereo &Channels"), OnSwapChannels)
POPUP_MENU_ITEM(OnSplitStereoID, XO("Spl&it Stereo Track"), OnSplitStereo) POPUP_MENU_ITEM( "Split", OnSplitStereoID, XO("Spl&it Stereo Track"), OnSplitStereo)
// DA: Uses split stereo track and then drag pan sliders for split-stereo-to-mono // DA: Uses split stereo track and then drag pan sliders for split-stereo-to-mono
#ifndef EXPERIMENTAL_DA #ifndef EXPERIMENTAL_DA
POPUP_MENU_ITEM(OnSplitStereoMonoID, XO("Split Stereo to Mo&no"), OnSplitStereoMono) POPUP_MENU_ITEM( "SplitToMono", OnSplitStereoMonoID, XO("Split Stereo to Mo&no"), OnSplitStereoMono)
#endif #endif
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
@ -810,17 +810,17 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
) ); ) );
if( hasWaveform ){ if( hasWaveform ){
BEGIN_POPUP_MENU_SECTION( "WaveColor" ) BEGIN_POPUP_MENU_SECTION( "WaveColor" )
POPUP_MENU_SUB_MENU(WaveColorMenuTable) POPUP_MENU_SUB_MENU( "WaveColor", WaveColorMenuTable)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
} }
} }
BEGIN_POPUP_MENU_SECTION( "Format" ) BEGIN_POPUP_MENU_SECTION( "Format" )
POPUP_MENU_SUB_MENU(FormatMenuTable) POPUP_MENU_SUB_MENU( "Format", FormatMenuTable)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "Rate" ) BEGIN_POPUP_MENU_SECTION( "Rate" )
POPUP_MENU_SUB_MENU(RateMenuTable) POPUP_MENU_SUB_MENU( "Rate", RateMenuTable)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU() END_POPUP_MENU()

View File

@ -283,7 +283,8 @@ BEGIN_POPUP_MENU(WaveformVRulerMenuTable)
{ {
const auto & names = WaveformSettings::GetScaleNames(); const auto & names = WaveformSettings::GetScaleNames();
for (int ii = 0, nn = names.size(); ii < nn; ++ii) { for (int ii = 0, nn = names.size(); ii < nn; ++ii) {
POPUP_MENU_RADIO_ITEM(OnFirstWaveformScaleID + ii, names[ii].Msgid(), POPUP_MENU_RADIO_ITEM( names[ii].Internal(),
OnFirstWaveformScaleID + ii, names[ii].Msgid(),
OnWaveformScaleType); OnWaveformScaleType);
} }
} }
@ -291,18 +292,18 @@ BEGIN_POPUP_MENU(WaveformVRulerMenuTable)
BEGIN_POPUP_MENU_SECTION( "Zoom" ) BEGIN_POPUP_MENU_SECTION( "Zoom" )
BEGIN_POPUP_MENU_SECTION( "Basic" ) BEGIN_POPUP_MENU_SECTION( "Basic" )
POPUP_MENU_ITEM(OnZoomFitVerticalID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset) POPUP_MENU_ITEM( "Reset", OnZoomFitVerticalID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
POPUP_MENU_ITEM(OnZoomDiv2ID, XO("Zoom x1/2"), OnZoomDiv2Vertical) POPUP_MENU_ITEM( "TimesHalf", OnZoomDiv2ID, XO("Zoom x1/2"), OnZoomDiv2Vertical)
POPUP_MENU_ITEM(OnZoomTimes2ID, XO("Zoom x2"), OnZoomTimes2Vertical) POPUP_MENU_ITEM( "TimesTwo", OnZoomTimes2ID, XO("Zoom x2"), OnZoomTimes2Vertical)
#ifdef EXPERIMENTAL_HALF_WAVE #ifdef EXPERIMENTAL_HALF_WAVE
POPUP_MENU_ITEM(OnZoomHalfWaveID, XO("Half Wave"), OnZoomHalfWave) POPUP_MENU_ITEM( "HalfWave", OnZoomHalfWaveID, XO("Half Wave"), OnZoomHalfWave)
#endif #endif
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "InOut" ) BEGIN_POPUP_MENU_SECTION( "InOut" )
POPUP_MENU_ITEM(OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical) POPUP_MENU_ITEM( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical)
POPUP_MENU_ITEM(OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical) POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()

View File

@ -163,13 +163,13 @@ void TimeTrackMenuTable::OnTimeTrackLogInt(wxCommandEvent & /*event*/)
BEGIN_POPUP_MENU(TimeTrackMenuTable) BEGIN_POPUP_MENU(TimeTrackMenuTable)
BEGIN_POPUP_MENU_SECTION( "Scales" ) BEGIN_POPUP_MENU_SECTION( "Scales" )
POPUP_MENU_RADIO_ITEM(OnTimeTrackLinID, XO("&Linear scale"), OnTimeTrackLin) POPUP_MENU_RADIO_ITEM( "Linear", OnTimeTrackLinID, XO("&Linear scale"), OnTimeTrackLin)
POPUP_MENU_RADIO_ITEM(OnTimeTrackLogID, XO("L&ogarithmic scale"), OnTimeTrackLog) POPUP_MENU_RADIO_ITEM( "Log", OnTimeTrackLogID, XO("L&ogarithmic scale"), OnTimeTrackLog)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "Other" ) BEGIN_POPUP_MENU_SECTION( "Other" )
POPUP_MENU_ITEM(OnSetTimeTrackRangeID, XO("&Range..."), OnSetTimeTrackRange) POPUP_MENU_ITEM( "Range", OnSetTimeTrackRangeID, XO("&Range..."), OnSetTimeTrackRange)
POPUP_MENU_CHECK_ITEM(OnTimeTrackLogIntID, XO("Logarithmic &Interpolation"), OnTimeTrackLogInt) POPUP_MENU_CHECK_ITEM( "LogInterp", OnTimeTrackLogIntID, XO("Logarithmic &Interpolation"), OnTimeTrackLogInt)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
END_POPUP_MENU() END_POPUP_MENU()

View File

@ -128,10 +128,10 @@ void TrackMenuTable::InitMenu(wxMenu *pMenu)
BEGIN_POPUP_MENU(TrackMenuTable) BEGIN_POPUP_MENU(TrackMenuTable)
BEGIN_POPUP_MENU_SECTION( "Basic" ) BEGIN_POPUP_MENU_SECTION( "Basic" )
POPUP_MENU_ITEM(OnSetNameID, XO("&Name..."), OnSetName) POPUP_MENU_ITEM( "Name", OnSetNameID, XO("&Name..."), OnSetName)
END_POPUP_MENU_SECTION() END_POPUP_MENU_SECTION()
BEGIN_POPUP_MENU_SECTION( "Move" ) BEGIN_POPUP_MENU_SECTION( "Move" )
POPUP_MENU_ITEM( POPUP_MENU_ITEM( "Up",
// It is not correct to use NormalizedKeyString::Display here -- // It is not correct to use NormalizedKeyString::Display here --
// wxWidgets will apply its equivalent to the key names passed to menu // wxWidgets will apply its equivalent to the key names passed to menu
// functions. // functions.
@ -144,7 +144,7 @@ BEGIN_POPUP_MENU(TrackMenuTable)
wxT("\t") wxT("\t")
), ),
OnMoveTrack) OnMoveTrack)
POPUP_MENU_ITEM( POPUP_MENU_ITEM( "Down",
OnMoveDownID, OnMoveDownID,
XO("Move Track &Down").Join( XO("Move Track &Down").Join(
Verbatim( Verbatim(
@ -154,7 +154,7 @@ BEGIN_POPUP_MENU(TrackMenuTable)
wxT("\t") wxT("\t")
), ),
OnMoveTrack) OnMoveTrack)
POPUP_MENU_ITEM( POPUP_MENU_ITEM( "Top",
OnMoveTopID, OnMoveTopID,
XO("Move Track to &Top").Join( XO("Move Track to &Top").Join(
Verbatim( Verbatim(
@ -164,7 +164,7 @@ BEGIN_POPUP_MENU(TrackMenuTable)
wxT("\t") wxT("\t")
), ),
OnMoveTrack) OnMoveTrack)
POPUP_MENU_ITEM( POPUP_MENU_ITEM( "Bottom",
OnMoveBottomID, OnMoveBottomID,
XO("Move Track to &Bottom").Join( XO("Move Track to &Bottom").Join(
Verbatim( Verbatim(

View File

@ -136,7 +136,7 @@ BEGIN_POPUP_MENU(MyTable)
// This is inside a function and can contain arbitrary code. But usually // This is inside a function and can contain arbitrary code. But usually
// you only need a sequence of macro calls: // you only need a sequence of macro calls:
POPUP_MENU_ITEM(OnCutSelectedTextID, XO("Cu&t"), OnCutSelectedText) POPUP_MENU_ITEM("Cut", OnCutSelectedTextID, XO("Cu&t"), OnCutSelectedText)
// etc. // etc.
END_POPUP_MENU() END_POPUP_MENU()
@ -166,7 +166,7 @@ That's all!
void HandlerClass::Populate() { \ void HandlerClass::Populate() { \
using My = HandlerClass; using My = HandlerClass;
#define POPUP_MENU_APPEND(type, id, string, memFn, subTable) \ #define POPUP_MENU_APPEND(stringId, type, id, string, memFn, subTable) \
mContents.push_back( Entry { \ mContents.push_back( Entry { \
type, \ type, \
id, \ id, \
@ -175,37 +175,37 @@ void HandlerClass::Populate() { \
subTable \ subTable \
} ); } );
#define POPUP_MENU_APPEND_ITEM(type, id, string, memFn) \ #define POPUP_MENU_APPEND_ITEM(stringId, type, id, string, memFn) \
POPUP_MENU_APPEND( \ POPUP_MENU_APPEND( stringId, \
type, \ type, \
id, \ id, \
string, \ string, \
(wxCommandEventFunction) (&My::memFn), \ (wxCommandEventFunction) (&My::memFn), \
nullptr ) nullptr )
#define POPUP_MENU_ITEM(id, string, memFn) \ #define POPUP_MENU_ITEM(stringId, id, string, memFn) \
POPUP_MENU_APPEND_ITEM(Entry::Item, id, string, memFn); POPUP_MENU_APPEND_ITEM(stringId, Entry::Item, id, string, memFn);
#define POPUP_MENU_RADIO_ITEM(id, string, memFn) \ #define POPUP_MENU_RADIO_ITEM(stringId, id, string, memFn) \
POPUP_MENU_APPEND_ITEM(Entry::RadioItem, id, string, memFn); POPUP_MENU_APPEND_ITEM(stringId, Entry::RadioItem, id, string, memFn);
#define POPUP_MENU_CHECK_ITEM(id, string, memFn) \ #define POPUP_MENU_CHECK_ITEM(stringId, id, string, memFn) \
POPUP_MENU_APPEND_ITEM(Entry::CheckItem, id, string, memFn); POPUP_MENU_APPEND_ITEM(stringId, Entry::CheckItem, id, string, memFn);
// classname names a class that derives from MenuTable and defines Instance() // classname names a class that derives from MenuTable and defines Instance()
#define POPUP_MENU_SUB_MENU(classname) \ #define POPUP_MENU_SUB_MENU(stringId, classname) \
POPUP_MENU_APPEND( \ POPUP_MENU_APPEND( stringId, \
Entry::SubMenu, -1, classname::Instance().Caption(), nullptr, &classname::Instance() ); Entry::SubMenu, -1, classname::Instance().Caption(), nullptr, &classname::Instance() );
#define BEGIN_POPUP_MENU_SECTION( name ) \ #define BEGIN_POPUP_MENU_SECTION( name ) \
POPUP_MENU_APPEND( \ POPUP_MENU_APPEND( "", \
Entry::Separator, -1, {}, nullptr, nullptr ); Entry::Separator, -1, {}, nullptr, nullptr );
#define END_POPUP_MENU_SECTION() #define END_POPUP_MENU_SECTION()
// ends function // ends function
#define END_POPUP_MENU() \ #define END_POPUP_MENU() \
POPUP_MENU_APPEND( \ POPUP_MENU_APPEND( "", \
Entry::Invalid, -1, {}, nullptr, nullptr ) \ Entry::Invalid, -1, {}, nullptr, nullptr ) \
} }