Audacity 3.2.0
Classes | Namespaces | Typedefs | Functions
Project.h File Reference
#include "ClientData.h"
#include "GlobalVariable.h"
#include <memory>
#include <mutex>
#include <wx/event.h>
#include "XMLMethodRegistry.h"
Include dependency graph for Project.h:

Go to the source code of this file.

Classes

class  AllProjects
 
class  AudacityProject
 The top-level handle to an Audacity project. It serves as a source of events that other objects can bind to, and a container of associated sub-objects that it treats opaquely. It stores a filename and a status message and a few other things. There is very little in this class, most of the intelligence residing in the cooperating attached objects. More...
 
struct  AudacityProject::CreateToken
 

Namespaces

namespace  BasicUI
 

Typedefs

using FilePath = wxString
 
using AttachedProjectObjects = ClientData::Site< AudacityProject, ClientData::Base, ClientData::SkipCopying, std::shared_ptr >
 
using ProjectFileIORegistry = XMLMethodRegistry< AudacityProject >
 
using WindowPlacementFactory = GlobalHook< AudacityProject, std::unique_ptr< const BasicUI::WindowPlacement >(AudacityProject &project) >
 Type of function that makes a WindowPlacement for dialogs, with project frame as parent. More...
 

Functions

 DECLARE_XML_METHOD_REGISTRY (PROJECT_API, ProjectFileIORegistry)
 
PROJECT_API std::unique_ptr< const BasicUI::WindowPlacementProjectFramePlacement (AudacityProject *project)
 Make a WindowPlacement object suitable for project (which may be null) More...
 

Typedef Documentation

◆ AttachedProjectObjects

Definition at line 76 of file Project.h.

◆ FilePath

using FilePath = wxString

Definition at line 21 of file Project.h.

◆ ProjectFileIORegistry

Definition at line 137 of file Project.h.

◆ WindowPlacementFactory

Type of function that makes a WindowPlacement for dialogs, with project frame as parent.

Definition at line 143 of file Project.h.

Function Documentation

◆ DECLARE_XML_METHOD_REGISTRY()

DECLARE_XML_METHOD_REGISTRY ( PROJECT_API  ,
ProjectFileIORegistry   
)

◆ ProjectFramePlacement()

PROJECT_API std::unique_ptr< const BasicUI::WindowPlacement > ProjectFramePlacement ( AudacityProject project)

Make a WindowPlacement object suitable for project (which may be null)

Postcondition
return value is not null

Definition at line 129 of file Project.cpp.

130{
132 std::unique_ptr<const BasicUI::WindowPlacement> result;
133 if (project && factory && (result = factory(*project)).get())
134 return result;
135 else
136 return std::make_unique<BasicUI::WindowPlacement>();
137}
const auto project
static RegisteredToolbarFactory factory

References cloud::factory, GlobalVariable< Tag, const std::function< Signature >, nullptr, Options... >::Get(), and project.

Referenced by ProjectAudioManager::DoRecord(), ProjectFileManager::DoSave(), ProjectFileIO::HandleXMLTag(), ProjectFileManager::Import(), ProjectFileManager::OpenProjectFile(), ProjectAudioManager::PlayPlayRegion(), ProjectFileIO::RenameOrWarn(), ProjectFileManager::SaveCopy(), and AudioIO::StartMonitoring().

Here is the call graph for this function:
Here is the caller graph for this function: