1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-24 16:38:07 +02:00
audacity/src/Clipboard.h
Emily Mabrey 40d4883233
Revert "Replace header guards with #pragma once"
This reverts commit a6bc896e246d48821ff7ae70d572aefcf0cbedd6.
2021-08-24 16:57:24 -04:00

60 lines
1.2 KiB
C++

/**********************************************************************
Tenacity
Clipboard.h
Paul Licameli
**********************************************************************/
#ifndef __AUDACITY_CLIPBOARD__
#define __AUDACITY_CLIPBOARD__
#include <memory>
#include <wx/event.h> // to inherit wxEvtHandler
class AudacityProject;
class TrackList;
// An event emitted by the clipboard whenever its contents change.
wxDECLARE_EXPORTED_EVENT( TENACITY_DLL_API,
EVT_CLIPBOARD_CHANGE, wxCommandEvent );
class TENACITY_DLL_API Clipboard final
: public wxEvtHandler
{
public:
static Clipboard &Get();
const TrackList &GetTracks() const;
double T0() const { return mT0; }
double T1() const { return mT1; }
double Duration() const { return mT1 - mT0; }
const std::weak_ptr<AudacityProject> &Project() const { return mProject; }
void Clear();
void Assign(
TrackList && newContents, double t0, double t1,
const std::weak_ptr<AudacityProject> &pProject );
Clipboard();
~Clipboard();
void Swap( Clipboard &other );
private:
std::shared_ptr<TrackList> mTracks;
std::weak_ptr<AudacityProject> mProject{};
double mT0{ 0 };
double mT1{ 0 };
};
#endif