1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-27 15:08:39 +01:00

Remove the special PopupFunctor, redo it by other means...

... it was only used, so far, by the scrubber.
This commit is contained in:
Paul Licameli
2017-08-19 07:42:43 -04:00
parent 1e3ab82a01
commit d263eaa97b
5 changed files with 21 additions and 38 deletions

View File

@@ -224,7 +224,7 @@ namespace {
wxString label;
wxString status;
CommandFlag flags;
void (Scrubber::*memFn)(wxCommandEvent&);
void (Scrubber::*memFn)();
bool seek;
bool (Scrubber::*StatusTest)() const;
@@ -921,19 +921,19 @@ void Scrubber::OnScrubOrSeek(bool seek)
scrubbingToolBar->RegenerateTooltips();
}
void Scrubber::OnScrub(wxCommandEvent&)
void Scrubber::OnScrub()
{
OnScrubOrSeek(false);
CheckMenuItems();
}
void Scrubber::OnSeek(wxCommandEvent&)
void Scrubber::OnSeek()
{
OnScrubOrSeek(true);
CheckMenuItems();
}
void Scrubber::OnToggleScrubRuler(wxCommandEvent&)
void Scrubber::OnToggleScrubRuler()
{
mProject->GetRulerPanel()->OnToggleScrubRuler();
const auto toolbar = mProject->GetToolManager()->GetToolBar(ScrubbingBarID);
@@ -943,10 +943,12 @@ void Scrubber::OnToggleScrubRuler(wxCommandEvent&)
enum { CMD_ID = 8000 };
#define THUNK(Name) Scrubber::Thunk<&Scrubber::Name>
BEGIN_EVENT_TABLE(Scrubber, wxEvtHandler)
EVT_MENU(CMD_ID, Scrubber::OnScrub)
EVT_MENU(CMD_ID + 1, Scrubber::OnSeek)
EVT_MENU(CMD_ID + 2, Scrubber::OnToggleScrubRuler)
EVT_MENU(CMD_ID, THUNK(OnScrub))
EVT_MENU(CMD_ID + 1, THUNK(OnSeek))
EVT_MENU(CMD_ID + 2, THUNK(OnToggleScrubRuler))
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(Scrubber::Forwarder, wxEvtHandler)

View File

@@ -123,9 +123,13 @@ public:
void PopulatePopupMenu(wxMenu &menu);
void OnScrubOrSeek(bool seek);
void OnScrub(wxCommandEvent&);
void OnSeek(wxCommandEvent&);
void OnToggleScrubRuler(wxCommandEvent&);
void OnScrub();
void OnSeek();
void OnToggleScrubRuler();
// Convenience wrapper for the above
template<void (Scrubber::*pfn)()> void Thunk(wxCommandEvent &dummy)
{ (this->*pfn)(); }
// A string to put in the leftmost part of the status bar
// when scrub or seek is in progress, or else empty.