1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-10 17:11:17 +02:00

Facade class for basic UI, injection of a wxWidgets implementation...

... but none of the methods is defined yet.

The intention is to inject dependencies on wxWidgets (or other) toolkit so that
lower-level files have less build dependency on wxCore classes or on the
event loop.

Original commit: d20cf012556a819e68515d86bb66a2c047007539

Signed-off-by: Panagiotis Vasilopoulos <hello@alwayslivid.com>
This commit is contained in:
Paul Licameli 2021-02-07 21:17:45 -05:00 committed by Panagiotis Vasilopoulos
parent 6daf0a29b7
commit 2d0394796e
No known key found for this signature in database
GPG Key ID: 9E541BDE43B99F44
8 changed files with 1066 additions and 171 deletions

View File

@ -7,6 +7,7 @@ set( LIBRARIES
lib-strings
lib-utility
lib-components
lib-basic-ui
)
foreach( LIBRARY ${LIBRARIES} )

View File

@ -0,0 +1,25 @@
/*!********************************************************************
Audacity: A Digital Audio Editor
@file BasicUI.cpp
Paul Licameli
**********************************************************************/
#include "BasicUI.h"
namespace BasicUI {
Services::~Services() = default;
static Services *theInstance = nullptr;
Services *Get() { return theInstance; }
Services *Install(Services *pInstance)
{
auto result = theInstance;
theInstance = pInstance;
return result;
}
}

View File

@ -0,0 +1,47 @@
/*!********************************************************************
Audacity: A Digital Audio Editor
@file BasicUI.h
@brief Toolkit-neutral facade for basic user interface services
Paul Licameli
**********************************************************************/
#ifndef __AUDACITY_BASIC_UI__
#define __AUDACITY_BASIC_UI__
namespace BasicUI {
//! @name Types used in the Services interface
//! @{
//! @}
//! Abstract class defines a few user interface services, not mentioning particular toolkits
/*! The intention is that the application supplies a concrete implementation at
startup. Most code will not use this class directly, but call the inline
functions that follow. */
class BASIC_UI_API Services {
public:
virtual ~Services();
};
//! Fetch the global instance, or nullptr if none is yet installed
BASIC_UI_API Services *Get();
//! Install an implementation; return the previously installed instance
BASIC_UI_API Services *Install(Services *pInstance);
/*! @name Functions that invoke global Services
These dispatch to the global Services, if supplied. If none was supplied,
they are mostly no-ops, with exceptions as noted. All should be called on
the main thread only, except as noted.
*/
//! @{
//! @}
}
#endif

View File

@ -0,0 +1,23 @@
#[[
This library defines a facade interface, BasicUI::Services, for a few basic
interactions with the user, such as showing simple dialog boxes, and for
enqueuing actions to the event loop, and yielding to to the event dispatcher.
The interface makes no mention of classes in wxWidgets. Using this library
instead of making direct use of wxWidgets enlarges the parts of the program
that are toolkit neutral.
There is a global pointer to an instance of Services, and the main program is
expected, at startup, to create a static instance of a subclass of Services and
set the pointer. If it does not, then calls to the non-member functions in
namespace BasicUI are no-ops.
]]#
set( SOURCES
BasicUI.cpp
BasicUI.h
)
audacity_library( lib-basic-ui "${SOURCES}"
""
"" ""
)

View File

