From 6e57428e47245db2a7e8838b1f8c3606f8f69b14 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 2 Feb 2020 17:32:23 -0500 Subject: [PATCH] PopupMenuTable does not need TranslatableArray... ... because the strings in it are TranslatableString, not translated --- .../wavetrack/ui/WaveTrackControls.cpp | 3 +-- src/widgets/PopupMenuTable.h | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp b/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp index 53ce154a3..0ae722700 100644 --- a/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp +++ b/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp @@ -608,9 +608,8 @@ protected: WaveTrackMenuTable &WaveTrackMenuTable::Instance( Track * pTrack ) { static WaveTrackMenuTable instance; - wxCommandEvent evt; // Clear it out so we force a repopulate - instance.Invalidate( evt ); + instance.Clear(); // Ensure we know how to populate. // Messy, but the design does not seem to offer an alternative. // We won't use pTrack after populate. diff --git a/src/widgets/PopupMenuTable.h b/src/widgets/PopupMenuTable.h index 85161adba..562324d08 100644 --- a/src/widgets/PopupMenuTable.h +++ b/src/widgets/PopupMenuTable.h @@ -25,7 +25,6 @@ class wxString; #include "../MemoryX.h" #include "../Internat.h" -#include "../TranslatableStringArray.h" class PopupMenuTable; @@ -53,7 +52,7 @@ struct PopupMenuTableEntry bool IsValid() const { return type != Invalid; } }; -class PopupMenuTable : public TranslatableArray< std::vector > +class PopupMenuTable : public wxEvtHandler { public: typedef PopupMenuTableEntry Entry; @@ -95,6 +94,20 @@ public: // No memory management responsibility is assumed by this function. static std::unique_ptr BuildMenu (wxEvtHandler *pParent, PopupMenuTable *pTable, void *pUserData = NULL); + +protected: + virtual void Populate() = 0; + void Clear() { mContents.clear(); } + + using Entries = std::vector; + const Entries& Get() + { + if (mContents.empty()) + Populate(); + return mContents; + } + + Entries mContents; }; /*