mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-21 14:02:57 +02:00
A class encapsulating the global clipboard
This commit is contained in:
56
src/Clipboard.cpp
Normal file
56
src/Clipboard.cpp
Normal file
@@ -0,0 +1,56 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
Clipboard.cpp
|
||||
|
||||
*//*******************************************************************/
|
||||
|
||||
#include "Clipboard.h"
|
||||
#include "Track.h"
|
||||
|
||||
wxDEFINE_EVENT( EVT_CLIPBOARD_CHANGE, wxCommandEvent);
|
||||
|
||||
Clipboard::Clipboard()
|
||||
: mTracks { TrackList::Create() }
|
||||
{
|
||||
}
|
||||
|
||||
Clipboard::~Clipboard() = default;
|
||||
|
||||
Clipboard &Clipboard::Get()
|
||||
{
|
||||
static Clipboard instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
//static
|
||||
const TrackList &Clipboard::GetTracks() const
|
||||
{
|
||||
return *mTracks;
|
||||
}
|
||||
|
||||
void Clipboard::Clear()
|
||||
{
|
||||
mT0 = 0.0;
|
||||
mT1 = 0.0;
|
||||
mProject = nullptr;
|
||||
mTracks->Clear();
|
||||
|
||||
// Emit an event for listeners
|
||||
AddPendingEvent( wxCommandEvent{ EVT_CLIPBOARD_CHANGE } );
|
||||
}
|
||||
|
||||
void Clipboard::Assign( TrackList && newContents,
|
||||
double t0, double t1, AudacityProject *pProject )
|
||||
{
|
||||
newContents.Swap( *mTracks );
|
||||
newContents.Clear();
|
||||
|
||||
mT0 = t0;
|
||||
mT1 = t1;
|
||||
mProject = pProject;
|
||||
|
||||
// Emit an event for listeners
|
||||
AddPendingEvent( wxCommandEvent{ EVT_CLIPBOARD_CHANGE } );
|
||||
}
|
Reference in New Issue
Block a user