1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00
Benjamin Drung 787f2afd10 Introduce end-of-line normalization
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
2016-05-17 01:05:05 +02:00

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();
}