audacia/src/commands/CommandType.cpp

67 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 OldStyleCommandType
\brief Base class for containing data common to all commands of a given type.
Also acts as a factory.
*//*******************************************************************/
#include "CommandType.h"
#include <wx/string.h>
OldStyleCommandType::OldStyleCommandType()
: mSymbol{}, mSignature{}
{ }
OldStyleCommandType::~OldStyleCommandType()
{
}
ComponentInterfaceSymbol OldStyleCommandType::GetSymbol()
{
if (mSymbol.empty())
mSymbol = BuildName();
return mSymbol;
}
CommandSignature &OldStyleCommandType::GetSignature()
{
if (!mSignature)
{
mSignature.emplace();
BuildSignature(*mSignature);
}
return *mSignature;
}
wxString OldStyleCommandType::Describe()
{
// PRL: Is this intended for end-user visibility or just debugging? It did not
// use _(""), so I assume it is meant to use internal strings
wxString desc = GetSymbol().Internal() + 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;
}