mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-30 15:49:41 +02:00
Ensures that all files that Git considers to be text will have normalized (LF) line endings in the repository. When core.eol is set to native (which is the default), Git will convert the line endings of normalized files in your working directory back to your platform's native line ending. See also https://git-scm.com/docs/gitattributes
77 lines
2.1 KiB
C++
77 lines
2.1 KiB
C++
/**********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
Registrar.cpp
|
|
|
|
James Crook
|
|
|
|
Audacity is free software.
|
|
This file is licensed under the wxWidgets license, see License.txt
|
|
|
|
********************************************************************//**
|
|
|
|
\class Registrar
|
|
\brief Registrar is a class that other classes register resources of
|
|
various kinds with. It makes a system that is much more amenable to
|
|
plugging in of new resources.
|
|
|
|
*//********************************************************************/
|
|
|
|
#include <wx/wx.h>
|
|
#include "Registrar.h"
|
|
|
|
Registrar * pRegistrar = NULL;
|
|
|
|
// By defining the external function and including it here, we save ourselves maintaing two lists.
|
|
// Also we save ourselves recompiling Registrar each time the classes that regiser change.
|
|
// Part of the idea is that the Registrar knows very little about the classes that
|
|
// register with it.
|
|
#define DISPATCH( Name ) extern int Name##Dispatch( Registrar & R, t_RegistrarDispatchType Type );\
|
|
Name##Dispatch( *pRegistrar, Type )
|
|
|
|
// Not a class function, otherwise the functions called
|
|
// are treated as belonging to the class.
|
|
int RegistrarDispatch( t_RegistrarDispatchType Type )
|
|
{
|
|
wxASSERT( pRegistrar != NULL );
|
|
|
|
DISPATCH( SkewedRuler );
|
|
DISPATCH( MidiArtist );
|
|
DISPATCH( WaveArtist );
|
|
DISPATCH( EnvelopeArtist );
|
|
DISPATCH( LabelArtist );
|
|
DISPATCH( DragGridSizer );
|
|
DISPATCH( TrackPanel2 );
|
|
return 0;
|
|
}
|
|
|
|
// Start()
|
|
// Static function. Allocates Registrar.
|
|
void Registrar::Start()
|
|
{
|
|
wxASSERT( pRegistrar ==NULL );
|
|
pRegistrar = new Registrar();
|
|
|
|
RegistrarDispatch( RegResource );
|
|
RegistrarDispatch( RegArtist );
|
|
RegistrarDispatch( RegDataType );
|
|
RegistrarDispatch( RegCommand );
|
|
RegistrarDispatch( RegMenuItem );
|
|
}
|
|
|
|
// Finish()
|
|
// Static function. DeAllocates Registrar.
|
|
void Registrar::Finish()
|
|
{
|
|
wxASSERT( pRegistrar !=NULL );
|
|
delete pRegistrar;
|
|
pRegistrar = NULL;
|
|
}
|
|
|
|
void Registrar::ShowNewPanel()
|
|
{
|
|
wxASSERT( pRegistrar !=NULL );
|
|
if( pRegistrar->pShowFn != NULL)
|
|
pRegistrar->pShowFn();
|
|
} |