1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-18 00:37:59 +01:00
Files
audacity/src/commands/CommandType.h

64 lines
1.5 KiB
C++

/**********************************************************************
Audacity - A Digital Audio Editor
Copyright 1999-2009 Audacity Team
License: wxwidgets
Dan Horgan
******************************************************************//**
\file CommandType.h
\brief Contains declarations for CommandType class
*//*******************************************************************/
#ifndef __COMMANDTYPE__
#define __COMMANDTYPE__
#include "CommandMisc.h"
class Command;
class CommandOutputTarget;
class CommandSignature;
class wxString;
class CommandType
{
private:
wxString *mName;
CommandSignature *mSignature;
public:
CommandType();
virtual ~CommandType();
wxString GetName();
CommandSignature &GetSignature();
wxString Describe();
// Subclasses should override the following:
// =========================================
// Return the name of the command type
virtual wxString BuildName() = 0;
/// Postcondition: signature is a 'signature' map containing parameter
// names, validators and default values.
virtual void BuildSignature(CommandSignature &signature) = 0;
// Create a command instance with the specified output target
virtual Command *Create(CommandOutputTarget *target) = 0;
};
#endif /* End of include guard: __COMMANDTYPE__ */
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
// version control system. Please do not modify past this point.
//
// Local Variables:
// c-basic-offset: 3
// indent-tabs-mode: nil
// End:
//
// vim: et sts=3 sw=3
// arch-tag: TBD