Chris@16: /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ Chris@16: Chris@16: /* Chris@16: A waveform viewer and audio annotation editor. Chris@16: Chris Cannam, Queen Mary University of London, 2005-2006 Chris@16: Chris@16: This is experimental software. Not for distribution. Chris@16: */ Chris@16: Chris@16: #ifndef _COMMAND_H_ Chris@16: #define _COMMAND_H_ Chris@16: Chris@17: #include Chris@17: #include Chris@17: Chris@16: class Command Chris@16: { Chris@16: public: Chris@17: virtual ~Command() { } Chris@17: Chris@16: virtual void execute() = 0; Chris@16: virtual void unexecute() = 0; Chris@17: virtual QString getName() const = 0; Chris@17: }; Chris@17: Chris@17: class MacroCommand : public Command Chris@17: { Chris@17: public: Chris@17: MacroCommand(QString name); Chris@17: virtual ~MacroCommand(); Chris@17: Chris@17: virtual void addCommand(Command *command); Chris@17: virtual void deleteCommand(Command *command); Chris@47: virtual bool haveCommands() const; Chris@17: Chris@17: virtual void execute(); Chris@17: virtual void unexecute(); Chris@17: Chris@47: virtual QString getName() const; Chris@47: virtual void setName(QString name); Chris@17: Chris@17: protected: Chris@17: QString m_name; Chris@17: std::vector m_commands; Chris@16: }; Chris@16: Chris@16: #endif Chris@16: