Harmlessly qualify classes as final (or explicitly comment not)...

... Should have no effect on generated code, except perhaps some slight faster
virtual function calls.  Mostly useful as documentation of design intent.

Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
This commit is contained in:
Paul Licameli 2016-02-24 01:06:39 -05:00
parent e2f7e5f6f6
commit 7824e94030
261 changed files with 480 additions and 472 deletions

View File

@ -44,7 +44,7 @@
#include "audacity/Types.h"
class AUDACITY_DLL_API ConfigClientInterface
class AUDACITY_DLL_API ConfigClientInterface /* not final */
{
public:
virtual ~ConfigClientInterface() {};

View File

@ -58,7 +58,7 @@ typedef enum EffectType
EffectTypeAnalyze
} EffectType;
class AUDACITY_DLL_API EffectIdentInterface : public IdentInterface
class AUDACITY_DLL_API EffectIdentInterface /* not final */ : public IdentInterface
{
public:
virtual ~EffectIdentInterface() {};
@ -88,7 +88,7 @@ public:
class EffectUIHostInterface;
class EffectUIClientInterface;
class AUDACITY_DLL_API EffectHostInterface : public ConfigClientInterface
class AUDACITY_DLL_API EffectHostInterface /* not final */ : public ConfigClientInterface
{
public:
virtual ~EffectHostInterface() {};
@ -110,7 +110,7 @@ public:
virtual wxString GetFactoryDefaultsGroup() = 0;
};
class AUDACITY_DLL_API EffectClientInterface : public EffectIdentInterface
class AUDACITY_DLL_API EffectClientInterface /* not final */ : public EffectIdentInterface
{
public:
virtual ~EffectClientInterface() {};
@ -162,7 +162,7 @@ public:
virtual ~EffectUIHostInterface() {};
};
class AUDACITY_DLL_API EffectUIClientInterface
class AUDACITY_DLL_API EffectUIClientInterface /* not final */
{
public:
virtual ~EffectUIClientInterface() {};

View File

@ -44,7 +44,7 @@
#include "audacity/Types.h"
class AUDACITY_DLL_API IdentInterface
class AUDACITY_DLL_API IdentInterface /* not final */
{
public:
virtual ~IdentInterface() {};

View File

@ -61,7 +61,7 @@
//
// ============================================================================
class ModuleInterface : public IdentInterface
class ModuleInterface /* not final */ : public IdentInterface
{
public:
virtual ~ModuleInterface() {};
@ -106,7 +106,7 @@ public:
//
// ============================================================================
class ModuleManagerInterface
class ModuleManagerInterface /* not final */
{
public:
virtual ~ModuleManagerInterface() {};

View File

@ -51,7 +51,7 @@
class ModuleInterface;
class PluginManagerInterface
class PluginManagerInterface /* not final */
{
public:
virtual ~PluginManagerInterface() {};

View File

@ -13,7 +13,7 @@
#endif
// a class to report (optionally) score alignment progress
class SAProgress {
class SAProgress /* not final */ {
public:
SAProgress() { smoothing = false; }
// we need the frame period to convert seconds to work units

View File

@ -46,7 +46,7 @@ struct SBSMSFrame {
typedef long (*SBSMSResampleCB)(void *cbData, SBSMSFrame *frame);
class SBSMSInterface {
class SBSMSInterface /* not final */ {
public:
virtual ~SBSMSInterface() {}
virtual long samples(audio *buf, long n) { return 0; }
@ -141,7 +141,7 @@ class Slide {
class SBSMSInterfaceSlidingImp;
class SBSMSInterfaceSliding : public SBSMSInterface {
class SBSMSInterfaceSliding /* not final */ : public SBSMSInterface {
public:
SBSMSInterfaceSliding(Slide *rateSlide,
Slide *pitchSlide,

View File

@ -43,7 +43,7 @@ struct AboutDialogCreditItem {
using AboutDialogCreditItemsList = std::vector<AboutDialogCreditItem>;
class AboutDialog:public wxDialog {
class AboutDialog final : public wxDialog {
DECLARE_DYNAMIC_CLASS(AboutDialog)
public:

View File

@ -596,7 +596,7 @@ static wxArrayString ofqueue;
#define IPC_APPL wxT("audacity")
#define IPC_TOPIC wxT("System")
class IPCConn : public wxConnection
class IPCConn final : public wxConnection
{
public:
IPCConn()
@ -619,7 +619,7 @@ public:
}
};
class IPCServ : public wxServer
class IPCServ final : public wxServer
{
public:
IPCServ(const wxString & appl)

View File

@ -96,7 +96,7 @@ enum
class BlockFile;
class AudacityApp:public wxApp {
class AudacityApp final : public wxApp {
public:
AudacityApp();
virtual bool OnInit(void);

View File

@ -24,7 +24,7 @@
#include "Experimental.h"
class AudacityLogger:public wxEvtHandler, public wxLog {
class AudacityLogger final : public wxEvtHandler, public wxLog {
public:
AudacityLogger();
virtual ~AudacityLogger();

View File

@ -770,16 +770,16 @@ class AudioThread {
// The normal wxThread-derived AudioThread class for all other
// platforms:
class AudioThread : public wxThread {
class AudioThread final : public wxThread {
public:
AudioThread():wxThread(wxTHREAD_JOINABLE) {}
virtual ExitCode Entry();
ExitCode Entry() override;
};
#endif
#ifdef EXPERIMENTAL_MIDI_OUT
class MidiThread : public AudioThread {
class MidiThread final : public AudioThread {
public:
virtual ExitCode Entry();
};

View File

@ -127,7 +127,7 @@ struct AudioIOStartStreamOptions
#endif
};
class AUDACITY_DLL_API AudioIO {
class AUDACITY_DLL_API AudioIO final {
public:
AudioIO();

View File

@ -17,7 +17,7 @@
class AutoSaveFile;
class AUDACITY_DLL_API AudioIOListener {
class AUDACITY_DLL_API AudioIOListener /* not final */ {
public:
AudioIOListener() {}
virtual ~AudioIOListener() {}

View File

@ -37,7 +37,7 @@ enum {
ID_FILE_LIST
};
class AutoRecoveryDialog : public wxDialog
class AutoRecoveryDialog final : public wxDialog
{
public:
AutoRecoveryDialog(wxWindow *parent);

View File

@ -41,7 +41,7 @@ bool ShowAutoRecoveryDialogIfNeeded(AudacityProject** pproj,
//
// XML Handler for a <recordingrecovery> tag
//
class RecordingRecoveryHandler: public XMLTagHandler
class RecordingRecoveryHandler final : public XMLTagHandler
{
public:
RecordingRecoveryHandler(AudacityProject* proj);
@ -73,7 +73,7 @@ WX_DECLARE_STRING_HASH_MAP_WITH_DECL(short, NameMap, class AUDACITY_DLL_API);
WX_DECLARE_HASH_MAP_WITH_DECL(short, wxString, wxIntegerHash, wxIntegerEqual, IdMap, class AUDACITY_DLL_API);
WX_DECLARE_OBJARRAY_WITH_DECL(IdMap, IdMapArray, class AUDACITY_DLL_API);
class AUDACITY_DLL_API AutoSaveFile : public XMLWriter
class AUDACITY_DLL_API AutoSaveFile final : public XMLWriter
{
public:

View File

@ -36,7 +36,7 @@ class wxListEvent;
class wxButton;
class ShuttleGui;
class BatchCommandDialog:public wxDialog {
class BatchCommandDialog final : public wxDialog {
public:
// constructors and destructors
BatchCommandDialog(wxWindow *parent, wxWindowID id);

View File

@ -19,7 +19,7 @@
class Effect;
class BatchCommands {
class BatchCommands final {
public:
// constructors and destructors
BatchCommands();

View File

@ -38,7 +38,7 @@ class wxListEvent;
class wxButton;
class ShuttleGui;
class BatchProcessDialog:public wxDialog {
class BatchProcessDialog final : public wxDialog {
public:
// constructors and destructors
BatchProcessDialog(wxWindow * parent);
@ -62,7 +62,7 @@ class BatchProcessDialog:public wxDialog {
DECLARE_EVENT_TABLE()
};
class EditChainsDialog:public wxDialog
class EditChainsDialog final : public wxDialog
{
public:
EditChainsDialog(wxWindow * parent);

View File

@ -42,7 +42,7 @@ of the BlockFile system.
#include "FileDialog.h"
class BenchmarkDialog: public wxDialog
class BenchmarkDialog final : public wxDialog
{
public:
// constructors and destructors

View File

@ -38,7 +38,7 @@ class SummaryInfo {
class BlockFile {
class BlockFile /* not final */ {
public:
// Constructor / Destructor
@ -178,7 +178,7 @@ class BlockFile {
/// This is a common base class for all alias block files. It handles
/// reading and writing summary data, leaving very little for derived
/// classes to need to implement.
class AliasBlockFile : public BlockFile
class AliasBlockFile /* not final */ : public BlockFile
{
public:

View File

@ -241,7 +241,7 @@ static void RemoveDependencies(AudacityProject *project,
// DependencyDialog
//
class DependencyDialog : public wxDialog
class DependencyDialog final : public wxDialog
{
public:
DependencyDialog(wxWindow *parent,

View File

@ -35,7 +35,7 @@ DEFINE_EVENT_TYPE(EVT_DEVICE_CHANGE);
#include <mmdeviceapi.h>
#include <audioclient.h>
class DeviceChangeListener : public IMMNotificationClient,
class DeviceChangeListener final : public IMMNotificationClient,
public DeviceChangeInterface
{
public:
@ -174,7 +174,7 @@ private:
#include <locale.h>
#include <unistd.h>
class DeviceChangeListener : public DeviceChangeInterface
class DeviceChangeListener final : public DeviceChangeInterface
{
public:
DeviceChangeListener()
@ -279,7 +279,7 @@ private:
#include <CoreAudio/CoreAudio.h>
class DeviceChangeListener : public DeviceChangeInterface
class DeviceChangeListener final : public DeviceChangeInterface
{
public:
DeviceChangeListener()

View File

@ -25,7 +25,7 @@
#include <wx/event.h>
#include <wx/timer.h>
class DeviceChangeInterface
class DeviceChangeInterface /* not final */
{
public:
virtual ~DeviceChangeInterface() {};

View File

@ -40,7 +40,7 @@ typedef struct DeviceSourceMap {
wxString MakeDeviceSourceString(const DeviceSourceMap *map);
class DeviceManager
class DeviceManager final
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
#if defined(HAVE_DEVICE_CHANGE)
: public DeviceChangeHandler

View File

@ -34,7 +34,7 @@ WX_DECLARE_HASH_MAP(wxString, BlockFile*, wxStringHash, wxStringEqual, BlockHash
wxMemorySize GetFreeMemory();
class DirManager: public XMLTagHandler {
class DirManager final : public XMLTagHandler {
public:
// MM: Construct DirManager with refcount=1

View File

@ -33,7 +33,7 @@ class EnvPoint;
class ZoomInfo;
class EnvPoint : public XMLTagHandler {
class EnvPoint final : public XMLTagHandler {
public:
inline EnvPoint(Envelope *envelope, double t, double val);
@ -74,7 +74,7 @@ private:
typedef std::vector<EnvPoint> EnvArray;
class Envelope : public XMLTagHandler {
class Envelope final : public XMLTagHandler {
public:
Envelope();
void Initialize(int numPoints);

View File

@ -445,7 +445,7 @@ class FFmpegNotFoundDialog;
#define ID_FFMPEG_DLOAD 5001
/// Allows user to locate libav* libraries
class FindFFmpegDialog : public wxDialog
class FindFFmpegDialog final : public wxDialog
{
public:

View File

@ -170,7 +170,7 @@ bool LoadFFmpeg(bool showerror);
/// If Audacity failed to load libav*, this dialog
/// shows up and tells user about that. It will pop-up
/// again and again until it is disabled.
class FFmpegNotFoundDialog : public wxDialog
class FFmpegNotFoundDialog final : public wxDialog
{
public:

View File

@ -84,7 +84,7 @@ private:
std::vector<float> mProcessed;
};
class FreqGauge : public wxStatusBar
class FreqGauge final : public wxStatusBar
{
public:
FreqGauge(wxWindow * parent);
@ -104,7 +104,7 @@ private:
int mMargin;
};
class FreqPlot : public wxWindow
class FreqPlot final : public wxWindow
{
public:
FreqPlot(wxWindow *parent);
@ -123,7 +123,7 @@ private:
DECLARE_EVENT_TABLE();
};
class FreqWindow : public wxDialog
class FreqWindow final : public wxDialog
{
public:
FreqWindow(wxWindow *parent, wxWindowID id,

View File

@ -23,7 +23,7 @@ class AudacityProject;
class ShuttleGui;
class UndoManager;
class HistoryWindow :public wxDialog {
class HistoryWindow final : public wxDialog {
public:
HistoryWindow(AudacityProject * parent, UndoManager *manager);

View File

@ -30,7 +30,7 @@ class ViewInfo;
typedef std::vector<RowData> RowDataArray;
class LabelDialog:public wxDialog
class LabelDialog final : public wxDialog
{
public:

View File

@ -108,7 +108,7 @@ const int NUM_GLYPH_HIGHLIGHTS = 4;
const int MAX_NUM_ROWS =80;
class AUDACITY_DLL_API LabelTrack : public Track
class AUDACITY_DLL_API LabelTrack final : public Track
{
friend class LabelStruct;

View File

@ -30,7 +30,7 @@ of languages for Audacity.
#include "Languages.h"
#include "ShuttleGui.h"
class LangChoiceDialog:public wxDialog {
class LangChoiceDialog final : public wxDialog {
public:
LangChoiceDialog(wxWindow * parent,
wxWindowID id,

View File

@ -40,7 +40,7 @@ WX_DECLARE_OBJARRAY(Syllable, SyllableArray);
class Lyrics;
// Override wxTextCtrl to handle selection events, which the parent ignores if the control is read-only.
class HighlightTextCtrl : public wxTextCtrl
class HighlightTextCtrl final : public wxTextCtrl
{
public:
HighlightTextCtrl(Lyrics* parent,
@ -58,7 +58,7 @@ private:
DECLARE_EVENT_TABLE()
};
class Lyrics : public wxPanel
class Lyrics final : public wxPanel
{
DECLARE_DYNAMIC_CLASS(Lyrics)

View File

@ -19,7 +19,7 @@
class AudacityProject;
class Lyrics;
class LyricsWindow : public wxFrame {
class LyricsWindow final : public wxFrame {
public:
LyricsWindow(AudacityProject* parent);

View File

@ -148,7 +148,7 @@ enum {
// member functions of AudacityProject
using audCommandFunction = void (AudacityProject::*)();
class VoidFunctor : public CommandFunctor
class VoidFunctor final : public CommandFunctor
{
public:
explicit VoidFunctor(AudacityProject *project, audCommandFunction pfn)
@ -161,7 +161,7 @@ private:
};
using audCommandKeyFunction = void (AudacityProject::*)(const wxEvent *);
class KeyFunctor : public CommandFunctor
class KeyFunctor final : public CommandFunctor
{
public:
explicit KeyFunctor(AudacityProject *project, audCommandKeyFunction pfn)
@ -174,7 +174,7 @@ private:
};
using audCommandListFunction = void (AudacityProject::*)(int);
class ListFunctor : public CommandFunctor
class ListFunctor final : public CommandFunctor
{
public:
explicit ListFunctor(AudacityProject *project, audCommandListFunction pfn)
@ -187,7 +187,7 @@ private:
};
using audCommandPluginFunction = bool (AudacityProject::*)(const PluginID &, int);
class PluginFunctor : public CommandFunctor
class PluginFunctor final : public CommandFunctor
{
public:
explicit PluginFunctor(AudacityProject *project, const PluginID &id, audCommandPluginFunction pfn)
@ -5981,7 +5981,7 @@ void AudacityProject::OnAlignMoveSel(int index)
#define COLLECT_TIMING_DATA
// Audacity Score Align Progress class -- progress reports come here
class ASAProgress : public SAProgress {
class ASAProgress final : public SAProgress {
private:
float mTotalWork;
float mFrames[2];

View File

@ -31,7 +31,7 @@
// MixerTrackSlider is a subclass just to override OnMouseEvent,
// so we can know when adjustment ends, so we can PushState only then.
class MixerTrackSlider : public ASlider
class MixerTrackSlider final : public ASlider
{
public:
MixerTrackSlider(wxWindow * parent,
@ -68,7 +68,7 @@ class NoteTrack;
#endif
class WaveTrack;
class MixerTrackCluster : public wxPanel
class MixerTrackCluster final : public wxPanel
{
public:
MixerTrackCluster(wxWindow* parent,
@ -169,7 +169,7 @@ WX_DECLARE_OBJARRAY(MusicalInstrument, MusicalInstrumentArray);
// wxScrolledWindow ignores mouse clicks in client area,
// but they don't get passed to Mixerboard.
// We need to catch them to deselect all track clusters.
class MixerBoardScrolledWindow : public wxScrolledWindow
class MixerBoardScrolledWindow final : public wxScrolledWindow
{
public:
MixerBoardScrolledWindow(AudacityProject* project,
@ -194,7 +194,7 @@ public:
class MixerBoardFrame;
class TrackList;
class MixerBoard : public wxWindow
class MixerBoard final : public wxWindow
{
friend class MixerBoardFrame;
@ -301,7 +301,7 @@ public:
};
class MixerBoardFrame : public wxFrame
class MixerBoardFrame final : public wxFrame
{
public:
MixerBoardFrame(AudacityProject* parent);

View File

@ -65,7 +65,7 @@ typedef std::map<wxString, ModuleMain *> ModuleMainMap;
typedef std::map<wxString, ModuleInterface *> ModuleMap;
typedef std::map<ModuleInterface *, wxDynamicLibrary *> LibraryMap;
class ModuleManager : public ModuleManagerInterface
class ModuleManager final : public ModuleManagerInterface
{
public:
ModuleManager();

View File

@ -50,7 +50,7 @@ class wxRect;
class DirManager;
class Alg_seq; // from "allegro.h"
class AUDACITY_DLL_API NoteTrack:public Track {
class AUDACITY_DLL_API NoteTrack final : public Track {
public:
friend class TrackArtist;

View File

@ -59,7 +59,7 @@ WX_DECLARE_STRING_HASH_MAP(wxArrayString, ProviderMap);
// ============================================================================
#if wxUSE_ACCESSIBILITY
class CheckListAx: public wxWindowAccessible
class CheckListAx final : public wxWindowAccessible
{
public:
CheckListAx(wxListCtrl * window);
@ -414,7 +414,7 @@ enum
COL_COUNT
};
class PluginRegistrationDialog : public wxDialog
class PluginRegistrationDialog final : public wxDialog
{
public:
// constructors and destructors

View File

@ -164,7 +164,7 @@ typedef wxArrayString PluginIDList;
class ProviderMap;
class PluginRegistrationDialog;
class PluginManager : public PluginManagerInterface
class PluginManager final : public PluginManagerInterface
{
public:
PluginManager();

View File

@ -36,7 +36,7 @@
static wxPrintData *gPrintData = NULL;
static wxPageSetupData *gPageSetupData = NULL;
class AudacityPrintout : public wxPrintout
class AudacityPrintout final : public wxPrintout
{
public:
AudacityPrintout(wxString title,

View File

@ -223,7 +223,7 @@ private:
// This wrapper prevents the scrollbars from retaining focus after being
// used. Otherwise, the only way back to the track panel is to click it
// and that causes your original location to be lost.
class ScrollBar:public wxScrollBar
class ScrollBar final : public wxScrollBar
{
public:
ScrollBar(wxWindow* parent, wxWindowID id, long style)
@ -274,7 +274,7 @@ void SetActiveProject(AudacityProject * project)
}
#if wxUSE_DRAG_AND_DROP
class FileObject: public wxFileDataObject
class FileObject final : public wxFileDataObject
{
public:
FileObject()
@ -299,7 +299,7 @@ public:
}
};
class DropTarget: public wxFileDropTarget
class DropTarget final : public wxFileDropTarget
{
public:
DropTarget(AudacityProject *proj)

View File

@ -128,7 +128,7 @@ enum StatusBarField {
DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_CAPTURE_KEY, -1);
// XML handler for <import> tag
class ImportXMLTagHandler : public XMLTagHandler
class ImportXMLTagHandler final : public XMLTagHandler
{
public:
ImportXMLTagHandler(AudacityProject* pProject) { mProject = pProject; }
@ -144,7 +144,7 @@ class ImportXMLTagHandler : public XMLTagHandler
AudacityProject* mProject;
};
class AUDACITY_DLL_API AudacityProject: public wxFrame,
class AUDACITY_DLL_API AudacityProject final : public wxFrame,
public TrackPanelListener,
public SelectionBarListener,
public SpectralSelectionBarListener,

View File

@ -19,7 +19,7 @@
#include "SampleFormat.h"
class Resample
class Resample final
{
public:
/// Resamplers may have more than one method, offering a
@ -33,7 +33,7 @@ class Resample
// dMinFactor and dMaxFactor specify the range of factors for variable-rate resampling.
// For constant-rate, pass the same value for both.
Resample(const bool useBestMethod, const double dMinFactor, const double dMaxFactor);
virtual ~Resample();
~Resample();
static int GetNumMethods();
static wxString GetMethodName(int index);

View File

@ -40,7 +40,7 @@ class CommandType;
////////////////////////////////////////////////////////////////////////////////
class ScreenFrame:public wxFrame
class ScreenFrame final : public wxFrame
{
public:
// constructors and destructors
@ -133,7 +133,7 @@ void CloseScreenshotTools()
////////////////////////////////////////////////////////////////////////////////
class ScreenFrameTimer:public wxTimer
class ScreenFrameTimer final : public wxTimer
{
public:
ScreenFrameTimer(ScreenFrame *frame,

View File

@ -55,7 +55,7 @@ class SeqBlock {
class BlockArray : public std::vector<SeqBlock> {};
using BlockPtrArray = std::vector<SeqBlock*>; // non-owning pointers
class Sequence: public XMLTagHandler {
class Sequence final : public XMLTagHandler {
public:
//

View File

@ -24,7 +24,7 @@ public:
class WrappedType;
class Shuttle {
class Shuttle /* not final */ {
public:
// constructors and destructors
Shuttle();
@ -50,7 +50,7 @@ class Shuttle {
virtual bool ExchangeWithMaster(const wxString & Name);
};
class ShuttleCli : public Shuttle
class ShuttleCli final : public Shuttle
{
public:
wxString mParams;

View File

@ -896,7 +896,7 @@ void ShuttleGuiBase::EndNotebookPage()
// Doxygen description is at the start of the file
// this is a wxPanel with erase background disabled.
class InvisiblePanel : public wxPanel
class InvisiblePanel final : public wxPanel
{
public:
InvisiblePanel(

View File

@ -70,7 +70,7 @@ class Shuttle;
class WrappedType;
class AUDACITY_DLL_API ShuttleGuiBase
class AUDACITY_DLL_API ShuttleGuiBase /* not final */
{
public:
ShuttleGuiBase(wxWindow * pParent,teShuttleMode ShuttleMode);
@ -363,7 +363,7 @@ AUDACITY_DLL_API std::unique_ptr<wxSizer> CreateStdButtonSizer( wxWindow *parent
wxWindow *extra = NULL );
// ShuttleGui extends ShuttleGuiBase with Audacity specific extensions.
class AUDACITY_DLL_API ShuttleGui : public ShuttleGuiBase
class AUDACITY_DLL_API ShuttleGui /* not final */ : public ShuttleGuiBase
{
public:
ShuttleGui(wxWindow * pParent,teShuttleMode ShuttleMode);

View File

@ -14,7 +14,7 @@
#include "Shuttle.h"
class ShuttlePrefs : public Shuttle
class ShuttlePrefs final : public Shuttle
{
public:
// constructors and destructors

View File

@ -20,7 +20,7 @@
class ShuttleGui;
class SoundActivatedRecord : public wxDialog
class SoundActivatedRecord final : public wxDialog
{
public:
SoundActivatedRecord(wxWindow* parent);

View File

@ -21,7 +21,7 @@ class AudacityProject;
class wxCheckbox;
class HtmlWindow;
class SplashDialog:public wxDialog {
class SplashDialog final : public wxDialog {
DECLARE_DYNAMIC_CLASS(SplashDialog)
public:
SplashDialog(wxWindow * parent);

View File

@ -526,7 +526,7 @@ bool Tags::ShowEditDialog(wxWindow *parent, const wxString &title, bool force)
// ComboEditor - Wrapper to prevent unwanted background erasure
//
class ComboEditor:public wxGridCellChoiceEditor
class ComboEditor final : public wxGridCellChoiceEditor
{
public:
ComboEditor(const wxArrayString& choices, bool allowOthers = false)

View File

@ -71,7 +71,7 @@ WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxString, TagMap,class AUDACITY_DLL_API );
#define TAG_SOFTWARE wxT("Software")
#define TAG_COPYRIGHT wxT("Copyright")
class AUDACITY_DLL_API Tags: public XMLTagHandler {
class AUDACITY_DLL_API Tags final : public XMLTagHandler {
public:
Tags(); // constructor
@ -129,7 +129,7 @@ class AUDACITY_DLL_API Tags: public XMLTagHandler {
bool mEditTrackNumber;
};
class TagsEditor: public wxDialog
class TagsEditor final : public wxDialog
{
public:
// constructors and destructors

View File

@ -477,7 +477,7 @@ void FlowPacker::RectMid( int &x, int &y )
/// The trick used here is that wxWidgets can write a PNG image to a stream.
/// By writing to a custom stream, we get to see each byte of data in turn, convert
/// it to text, put in commas, and then write that out to our own text stream.
class SourceOutputStream : public wxOutputStream
class SourceOutputStream final : public wxOutputStream
{
public:
SourceOutputStream(){;};

View File

@ -82,7 +82,7 @@ private:
};
class AUDACITY_DLL_API ThemeBase
class AUDACITY_DLL_API ThemeBase /* not final */
{
public:
ThemeBase(void);
@ -136,7 +136,7 @@ protected:
};
class AUDACITY_DLL_API Theme : public ThemeBase
class AUDACITY_DLL_API Theme final : public ThemeBase
{
public:
Theme(void);

View File

@ -19,7 +19,7 @@
class NumericTextCtrl;
class ShuttleGui;
class TimeDialog:public wxDialog
class TimeDialog final : public wxDialog
{
public:

View File

@ -23,7 +23,7 @@ class Envelope;
class Ruler;
class ZoomInfo;
class TimeTrack: public Track {
class TimeTrack final : public Track {
public:

View File

@ -26,7 +26,7 @@ class wxTimerEvent;
class NumericTextCtrl;
class ShuttleGui;
class TimerRecordDialog : public wxDialog
class TimerRecordDialog final : public wxDialog
{
public:
TimerRecordDialog(wxWindow* parent);

View File

@ -47,7 +47,7 @@ WX_DEFINE_USER_EXPORTED_ARRAY(NoteTrack*, NoteTrackArray, class AUDACITY_DLL_API
class TrackList;
struct TrackListNode;
class AUDACITY_DLL_API Track: public XMLTagHandler
class AUDACITY_DLL_API Track /* not final */ : public XMLTagHandler
{
// To be TrackDisplay
@ -218,7 +218,7 @@ struct TrackListNode
TrackListNode *prev;
};
class AUDACITY_DLL_API TrackListIterator
class AUDACITY_DLL_API TrackListIterator /* not final */
{
public:
TrackListIterator(TrackList * val = NULL);
@ -265,7 +265,7 @@ private:
// TrackListCondIterator (base class for iterators that iterate over all tracks)
// that meet a condition)
class AUDACITY_DLL_API TrackListCondIterator: public TrackListIterator
class AUDACITY_DLL_API TrackListCondIterator /* not final */ : public TrackListIterator
{
public:
TrackListCondIterator(TrackList *val = NULL)
@ -288,7 +288,7 @@ class AUDACITY_DLL_API TrackListCondIterator: public TrackListIterator
//
// Based on TrackListIterator and returns only tracks of the specified type.
//
class AUDACITY_DLL_API TrackListOfKindIterator: public TrackListCondIterator
class AUDACITY_DLL_API TrackListOfKindIterator /* not final */ : public TrackListCondIterator
{
public:
TrackListOfKindIterator(int kind, TrackList * val = NULL);
@ -306,7 +306,7 @@ class AUDACITY_DLL_API TrackListOfKindIterator: public TrackListCondIterator
//
// Based on TrackListOfKindIterator and returns only tracks selected.
//
class AUDACITY_DLL_API SelectedTrackListOfKindIterator: public TrackListOfKindIterator
class AUDACITY_DLL_API SelectedTrackListOfKindIterator final : public TrackListOfKindIterator
{
public:
SelectedTrackListOfKindIterator(int kind, TrackList * val = NULL) : TrackListOfKindIterator(kind, val) {}
@ -321,7 +321,7 @@ class AUDACITY_DLL_API SelectedTrackListOfKindIterator: public TrackListOfKindIt
//
// Based on TrackListIterator returns only the currently visible tracks.
//
class AUDACITY_DLL_API VisibleTrackIterator: public TrackListCondIterator
class AUDACITY_DLL_API VisibleTrackIterator final : public TrackListCondIterator
{
public:
VisibleTrackIterator(AudacityProject *project);
@ -338,7 +338,7 @@ class AUDACITY_DLL_API VisibleTrackIterator: public TrackListCondIterator
// SyncLockedTracksIterator returns only tracks belonging to the sync-locked tracks
// in which the starting track is a member.
class AUDACITY_DLL_API SyncLockedTracksIterator : public TrackListIterator
class AUDACITY_DLL_API SyncLockedTracksIterator final : public TrackListIterator
{
public:
SyncLockedTracksIterator(TrackList * val);
@ -370,7 +370,7 @@ DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_TRACKLIST_RESIZED, -1);
// track that was added.
DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, EVT_TRACKLIST_UPDATED, -1);
class AUDACITY_DLL_API TrackList:public wxEvtHandler
class AUDACITY_DLL_API TrackList final : public wxEvtHandler
{
public:
// Create an empty TrackList

View File

@ -8846,7 +8846,7 @@ void TrackPanel::OnMergeStereo(wxCommandEvent & WXUNUSED(event))
Refresh(false);
}
class ViewSettingsDialog : public PrefsDialog
class ViewSettingsDialog final : public PrefsDialog
{
public:
ViewSettingsDialog
@ -9356,7 +9356,7 @@ void TrackPanel::OnSetName(wxCommandEvent & WXUNUSED(event))
// Small helper class to enumerate all fonts in the system
// We use this because the default implementation of
// wxFontEnumerator::GetFacenames() has changed between wx2.6 and 2.8
class TrackPanelFontEnumerator : public wxFontEnumerator
class TrackPanelFontEnumerator final : public wxFontEnumerator
{
public:
TrackPanelFontEnumerator(wxArrayString* fontNames) :

View File

@ -125,7 +125,7 @@ private:
const int DragThreshold = 3;// Anything over 3 pixels is a drag, else a click.
class AUDACITY_DLL_API TrackPanel:public wxPanel {
class AUDACITY_DLL_API TrackPanel final : public wxPanel {
public:
TrackPanel(wxWindow * parent,
@ -577,7 +577,7 @@ protected:
TrackArtist *mTrackArtist;
class AUDACITY_DLL_API AudacityTimer:public wxTimer {
class AUDACITY_DLL_API AudacityTimer final : public wxTimer {
public:
virtual void Notify() {
// (From Debian)

View File

@ -20,9 +20,9 @@
#include "TrackPanel.h"
class TrackPanelAx
class TrackPanelAx final
#if wxUSE_ACCESSIBILITY
:public wxWindowAccessible
: public wxWindowAccessible
#endif
{
public:

View File

@ -15,7 +15,7 @@ class ToolsToolBar;
class ControlToolBar;
enum class UndoPush : unsigned char;
class AUDACITY_DLL_API TrackPanelListener {
class AUDACITY_DLL_API TrackPanelListener /* not final */ {
public:
TrackPanelListener(){};

View File

@ -29,7 +29,7 @@ Populate() is called only as needed to fill the table on demand the first
time it is used after application startup or language change.
*/
template<typename ArrayType> class TranslatableArray
template<typename ArrayType> class TranslatableArray /* not final */
: public wxEvtHandler
{
public:

View File

@ -26,12 +26,18 @@ class Track;
// The subset of ViewInfo information (other than selection)
// that is sufficient for purposes of TrackArtist,
// and for computing conversions between track times and pixel positions.
class AUDACITY_DLL_API ZoomInfo
class AUDACITY_DLL_API ZoomInfo /* not final */
// Note that ViewInfo inherits from ZoomInfo but there are no virtual functions.
// That's okay if we pass always by reference and never copy, suffering "slicing."
{
public:
ZoomInfo(double start, double pixelsPerSecond);
~ZoomInfo();
// Be sure we don't slice
ZoomInfo(const ZoomInfo&) PROHIBITED;
ZoomInfo& operator= (const ZoomInfo&) PROHIBITED;
void UpdatePrefs();
int vpos; // vertical scroll pos
@ -128,8 +134,7 @@ public:
};
class AUDACITY_DLL_API ViewInfo
: public ZoomInfo
class AUDACITY_DLL_API ViewInfo final : public ZoomInfo
{
public:
ViewInfo(double start, double screenDuration, double pixelsPerSecond);

View File

@ -201,7 +201,7 @@ public:
}
};
class AUDACITY_DLL_API WaveClip : public XMLTagHandler
class AUDACITY_DLL_API WaveClip final : public XMLTagHandler
{
private:
// It is an error to copy a WaveClip without specifying the DirManager.

View File

@ -59,7 +59,7 @@ class Regions : public std::vector < Region > {};
class Envelope;
class AUDACITY_DLL_API WaveTrack : public Track {
class AUDACITY_DLL_API WaveTrack final : public Track {
private:

View File

@ -15,7 +15,7 @@
#include "PCMAliasBlockFile.h"
/// An AliasBlockFile that references uncompressed data in an existing file
class LegacyAliasBlockFile : public PCMAliasBlockFile
class LegacyAliasBlockFile final : public PCMAliasBlockFile
{
public:

View File

@ -32,7 +32,7 @@ void ComputeLegacySummaryInfo(wxFileName fileName,
// back to disk, but you can't create a NEW one from new
// sample data.
//
class LegacyBlockFile : public BlockFile {
class LegacyBlockFile final : public BlockFile {
public:
// Constructor / Destructor

View File

@ -35,7 +35,7 @@ Also, see ODPCMAliasBlockFile for a similar file.
#include <wx/thread.h>
/// An AliasBlockFile that references uncompressed data in an existing file
class ODDecodeBlockFile : public SimpleBlockFile
class ODDecodeBlockFile final : public SimpleBlockFile
{
public:

View File

@ -43,7 +43,7 @@ Some of these methods have been overridden only because they used the unsafe wxL
#include <wx/thread.h>
/// An AliasBlockFile that references uncompressed data in an existing file
class ODPCMAliasBlockFile : public PCMAliasBlockFile
class ODPCMAliasBlockFile final : public PCMAliasBlockFile
{
public:
/// Constructs a PCMAliasBlockFile, writing the summary to disk

View File

@ -15,7 +15,7 @@
#include "../DirManager.h"
/// An AliasBlockFile that references uncompressed data in an existing file
class PCMAliasBlockFile : public AliasBlockFile
class PCMAliasBlockFile /* not final */ : public AliasBlockFile
{
public:
/// Constructs a PCMAliasBlockFile, writing the summary to disk

View File

@ -21,7 +21,7 @@
#include "../DirManager.h"
/// A BlockFile containing nothing but silence. Saves disk space.
class SilentBlockFile : public BlockFile {
class SilentBlockFile final : public BlockFile {
public:
// Constructor / Destructor

View File

@ -42,7 +42,7 @@ typedef struct {
wxUint32 channels; // number of interleaved channels
} auHeader;
class SimpleBlockFile : public BlockFile {
class SimpleBlockFile /* not final */ : public BlockFile {
public:
// Constructor / Destructor

View File

@ -23,7 +23,7 @@ DECLARE_EXPORTED_EVENT_TYPE(AUDACITY_DLL_API, wxEVT_APP_COMMAND_RECEIVED, -1);
class Command;
class AppCommandEvent : public wxCommandEvent
class AppCommandEvent final : public wxCommandEvent
{
private:
Command *mCommand;

View File

@ -26,7 +26,7 @@ to that system.
#include "CommandType.h"
#include "../BatchCommands.h"
class BatchEvalCommandType : public CommandType
class BatchEvalCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -34,7 +34,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class BatchEvalCommand : public CommandImplementation
class BatchEvalCommand final : public CommandImplementation
{
public:
BatchEvalCommand(CommandType &type,

View File

@ -57,7 +57,7 @@ public:
};
// Interface
class Command
class Command /* not final */
{
public:
virtual void Progress(double completed) = 0;
@ -71,7 +71,7 @@ public:
};
// Command which wraps another command
class DecoratedCommand : public Command
class DecoratedCommand /* not final */ : public Command
{
protected:
Command *mCommand;
@ -94,7 +94,7 @@ public:
// Decorator command that performs the given command and then outputs a status
// message according to the result
class ApplyAndSendResponse : public DecoratedCommand
class ApplyAndSendResponse final : public DecoratedCommand
{
public:
ApplyAndSendResponse(Command *cmd)
@ -104,7 +104,7 @@ public:
virtual bool Apply(CommandExecutionContext context);
};
class CommandImplementation : public Command
class CommandImplementation /* not final */ : public Command
{
private:
CommandType &mType;

View File

@ -117,7 +117,7 @@ CommandManager. It holds the callback for one command.
#include "../Experimental.h"
// Shared by all projects
static class CommandManagerEventMonitor : public wxEventFilter
static class CommandManagerEventMonitor final : public wxEventFilter
{
public:
CommandManagerEventMonitor()

View File

@ -25,7 +25,7 @@
#include "audacity/Types.h"
class AUDACITY_DLL_API CommandFunctor
class AUDACITY_DLL_API CommandFunctor /* not final */
{
public:
CommandFunctor(){};
@ -89,7 +89,7 @@ WX_DECLARE_HASH_MAP_WITH_DECL(int, CommandListEntry *, wxIntegerHash, wxIntegerE
class AudacityProject;
class AUDACITY_DLL_API CommandManager: public XMLTagHandler
class AUDACITY_DLL_API CommandManager final : public XMLTagHandler
{
public:

View File

@ -30,7 +30,7 @@ should be reference-counted.
#include "../src/Project.h"
/// Interface for objects that can receive command progress information
class CommandProgressTarget
class CommandProgressTarget /* not final */
{
public:
virtual ~CommandProgressTarget() {}
@ -38,7 +38,7 @@ public:
};
/// Used to ignore a command's progress updates
class NullProgressTarget : public CommandProgressTarget
class NullProgressTarget final : public CommandProgressTarget
{
public:
virtual ~NullProgressTarget() {}
@ -62,7 +62,7 @@ public:
};
/// Interface for objects that can receive (string) messages from a command
class CommandMessageTarget
class CommandMessageTarget /* not final */
{
public:
virtual ~CommandMessageTarget() {}
@ -70,7 +70,7 @@ public:
};
///
class ProgressToMessageTarget : public CommandProgressTarget
class ProgressToMessageTarget final : public CommandProgressTarget
{
private:
CommandMessageTarget &mTarget;
@ -89,7 +89,7 @@ public:
};
/// Used to ignore a command's message updates
class NullMessageTarget : public CommandMessageTarget
class NullMessageTarget final : public CommandMessageTarget
{
public:
virtual ~NullMessageTarget() {}
@ -97,7 +97,7 @@ public:
};
/// Displays messages from a command in a wxMessageBox
class MessageBoxTarget : public CommandMessageTarget
class MessageBoxTarget final : public CommandMessageTarget
{
public:
virtual ~MessageBoxTarget() {}
@ -108,7 +108,7 @@ public:
};
/// Displays messages from a command in a wxStatusBar
class StatusBarTarget : public CommandMessageTarget
class StatusBarTarget final : public CommandMessageTarget
{
private:
wxStatusBar &mStatus;
@ -123,7 +123,7 @@ public:
};
/// Adds messages to a response queue (to be sent back to a script)
class ResponseQueueTarget : public CommandMessageTarget
class ResponseQueueTarget final : public CommandMessageTarget
{
private:
ResponseQueue &mResponseQueue;
@ -142,7 +142,7 @@ public:
};
/// Sends messages to two message targets at once
class CombinedMessageTarget : public CommandMessageTarget
class CombinedMessageTarget final : public CommandMessageTarget
{
private:
CommandMessageTarget *m1, *m2;

View File

@ -23,7 +23,7 @@ class CommandOutputTarget;
class CommandSignature;
class wxString;
class CommandType
class CommandType /* not final */
{
private:
wxString *mName;

View File

@ -22,7 +22,7 @@ classes
class WaveTrack;
class CompareAudioCommandType : public CommandType
class CompareAudioCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -30,7 +30,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class CompareAudioCommand : public CommandImplementation
class CompareAudioCommand final : public CommandImplementation
{
private:
double mT0, mT1;

View File

@ -23,7 +23,7 @@ name.
#include "Command.h"
#include "CommandType.h"
class ExecMenuCommandType : public CommandType
class ExecMenuCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -31,7 +31,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class ExecMenuCommand : public CommandImplementation
class ExecMenuCommand final : public CommandImplementation
{
public:
ExecMenuCommand(CommandType &type,

View File

@ -23,7 +23,7 @@ channel.
#include "Command.h"
#include "CommandType.h"
class GetAllMenuCommandsType : public CommandType
class GetAllMenuCommandsType final : public CommandType
{
public:
virtual wxString BuildName();
@ -31,7 +31,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class GetAllMenuCommands : public CommandImplementation
class GetAllMenuCommands final : public CommandImplementation
{
public:
GetAllMenuCommands(CommandType &type,

View File

@ -19,7 +19,7 @@
#include "Command.h"
#include "CommandType.h"
class GetProjectInfoCommandType : public CommandType
class GetProjectInfoCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -28,7 +28,7 @@ public:
};
class GetProjectInfoCommand : public CommandImplementation
class GetProjectInfoCommand final : public CommandImplementation
{
public:
GetProjectInfoCommand(CommandType &type, CommandOutputTarget *target)

View File

@ -19,7 +19,7 @@
#include "Command.h"
#include "CommandType.h"
class GetTrackInfoCommandType : public CommandType
class GetTrackInfoCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -27,7 +27,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class GetTrackInfoCommand : public CommandImplementation
class GetTrackInfoCommand final : public CommandImplementation
{
public:
GetTrackInfoCommand(CommandType &type, CommandOutputTarget *target)

View File

@ -22,7 +22,7 @@
#include "CommandType.h"
#include "Command.h"
class HelpCommandType : public CommandType
class HelpCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -30,7 +30,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class HelpCommand : public CommandImplementation
class HelpCommand final : public CommandImplementation
{
public:
HelpCommand(HelpCommandType &type, CommandOutputTarget *target)

View File

@ -22,7 +22,7 @@
// Import
class ImportCommandType : public CommandType
class ImportCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -30,7 +30,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class ImportCommand : public CommandImplementation
class ImportCommand final : public CommandImplementation
{
public:
ImportCommand(CommandType &type,
@ -44,7 +44,7 @@ public:
// Export
class ExportCommandType : public CommandType
class ExportCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -52,7 +52,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class ExportCommand : public CommandImplementation
class ExportCommand final : public CommandImplementation
{
public:
ExportCommand(CommandType &type,

View File

@ -24,7 +24,7 @@
#include "Command.h"
#include "CommandType.h"
class MessageCommandType : public CommandType
class MessageCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -32,7 +32,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class MessageCommand : public CommandImplementation
class MessageCommand final : public CommandImplementation
{
public:
MessageCommand(CommandType &type,

View File

@ -22,7 +22,7 @@
// Open
class OpenProjectCommandType : public CommandType
class OpenProjectCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -30,7 +30,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class OpenProjectCommand : public CommandImplementation
class OpenProjectCommand final : public CommandImplementation
{
public:
OpenProjectCommand(CommandType &type,
@ -44,7 +44,7 @@ public:
// Save
class SaveProjectCommandType : public CommandType
class SaveProjectCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -52,7 +52,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class SaveProjectCommand : public CommandImplementation
class SaveProjectCommand final : public CommandImplementation
{
public:
SaveProjectCommand(CommandType &type,

View File

@ -25,7 +25,7 @@
// GetPreference
class GetPreferenceCommandType : public CommandType
class GetPreferenceCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -33,7 +33,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class GetPreferenceCommand : public CommandImplementation
class GetPreferenceCommand final : public CommandImplementation
{
public:
GetPreferenceCommand(CommandType &type,
@ -47,7 +47,7 @@ public:
// SetPreference
class SetPreferenceCommandType : public CommandType
class SetPreferenceCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -55,7 +55,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class SetPreferenceCommand : public CommandImplementation
class SetPreferenceCommand final : public CommandImplementation
{
public:
SetPreferenceCommand(CommandType &type,

View File

@ -23,7 +23,7 @@ class wxRect;
class ToolManager;
class CommandOutputTarget;
class ScreenshotCommandType : public CommandType
class ScreenshotCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -31,7 +31,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class ScreenshotCommand : public CommandImplementation
class ScreenshotCommand final : public CommandImplementation
{
private:
// May need to ignore the screenshot dialog

View File

@ -19,7 +19,7 @@
#include "CommandType.h"
#include "Command.h"
class SelectCommandType : public CommandType
class SelectCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -27,7 +27,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class SelectCommand : public CommandImplementation
class SelectCommand final : public CommandImplementation
{
public:
SelectCommand(SelectCommandType &type, CommandOutputTarget *target)

View File

@ -23,7 +23,7 @@
class Track;
class TrackList;
class SetProjectInfoCommandType : public CommandType
class SetProjectInfoCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -32,7 +32,7 @@ public:
};
class SetProjectInfoCommand : public CommandImplementation
class SetProjectInfoCommand final : public CommandImplementation
{
public:
SetProjectInfoCommand(CommandType &type, CommandOutputTarget *target)

View File

@ -19,7 +19,7 @@
#include "Command.h"
#include "CommandType.h"
class SetTrackInfoCommandType : public CommandType
class SetTrackInfoCommandType final : public CommandType
{
public:
virtual wxString BuildName();
@ -27,7 +27,7 @@ public:
virtual Command *Create(CommandOutputTarget *target);
};
class SetTrackInfoCommand : public CommandImplementation
class SetTrackInfoCommand final : public CommandImplementation
{
public:
SetTrackInfoCommand(CommandType &type, CommandOutputTarget *target)

View File

@ -43,7 +43,7 @@ a certain criterion. This is a base validator which allows anything.
#ifndef __VALIDATORS__
#define __VALIDATORS__
class Validator
class Validator /* not final */
{
private:
wxVariant mConverted;
@ -81,7 +81,7 @@ public:
}
};
class OptionValidator : public Validator
class OptionValidator final : public Validator
{
private:
wxArrayString mOptions;
@ -120,7 +120,7 @@ public:
}
};
class BoolValidator : public Validator
class BoolValidator final : public Validator
{
public:
virtual bool Validate(const wxVariant &v)
@ -140,7 +140,7 @@ public:
}
};
class BoolArrayValidator : public Validator
class BoolArrayValidator final : public Validator
{
public:
virtual bool Validate(const wxVariant &v)
@ -164,7 +164,7 @@ public:
}
};
class DoubleValidator : public Validator
class DoubleValidator final : public Validator
{
public:
virtual bool Validate(const wxVariant &v)
@ -184,7 +184,7 @@ public:
}
};
class RangeValidator : public Validator
class RangeValidator final : public Validator
{
private:
double mLower, mUpper;
@ -209,7 +209,7 @@ public:
}
};
class IntValidator : public Validator
class IntValidator final : public Validator
{
public:
virtual bool Validate(const wxVariant &v)
@ -231,7 +231,7 @@ public:
};
/*
class AndValidator : public Validator
class AndValidator final : public Validator
{
private:
Validator &v1, &v2;

View File

@ -27,7 +27,7 @@
class ShuttleGui;
class EffectAmplify : public Effect
class EffectAmplify final : public Effect
{
public:
EffectAmplify();

Some files were not shown because too many files have changed in this diff Show More