@ -110,6 +110,7 @@ It handles initialization and termination by subclassing wxApp.
#include "tracks/ui/Scrubbing.h"
#include "widgets/FileConfig.h"
#include "widgets/FileHistory.h"
#include "widgets/wxWidgetsBasicUI.h"
#ifdef EXPERIMENTAL_EASY_CHANGE_KEY_BINDINGS
#include "prefs/KeyConfigPrefs.h"
@ -975,6 +976,12 @@ bool AudacityApp::OnInit() {
// Ensure we have an event loop during initialization
wxEventLoopGuarantor eventLoop;
// Inject basic GUI services behind the facade
{
static wxWidgetsBasicUI uiServices;
(void)BasicUI::Install(&uiServices);
}
// Fire up SQLite
if ( !ProjectFileIO::InitializeSQL() )
this->CallAfter([]{
@ -983,7 +990,6 @@ bool AudacityApp::OnInit() {
QuitAudacity( true );
});
// cause initialization of wxWidgets' global logger target
(void)AudacityLogger::Get();

View File

@ -409,11 +409,352 @@ list( APPEND SOURCES PRIVATE
commands/Validators.h
)
# ~~~
# Effects source files
# ~~~
list( APPEND SOURCES PRIVATE
# Built-in effects
list( APPEND SOURCES
PRIVATE
AColor.cpp
AColor.h
AColorResources.h
ActiveProjects.cpp
ActiveProjects.h
AboutDialog.cpp
AboutDialog.h
AdornedRulerPanel.cpp
AdornedRulerPanel.h
AllThemeResources.cpp
AllThemeResources.h
AttachedVirtualFunction.h
AudacityApp.cpp
AudacityApp.h
$<$<BOOL:${wxIS_MAC}>:AudacityApp.mm>
AudacityException.cpp
AudacityException.h
AudacityFileConfig.cpp
AudacityFileConfig.h
AudacityHeaders.cpp
AudacityHeaders.h
AudacityLogger.cpp
AudacityLogger.h
AudioIO.cpp
AudioIO.h
AudioIOBase.cpp
AudioIOBase.h
AudioIOListener.h
AutoRecoveryDialog.cpp
AutoRecoveryDialog.h
BatchCommandDialog.cpp
BatchCommandDialog.h
BatchCommands.cpp
BatchCommands.h
BatchProcessDialog.cpp
BatchProcessDialog.h
Benchmark.cpp
Benchmark.h
CellularPanel.cpp
CellularPanel.h
ClassicThemeAsCeeCode.h
ClientData.h
ClientDataHelpers.h
Clipboard.cpp
Clipboard.h
CommonCommandFlags.cpp
CommonCommandFlags.h
DarkThemeAsCeeCode.h
DBConnection.cpp
DBConnection.h
DeviceChange.cpp
DeviceChange.h
DeviceManager.cpp
DeviceManager.h
Diags.cpp
Diags.h
Dither.cpp
Dither.h
Envelope.cpp
Envelope.h
EnvelopeEditor.cpp
EnvelopeEditor.h
FFT.cpp
FFT.h
FFmpeg.cpp
FFmpeg.h
FileException.cpp
FileException.h
FileFormats.cpp
FileFormats.h
FileIO.cpp
FileIO.h
FileNames.cpp
FileNames.h
FreqWindow.cpp
FreqWindow.h
HelpText.cpp
HelpText.h
HiContrastThemeAsCeeCode.h
HistoryWindow.cpp
HistoryWindow.h
HitTestResult.h
ImageManipulation.cpp
ImageManipulation.h
InconsistencyException.cpp
InconsistencyException.h
InterpolateAudio.cpp
InterpolateAudio.h
KeyboardCapture.cpp
KeyboardCapture.h
LabelDialog.cpp
LabelDialog.h
LabelTrack.cpp
LabelTrack.h
LangChoice.cpp
LangChoice.h
Legacy.cpp
Legacy.h
LightThemeAsCeeCode.h
Lyrics.cpp
Lyrics.h
LyricsWindow.cpp
LyricsWindow.h
MacroMagic.h
Matrix.cpp
Matrix.h
Menus.cpp
Menus.h
Mix.cpp
Mix.h
MixerBoard.cpp
MixerBoard.h
ModuleManager.cpp
ModuleManager.h
ModuleSettings.cpp
ModuleSettings.h
NoteTrack.cpp
NoteTrack.h
NumberScale.h
PitchName.cpp
PitchName.h
PlatformCompatibility.cpp
PlatformCompatibility.h
PlaybackSchedule.cpp
PlaybackSchedule.h
PluginManager.cpp
PluginManager.h
PluginRegistrationDialog.cpp
PluginRegistrationDialog.h
Prefs.cpp
Prefs.h
Printing.cpp
Printing.h
Profiler.cpp
Profiler.h
Project.cpp
Project.h
ProjectAudioIO.cpp
ProjectAudioIO.h
ProjectAudioManager.cpp
ProjectAudioManager.h
ProjectFileIO.cpp
ProjectFileIO.h
ProjectFileIORegistry.cpp
ProjectFileIORegistry.h
ProjectFileManager.cpp
ProjectFileManager.h
ProjectHistory.cpp
ProjectHistory.h
ProjectManager.cpp
ProjectManager.h
ProjectSelectionManager.cpp
ProjectSelectionManager.h
ProjectSerializer.cpp
ProjectSerializer.h
ProjectSettings.cpp
ProjectSettings.h
ProjectStatus.cpp
ProjectStatus.h
ProjectWindow.cpp
ProjectWindow.h
ProjectWindowBase.cpp
ProjectWindowBase.h
RealFFTf.cpp
RealFFTf.h
RealFFTf48x.cpp
RealFFTf48x.h
RefreshCode.h
Registrar.h
Registry.cpp
Registry.h
Resample.cpp
Resample.h
RingBuffer.cpp
RingBuffer.h
SampleBlock.cpp
SampleBlock.h
SampleFormat.cpp
SampleFormat.h
Screenshot.cpp
Screenshot.h
SelectUtilities.cpp
SelectUtilities.h
SelectedRegion.cpp
SelectedRegion.h
SelectionState.cpp
SelectionState.h
Sequence.cpp
Sequence.h
Shuttle.cpp
Shuttle.h
ShuttleGetDefinition.cpp
ShuttleGetDefinition.h
ShuttleGui.cpp
ShuttleGui.h
ShuttlePrefs.cpp
ShuttlePrefs.h
Snap.cpp
Snap.h
SoundActivatedRecord.cpp
SoundActivatedRecord.h
Spectrum.cpp
Spectrum.h
SpectrumAnalyst.cpp
SpectrumAnalyst.h
SplashDialog.cpp
SplashDialog.h
SqliteSampleBlock.cpp
SseMathFuncs.cpp
SseMathFuncs.h
Tags.cpp
Tags.h
TempDirectory.cpp
TempDirectory.h
Theme.cpp
Theme.h
ThemeAsCeeCode.h
TimeDialog.cpp
TimeDialog.h
TimeTrack.cpp
TimeTrack.h
TimerRecordDialog.cpp
TimerRecordDialog.h
Track.cpp
Track.h
TrackArtist.cpp
TrackArtist.h
TrackInfo.cpp
TrackInfo.h
TrackPanel.cpp
TrackPanel.h
TrackPanelAx.cpp
TrackPanelAx.h
TrackPanelCell.cpp
TrackPanelCell.h
TrackPanelDrawable.cpp
TrackPanelDrawable.h
TrackPanelDrawingContext.h
TrackPanelListener.h
TrackPanelMouseEvent.h
TrackPanelResizeHandle.cpp
TrackPanelResizeHandle.h
TrackPanelResizerCell.cpp
TrackPanelResizerCell.h
TrackUtilities.cpp
TrackUtilities.h
UIHandle.cpp
UIHandle.h
UndoManager.cpp
UndoManager.h
UserException.cpp
UserException.h
ViewInfo.cpp
ViewInfo.h
VoiceKey.cpp
VoiceKey.h
WaveClip.cpp
WaveClip.h
WaveTrack.cpp
WaveTrack.h
WaveTrackLocation.h
WrappedType.cpp
WrappedType.h
ZoomInfo.cpp
ZoomInfo.h
float_cast.h
wxFileNameWrapper.h
# Commands
commands/AppCommandEvent.cpp
commands/AppCommandEvent.h
commands/AudacityCommand.cpp
commands/AudacityCommand.h
commands/BatchEvalCommand.cpp
commands/BatchEvalCommand.h
commands/Command.cpp
commands/Command.h
commands/CommandBuilder.cpp
commands/CommandBuilder.h
commands/CommandContext.cpp
commands/CommandContext.h
commands/CommandDirectory.cpp
commands/CommandDirectory.h
commands/CommandFlag.h
commands/CommandFunctors.h
commands/CommandHandler.cpp
commands/CommandHandler.h
commands/CommandManager.cpp
commands/CommandManager.h
commands/CommandManagerWindowClasses.h
commands/CommandMisc.h
commands/CommandSignature.cpp
commands/CommandSignature.h
commands/CommandTargets.cpp
commands/CommandTargets.h
commands/CommandType.cpp
commands/CommandType.h
commands/CompareAudioCommand.cpp
commands/CompareAudioCommand.h
commands/Demo.cpp
commands/Demo.h
commands/DragCommand.cpp
commands/DragCommand.h
commands/GetInfoCommand.cpp
commands/GetInfoCommand.h
commands/GetTrackInfoCommand.cpp
commands/GetTrackInfoCommand.h
commands/HelpCommand.cpp
commands/HelpCommand.h
commands/ImportExportCommands.cpp
commands/ImportExportCommands.h
commands/Keyboard.cpp
commands/Keyboard.h
commands/LoadCommands.cpp
commands/LoadCommands.h
commands/MessageCommand.cpp
commands/MessageCommand.h
commands/OpenSaveCommands.cpp
commands/OpenSaveCommands.h
commands/PreferenceCommands.cpp
commands/PreferenceCommands.h
commands/ResponseQueue.cpp
commands/ResponseQueue.h
commands/ScreenshotCommand.cpp
commands/ScreenshotCommand.h
commands/ScriptCommandRelay.cpp
commands/ScriptCommandRelay.h
commands/SelectCommand.cpp
commands/SelectCommand.h
commands/SetClipCommand.cpp
commands/SetClipCommand.h
commands/SetEnvelopeCommand.cpp
commands/SetEnvelopeCommand.h
commands/SetLabelCommand.cpp
commands/SetLabelCommand.h
commands/SetProjectCommand.cpp
commands/SetProjectCommand.h
commands/SetTrackInfoCommand.cpp
commands/SetTrackInfoCommand.h
commands/Validators.h
# Built-in Effects
effects/Amplify.cpp
effects/Amplify.h
effects/AutoDuck.cpp
@ -513,39 +854,50 @@ list( APPEND SOURCES PRIVATE
effects/TwoPassSimpleMono.h
effects/Wahwah.cpp
effects/Wahwah.h
# VST effects
# VST Effects
$<$<BOOL:${USE_VST}>:
effects/VST/VSTControl.h
effects/VST/VSTEffect.cpp
effects/VST/VSTEffect.h
effects/VST/aeffectx.h
>
$<$<AND:$<BOOL:${USE_VST}>,$<BOOL:${wxIS_GTK}>>:
effects/VST/VSTControlGTK.cpp
effects/VST/VSTControlGTK.h
>
$<$<AND:$<BOOL:${USE_VST}>,$<BOOL:${wxIS_WIN}>>:
effects/VST/VSTControlMSW.cpp
effects/VST/VSTControlMSW.h
>
$<$<AND:$<BOOL:${USE_VST}>,$<BOOL:${wxIS_MAC}>>:
effects/VST/VSTControlOSX.h
effects/VST/VSTControlOSX.mm
>
# Audio Unit effects
# Audio Unit Effects
$<$<AND:$<BOOL:${USE_AUDIO_UNITS}>,$<BOOL:${wxIS_MAC}>>:
effects/audiounits/AUControl.h
effects/audiounits/AUControl.mm
effects/audiounits/AudioUnitEffect.cpp
effects/audiounits/AudioUnitEffect.h
>
# Ladspa effects
# Ladspa Effects
$<$<BOOL:${USE_LADSPA}>:
effects/ladspa/LadspaEffect.cpp
effects/ladspa/LadspaEffect.h
effects/ladspa/ladspa.h
>
# LV2 effects
# LV2 Effects
$<$<BOOL:${USE_LV2}>:
effects/lv2/LV2Effect.cpp
effects/lv2/LV2Effect.h
@ -557,20 +909,426 @@ list( APPEND SOURCES PRIVATE
effects/lv2/zix/ring.cpp
effects/lv2/zix/ring.h
>
# Nyquist effects
# Nyquist Effects
$<$<BOOL:${USE_NYQUIST}>:
effects/nyquist/LoadNyquist.cpp
effects/nyquist/LoadNyquist.h
effects/nyquist/Nyquist.cpp
effects/nyquist/Nyquist.h
>
# VAMP effects
# VAMP Effects
$<$<BOOL:${USE_VAMP}>:
effects/vamp/LoadVamp.cpp
effects/vamp/LoadVamp.h
effects/vamp/VampEffect.cpp
effects/vamp/VampEffect.h
>
# Export
export/Export.cpp
export/Export.h
# Standard exporters
export/ExportCL.cpp
export/ExportMP3.cpp
export/ExportMP3.h
export/ExportMultiple.cpp
export/ExportMultiple.h
export/ExportPCM.cpp
# Optional exporters
$<$<BOOL:${USE_FFMPEG}>:
export/ExportFFmpeg.cpp
export/ExportFFmpegDialogs.cpp
export/ExportFFmpegDialogs.h
>
$<$<BOOL:${USE_LIBFLAC}>:
export/ExportFLAC.cpp
>
$<$<BOOL:${USE_LIBTWOLAME}>:
export/ExportMP2.cpp
>
$<$<AND:$<BOOL:${USE_LIBOGG}>,$<BOOL:${USE_LIBVORBIS}>>:
export/ExportOGG.cpp
>
# Import
import/FormatClassifier.cpp
import/FormatClassifier.h
import/Import.cpp
import/Import.h
import/ImportForwards.h
import/MultiFormatReader.cpp
import/MultiFormatReader.h
import/RawAudioGuess.cpp
import/RawAudioGuess.h
import/SpecPowerMeter.cpp
import/SpecPowerMeter.h
# Standard importers
import/ImportAUP.cpp
import/ImportLOF.cpp
import/ImportPCM.cpp
import/ImportPlugin.h
import/ImportPlugin.cpp
import/ImportRaw.cpp
import/ImportRaw.h
# Optional importers
$<$<BOOL:${USE_FFMPEG}>:
import/ImportFFmpeg.cpp
>
$<$<BOOL:${USE_LIBFLAC}>:
import/ImportFLAC.cpp
>
$<$<BOOL:${USE_GSTREAMER}>:
import/ImportGStreamer.cpp
>
$<$<BOOL:${USE_MIDI}>:
import/ImportMIDI.cpp
import/ImportMIDI.h
>
$<$<BOOL:${USE_LIBMAD}>:
import/ImportMP3.cpp
>
$<$<AND:$<BOOL:${USE_LIBOGG}>,$<BOOL:${USE_LIBVORBIS}>>:
import/ImportOGG.cpp
>
# Menus
menus/ClipMenus.cpp
menus/EditMenus.cpp
menus/ExtraMenus.cpp
menus/FileMenus.cpp
menus/HelpMenus.cpp
menus/LabelMenus.cpp
menus/NavigationMenus.cpp
menus/PluginMenus.cpp
menus/SelectMenus.cpp
menus/ToolbarMenus.cpp
menus/TrackMenus.cpp
menus/TransportMenus.cpp
menus/ViewMenus.cpp
menus/WindowMenus.cpp
# Preferences
prefs/BatchPrefs.cpp
prefs/BatchPrefs.h
prefs/DevicePrefs.cpp
prefs/DevicePrefs.h
prefs/DirectoriesPrefs.cpp
prefs/DirectoriesPrefs.h
prefs/EffectsPrefs.cpp
prefs/EffectsPrefs.h
prefs/ExtImportPrefs.cpp
prefs/ExtImportPrefs.h
prefs/GUIPrefs.cpp
prefs/GUIPrefs.h
prefs/GUISettings.h
prefs/ImportExportPrefs.cpp
prefs/ImportExportPrefs.h
prefs/KeyConfigPrefs.cpp
prefs/KeyConfigPrefs.h
prefs/LibraryPrefs.cpp
prefs/LibraryPrefs.h
prefs/MidiIOPrefs.cpp
prefs/MidiIOPrefs.h
prefs/ModulePrefs.cpp
prefs/ModulePrefs.h
prefs/MousePrefs.cpp
prefs/MousePrefs.h
prefs/PlaybackPrefs.cpp
prefs/PlaybackPrefs.h
prefs/PrefsDialog.cpp
prefs/PrefsDialog.h
prefs/PrefsPanel.cpp
prefs/PrefsPanel.h
prefs/QualityPrefs.cpp
prefs/QualityPrefs.h
prefs/QualitySettings.cpp
prefs/QualitySettings.h
prefs/RecordingPrefs.cpp
prefs/RecordingPrefs.h
prefs/SpectrogramSettings.cpp
prefs/SpectrogramSettings.h
prefs/SpectrumPrefs.cpp
prefs/SpectrumPrefs.h
prefs/ThemePrefs.cpp
prefs/ThemePrefs.h
prefs/TracksBehaviorsPrefs.cpp
prefs/TracksBehaviorsPrefs.h
prefs/TracksPrefs.cpp
prefs/TracksPrefs.h
prefs/WarningsPrefs.cpp
prefs/WarningsPrefs.h
prefs/WaveformPrefs.cpp
prefs/WaveformPrefs.h
prefs/WaveformSettings.cpp
prefs/WaveformSettings.h
# Toolbars
toolbars/ControlToolBar.cpp
toolbars/ControlToolBar.h
toolbars/DeviceToolBar.cpp
toolbars/DeviceToolBar.h
toolbars/EditToolBar.cpp
toolbars/EditToolBar.h
toolbars/MeterToolBar.cpp
toolbars/MeterToolBar.h
toolbars/ScrubbingToolBar.cpp
toolbars/ScrubbingToolBar.h
toolbars/SelectionBar.cpp
toolbars/SelectionBar.h
toolbars/SelectionBarListener.h
toolbars/SpectralSelectionBar.cpp
toolbars/SpectralSelectionBar.h
toolbars/SpectralSelectionBarListener.h
toolbars/TimeToolBar.cpp
toolbars/TimeToolBar.h
toolbars/ToolBar.cpp
toolbars/ToolBar.h
toolbars/ToolDock.cpp
toolbars/ToolDock.h
toolbars/ToolManager.cpp
toolbars/ToolManager.h
toolbars/ToolsToolBar.cpp
toolbars/ToolsToolBar.h
toolbars/TranscriptionToolBar.cpp
toolbars/TranscriptionToolBar.h
# Tracks
tracks/labeltrack/ui/LabelDefaultClickHandle.cpp
tracks/labeltrack/ui/LabelDefaultClickHandle.h
tracks/labeltrack/ui/LabelGlyphHandle.cpp
tracks/labeltrack/ui/LabelGlyphHandle.h
tracks/labeltrack/ui/LabelTextHandle.cpp
tracks/labeltrack/ui/LabelTextHandle.h
tracks/labeltrack/ui/LabelTrackControls.cpp
tracks/labeltrack/ui/LabelTrackControls.h
tracks/labeltrack/ui/LabelTrackShifter.cpp
tracks/labeltrack/ui/LabelTrackVRulerControls.cpp
tracks/labeltrack/ui/LabelTrackVRulerControls.h
tracks/labeltrack/ui/LabelTrackView.cpp
tracks/labeltrack/ui/LabelTrackView.h
tracks/playabletrack/notetrack/ui/NoteTrackAffordanceControls.h
tracks/playabletrack/notetrack/ui/NoteTrackAffordanceControls.cpp
tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.cpp
tracks/playabletrack/notetrack/ui/NoteTrackButtonHandle.h
tracks/playabletrack/notetrack/ui/NoteTrackControls.cpp
tracks/playabletrack/notetrack/ui/NoteTrackControls.h
tracks/playabletrack/notetrack/ui/NoteTrackShifter.cpp
tracks/playabletrack/notetrack/ui/NoteTrackSliderHandles.cpp
tracks/playabletrack/notetrack/ui/NoteTrackSliderHandles.h
tracks/playabletrack/notetrack/ui/NoteTrackVRulerControls.cpp
tracks/playabletrack/notetrack/ui/NoteTrackVRulerControls.h
tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp
tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.h
tracks/playabletrack/notetrack/ui/NoteTrackView.cpp
tracks/playabletrack/notetrack/ui/NoteTrackView.h
tracks/playabletrack/notetrack/ui/StretchHandle.cpp
tracks/playabletrack/notetrack/ui/StretchHandle.h
tracks/playabletrack/ui/PlayableTrackButtonHandles.cpp
tracks/playabletrack/ui/PlayableTrackButtonHandles.h
tracks/playabletrack/ui/PlayableTrackControls.cpp
tracks/playabletrack/ui/PlayableTrackControls.h
tracks/playabletrack/wavetrack/ui/CutlineHandle.cpp
tracks/playabletrack/wavetrack/ui/CutlineHandle.h
tracks/playabletrack/wavetrack/ui/SampleHandle.cpp
tracks/playabletrack/wavetrack/ui/SampleHandle.h
tracks/playabletrack/wavetrack/ui/SpectrumVRulerControls.cpp
tracks/playabletrack/wavetrack/ui/SpectrumVRulerControls.h
tracks/playabletrack/wavetrack/ui/SpectrumVZoomHandle.cpp
tracks/playabletrack/wavetrack/ui/SpectrumVZoomHandle.h
tracks/playabletrack/wavetrack/ui/SpectrumView.cpp
tracks/playabletrack/wavetrack/ui/SpectrumView.h
tracks/playabletrack/wavetrack/ui/WaveTrackAffordanceControls.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackAffordanceControls.h
tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackControls.h
tracks/playabletrack/wavetrack/ui/WaveTrackShifter.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackSliderHandles.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackSliderHandles.h
tracks/playabletrack/wavetrack/ui/WaveTrackVRulerControls.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackVRulerControls.h
tracks/playabletrack/wavetrack/ui/WaveTrackVZoomHandle.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackVZoomHandle.h
tracks/playabletrack/wavetrack/ui/WaveTrackView.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackView.h
tracks/playabletrack/wavetrack/ui/WaveTrackViewConstants.cpp
tracks/playabletrack/wavetrack/ui/WaveTrackViewConstants.h
tracks/playabletrack/wavetrack/ui/WaveformVRulerControls.cpp
tracks/playabletrack/wavetrack/ui/WaveformVRulerControls.h
tracks/playabletrack/wavetrack/ui/WaveformVZoomHandle.cpp
tracks/playabletrack/wavetrack/ui/WaveformVZoomHandle.h
tracks/playabletrack/wavetrack/ui/WaveformView.cpp
tracks/playabletrack/wavetrack/ui/WaveformView.h
tracks/timetrack/ui/TimeTrackControls.cpp
tracks/timetrack/ui/TimeTrackControls.h
tracks/timetrack/ui/TimeTrackVRulerControls.cpp
tracks/timetrack/ui/TimeTrackVRulerControls.h
tracks/timetrack/ui/TimeTrackVZoomHandle.cpp
tracks/timetrack/ui/TimeTrackVZoomHandle.h
tracks/timetrack/ui/TimeTrackView.cpp
tracks/timetrack/ui/TimeTrackView.h
# Tracks UI
tracks/ui/AffordanceHandle.cpp
tracks/ui/AffordanceHandle.h
tracks/ui/BackgroundCell.cpp
tracks/ui/BackgroundCell.h
tracks/ui/ButtonHandle.cpp
tracks/ui/ButtonHandle.h
tracks/ui/CommonTrackControls.cpp
tracks/ui/CommonTrackControls.h
tracks/ui/CommonTrackPanelCell.cpp
tracks/ui/CommonTrackPanelCell.h
tracks/ui/CommonTrackView.cpp
tracks/ui/CommonTrackView.h
tracks/ui/EditCursorOverlay.cpp
tracks/ui/EditCursorOverlay.h
tracks/ui/EnvelopeHandle.cpp
tracks/ui/EnvelopeHandle.h
tracks/ui/PlayIndicatorOverlay.cpp
tracks/ui/PlayIndicatorOverlay.h
tracks/ui/ScrubUI.cpp
tracks/ui/ScrubUI.h
tracks/ui/Scrubbing.cpp
tracks/ui/Scrubbing.h
tracks/ui/SelectHandle.cpp
tracks/ui/SelectHandle.h
tracks/ui/SliderHandle.cpp
tracks/ui/SliderHandle.h
tracks/ui/TimeShiftHandle.cpp
tracks/ui/TimeShiftHandle.h
tracks/ui/TrackButtonHandles.cpp
tracks/ui/TrackButtonHandles.h
tracks/ui/TrackControls.cpp
tracks/ui/TrackControls.h
tracks/ui/TrackSelectHandle.cpp
tracks/ui/TrackSelectHandle.h
tracks/ui/TrackVRulerControls.cpp
tracks/ui/TrackVRulerControls.h
tracks/ui/TrackView.cpp
tracks/ui/TrackView.h
tracks/ui/ZoomHandle.cpp
tracks/ui/ZoomHandle.h
# ui helpers
ui/AccessibleLinksFormatter.h
ui/AccessibleLinksFormatter.cpp
# Widgets
widgets/AButton.cpp
widgets/AButton.h
widgets/ASlider.cpp
widgets/ASlider.h
widgets/AttachableScrollBar.cpp
widgets/AttachableScrollBar.h
widgets/AudacityMessageBox.cpp
widgets/AudacityMessageBox.h
widgets/BackedPanel.cpp
widgets/BackedPanel.h
widgets/ErrorDialog.cpp
widgets/ErrorDialog.h
widgets/ExpandingToolBar.cpp
widgets/ExpandingToolBar.h
widgets/FileConfig.cpp
widgets/FileConfig.h
widgets/FileDialog/FileDialog.cpp
widgets/FileDialog/FileDialog.h
$<$<BOOL:${wxIS_WIN}>:
widgets/FileDialog/win/FileDialogPrivate.cpp
widgets/FileDialog/win/FileDialogPrivate.h
>
$<$<BOOL:${wxIS_MAC}>:
widgets/FileDialog/mac/FileDialogPrivate.mm
widgets/FileDialog/mac/FileDialogPrivate.h
>
$<$<BOOL:${wxIS_GTK}>:
widgets/FileDialog/gtk/FileDialogPrivate.cpp
widgets/FileDialog/gtk/FileDialogPrivate.h
>
widgets/FileHistory.cpp
widgets/FileHistory.h
widgets/Grabber.cpp
widgets/Grabber.h
widgets/Grid.cpp
widgets/Grid.h
widgets/HelpSystem.cpp
widgets/HelpSystem.h
widgets/HtmlWindow.cpp
widgets/HtmlWindow.h
widgets/ImageRoll.cpp
widgets/ImageRoll.h
widgets/KeyView.cpp
widgets/KeyView.h
widgets/Meter.cpp
widgets/Meter.h
widgets/MeterPanelBase.cpp
widgets/MeterPanelBase.h
widgets/MultiDialog.cpp
widgets/MultiDialog.h
widgets/NumericTextCtrl.cpp
widgets/NumericTextCtrl.h
widgets/Overlay.cpp
widgets/Overlay.h
widgets/OverlayPanel.cpp
widgets/OverlayPanel.h
widgets/PopupMenuTable.cpp
widgets/PopupMenuTable.h
widgets/ProgressDialog.cpp
widgets/ProgressDialog.h
widgets/ReadOnlyText.h
widgets/Ruler.cpp
widgets/Ruler.h
widgets/UnwritableLocationErrorDialog.cpp
widgets/UnwritableLocationErrorDialog.h
widgets/Warning.cpp
widgets/Warning.h
widgets/WindowAccessible.cpp
widgets/WindowAccessible.h
widgets/numformatter.cpp
widgets/numformatter.h
widgets/valnum.cpp
widgets/valnum.h
widgets/wxPanelWrapper.cpp
widgets/wxPanelWrapper.h
widgets/wxTextCtrlWrapper.h
widgets/wxWidgetsBasicUI.cpp
widgets/wxWidgetsBasicUI.h
# XML handling
xml/XMLFileReader.cpp
xml/XMLFileReader.h
xml/XMLTagHandler.cpp
xml/XMLTagHandler.h
xml/XMLWriter.cpp
xml/XMLWriter.h
xml/audacityproject.dtd
Experimental.cmake
)
# ~~~

View File

@ -0,0 +1,12 @@
/*!********************************************************************
Audacity: A Digital Audio Editor
@file wxWidgetsBasicUI.cpp
Paul Licameli
**********************************************************************/
#include "wxWidgetsBasicUI.h"
wxWidgetsBasicUI::~wxWidgetsBasicUI() = default;

View File

@ -0,0 +1,23 @@
/*!********************************************************************
Audacity: A Digital Audio Editor
@file wxWidgetsBasicUI.h
@brief Implementation of BasicUI using wxWidgets
Paul Licameli
**********************************************************************/
#ifndef __WXWIDGETS_BASIC_UI__
#define __WXWIDGETS_BASIC_UI__
#include "BasicUI.h"
//! An implementation of BasicUI::Services in terms of the wxWidgets toolkit
/*! This is a singleton that doesn't need AUDACITY_DLL_API visibility */
class wxWidgetsBasicUI final : public BasicUI::Services {
public:
~wxWidgetsBasicUI() override;
};
#endif