/********************************************************************** 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