From 3b312f9d1bef303b99e1ddff6f1c84523d02f3d7 Mon Sep 17 00:00:00 2001 From: James Crook Date: Mon, 15 Apr 2019 13:01:24 +0100 Subject: [PATCH] Add ComponentInterface to PrefsPanel This is so that we can have plug-in prefs panels loaded from a dll, and introspect what we have. --- src/prefs/BatchPrefs.cpp | 15 +++++++++++++ src/prefs/BatchPrefs.h | 6 ++++++ src/prefs/DevicePrefs.cpp | 22 ++++++++++++++----- src/prefs/DevicePrefs.h | 5 +++++ src/prefs/DirectoriesPrefs.cpp | 21 +++++++++++++----- src/prefs/DirectoriesPrefs.h | 5 +++++ src/prefs/EffectsPrefs.cpp | 20 +++++++++++++----- src/prefs/EffectsPrefs.h | 5 +++++ src/prefs/ExtImportPrefs.cpp | 20 +++++++++++++----- src/prefs/ExtImportPrefs.h | 5 +++++ src/prefs/GUIPrefs.cpp | 20 +++++++++++++----- src/prefs/GUIPrefs.h | 5 +++++ src/prefs/ImportExportPrefs.cpp | 20 +++++++++++++----- src/prefs/ImportExportPrefs.h | 5 +++++ src/prefs/KeyConfigPrefs.cpp | 20 +++++++++++++----- src/prefs/KeyConfigPrefs.h | 5 +++++ src/prefs/LibraryPrefs.cpp | 20 +++++++++++++----- src/prefs/LibraryPrefs.h | 5 +++++ src/prefs/MidiIOPrefs.cpp | 20 +++++++++++++----- src/prefs/MidiIOPrefs.h | 5 +++++ src/prefs/ModulePrefs.cpp | 20 +++++++++++++----- src/prefs/ModulePrefs.h | 5 +++++ src/prefs/MousePrefs.cpp | 20 +++++++++++++----- src/prefs/MousePrefs.h | 5 +++++ src/prefs/PlaybackPrefs.cpp | 20 +++++++++++++----- src/prefs/PlaybackPrefs.h | 5 +++++ src/prefs/PrefsDialog.cpp | 9 ++++++++ src/prefs/PrefsPanel.h | 14 +++++++++++- src/prefs/ProjectsPrefs.cpp | 20 +++++++++++++----- src/prefs/ProjectsPrefs.h | 5 +++++ src/prefs/QualityPrefs.cpp | 20 +++++++++++++----- src/prefs/QualityPrefs.h | 4 ++++ src/prefs/RecordingPrefs.cpp | 20 +++++++++++++----- src/prefs/RecordingPrefs.h | 5 +++++ src/prefs/SpectrumPrefs.cpp | 34 +++++++++++++++++++----------- src/prefs/SpectrumPrefs.h | 5 +++++ src/prefs/ThemePrefs.cpp | 15 +++++++++++++ src/prefs/ThemePrefs.h | 6 ++++++ src/prefs/TracksBehaviorsPrefs.cpp | 20 +++++++++++++----- src/prefs/TracksBehaviorsPrefs.h | 5 +++++ src/prefs/TracksPrefs.cpp | 20 +++++++++++++----- src/prefs/TracksPrefs.h | 5 +++++ src/prefs/WarningsPrefs.cpp | 20 +++++++++++++----- src/prefs/WarningsPrefs.h | 5 +++++ src/prefs/WaveformPrefs.cpp | 15 +++++++++++++ src/prefs/WaveformPrefs.h | 6 ++++++ 46 files changed, 474 insertions(+), 103 deletions(-) diff --git a/src/prefs/BatchPrefs.cpp b/src/prefs/BatchPrefs.cpp index 4363b823c..b35010959 100644 --- a/src/prefs/BatchPrefs.cpp +++ b/src/prefs/BatchPrefs.cpp @@ -38,6 +38,21 @@ BatchPrefs::BatchPrefs(wxWindow * parent, wxWindowID winid): Populate(); } +ComponentInterfaceSymbol BatchPrefs::GetSymbol() +{ + return BATCH_PREFS_PLUGIN_SYMBOL; +} + +wxString BatchPrefs::GetDescription() +{ + return _("Preferences for Batch"); +} + +wxString BatchPrefs::HelpPageName() +{ + return "Batch_Preferences"; +} + /// Creates the dialog and its contents. void BatchPrefs::Populate( ) { diff --git a/src/prefs/BatchPrefs.h b/src/prefs/BatchPrefs.h index a9cf01da3..1828802c0 100644 --- a/src/prefs/BatchPrefs.h +++ b/src/prefs/BatchPrefs.h @@ -18,11 +18,17 @@ class ShuttleGui; +#define BATCH_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Batch") } + class BatchPrefs final : public PrefsPanel { public: BatchPrefs(wxWindow * parent, wxWindowID winid); ~BatchPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + wxString HelpPageName() override; + bool Commit() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/DevicePrefs.cpp b/src/prefs/DevicePrefs.cpp index c4c3a9f88..da02b6621 100644 --- a/src/prefs/DevicePrefs.cpp +++ b/src/prefs/DevicePrefs.cpp @@ -62,6 +62,22 @@ DevicePrefs::~DevicePrefs() { } + +ComponentInterfaceSymbol DevicePrefs::GetSymbol() +{ + return DEVICE_PREFS_PLUGIN_SYMBOL; +} + +wxString DevicePrefs::GetDescription() +{ + return _("Preferences for Device"); +} + +wxString DevicePrefs::HelpPageName() +{ + return "Devices_Preferences"; +} + void DevicePrefs::Populate() { // First any pre-processing for constructing the GUI. @@ -85,6 +101,7 @@ void DevicePrefs::Populate() OnHost(e); } + /* * Get names of device hosts. */ @@ -403,11 +420,6 @@ bool DevicePrefs::Commit() return true; } -wxString DevicePrefs::HelpPageName() -{ - return "Devices_Preferences"; -} - PrefsPanel *DevicePrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/DevicePrefs.h b/src/prefs/DevicePrefs.h index 9f3ee4821..89e1b8792 100644 --- a/src/prefs/DevicePrefs.h +++ b/src/prefs/DevicePrefs.h @@ -20,11 +20,16 @@ class wxChoice; class ShuttleGui; class wxArrayStringEx; +#define DEVICE_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Device") } + class DevicePrefs final : public PrefsPanel { public: DevicePrefs(wxWindow * parent, wxWindowID winid); virtual ~DevicePrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/DirectoriesPrefs.cpp b/src/prefs/DirectoriesPrefs.cpp index 8af2ef4cf..ad8cefb3f 100644 --- a/src/prefs/DirectoriesPrefs.cpp +++ b/src/prefs/DirectoriesPrefs.cpp @@ -61,6 +61,22 @@ DirectoriesPrefs::~DirectoriesPrefs() { } + +ComponentInterfaceSymbol DirectoriesPrefs::GetSymbol() +{ + return DIRECTORIES_PREFS_PLUGIN_SYMBOL; +} + +wxString DirectoriesPrefs::GetDescription() +{ + return _("Preferences for Directories"); +} + +wxString DirectoriesPrefs::HelpPageName() +{ + return "Directories_Preferences"; +} + /// Creates the dialog and its contents. void DirectoriesPrefs::Populate() { @@ -271,11 +287,6 @@ bool DirectoriesPrefs::Commit() return true; } -wxString DirectoriesPrefs::HelpPageName() -{ - return "Directories_Preferences"; -} - PrefsPanel *DirectoriesPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/DirectoriesPrefs.h b/src/prefs/DirectoriesPrefs.h index 3ebf3c08e..1e6e18cf5 100644 --- a/src/prefs/DirectoriesPrefs.h +++ b/src/prefs/DirectoriesPrefs.h @@ -18,11 +18,16 @@ class ShuttleGui; class wxStaticText; class wxTextCtrl; +#define DIRECTORIES_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Directories") } + class DirectoriesPrefs final : public PrefsPanel { public: DirectoriesPrefs(wxWindow * parent, wxWindowID winid); ~DirectoriesPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; bool Validate() override; wxString HelpPageName() override; diff --git a/src/prefs/EffectsPrefs.cpp b/src/prefs/EffectsPrefs.cpp index c6faa697b..3b824195f 100644 --- a/src/prefs/EffectsPrefs.cpp +++ b/src/prefs/EffectsPrefs.cpp @@ -42,6 +42,21 @@ EffectsPrefs::~EffectsPrefs() { } +ComponentInterfaceSymbol EffectsPrefs::GetSymbol() +{ + return EFFECTS_PREFS_PLUGIN_SYMBOL; +} + +wxString EffectsPrefs::GetDescription() +{ + return _("Preferences for Effects"); +} + +wxString EffectsPrefs::HelpPageName() +{ + return "Effects_Preferences"; +} + void EffectsPrefs::Populate() { //------------------------- Main section -------------------- @@ -186,11 +201,6 @@ bool EffectsPrefs::Commit() return true; } -wxString EffectsPrefs::HelpPageName() -{ - return "Effects_Preferences"; -} - PrefsPanel *EffectsPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/EffectsPrefs.h b/src/prefs/EffectsPrefs.h index b83b2aa1f..5686cf39d 100644 --- a/src/prefs/EffectsPrefs.h +++ b/src/prefs/EffectsPrefs.h @@ -19,11 +19,16 @@ class ShuttleGui; +#define EFFECTS_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Effects") } + class EffectsPrefs final : public PrefsPanel { public: EffectsPrefs(wxWindow * parent, wxWindowID winid); ~EffectsPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/ExtImportPrefs.cpp b/src/prefs/ExtImportPrefs.cpp index f557cdc29..16e0e038b 100644 --- a/src/prefs/ExtImportPrefs.cpp +++ b/src/prefs/ExtImportPrefs.cpp @@ -70,6 +70,21 @@ ExtImportPrefs::~ExtImportPrefs() { } +ComponentInterfaceSymbol ExtImportPrefs::GetSymbol() +{ + return EXT_IMPORT_PREFS_PLUGIN_SYMBOL; +} + +wxString ExtImportPrefs::GetDescription() +{ + return _("Preferences for ExtImport"); +} + +wxString ExtImportPrefs::HelpPageName() +{ + return "Extended_Import_Preferences"; +} + /// Creates the dialog and its contents. void ExtImportPrefs::Populate() { @@ -674,11 +689,6 @@ void ExtImportPrefs::OnRuleTableCellClick (wxGridEvent& event) event.Skip(); } -wxString ExtImportPrefs::HelpPageName() -{ - return "Extended_Import_Preferences"; -} - ExtImportPrefsDropTarget::ExtImportPrefsDropTarget(wxDataObject *dataObject) : wxDropTarget(dataObject) { diff --git a/src/prefs/ExtImportPrefs.h b/src/prefs/ExtImportPrefs.h index 8220385fd..58598f7ca 100644 --- a/src/prefs/ExtImportPrefs.h +++ b/src/prefs/ExtImportPrefs.h @@ -28,6 +28,8 @@ class ExtImportPrefs; class Grid; class ShuttleGui; +#define EXT_IMPORT_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Ext Import") } + class ExtImportPrefsDropTarget final : public wxDropTarget { public: @@ -49,6 +51,9 @@ class ExtImportPrefs final : public PrefsPanel public: ExtImportPrefs(wxWindow * parent, wxWindowID winid); ~ExtImportPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/GUIPrefs.cpp b/src/prefs/GUIPrefs.cpp index f0297c678..5b153c371 100644 --- a/src/prefs/GUIPrefs.cpp +++ b/src/prefs/GUIPrefs.cpp @@ -47,6 +47,21 @@ GUIPrefs::~GUIPrefs() { } +ComponentInterfaceSymbol GUIPrefs::GetSymbol() +{ + return GUI_PREFS_PLUGIN_SYMBOL; +} + +wxString GUIPrefs::GetDescription() +{ + return _("Preferences for GUI"); +} + +wxString GUIPrefs::HelpPageName() +{ + return "Interface_Preferences"; +} + void GUIPrefs::GetRangeChoices( wxArrayStringEx *pChoices, wxArrayStringEx *pCodes) { @@ -253,11 +268,6 @@ bool GUIPrefs::Commit() return true; } -wxString GUIPrefs::HelpPageName() -{ - return "Interface_Preferences"; -} - PrefsPanel *GUIPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/GUIPrefs.h b/src/prefs/GUIPrefs.h index 15b76281f..5c3be3741 100644 --- a/src/prefs/GUIPrefs.h +++ b/src/prefs/GUIPrefs.h @@ -20,11 +20,16 @@ class ShuttleGui; class wxArrayStringEx; +#define GUI_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("GUI") } + class GUIPrefs final : public PrefsPanel { public: GUIPrefs(wxWindow * parent, wxWindowID winid); ~GUIPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/ImportExportPrefs.cpp b/src/prefs/ImportExportPrefs.cpp index 535bf67cb..07a724743 100644 --- a/src/prefs/ImportExportPrefs.cpp +++ b/src/prefs/ImportExportPrefs.cpp @@ -35,6 +35,21 @@ ImportExportPrefs::~ImportExportPrefs() { } +ComponentInterfaceSymbol ImportExportPrefs::GetSymbol() +{ + return IMPORT_EXPORT_PREFS_PLUGIN_SYMBOL; +} + +wxString ImportExportPrefs::GetDescription() +{ + return _("Preferences for ImportExport"); +} + +wxString ImportExportPrefs::HelpPageName() +{ + return "Import_-_Export_Preferences"; +} + /// Creates the dialog and its contents. void ImportExportPrefs::Populate() { @@ -113,11 +128,6 @@ bool ImportExportPrefs::Commit() return true; } -wxString ImportExportPrefs::HelpPageName() -{ - return "Import_-_Export_Preferences"; -} - PrefsPanel *ImportExportPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/ImportExportPrefs.h b/src/prefs/ImportExportPrefs.h index 2c82e32ca..0f0fbb832 100644 --- a/src/prefs/ImportExportPrefs.h +++ b/src/prefs/ImportExportPrefs.h @@ -19,11 +19,16 @@ class ShuttleGui; +#define IMPORT_EXPORT_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("IMPORT EXPORT") } + class ImportExportPrefs final : public PrefsPanel { public: ImportExportPrefs(wxWindow * parent, wxWindowID winid); ~ImportExportPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/KeyConfigPrefs.cpp b/src/prefs/KeyConfigPrefs.cpp index 98ee98cf5..d687d2089 100644 --- a/src/prefs/KeyConfigPrefs.cpp +++ b/src/prefs/KeyConfigPrefs.cpp @@ -98,6 +98,21 @@ KeyConfigPrefs::KeyConfigPrefs(wxWindow * parent, wxWindowID winid, } } +ComponentInterfaceSymbol KeyConfigPrefs::GetSymbol() +{ + return KEY_CONFIG_PREFS_PLUGIN_SYMBOL; +} + +wxString KeyConfigPrefs::GetDescription() +{ + return _("Preferences for KeyConfig"); +} + +wxString KeyConfigPrefs::HelpPageName() +{ + return "Keyboard_Preferences"; +} + void KeyConfigPrefs::Populate() { ShuttleGui S(this, eIsCreatingFromPrefs); @@ -673,11 +688,6 @@ void KeyConfigPrefs::Cancel() return; } -wxString KeyConfigPrefs::HelpPageName() -{ - return "Keyboard_Preferences"; -} - PrefsPanel *KeyConfigPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/KeyConfigPrefs.h b/src/prefs/KeyConfigPrefs.h index f31e77aab..99d1f4e48 100644 --- a/src/prefs/KeyConfigPrefs.h +++ b/src/prefs/KeyConfigPrefs.h @@ -27,10 +27,15 @@ class KeyView; struct NormalizedKeyString; enum ViewByType : int; +#define KEY_CONFIG_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Key Config") } + class KeyConfigPrefs final : public PrefsPanel { public: KeyConfigPrefs(wxWindow * parent, wxWindowID winid, const CommandID &name); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; void Cancel() override; wxString HelpPageName() override; diff --git a/src/prefs/LibraryPrefs.cpp b/src/prefs/LibraryPrefs.cpp index 9d149333b..edef7ed55 100644 --- a/src/prefs/LibraryPrefs.cpp +++ b/src/prefs/LibraryPrefs.cpp @@ -58,6 +58,21 @@ LibraryPrefs::~LibraryPrefs() { } +ComponentInterfaceSymbol LibraryPrefs::GetSymbol() +{ + return LIBRARY_PREFS_PLUGIN_SYMBOL; +} + +wxString LibraryPrefs::GetDescription() +{ + return _("Preferences for Library"); +} + +wxString LibraryPrefs::HelpPageName() +{ + return "Libraries_Preferences"; +} + /// Creates the dialog and its contents. void LibraryPrefs::Populate() { @@ -252,11 +267,6 @@ bool LibraryPrefs::Commit() return true; } -wxString LibraryPrefs::HelpPageName() -{ - return "Libraries_Preferences"; -} - PrefsPanel *LibraryPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/LibraryPrefs.h b/src/prefs/LibraryPrefs.h index 4bccb02ca..44752efbf 100644 --- a/src/prefs/LibraryPrefs.h +++ b/src/prefs/LibraryPrefs.h @@ -20,11 +20,16 @@ class wxStaticText; class ShuttleGui; +#define LIBRARY_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Library") } + class LibraryPrefs final : public PrefsPanel { public: LibraryPrefs(wxWindow * parent, wxWindowID winid); ~LibraryPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/MidiIOPrefs.cpp b/src/prefs/MidiIOPrefs.cpp index 24e03961b..15ac51ba0 100644 --- a/src/prefs/MidiIOPrefs.cpp +++ b/src/prefs/MidiIOPrefs.cpp @@ -67,6 +67,21 @@ MidiIOPrefs::~MidiIOPrefs() { } +ComponentInterfaceSymbol MidiIOPrefs::GetSymbol() +{ + return MIDI_IO_PREFS_PLUGIN_SYMBOL; +} + +wxString MidiIOPrefs::GetDescription() +{ + return _("Preferences for MidiIO"); +} + +wxString MidiIOPrefs::HelpPageName() +{ + return "MIDI_Devices_Preferences"; +} + void MidiIOPrefs::Populate() { // First any pre-processing for constructing the GUI. @@ -284,11 +299,6 @@ bool MidiIOPrefs::Validate() return true; } -wxString MidiIOPrefs::HelpPageName() -{ - return "MIDI_Devices_Preferences"; -} - PrefsPanel *MidiIOPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/MidiIOPrefs.h b/src/prefs/MidiIOPrefs.h index ef83184b8..b20fcc22f 100644 --- a/src/prefs/MidiIOPrefs.h +++ b/src/prefs/MidiIOPrefs.h @@ -26,11 +26,16 @@ class ShuttleGui; class wxArrayStringEx; +#define MIDI_IO_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Midi IO") } + class MidiIOPrefs final : public PrefsPanel { public: MidiIOPrefs(wxWindow * parent, wxWindowID winid); virtual ~MidiIOPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; bool Validate() override; wxString HelpPageName() override; diff --git a/src/prefs/ModulePrefs.cpp b/src/prefs/ModulePrefs.cpp index 8672d7eab..ab5c763fc 100644 --- a/src/prefs/ModulePrefs.cpp +++ b/src/prefs/ModulePrefs.cpp @@ -39,6 +39,21 @@ ModulePrefs::~ModulePrefs() { } +ComponentInterfaceSymbol ModulePrefs::GetSymbol() +{ + return MODULE_PREFS_PLUGIN_SYMBOL; +} + +wxString ModulePrefs::GetDescription() +{ + return _("Preferences for Module"); +} + +wxString ModulePrefs::HelpPageName() +{ + return "Modules_Preferences"; +} + void ModulePrefs::GetAllModuleStatuses(){ wxString str; long dummy; @@ -165,11 +180,6 @@ void ModulePrefs::SetModuleStatus(const FilePath &fname, int iStatus){ gPrefs->Flush(); } -wxString ModulePrefs::HelpPageName() -{ - return "Modules_Preferences"; -} - PrefsPanel *ModulePrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/ModulePrefs.h b/src/prefs/ModulePrefs.h index 98a576490..3747fbb5e 100644 --- a/src/prefs/ModulePrefs.h +++ b/src/prefs/ModulePrefs.h @@ -30,11 +30,16 @@ enum { }; +#define MODULE_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Module") } + class ModulePrefs final : public PrefsPanel { public: ModulePrefs(wxWindow * parent, wxWindowID winid); ~ModulePrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/MousePrefs.cpp b/src/prefs/MousePrefs.cpp index aef6c7749..5eccce472 100644 --- a/src/prefs/MousePrefs.cpp +++ b/src/prefs/MousePrefs.cpp @@ -71,6 +71,21 @@ MousePrefs::~MousePrefs() { } +ComponentInterfaceSymbol MousePrefs::GetSymbol() +{ + return MOUSE_PREFS_PLUGIN_SYMBOL; +} + +wxString MousePrefs::GetDescription() +{ + return _("Preferences for Mouse"); +} + +wxString MousePrefs::HelpPageName() +{ + return "Mouse_Preferences"; +} + /// Creates the dialog and its contents. void MousePrefs::Populate() { @@ -203,11 +218,6 @@ bool MousePrefs::Commit() return true; } -wxString MousePrefs::HelpPageName() -{ - return "Mouse_Preferences"; -} - PrefsPanel *MousePrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/MousePrefs.h b/src/prefs/MousePrefs.h index 7209475a3..fb61068b9 100644 --- a/src/prefs/MousePrefs.h +++ b/src/prefs/MousePrefs.h @@ -16,11 +16,16 @@ class wxListCtrl; class ShuttleGui; +#define MOUSE_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Mouse") } + class MousePrefs final : public PrefsPanel { public: MousePrefs(wxWindow * parent, wxWindowID winid); ~MousePrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/PlaybackPrefs.cpp b/src/prefs/PlaybackPrefs.cpp index 971623c37..ab60f9013 100644 --- a/src/prefs/PlaybackPrefs.cpp +++ b/src/prefs/PlaybackPrefs.cpp @@ -38,6 +38,21 @@ PlaybackPrefs::~PlaybackPrefs() { } +ComponentInterfaceSymbol PlaybackPrefs::GetSymbol() +{ + return PLAYBACK_PREFS_PLUGIN_SYMBOL; +} + +wxString PlaybackPrefs::GetDescription() +{ + return _("Preferences for Playback"); +} + +wxString PlaybackPrefs::HelpPageName() +{ + return "Playback_Preferences"; +} + void PlaybackPrefs::Populate() { //------------------------- Main section -------------------- @@ -168,11 +183,6 @@ bool PlaybackPrefs::Commit() return true; } -wxString PlaybackPrefs::HelpPageName() -{ - return "Playback_Preferences"; -} - PrefsPanel *PlaybackPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/PlaybackPrefs.h b/src/prefs/PlaybackPrefs.h index 3180c17cc..34ffec24e 100644 --- a/src/prefs/PlaybackPrefs.h +++ b/src/prefs/PlaybackPrefs.h @@ -18,11 +18,16 @@ class ShuttleGui; +#define PLAYBACK_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Playback") } + class PlaybackPrefs final : public PrefsPanel { public: PlaybackPrefs(wxWindow * parent, wxWindowID winid); virtual ~PlaybackPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/PrefsDialog.cpp b/src/prefs/PrefsDialog.cpp index 2b22e0b4f..2edc3e1a3 100644 --- a/src/prefs/PrefsDialog.cpp +++ b/src/prefs/PrefsDialog.cpp @@ -77,6 +77,15 @@ #include "../widgets/WindowAccessible.h" #endif + +// PrefsPanel might move out into its own file in due ocurse. +PluginPath PrefsPanel::GetPath(){ return BUILTIN_PREFS_PANEL_PREFIX + GetSymbol().Internal(); } +VendorSymbol PrefsPanel::GetVendor(){ return XO("Audacity");} +wxString PrefsPanel::GetVersion(){ return AUDACITY_VERSION_STRING;} + + + + BEGIN_EVENT_TABLE(PrefsDialog, wxDialogWrapper) EVT_BUTTON(wxID_OK, PrefsDialog::OnOK) EVT_BUTTON(wxID_CANCEL, PrefsDialog::OnCancel) diff --git a/src/prefs/PrefsPanel.h b/src/prefs/PrefsPanel.h index ceb2cee64..fc743702f 100644 --- a/src/prefs/PrefsPanel.h +++ b/src/prefs/PrefsPanel.h @@ -34,10 +34,13 @@ PrefsPanel. #define __AUDACITY_PREFS_PANEL__ #include "../widgets/wxPanelWrapper.h" // to inherit +#include "../include/audacity/ComponentInterface.h" /* A few constants for an attempt at semi-uniformity */ #define PREFS_FONT_SIZE 8 +#define BUILTIN_PREFS_PANEL_PREFIX wxT("Built-in PrefsPanel: ") + /* these are spacing guidelines: ie. radio buttons should have a 5 pixel * border on each side */ #define RADIO_BUTTON_BORDER 5 @@ -46,7 +49,7 @@ PrefsPanel. class ShuttleGui; -class PrefsPanel /* not final */ : public wxPanelWrapper +class PrefsPanel /* not final */ : public wxPanelWrapper, ComponentInterface { public: PrefsPanel(wxWindow * parent, wxWindowID winid, const wxString &title) @@ -62,6 +65,15 @@ class PrefsPanel /* not final */ : public wxPanelWrapper virtual void Preview() {} // Make tentative changes virtual bool Commit() = 0; // used to be called "Apply" + + virtual PluginPath GetPath(); + virtual VendorSymbol GetVendor(); + virtual wxString GetVersion(); + + //virtual ComponentInterfaceSymbol GetSymbol(); + //virtual wxString GetDescription(); + + // If it returns True, the Preview button is added below the panel // Default returns false virtual bool ShowsPreviewButton(); diff --git a/src/prefs/ProjectsPrefs.cpp b/src/prefs/ProjectsPrefs.cpp index 1fd77d268..61f628d20 100644 --- a/src/prefs/ProjectsPrefs.cpp +++ b/src/prefs/ProjectsPrefs.cpp @@ -41,6 +41,21 @@ ProjectsPrefs::~ProjectsPrefs() { } +ComponentInterfaceSymbol ProjectsPrefs::GetSymbol() +{ + return PROJECTS_PREFS_PLUGIN_SYMBOL; +} + +wxString ProjectsPrefs::GetDescription() +{ + return _("Preferences for Projects"); +} + +wxString ProjectsPrefs::HelpPageName() +{ + return "Projects_Preferences"; +} + /// Creates the dialog and its contents. void ProjectsPrefs::Populate() { @@ -84,11 +99,6 @@ bool ProjectsPrefs::Commit() return true; } -wxString ProjectsPrefs::HelpPageName() -{ - return "Projects_Preferences"; -} - PrefsPanel *ProjectsPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/ProjectsPrefs.h b/src/prefs/ProjectsPrefs.h index 1ff0a3269..aea2782bb 100644 --- a/src/prefs/ProjectsPrefs.h +++ b/src/prefs/ProjectsPrefs.h @@ -19,11 +19,16 @@ class ShuttleGui; +#define PROJECTS_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Projects") } + class ProjectsPrefs final : public PrefsPanel { public: ProjectsPrefs(wxWindow * parent, wxWindowID winid); ~ProjectsPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/QualityPrefs.cpp b/src/prefs/QualityPrefs.cpp index 26427b75e..e8e8f16d6 100644 --- a/src/prefs/QualityPrefs.cpp +++ b/src/prefs/QualityPrefs.cpp @@ -111,6 +111,21 @@ QualityPrefs::~QualityPrefs() { } +ComponentInterfaceSymbol QualityPrefs::GetSymbol() +{ + return QUALITY_PREFS_PLUGIN_SYMBOL; +} + +wxString QualityPrefs::GetDescription() +{ + return _("Preferences for Quality"); +} + +wxString QualityPrefs::HelpPageName() +{ + return "Quality_Preferences"; +} + void QualityPrefs::Populate() { // First any pre-processing for constructing the GUI. @@ -262,11 +277,6 @@ bool QualityPrefs::Commit() return true; } -wxString QualityPrefs::HelpPageName() -{ - return "Quality_Preferences"; -} - PrefsPanel *QualityPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/QualityPrefs.h b/src/prefs/QualityPrefs.h index da267abe3..f9db86565 100644 --- a/src/prefs/QualityPrefs.h +++ b/src/prefs/QualityPrefs.h @@ -25,11 +25,15 @@ enum DitherType : unsigned; class wxArrayStringEx; +#define QUALITY_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Quality") } + class QualityPrefs final : public PrefsPanel { public: QualityPrefs(wxWindow * parent, wxWindowID winid); virtual ~QualityPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); bool Commit() override; wxString HelpPageName() override; diff --git a/src/prefs/RecordingPrefs.cpp b/src/prefs/RecordingPrefs.cpp index 3a5e7e664..643a0b775 100644 --- a/src/prefs/RecordingPrefs.cpp +++ b/src/prefs/RecordingPrefs.cpp @@ -58,6 +58,21 @@ RecordingPrefs::~RecordingPrefs() { } +ComponentInterfaceSymbol RecordingPrefs::GetSymbol() +{ + return RECORDING_PREFS_PLUGIN_SYMBOL; +} + +wxString RecordingPrefs::GetDescription() +{ + return _("Preferences for Recording"); +} + +wxString RecordingPrefs::HelpPageName() +{ + return "Recording_Preferences"; +} + void RecordingPrefs::Populate() { //------------------------- Main section -------------------- @@ -290,11 +305,6 @@ void RecordingPrefs::OnToggleCustomName(wxCommandEvent & /* Evt */) mToggleCustomName->Enable(mUseCustomTrackName); } -wxString RecordingPrefs::HelpPageName() -{ - return "Recording_Preferences"; -} - PrefsPanel *RecordingPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/RecordingPrefs.h b/src/prefs/RecordingPrefs.h index a8328c763..f69e31df6 100644 --- a/src/prefs/RecordingPrefs.h +++ b/src/prefs/RecordingPrefs.h @@ -19,11 +19,16 @@ class wxTextCtrl; class ShuttleGui; +#define RECORDING_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Recording") } + class RecordingPrefs final : public PrefsPanel { public: RecordingPrefs(wxWindow * parent, wxWindowID winid); virtual ~RecordingPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/SpectrumPrefs.cpp b/src/prefs/SpectrumPrefs.cpp index 98d9f93dd..6d9df4315 100644 --- a/src/prefs/SpectrumPrefs.cpp +++ b/src/prefs/SpectrumPrefs.cpp @@ -65,6 +65,28 @@ SpectrumPrefs::~SpectrumPrefs() Rollback(); } +ComponentInterfaceSymbol SpectrumPrefs::GetSymbol() +{ + return SPECTRUM_PREFS_PLUGIN_SYMBOL; +} + +wxString SpectrumPrefs::GetDescription() +{ + return _("Preferences for Spectrum"); +} + +wxString SpectrumPrefs::HelpPageName() +{ + // Currently (May2017) Spectrum Settings is the only preferences + // we ever display in a dialog on its own without others. + // We do so when it is configuring spectrums for a track. + // Because this happens, we want to visit a different help page. + // So we change the page name in the case of a page on its own. + return mWt + ? "Spectrogram_Settings" + : "Spectrograms_Preferences"; +} + enum { ID_WINDOW_SIZE = 10001, #ifdef EXPERIMENTAL_ZERO_PADDED_SPECTROGRAMS @@ -534,18 +556,6 @@ void SpectrumPrefs::EnableDisableSTFTOnlyControls() #endif } -wxString SpectrumPrefs::HelpPageName() -{ - // Currently (May2017) Spectrum Settings is the only preferences - // we ever display in a dialog on its own without others. - // We do so when it is configuring spectrums for a track. - // Because this happens, we want to visit a different help page. - // So we change the page name in the case of a page on its own. - return mWt - ? "Spectrogram_Settings" - : "Spectrograms_Preferences"; -} - BEGIN_EVENT_TABLE(SpectrumPrefs, PrefsPanel) EVT_CHOICE(ID_WINDOW_SIZE, SpectrumPrefs::OnWindowSize) EVT_CHECKBOX(ID_DEFAULTS, SpectrumPrefs::OnDefaults) diff --git a/src/prefs/SpectrumPrefs.h b/src/prefs/SpectrumPrefs.h index a0112cd02..4a3232990 100644 --- a/src/prefs/SpectrumPrefs.h +++ b/src/prefs/SpectrumPrefs.h @@ -39,11 +39,16 @@ class ShuttleGui; class SpectrogramSettings; class WaveTrack; +#define SPECTRUM_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Spectrum") } + class SpectrumPrefs final : public PrefsPanel { public: SpectrumPrefs(wxWindow * parent, wxWindowID winid, WaveTrack *wt); virtual ~SpectrumPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + void Preview() override; bool Commit() override; void PopulateOrExchange(ShuttleGui & S) override; diff --git a/src/prefs/ThemePrefs.cpp b/src/prefs/ThemePrefs.cpp index 190c7688c..900ab3f37 100644 --- a/src/prefs/ThemePrefs.cpp +++ b/src/prefs/ThemePrefs.cpp @@ -70,6 +70,21 @@ ThemePrefs::~ThemePrefs(void) { } +ComponentInterfaceSymbol ThemePrefs::GetSymbol() +{ + return THEME_PREFS_PLUGIN_SYMBOL; +} + +wxString ThemePrefs::GetDescription() +{ + return _("Preferences for Theme"); +} + +wxString ThemePrefs::HelpPageName() +{ + return "Theme_Preferences"; +} + /// Creates the dialog and its contents. void ThemePrefs::Populate() { diff --git a/src/prefs/ThemePrefs.h b/src/prefs/ThemePrefs.h index d86b9052d..7c345f32d 100644 --- a/src/prefs/ThemePrefs.h +++ b/src/prefs/ThemePrefs.h @@ -20,12 +20,18 @@ class ShuttleGui; +#define THEME_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Theme") } + class ThemePrefs final : public PrefsPanel { public: ThemePrefs(wxWindow * parent, wxWindowID winid); ~ThemePrefs(void); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; + wxString HelpPageName() override; private: void Populate(); diff --git a/src/prefs/TracksBehaviorsPrefs.cpp b/src/prefs/TracksBehaviorsPrefs.cpp index bba0b259a..9655380dc 100644 --- a/src/prefs/TracksBehaviorsPrefs.cpp +++ b/src/prefs/TracksBehaviorsPrefs.cpp @@ -34,6 +34,21 @@ TracksBehaviorsPrefs::~TracksBehaviorsPrefs() { } +ComponentInterfaceSymbol TracksBehaviorsPrefs::GetSymbol() +{ + return TRACKS_BEHAVIORS_PREFS_PLUGIN_SYMBOL; +} + +wxString TracksBehaviorsPrefs::GetDescription() +{ + return _("Preferences for TracksBehaviors"); +} + +wxString TracksBehaviorsPrefs::HelpPageName() +{ + return "Tracks_Behaviors_Preferences"; +} + const wxChar *TracksBehaviorsPrefs::ScrollingPreferenceKey() { static auto string = wxT("/GUI/ScrollBeyondZero"); @@ -119,11 +134,6 @@ bool TracksBehaviorsPrefs::Commit() return true; } -wxString TracksBehaviorsPrefs::HelpPageName() -{ - return "Tracks_Behaviors_Preferences"; -} - TracksBehaviorsPrefsFactory::TracksBehaviorsPrefsFactory() { } diff --git a/src/prefs/TracksBehaviorsPrefs.h b/src/prefs/TracksBehaviorsPrefs.h index 6d66da08d..6acedbd4b 100644 --- a/src/prefs/TracksBehaviorsPrefs.h +++ b/src/prefs/TracksBehaviorsPrefs.h @@ -19,11 +19,16 @@ class ShuttleGui; class wxArrayStringEx; +#define TRACKS_BEHAVIORS_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Tracks Behaviors") } + class TracksBehaviorsPrefs final : public PrefsPanel { public: TracksBehaviorsPrefs(wxWindow * parent, wxWindowID winid); ~TracksBehaviorsPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; diff --git a/src/prefs/TracksPrefs.cpp b/src/prefs/TracksPrefs.cpp index e1c9cfda9..214ee08df 100644 --- a/src/prefs/TracksPrefs.cpp +++ b/src/prefs/TracksPrefs.cpp @@ -239,6 +239,21 @@ TracksPrefs::~TracksPrefs() { } +ComponentInterfaceSymbol TracksPrefs::GetSymbol() +{ + return TRACKS_PREFS_PLUGIN_SYMBOL; +} + +wxString TracksPrefs::GetDescription() +{ + return _("Preferences for Tracks"); +} + +wxString TracksPrefs::HelpPageName() +{ + return "Tracks_Preferences"; +} + void TracksPrefs::Populate() { // Keep view choices and codes in proper correspondence -- @@ -392,11 +407,6 @@ bool TracksPrefs::Commit() return true; } -wxString TracksPrefs::HelpPageName() -{ - return "Tracks_Preferences"; -} - PrefsPanel *TracksPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/TracksPrefs.h b/src/prefs/TracksPrefs.h index 98ebf6852..3552ff6ae 100644 --- a/src/prefs/TracksPrefs.h +++ b/src/prefs/TracksPrefs.h @@ -21,11 +21,16 @@ class ShuttleGui; +#define TRACKS_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Tracks") } + class TracksPrefs final : public PrefsPanel { public: TracksPrefs(wxWindow * parent, wxWindowID winid); ~TracksPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; diff --git a/src/prefs/WarningsPrefs.cpp b/src/prefs/WarningsPrefs.cpp index 334e9e209..5e35603b0 100644 --- a/src/prefs/WarningsPrefs.cpp +++ b/src/prefs/WarningsPrefs.cpp @@ -38,6 +38,21 @@ WarningsPrefs::~WarningsPrefs() { } +ComponentInterfaceSymbol WarningsPrefs::GetSymbol() +{ + return WARNINGS_PREFS_PLUGIN_SYMBOL; +} + +wxString WarningsPrefs::GetDescription() +{ + return _("Preferences for Warnings"); +} + +wxString WarningsPrefs::HelpPageName() +{ + return "Warnings_Preferences"; +} + void WarningsPrefs::Populate() { //------------------------- Main section -------------------- @@ -91,11 +106,6 @@ bool WarningsPrefs::Commit() return true; } -wxString WarningsPrefs::HelpPageName() -{ - return "Warnings_Preferences"; -} - PrefsPanel *WarningsPrefsFactory::operator () (wxWindow *parent, wxWindowID winid) { wxASSERT(parent); // to justify safenew diff --git a/src/prefs/WarningsPrefs.h b/src/prefs/WarningsPrefs.h index fb70be115..b7b40a207 100644 --- a/src/prefs/WarningsPrefs.h +++ b/src/prefs/WarningsPrefs.h @@ -19,11 +19,16 @@ class ShuttleGui; +#define WARNINGS_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Warnings") } + class WarningsPrefs final : public PrefsPanel { public: WarningsPrefs(wxWindow * parent, wxWindowID winid); ~WarningsPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + bool Commit() override; wxString HelpPageName() override; diff --git a/src/prefs/WaveformPrefs.cpp b/src/prefs/WaveformPrefs.cpp index fe5dbf91d..5bd350bde 100644 --- a/src/prefs/WaveformPrefs.cpp +++ b/src/prefs/WaveformPrefs.cpp @@ -52,6 +52,21 @@ WaveformPrefs::~WaveformPrefs() { } +ComponentInterfaceSymbol WaveformPrefs::GetSymbol() +{ + return WAVEFORM_PREFS_PLUGIN_SYMBOL; +} + +wxString WaveformPrefs::GetDescription() +{ + return _("Preferences for Waveforms"); +} + +wxString WaveformPrefs::HelpPageName() +{ + return "Waveform_Preferences"; +} + enum { ID_DEFAULTS = 10001, diff --git a/src/prefs/WaveformPrefs.h b/src/prefs/WaveformPrefs.h index 853d20697..ca77e590e 100644 --- a/src/prefs/WaveformPrefs.h +++ b/src/prefs/WaveformPrefs.h @@ -22,11 +22,17 @@ class wxChoice; class wxArrayStringEx; +#define WAVEFORM_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Waveform") } + class WaveformPrefs final : public PrefsPanel { public: WaveformPrefs(wxWindow * parent, wxWindowID winid, WaveTrack *wt); virtual ~WaveformPrefs(); + virtual ComponentInterfaceSymbol GetSymbol(); + virtual wxString GetDescription(); + wxString HelpPageName() override; + bool Commit() override; bool ShowsPreviewButton() override; bool Validate() override;