Replace some macros for popup menus with function calls
This commit is contained in:
parent
30b26a0b99
commit
e1e0869e26
|
@ -72,9 +72,9 @@ enum
|
|||
};
|
||||
|
||||
BEGIN_POPUP_MENU(LabelTrackMenuTable)
|
||||
BEGIN_POPUP_MENU_SECTION( "Basic" )
|
||||
POPUP_MENU_ITEM( "Font", OnSetFontID, XO("&Font..."), OnSetFont)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "Basic" );
|
||||
AppendItem( "Font", OnSetFontID, XO("&Font..."), POPUP_MENU_FN( OnSetFont ) );
|
||||
EndSection();
|
||||
END_POPUP_MENU()
|
||||
|
||||
void LabelTrackMenuTable::OnSetFont(wxCommandEvent &)
|
||||
|
|
|
@ -131,10 +131,10 @@ void NoteTrackMenuTable::OnChangeOctave(wxCommandEvent &event)
|
|||
}
|
||||
|
||||
BEGIN_POPUP_MENU(NoteTrackMenuTable)
|
||||
BEGIN_POPUP_MENU_SECTION( "Basic" )
|
||||
POPUP_MENU_ITEM( "Up", OnUpOctaveID, XO("Up &Octave"), OnChangeOctave)
|
||||
POPUP_MENU_ITEM( "Down", OnDownOctaveID, XO("Down Octa&ve"), OnChangeOctave)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "Basic" );
|
||||
AppendItem( "Up", OnUpOctaveID, XO("Up &Octave"), POPUP_MENU_FN( OnChangeOctave ) );
|
||||
AppendItem( "Down", OnDownOctaveID, XO("Down Octa&ve"), POPUP_MENU_FN( OnChangeOctave ) );
|
||||
EndSection();
|
||||
END_POPUP_MENU()
|
||||
|
||||
PopupMenuTable *NoteTrackControls::GetMenuExtension(Track *)
|
||||
|
|
|
@ -256,24 +256,24 @@ void NoteTrackVRulerMenuTable::OnZoom( int iZoomCode ){
|
|||
|
||||
BEGIN_POPUP_MENU(NoteTrackVRulerMenuTable)
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Zoom" )
|
||||
BEGIN_POPUP_MENU_SECTION( "Basic" )
|
||||
POPUP_MENU_ITEM( "Reset", OnZoomResetID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
|
||||
POPUP_MENU_ITEM( "Max", OnZoomMaxID, XO("Max Zoom"), OnZoomMax)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "Zoom" );
|
||||
BeginSection( "Basic" );
|
||||
AppendItem( "Reset", OnZoomResetID, XO("Zoom Reset\tShift-Right-Click"), POPUP_MENU_FN( OnZoomReset ) );
|
||||
AppendItem( "Max", OnZoomMaxID, XO("Max Zoom"), POPUP_MENU_FN( OnZoomMax ) );
|
||||
EndSection();
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "InOut" )
|
||||
POPUP_MENU_ITEM( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical)
|
||||
POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical)
|
||||
END_POPUP_MENU_SECTION()
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "InOut" );
|
||||
AppendItem( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), POPUP_MENU_FN( OnZoomInVertical ) );
|
||||
AppendItem( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), POPUP_MENU_FN( OnZoomOutVertical ) );
|
||||
EndSection();
|
||||
EndSection();
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Pan" )
|
||||
BEGIN_POPUP_MENU_SECTION( "Octaves" )
|
||||
POPUP_MENU_ITEM( "Up", OnUpOctaveID, XO("Up &Octave"), OnUpOctave)
|
||||
POPUP_MENU_ITEM( "Down", OnDownOctaveID, XO("Down Octa&ve"), OnDownOctave)
|
||||
END_POPUP_MENU_SECTION()
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "Pan" );
|
||||
BeginSection( "Octaves" );
|
||||
AppendItem( "Up", OnUpOctaveID, XO("Up &Octave"), POPUP_MENU_FN( OnUpOctave) );
|
||||
AppendItem( "Down", OnDownOctaveID, XO("Down Octa&ve"), POPUP_MENU_FN( OnDownOctave ) );
|
||||
EndSection();
|
||||
EndSection();
|
||||
|
||||
END_POPUP_MENU()
|
||||
|
||||
|
|
|
@ -277,24 +277,28 @@ void SpectrumVRulerMenuTable::InitMenu(wxMenu *pMenu)
|
|||
|
||||
BEGIN_POPUP_MENU(SpectrumVRulerMenuTable)
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Scales" )
|
||||
BeginSection( "Scales" );
|
||||
{
|
||||
const auto & names = SpectrogramSettings::GetScaleNames();
|
||||
for (int ii = 0, nn = names.size(); ii < nn; ++ii) {
|
||||
POPUP_MENU_RADIO_ITEM( names[ii].Internal(),
|
||||
AppendRadioItem( names[ii].Internal(),
|
||||
OnFirstSpectrumScaleID + ii, names[ii].Msgid(),
|
||||
OnSpectrumScaleType);
|
||||
POPUP_MENU_FN( OnSpectrumScaleType ) );
|
||||
}
|
||||
}
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Zoom" )
|
||||
POPUP_MENU_ITEM( "Reset", OnZoomResetID, XO("Zoom Reset"), OnZoomReset)
|
||||
POPUP_MENU_ITEM( "Fit", OnZoomFitVerticalID, XO("Zoom to Fit\tShift-Right-Click"), OnZoomFitVertical)
|
||||
POPUP_MENU_ITEM( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical)
|
||||
POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "Zoom" );
|
||||
AppendItem( "Reset", OnZoomResetID, XO("Zoom Reset"),
|
||||
POPUP_MENU_FN( OnZoomReset ) );
|
||||
AppendItem( "Fit", OnZoomFitVerticalID, XO("Zoom to Fit\tShift-Right-Click"),
|
||||
POPUP_MENU_FN( OnZoomFitVertical ) );
|
||||
AppendItem( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"),
|
||||
POPUP_MENU_FN( OnZoomInVertical ) );
|
||||
AppendItem( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"),
|
||||
POPUP_MENU_FN( OnZoomOutVertical ) );
|
||||
EndSection();
|
||||
|
||||
END_POPUP_MENU()
|
||||
|
||||
|
|
|
@ -206,14 +206,14 @@ const TranslatableString GetWaveColorStr(int colorIndex)
|
|||
|
||||
|
||||
BEGIN_POPUP_MENU(WaveColorMenuTable)
|
||||
POPUP_MENU_RADIO_ITEM( "Instrument1", OnInstrument1ID,
|
||||
GetWaveColorStr(0), OnWaveColorChange)
|
||||
POPUP_MENU_RADIO_ITEM( "Instrument2", OnInstrument2ID,
|
||||
GetWaveColorStr(1), OnWaveColorChange)
|
||||
POPUP_MENU_RADIO_ITEM( "Instrument3", OnInstrument3ID,
|
||||
GetWaveColorStr(2), OnWaveColorChange)
|
||||
POPUP_MENU_RADIO_ITEM( "Instrument4", OnInstrument4ID,
|
||||
GetWaveColorStr(3), OnWaveColorChange)
|
||||
AppendRadioItem( "Instrument1", OnInstrument1ID,
|
||||
GetWaveColorStr(0), POPUP_MENU_FN( OnWaveColorChange ) );
|
||||
AppendRadioItem( "Instrument2", OnInstrument2ID,
|
||||
GetWaveColorStr(1), POPUP_MENU_FN( OnWaveColorChange ) );
|
||||
AppendRadioItem( "Instrument3", OnInstrument3ID,
|
||||
GetWaveColorStr(2), POPUP_MENU_FN( OnWaveColorChange ) );
|
||||
AppendRadioItem( "Instrument4", OnInstrument4ID,
|
||||
GetWaveColorStr(3), POPUP_MENU_FN( OnWaveColorChange ) );
|
||||
END_POPUP_MENU()
|
||||
|
||||
/// Converts a WaveColor enumeration to a wxWidgets menu item Id.
|
||||
|
@ -300,12 +300,12 @@ void FormatMenuTable::InitMenu(wxMenu *pMenu)
|
|||
}
|
||||
|
||||
BEGIN_POPUP_MENU(FormatMenuTable)
|
||||
POPUP_MENU_RADIO_ITEM( "16Bit", On16BitID,
|
||||
GetSampleFormatStr(int16Sample), OnFormatChange)
|
||||
POPUP_MENU_RADIO_ITEM("24Bit", On24BitID,
|
||||
GetSampleFormatStr( int24Sample), OnFormatChange)
|
||||
POPUP_MENU_RADIO_ITEM( "Float", OnFloatID,
|
||||
GetSampleFormatStr(floatSample), OnFormatChange)
|
||||
AppendRadioItem( "16Bit", On16BitID,
|
||||
GetSampleFormatStr(int16Sample), POPUP_MENU_FN( OnFormatChange ) );
|
||||
AppendRadioItem("24Bit", On24BitID,
|
||||
GetSampleFormatStr( int24Sample), POPUP_MENU_FN( OnFormatChange ) );
|
||||
AppendRadioItem( "Float", OnFloatID,
|
||||
GetSampleFormatStr(floatSample), POPUP_MENU_FN( OnFormatChange ) );
|
||||
END_POPUP_MENU()
|
||||
|
||||
/// Converts a format enumeration to a wxWidgets menu item Id.
|
||||
|
@ -424,23 +424,23 @@ void RateMenuTable::InitMenu(wxMenu *pMenu)
|
|||
}
|
||||
}
|
||||
|
||||
// Because of Bug 1780 we can't use POPUP_MENU_RADIO_ITEM
|
||||
// Because of Bug 1780 we can't use AppendRadioItem
|
||||
// If we did, we'd get no message when clicking on Other...
|
||||
// when it is already selected.
|
||||
BEGIN_POPUP_MENU(RateMenuTable)
|
||||
POPUP_MENU_CHECK_ITEM( "8000", OnRate8ID, XO("8000 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "11025", OnRate11ID, XO("11025 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "16000", OnRate16ID, XO("16000 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "22050", OnRate22ID, XO("22050 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "44100", OnRate44ID, XO("44100 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "48000", OnRate48ID, XO("48000 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "88200", OnRate88ID, XO("88200 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "96000", OnRate96ID, XO("96000 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "176400", OnRate176ID, XO("176400 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "192000", OnRate192ID, XO("192000 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "352800", OnRate352ID, XO("352800 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "384000", OnRate384ID, XO("384000 Hz"), OnRateChange)
|
||||
POPUP_MENU_CHECK_ITEM( "Other", OnRateOtherID, XO("&Other..."), OnRateOther)
|
||||
AppendCheckItem( "8000", OnRate8ID, XO("8000 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "11025", OnRate11ID, XO("11025 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "16000", OnRate16ID, XO("16000 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "22050", OnRate22ID, XO("22050 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "44100", OnRate44ID, XO("44100 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "48000", OnRate48ID, XO("48000 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "88200", OnRate88ID, XO("88200 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "96000", OnRate96ID, XO("96000 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "176400", OnRate176ID, XO("176400 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "192000", OnRate192ID, XO("192000 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "352800", OnRate352ID, XO("352800 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "384000", OnRate384ID, XO("384000 Hz"), POPUP_MENU_FN( OnRateChange ) );
|
||||
AppendCheckItem( "Other", OnRateOtherID, XO("&Other..."), POPUP_MENU_FN( OnRateOther ) );
|
||||
END_POPUP_MENU()
|
||||
|
||||
const int nRates = 12;
|
||||
|
@ -768,20 +768,20 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
|
|||
WaveTrack *const pTrack = static_cast<WaveTrack*>(mpTrack);
|
||||
const auto &view = WaveTrackView::Get( *pTrack );
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "SubViews" )
|
||||
BeginSection( "SubViews" );
|
||||
if ( WaveTrackSubViews::slots() > 1 )
|
||||
POPUP_MENU_CHECK_ITEM( "MultiView", OnMultiViewID, XO("&Multi-view"), OnMultiView)
|
||||
AppendCheckItem( "MultiView", OnMultiViewID, XO("&Multi-view"), POPUP_MENU_FN( OnMultiView ) );
|
||||
|
||||
int id = OnSetDisplayId;
|
||||
for ( const auto &type : AllTypes() ) {
|
||||
if ( view.GetMultiView() ) {
|
||||
POPUP_MENU_CHECK_ITEM( type.name.Internal(), id++, type.name.Msgid(), OnSetDisplay)
|
||||
AppendCheckItem( type.name.Internal(), id++, type.name.Msgid(), POPUP_MENU_FN( OnSetDisplay ) );
|
||||
}
|
||||
else {
|
||||
POPUP_MENU_RADIO_ITEM( type.name.Internal(), id++, type.name.Msgid(), OnSetDisplay)
|
||||
AppendRadioItem( type.name.Internal(), id++, type.name.Msgid(), POPUP_MENU_FN( OnSetDisplay ) );
|
||||
}
|
||||
}
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
|
||||
if ( pTrack ) {
|
||||
|
||||
|
@ -791,9 +791,9 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
|
|||
WaveTrackSubView::Type{ WaveTrackViewConstants::Waveform, {} }
|
||||
) );
|
||||
if( hasWaveform ){
|
||||
BEGIN_POPUP_MENU_SECTION( "WaveColor" )
|
||||
BeginSection( "WaveColor" );
|
||||
POPUP_MENU_SUB_MENU( "WaveColor", WaveColorMenuTable, mpData )
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
}
|
||||
|
||||
bool hasSpectrum = (displays.end() != std::find(
|
||||
|
@ -801,36 +801,36 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
|
|||
WaveTrackSubView::Type{ WaveTrackViewConstants::Spectrum, {} }
|
||||
) );
|
||||
if( hasSpectrum ){
|
||||
BEGIN_POPUP_MENU_SECTION( "SpectrogramSettings" )
|
||||
POPUP_MENU_ITEM( "SpectrogramSettings", OnSpectrogramSettingsID, XO("S&pectrogram Settings..."), OnSpectrogramSettings)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "SpectrogramSettings" );
|
||||
AppendItem( "SpectrogramSettings", OnSpectrogramSettingsID, XO("S&pectrogram Settings..."), POPUP_MENU_FN( OnSpectrogramSettings ) );
|
||||
EndSection();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Channels" )
|
||||
BeginSection( "Channels" );
|
||||
// If these are enabled again, choose a hot key for Mono that does not conflict
|
||||
// with Multi View
|
||||
// POPUP_MENU_RADIO_ITEM(OnChannelMonoID, XO("&Mono"), OnChannelChange)
|
||||
// POPUP_MENU_RADIO_ITEM(OnChannelLeftID, XO("&Left Channel"), OnChannelChange)
|
||||
// POPUP_MENU_RADIO_ITEM(OnChannelRightID, XO("R&ight Channel"), OnChannelChange)
|
||||
POPUP_MENU_ITEM( "MakeStereo", OnMergeStereoID, XO("Ma&ke Stereo Track"), OnMergeStereo)
|
||||
// AppendRadioItem(OnChannelMonoID, XO("&Mono"), OnChannelChange)
|
||||
// AppendRadioItem(OnChannelLeftID, XO("&Left Channel"), OnChannelChange)
|
||||
// AppendRadioItem(OnChannelRightID, XO("R&ight Channel"), OnChannelChange)
|
||||
AppendItem( "MakeStereo", OnMergeStereoID, XO("Ma&ke Stereo Track"), POPUP_MENU_FN( OnMergeStereo ) );
|
||||
|
||||
POPUP_MENU_ITEM( "Swap", OnSwapChannelsID, XO("Swap Stereo &Channels"), OnSwapChannels)
|
||||
POPUP_MENU_ITEM( "Split", OnSplitStereoID, XO("Spl&it Stereo Track"), OnSplitStereo)
|
||||
AppendItem( "Swap", OnSwapChannelsID, XO("Swap Stereo &Channels"), POPUP_MENU_FN( OnSwapChannels ) );
|
||||
AppendItem( "Split", OnSplitStereoID, XO("Spl&it Stereo Track"), POPUP_MENU_FN( OnSplitStereo ) );
|
||||
// DA: Uses split stereo track and then drag pan sliders for split-stereo-to-mono
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
POPUP_MENU_ITEM( "SplitToMono", OnSplitStereoMonoID, XO("Split Stereo to Mo&no"), OnSplitStereoMono)
|
||||
AppendItem( "SplitToMono", OnSplitStereoMonoID, XO("Split Stereo to Mo&no"), POPUP_MENU_FN( OnSplitStereoMono ) );
|
||||
#endif
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Format" )
|
||||
BeginSection( "Format" );
|
||||
POPUP_MENU_SUB_MENU( "Format", FormatMenuTable, mpData )
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Rate" )
|
||||
BeginSection( "Rate" );
|
||||
POPUP_MENU_SUB_MENU( "Rate", RateMenuTable, mpData )
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
END_POPUP_MENU()
|
||||
|
||||
|
||||
|
|
|
@ -279,33 +279,33 @@ void WaveformVRulerMenuTable::InitMenu(wxMenu *pMenu)
|
|||
|
||||
BEGIN_POPUP_MENU(WaveformVRulerMenuTable)
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Scales" )
|
||||
BeginSection( "Scales" );
|
||||
{
|
||||
const auto & names = WaveformSettings::GetScaleNames();
|
||||
for (int ii = 0, nn = names.size(); ii < nn; ++ii) {
|
||||
POPUP_MENU_RADIO_ITEM( names[ii].Internal(),
|
||||
AppendRadioItem( names[ii].Internal(),
|
||||
OnFirstWaveformScaleID + ii, names[ii].Msgid(),
|
||||
OnWaveformScaleType);
|
||||
POPUP_MENU_FN( OnWaveformScaleType ) );
|
||||
}
|
||||
}
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Zoom" )
|
||||
BEGIN_POPUP_MENU_SECTION( "Basic" )
|
||||
POPUP_MENU_ITEM( "Reset", OnZoomFitVerticalID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
|
||||
POPUP_MENU_ITEM( "TimesHalf", OnZoomDiv2ID, XO("Zoom x1/2"), OnZoomDiv2Vertical)
|
||||
POPUP_MENU_ITEM( "TimesTwo", OnZoomTimes2ID, XO("Zoom x2"), OnZoomTimes2Vertical)
|
||||
BeginSection( "Zoom" );
|
||||
BeginSection( "Basic" );
|
||||
AppendItem( "Reset", OnZoomFitVerticalID, XO("Zoom Reset\tShift-Right-Click"), POPUP_MENU_FN( OnZoomReset ) );
|
||||
AppendItem( "TimesHalf", OnZoomDiv2ID, XO("Zoom x1/2"), POPUP_MENU_FN( OnZoomDiv2Vertical ) );
|
||||
AppendItem( "TimesTwo", OnZoomTimes2ID, XO("Zoom x2"), POPUP_MENU_FN( OnZoomTimes2Vertical ) );
|
||||
|
||||
#ifdef EXPERIMENTAL_HALF_WAVE
|
||||
POPUP_MENU_ITEM( "HalfWave", OnZoomHalfWaveID, XO("Half Wave"), OnZoomHalfWave)
|
||||
AppendItem( "HalfWave", OnZoomHalfWaveID, XO("Half Wave"), POPUP_MENU_FN( OnZoomHalfWave ) );
|
||||
#endif
|
||||
END_POPUP_MENU_SECTION()
|
||||
EndSection();
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "InOut" )
|
||||
POPUP_MENU_ITEM( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), OnZoomInVertical)
|
||||
POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), OnZoomOutVertical)
|
||||
END_POPUP_MENU_SECTION()
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "InOut" );
|
||||
AppendItem( "In", OnZoomInVerticalID, XO("Zoom In\tLeft-Click/Left-Drag"), POPUP_MENU_FN( OnZoomInVertical ) );
|
||||
AppendItem( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"), POPUP_MENU_FN( OnZoomOutVertical ) );
|
||||
EndSection();
|
||||
EndSection();
|
||||
|
||||
END_POPUP_MENU()
|
||||
|
||||
|
|
|
@ -162,15 +162,15 @@ void TimeTrackMenuTable::OnTimeTrackLogInt(wxCommandEvent & /*event*/)
|
|||
}
|
||||
|
||||
BEGIN_POPUP_MENU(TimeTrackMenuTable)
|
||||
BEGIN_POPUP_MENU_SECTION( "Scales" )
|
||||
POPUP_MENU_RADIO_ITEM( "Linear", OnTimeTrackLinID, XO("&Linear scale"), OnTimeTrackLin)
|
||||
POPUP_MENU_RADIO_ITEM( "Log", OnTimeTrackLogID, XO("L&ogarithmic scale"), OnTimeTrackLog)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "Scales" );
|
||||
AppendRadioItem( "Linear", OnTimeTrackLinID, XO("&Linear scale"), POPUP_MENU_FN( OnTimeTrackLin ) );
|
||||
AppendRadioItem( "Log", OnTimeTrackLogID, XO("L&ogarithmic scale"), POPUP_MENU_FN( OnTimeTrackLog ) );
|
||||
EndSection();
|
||||
|
||||
BEGIN_POPUP_MENU_SECTION( "Other" )
|
||||
POPUP_MENU_ITEM( "Range", OnSetTimeTrackRangeID, XO("&Range..."), OnSetTimeTrackRange)
|
||||
POPUP_MENU_CHECK_ITEM( "LogInterp", OnTimeTrackLogIntID, XO("Logarithmic &Interpolation"), OnTimeTrackLogInt)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BeginSection( "Other" );
|
||||
AppendItem( "Range", OnSetTimeTrackRangeID, XO("&Range..."), POPUP_MENU_FN( OnSetTimeTrackRange ) );
|
||||
AppendCheckItem( "LogInterp", OnTimeTrackLogIntID, XO("Logarithmic &Interpolation"), POPUP_MENU_FN( OnTimeTrackLogInt) );
|
||||
EndSection();
|
||||
END_POPUP_MENU()
|
||||
|
||||
PopupMenuTable *TimeTrackControls::GetMenuExtension(Track *)
|
||||
|
|
|
@ -127,11 +127,11 @@ void TrackMenuTable::InitMenu(wxMenu *pMenu)
|
|||
}
|
||||
|
||||
BEGIN_POPUP_MENU(TrackMenuTable)
|
||||
BEGIN_POPUP_MENU_SECTION( "Basic" )
|
||||
POPUP_MENU_ITEM( "Name", OnSetNameID, XO("&Name..."), OnSetName)
|
||||
END_POPUP_MENU_SECTION()
|
||||
BEGIN_POPUP_MENU_SECTION( "Move" )
|
||||
POPUP_MENU_ITEM( "Up",
|
||||
BeginSection( "Basic" );
|
||||
AppendItem( "Name", OnSetNameID, XO("&Name..."), POPUP_MENU_FN( OnSetName ) );
|
||||
EndSection();
|
||||
BeginSection( "Move" );
|
||||
AppendItem( "Up",
|
||||
// It is not correct to use NormalizedKeyString::Display here --
|
||||
// wxWidgets will apply its equivalent to the key names passed to menu
|
||||
// functions.
|
||||
|
@ -143,8 +143,8 @@ BEGIN_POPUP_MENU(TrackMenuTable)
|
|||
GetKeyFromName(wxT("TrackMoveUp")).GET() ),
|
||||
wxT("\t")
|
||||
),
|
||||
OnMoveTrack)
|
||||
POPUP_MENU_ITEM( "Down",
|
||||
POPUP_MENU_FN( OnMoveTrack ) );
|
||||
AppendItem( "Down",
|
||||
OnMoveDownID,
|
||||
XO("Move Track &Down").Join(
|
||||
Verbatim(
|
||||
|
@ -153,8 +153,8 @@ BEGIN_POPUP_MENU(TrackMenuTable)
|
|||
GetKeyFromName(wxT("TrackMoveDown")).GET() ),
|
||||
wxT("\t")
|
||||
),
|
||||
OnMoveTrack)
|
||||
POPUP_MENU_ITEM( "Top",
|
||||
POPUP_MENU_FN( OnMoveTrack ) );
|
||||
AppendItem( "Top",
|
||||
OnMoveTopID,
|
||||
XO("Move Track to &Top").Join(
|
||||
Verbatim(
|
||||
|
@ -163,8 +163,8 @@ BEGIN_POPUP_MENU(TrackMenuTable)
|
|||
GetKeyFromName(wxT("TrackMoveTop")).GET() ),
|
||||
wxT("\t")
|
||||
),
|
||||
OnMoveTrack)
|
||||
POPUP_MENU_ITEM( "Bottom",
|
||||
POPUP_MENU_FN( OnMoveTrack ) );
|
||||
AppendItem( "Bottom",
|
||||
OnMoveBottomID,
|
||||
XO("Move Track to &Bottom").Join(
|
||||
Verbatim(
|
||||
|
@ -173,8 +173,8 @@ BEGIN_POPUP_MENU(TrackMenuTable)
|
|||
GetKeyFromName(wxT("TrackMoveBottom")).GET() ),
|
||||
wxT("\t")
|
||||
),
|
||||
OnMoveTrack)
|
||||
END_POPUP_MENU_SECTION()
|
||||
POPUP_MENU_FN( OnMoveTrack ) );
|
||||
EndSection();
|
||||
END_POPUP_MENU()
|
||||
|
||||
|
||||
|
|
|
@ -145,6 +145,28 @@ void PopupMenuTable::ExtendMenu( wxMenu &menu, PopupMenuTable &table )
|
|||
Registry::Visit( visitor, table.Get( theMenu.pUserData ).get() );
|
||||
}
|
||||
|
||||
void PopupMenuTable::Append(
|
||||
const Identifier &stringId, PopupMenuTableEntry::Type type, int id,
|
||||
const TranslatableString &string, wxCommandEventFunction memFn)
|
||||
{
|
||||
mStack.back()->items.push_back( std::make_unique<Entry>(
|
||||
stringId, type, id, string, memFn
|
||||
) );
|
||||
}
|
||||
|
||||
void PopupMenuTable::BeginSection( const Identifier &name )
|
||||
{
|
||||
auto uSection = std::make_unique< PopupMenuSection >( name );
|
||||
auto section = uSection.get();
|
||||
mStack.back()->items.push_back( std::move( uSection ) );
|
||||
mStack.push_back( section );
|
||||
}
|
||||
|
||||
void PopupMenuTable::EndSection()
|
||||
{
|
||||
mStack.pop_back();
|
||||
}
|
||||
|
||||
namespace{
|
||||
void PopupMenu::DisconnectTable(PopupMenuTable *pTable)
|
||||
{
|
||||
|
|
|
@ -115,6 +115,27 @@ public:
|
|||
|
||||
protected:
|
||||
virtual void Populate() = 0;
|
||||
|
||||
// To be used in implementations of Populate():
|
||||
void Append(
|
||||
const Identifier &stringId, PopupMenuTableEntry::Type type, int id,
|
||||
const TranslatableString &string, wxCommandEventFunction memFn);
|
||||
|
||||
void AppendItem( const Identifier &stringId, int id,
|
||||
const TranslatableString &string, wxCommandEventFunction memFn )
|
||||
{ Append( stringId, PopupMenuTableEntry::Item, id, string, memFn ); }
|
||||
|
||||
void AppendRadioItem( const Identifier &stringId, int id,
|
||||
const TranslatableString &string, wxCommandEventFunction memFn )
|
||||
{ Append( stringId, PopupMenuTableEntry::RadioItem, id, string, memFn ); }
|
||||
|
||||
void AppendCheckItem( const Identifier &stringId, int id,
|
||||
const TranslatableString &string, wxCommandEventFunction memFn )
|
||||
{ Append( stringId, PopupMenuTableEntry::CheckItem, id, string, memFn ); }
|
||||
|
||||
void BeginSection( const Identifier &name );
|
||||
void EndSection();
|
||||
|
||||
void Clear() { mTop.reset(); }
|
||||
|
||||
std::shared_ptr< Registry::GroupItem > mTop;
|
||||
|
@ -156,9 +177,10 @@ void MyTable::DestroyMenu()
|
|||
|
||||
BEGIN_POPUP_MENU(MyTable)
|
||||
// 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 calls:
|
||||
|
||||
POPUP_MENU_ITEM("Cut", OnCutSelectedTextID, XO("Cu&t"), OnCutSelectedText)
|
||||
AppendItem("Cut",
|
||||
OnCutSelectedTextID, XO("Cu&t"), POPUP_MENU_FN( OnCutSelectedText ) );
|
||||
// etc.
|
||||
|
||||
END_POPUP_MENU()
|
||||
|
@ -192,46 +214,12 @@ void HandlerClass::Populate() { \
|
|||
mStack.clear(); \
|
||||
mStack.push_back( mTop.get() );
|
||||
|
||||
#define POPUP_MENU_APPEND(stringId, type, id, string, memFn) \
|
||||
mStack.back()->items.push_back( std::make_unique<Entry>( \
|
||||
Identifier{ stringId }, \
|
||||
type, \
|
||||
id, \
|
||||
string, \
|
||||
memFn \
|
||||
) );
|
||||
#define POPUP_MENU_FN( memFn ) ( (wxCommandEventFunction) (&My::memFn) )
|
||||
|
||||
#define POPUP_MENU_APPEND_ITEM(stringId, type, id, string, memFn) \
|
||||
POPUP_MENU_APPEND( stringId, \
|
||||
type, \
|
||||
id, \
|
||||
string, \
|
||||
(wxCommandEventFunction) (&My::memFn) )
|
||||
|
||||
#define POPUP_MENU_ITEM(stringId, id, string, memFn) \
|
||||
POPUP_MENU_APPEND_ITEM(stringId, Entry::Item, id, string, memFn);
|
||||
|
||||
#define POPUP_MENU_RADIO_ITEM(stringId, id, string, memFn) \
|
||||
POPUP_MENU_APPEND_ITEM(stringId, Entry::RadioItem, id, string, memFn);
|
||||
|
||||
#define POPUP_MENU_CHECK_ITEM(stringId, id, string, memFn) \
|
||||
POPUP_MENU_APPEND_ITEM(stringId, Entry::CheckItem, id, string, memFn);
|
||||
|
||||
// classname names a class that derives from MenuTable and defines Instance()
|
||||
#define POPUP_MENU_SUB_MENU(stringId, classname, pUserData ) \
|
||||
mStack.back()->items.push_back( \
|
||||
Registry::Shared( classname::Instance().Get( pUserData ) ) );
|
||||
|
||||
#define BEGIN_POPUP_MENU_SECTION( name ) \
|
||||
{ auto uSection = std::make_unique< PopupMenuSection >( \
|
||||
Identifier{ name } ); \
|
||||
auto section = uSection.get(); \
|
||||
mStack.back()->items.push_back( std::move( uSection ) ); \
|
||||
mStack.push_back( section ); \
|
||||
}
|
||||
|
||||
#define END_POPUP_MENU_SECTION() mStack.pop_back();
|
||||
|
||||
// ends function
|
||||
#define END_POPUP_MENU() }
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user