From 2fbe04eda0ae0e84d0b326a2044a1bc744e20ac6 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Mon, 12 Feb 2018 18:09:20 -0500 Subject: [PATCH] Replace more Connect with Bind; needed redeclaration of custom events --- src/AudacityApp.cpp | 2 +- src/AudioIO.cpp | 6 +++--- src/AudioIO.h | 9 ++++++--- src/HistoryWindow.cpp | 10 ++++------ src/LyricsWindow.cpp | 5 ++--- src/MixerBoard.cpp | 5 ++--- src/Project.cpp | 15 ++++++--------- src/Track.cpp | 6 +++--- src/Track.h | 9 ++++++--- src/TrackPanel.cpp | 17 +++++++---------- src/TrackPanel.h | 3 ++- src/TranslatableStringArray.h | 7 +++---- src/effects/Effect.cpp | 10 ++++------ src/tracks/ui/PlayIndicatorOverlay.cpp | 5 ++--- src/tracks/ui/Scrubbing.cpp | 5 ++--- src/tracks/ui/SelectHandle.cpp | 5 ++--- src/widgets/Meter.cpp | 22 +++++++++------------- src/widgets/Meter.h | 3 ++- src/widgets/Ruler.cpp | 5 ++--- 19 files changed, 68 insertions(+), 81 deletions(-) diff --git a/src/AudacityApp.cpp b/src/AudacityApp.cpp index d8b40e0d3..6382cbca8 100644 --- a/src/AudacityApp.cpp +++ b/src/AudacityApp.cpp @@ -240,7 +240,7 @@ It handles initialization and termination by subclassing wxApp. //////////////////////////////////////////////////////////// DEFINE_EVENT_TYPE(EVT_OPEN_AUDIO_FILE); -DEFINE_EVENT_TYPE(EVT_LANGUAGE_CHANGE); +wxDEFINE_EVENT(EVT_LANGUAGE_CHANGE, wxCommandEvent); #if 0 #ifdef __WXGTK__ diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp index 622263fa0..296b44e49 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp @@ -480,9 +480,9 @@ using std::min; std::unique_ptr ugAudioIO; AudioIO *gAudioIO{}; -DEFINE_EVENT_TYPE(EVT_AUDIOIO_PLAYBACK); -DEFINE_EVENT_TYPE(EVT_AUDIOIO_CAPTURE); -DEFINE_EVENT_TYPE(EVT_AUDIOIO_MONITOR); +wxDEFINE_EVENT(EVT_AUDIOIO_PLAYBACK, wxCommandEvent); +wxDEFINE_EVENT(EVT_AUDIOIO_CAPTURE, wxCommandEvent); +wxDEFINE_EVENT(EVT_AUDIOIO_MONITOR, wxCommandEvent); // static int AudioIO::mNextStreamToken = 0; diff --git a/src/AudioIO.h b/src/AudioIO.h index a878f5df4..5f7fe7934 100644 --- a/src/AudioIO.h +++ b/src/AudioIO.h @@ -91,9 +91,12 @@ class AudioIOListener; #define AILA_DEF_NUMBER_ANALYSIS 5 #endif -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_AUDIOIO_PLAYBACK, -1); -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_AUDIOIO_CAPTURE, -1); -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_AUDIOIO_MONITOR, -1); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_AUDIOIO_PLAYBACK, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_AUDIOIO_CAPTURE, wxCommandEvent); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_AUDIOIO_MONITOR, wxCommandEvent); // PRL: // If we always run a portaudio output stream (even just to produce silence) diff --git a/src/HistoryWindow.cpp b/src/HistoryWindow.cpp index fc86a3e8d..0f0b1d9ce 100644 --- a/src/HistoryWindow.cpp +++ b/src/HistoryWindow.cpp @@ -147,14 +147,12 @@ HistoryWindow::HistoryWindow(AudacityProject *parent, UndoManager *manager): mList->SetColumnWidth(0, mList->GetClientSize().x - mList->GetColumnWidth(1)); mList->SetTextColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); - wxTheApp->Connect(EVT_AUDIOIO_PLAYBACK, - wxCommandEventHandler(HistoryWindow::OnAudioIO), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_PLAYBACK, + &HistoryWindow::OnAudioIO, this); - wxTheApp->Connect(EVT_AUDIOIO_CAPTURE, - wxCommandEventHandler(HistoryWindow::OnAudioIO), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_CAPTURE, + &HistoryWindow::OnAudioIO, this); } diff --git a/src/LyricsWindow.cpp b/src/LyricsWindow.cpp index 527d64c64..8ca42b031 100644 --- a/src/LyricsWindow.cpp +++ b/src/LyricsWindow.cpp @@ -126,9 +126,8 @@ LyricsWindow::LyricsWindow(AudacityProject *parent): //} // Events from the project don't propagate directly to this other frame, so... - mProject->Connect(EVT_TRACK_PANEL_TIMER, - wxCommandEventHandler(LyricsWindow::OnTimer), - NULL, + mProject->Bind(EVT_TRACK_PANEL_TIMER, + &LyricsWindow::OnTimer, this); Center(); } diff --git a/src/MixerBoard.cpp b/src/MixerBoard.cpp index ea3a86bc2..fd8c6b3ac 100644 --- a/src/MixerBoard.cpp +++ b/src/MixerBoard.cpp @@ -928,9 +928,8 @@ MixerBoard::MixerBoard(AudacityProject* pProject, mTracks = mProject->GetTracks(); // Events from the project don't propagate directly to this other frame, so... - mProject->Connect(EVT_TRACK_PANEL_TIMER, - wxCommandEventHandler(MixerBoard::OnTimer), - NULL, + mProject->Bind(EVT_TRACK_PANEL_TIMER, + &MixerBoard::OnTimer, this); } diff --git a/src/Project.cpp b/src/Project.cpp index c77e09862..cf071cd3e 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -1098,9 +1098,8 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id, // because it must // attach its timer event handler later (so that its handler is invoked // earlier) - this->Connect(EVT_TRACK_PANEL_TIMER, - wxCommandEventHandler(ViewInfo::OnTimer), - NULL, + this->Bind(EVT_TRACK_PANEL_TIMER, + &ViewInfo::OnTimer, &mViewInfo); // Add the overlays, in the sequence in which they will be painted @@ -1227,9 +1226,8 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id, mTrackPanel->SetDropTarget(safenew DropTarget(this)); #endif - wxTheApp->Connect(EVT_AUDIOIO_CAPTURE, - wxCommandEventHandler(AudacityProject::OnCapture), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_CAPTURE, + &AudacityProject::OnCapture, this); //Initialize the last selection adjustment time. @@ -6022,9 +6020,8 @@ double AudacityProject::GetZoomOfPref( const wxString & PresetPrefName, int defa AudacityProject::PlaybackScroller::PlaybackScroller(AudacityProject *project) : mProject(project) { - mProject->Connect(EVT_TRACK_PANEL_TIMER, - wxCommandEventHandler(PlaybackScroller::OnTimer), - NULL, + mProject->Bind(EVT_TRACK_PANEL_TIMER, + &PlaybackScroller::OnTimer, this); } diff --git a/src/Track.cpp b/src/Track.cpp index 3ea3774cc..7542a10f2 100644 --- a/src/Track.cpp +++ b/src/Track.cpp @@ -772,9 +772,9 @@ Track *SyncLockedTracksIterator::Last(bool skiplinked) // is managing. Any other classes that may be interested in get these updates // should use TrackList::Connect() or TrackList::Bind(). // -DEFINE_EVENT_TYPE(EVT_TRACKLIST_PERMUTED); -DEFINE_EVENT_TYPE(EVT_TRACKLIST_RESIZING); -DEFINE_EVENT_TYPE(EVT_TRACKLIST_DELETION); +wxDEFINE_EVENT(EVT_TRACKLIST_PERMUTED, wxCommandEvent); +wxDEFINE_EVENT(EVT_TRACKLIST_RESIZING, wxCommandEvent); +wxDEFINE_EVENT(EVT_TRACKLIST_DELETION, wxCommandEvent); // same value as in the default constructed TrackId: long TrackList::sCounter = -1; diff --git a/src/Track.h b/src/Track.h index fe456123f..d04257ebc 100644 --- a/src/Track.h +++ b/src/Track.h @@ -596,15 +596,18 @@ struct TrackListEvent : public wxCommandEvent }; // Posted when tracks are reordered but otherwise unchanged. -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_TRACKLIST_PERMUTED, -1); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_TRACKLIST_PERMUTED, wxCommandEvent); // Posted when some track was added or changed its height. // Cast to TrackListEvent and examine mpTrack to retrieve it. -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_TRACKLIST_RESIZING, -1); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_TRACKLIST_RESIZING, wxCommandEvent); // Posted when a track has been deleted from a tracklist. // Also posted when one track replaces another -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_TRACKLIST_DELETION, -1); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_TRACKLIST_DELETION, wxCommandEvent); class TrackList final : public wxEvtHandler, public ListOfTracks { diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index 87db5f1c0..3c0d95e1f 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -186,7 +186,7 @@ is time to refresh some aspect of the screen. #include "widgets/Ruler.h" #include -DEFINE_EVENT_TYPE(EVT_TRACK_PANEL_TIMER) +wxDEFINE_EVENT(EVT_TRACK_PANEL_TIMER, wxCommandEvent); /* @@ -341,17 +341,14 @@ TrackPanel::TrackPanel(wxWindow * parent, wxWindowID id, GetProject()->Bind(wxEVT_IDLE, &TrackPanel::OnIdle, this); // Register for tracklist updates - mTracks->Connect(EVT_TRACKLIST_RESIZING, - wxCommandEventHandler(TrackPanel::OnTrackListResizing), - NULL, + mTracks->Bind(EVT_TRACKLIST_RESIZING, + &TrackPanel::OnTrackListResizing, this); - mTracks->Connect(EVT_TRACKLIST_DELETION, - wxCommandEventHandler(TrackPanel::OnTrackListDeletion), - NULL, + mTracks->Bind(EVT_TRACKLIST_DELETION, + &TrackPanel::OnTrackListDeletion, this); - wxTheApp->Connect(EVT_AUDIOIO_PLAYBACK, - wxCommandEventHandler(TrackPanel::OnPlayback), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_PLAYBACK, + &TrackPanel::OnPlayback, this); } diff --git a/src/TrackPanel.h b/src/TrackPanel.h index 907ab3794..b182fd49c 100644 --- a/src/TrackPanel.h +++ b/src/TrackPanel.h @@ -78,7 +78,8 @@ enum class UndoPush : unsigned char; #pragma warning( disable: 4251 ) #endif -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_TRACK_PANEL_TIMER, -1); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_TRACK_PANEL_TIMER, wxCommandEvent); enum { kTimerInterval = 50, // milliseconds diff --git a/src/TranslatableStringArray.h b/src/TranslatableStringArray.h index b665302be..132e3cccc 100644 --- a/src/TranslatableStringArray.h +++ b/src/TranslatableStringArray.h @@ -16,7 +16,7 @@ Paul Licameli class wxArrayString; -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_LANGUAGE_CHANGE, -1); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, EVT_LANGUAGE_CHANGE, wxCommandEvent); /* This class can maintain a static table containing user visible strings that updates @@ -37,9 +37,8 @@ public: TranslatableArray() { if (wxTheApp) - wxTheApp->Connect(EVT_LANGUAGE_CHANGE, - wxCommandEventHandler(TranslatableArray::Invalidate), - NULL, + wxTheApp->Bind(EVT_LANGUAGE_CHANGE, + &TranslatableArray::Invalidate, this); } diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp index e8f16a1d1..0e43779e8 100644 --- a/src/effects/Effect.cpp +++ b/src/effects/Effect.cpp @@ -3827,14 +3827,12 @@ void EffectUIHost::InitializeRealtime() { EffectManager::Get().RealtimeAddEffect(mEffect); - wxTheApp->Connect(EVT_AUDIOIO_PLAYBACK, - wxCommandEventHandler(EffectUIHost::OnPlayback), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_PLAYBACK, + &EffectUIHost::OnPlayback, this); - wxTheApp->Connect(EVT_AUDIOIO_CAPTURE, - wxCommandEventHandler(EffectUIHost::OnCapture), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_CAPTURE, + &EffectUIHost::OnCapture, this); mInitialized = true; diff --git a/src/tracks/ui/PlayIndicatorOverlay.cpp b/src/tracks/ui/PlayIndicatorOverlay.cpp index 25cffca14..0305a5580 100644 --- a/src/tracks/ui/PlayIndicatorOverlay.cpp +++ b/src/tracks/ui/PlayIndicatorOverlay.cpp @@ -104,9 +104,8 @@ void PlayIndicatorOverlayBase::Draw(OverlayPanel &panel, wxDC &dc) PlayIndicatorOverlay::PlayIndicatorOverlay(AudacityProject *project) : PlayIndicatorOverlayBase(project, true) { - mProject->Connect(EVT_TRACK_PANEL_TIMER, - wxCommandEventHandler(PlayIndicatorOverlay::OnTimer), - NULL, + mProject->Bind(EVT_TRACK_PANEL_TIMER, + &PlayIndicatorOverlay::OnTimer, this); } diff --git a/src/tracks/ui/Scrubbing.cpp b/src/tracks/ui/Scrubbing.cpp index 46e148ab6..e6249073d 100644 --- a/src/tracks/ui/Scrubbing.cpp +++ b/src/tracks/ui/Scrubbing.cpp @@ -726,9 +726,8 @@ ScrubbingOverlay::ScrubbingOverlay(AudacityProject *project) , mLastScrubSpeedText() , mNextScrubSpeedText() { - mProject->Connect(EVT_TRACK_PANEL_TIMER, - wxCommandEventHandler(ScrubbingOverlay::OnTimer), - NULL, + mProject->Bind(EVT_TRACK_PANEL_TIMER, + &ScrubbingOverlay::OnTimer, this); } diff --git a/src/tracks/ui/SelectHandle.cpp b/src/tracks/ui/SelectHandle.cpp index e40ead22a..1275e19c4 100644 --- a/src/tracks/ui/SelectHandle.cpp +++ b/src/tracks/ui/SelectHandle.cpp @@ -1042,9 +1042,8 @@ public: , mConnectedProject{ pProject } { if (mConnectedProject) - mConnectedProject->Connect(EVT_TRACK_PANEL_TIMER, - wxCommandEventHandler(SelectHandle::TimerHandler::OnTimer), - NULL, + mConnectedProject->Bind(EVT_TRACK_PANEL_TIMER, + &SelectHandle::TimerHandler::OnTimer, this); } diff --git a/src/widgets/Meter.cpp b/src/widgets/Meter.cpp index f36905ddb..1cfcb65c3 100644 --- a/src/widgets/Meter.cpp +++ b/src/widgets/Meter.cpp @@ -176,7 +176,7 @@ bool MeterUpdateQueue::Get(MeterUpdateMsg &msg) const static int gap = 2; // Event used to notify all meters of preference changes -DEFINE_EVENT_TYPE(EVT_METER_PREFERENCES_CHANGED); +wxDEFINE_EVENT(EVT_METER_PREFERENCES_CHANGED, wxCommandEvent); const static wxChar *PrefStyles[] = { @@ -270,19 +270,16 @@ MeterPanel::MeterPanel(AudacityProject *project, mDisabledPen = wxPen(theTheme.Colour( clrMeterDisabledPen), 1, wxSOLID); // Register for our preference update event - wxTheApp->Connect(EVT_METER_PREFERENCES_CHANGED, - wxCommandEventHandler(MeterPanel::OnMeterPrefsUpdated), - NULL, + wxTheApp->Bind(EVT_METER_PREFERENCES_CHANGED, + &MeterPanel::OnMeterPrefsUpdated, this); if (mIsInput) { - wxTheApp->Connect(EVT_AUDIOIO_MONITOR, - wxCommandEventHandler(MeterPanel::OnAudioIOStatus), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_MONITOR, + &MeterPanel::OnAudioIOStatus, this); - wxTheApp->Connect(EVT_AUDIOIO_CAPTURE, - wxCommandEventHandler(MeterPanel::OnAudioIOStatus), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_CAPTURE, + &MeterPanel::OnAudioIOStatus, this); mPen = wxPen( theTheme.Colour( clrMeterInputPen ), 1, wxSOLID); @@ -294,9 +291,8 @@ MeterPanel::MeterPanel(AudacityProject *project, } else { // Register for AudioIO events - wxTheApp->Connect(EVT_AUDIOIO_PLAYBACK, - wxCommandEventHandler(MeterPanel::OnAudioIOStatus), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_PLAYBACK, + &MeterPanel::OnAudioIOStatus, this); mPen = wxPen( theTheme.Colour( clrMeterOutputPen ), 1, wxSOLID); diff --git a/src/widgets/Meter.h b/src/widgets/Meter.h index 037f1ca0e..6898181d7 100644 --- a/src/widgets/Meter.h +++ b/src/widgets/Meter.h @@ -23,7 +23,8 @@ #include "Ruler.h" // Event used to notify all meters of preference changes -DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_METER_PREFERENCES_CHANGED, -1); +wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, + EVT_METER_PREFERENCES_CHANGED, wxCommandEvent); // Increase this when we add support for multichannel meters // (most of the code is already there) diff --git a/src/widgets/Ruler.cpp b/src/widgets/Ruler.cpp index e968b39ca..1a301c236 100644 --- a/src/widgets/Ruler.cpp +++ b/src/widgets/Ruler.cpp @@ -2021,9 +2021,8 @@ AdornedRulerPanel::AdornedRulerPanel(AudacityProject* project, wxToolTip::Enable(true); #endif - wxTheApp->Connect(EVT_AUDIOIO_CAPTURE, - wxCommandEventHandler(AdornedRulerPanel::OnCapture), - NULL, + wxTheApp->Bind(EVT_AUDIOIO_CAPTURE, + &AdornedRulerPanel::OnCapture, this); }