1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-27 06:07:59 +02:00
audacity/src/commands/CommandType.cpp
martynshaw99 4ce2643d5f Remove the
// Indentation settings for Vim and Emacs
etc. lines from all files, as Campbell's patch (except for other changes to Languages.cpp)
2013-09-24 00:14:37 +00:00

75 lines
1.6 KiB
C++

/**********************************************************************
Audacity - A Digital Audio Editor
Copyright 1999-2009 Audacity Team
License: wxwidgets
Dan Horgan
******************************************************************//**
\file CommandType.cpp
\brief Contains definitions for CommandType class
\class CommandType
\brief Base class for containing data common to all commands of a given type.
Also acts as a factory.
*//*******************************************************************/
#include "CommandMisc.h"
#include "CommandType.h"
#include "CommandSignature.h"
#include <wx/string.h>
CommandType::CommandType()
: mName(NULL), mSignature(NULL)
{ }
CommandType::~CommandType()
{
if (mName != NULL)
{
delete mName;
}
if (mSignature != NULL)
{
delete mSignature;
}
}
wxString CommandType::GetName()
{
if (mName == NULL)
{
mName = new wxString(BuildName());
}
return *mName;
}
CommandSignature &CommandType::GetSignature()
{
if (mSignature == NULL)
{
mSignature = new CommandSignature();
BuildSignature(*mSignature);
}
return *mSignature;
}
wxString CommandType::Describe()
{
wxString desc = GetName() + wxT("\nParameters:");
GetSignature();
ParamValueMap::iterator iter;
ParamValueMap defaults = mSignature->GetDefaults();
for (iter = defaults.begin(); iter != defaults.end(); ++iter)
{
desc += wxT("\n") + iter->first + wxT(": ")
+ mSignature->GetValidator(iter->first).GetDescription()
+ wxT(" (default: ")
+ iter->second.MakeString() + wxT(")");
}
return desc;
}