X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fpbd%2Fcommand.h;h=db4d2bbd814774d0910b1f59786c25a6d21f43c2;hb=08371ae2cf6231bbb8522645d14add41ffa9c1c0;hp=7af7f7bb98a9c3bbc256f3977a3aaf4402691ad9;hpb=52607dd6ef3df53ac770dafc0411522de8d27dce;p=ardour.git diff --git a/libs/pbd/pbd/command.h b/libs/pbd/pbd/command.h index 7af7f7bb98..db4d2bbd81 100644 --- a/libs/pbd/pbd/command.h +++ b/libs/pbd/pbd/command.h @@ -1,3 +1,4 @@ + /* Copyright (C) 2006 Paul Davis Author: Hans Fugal @@ -21,10 +22,12 @@ #ifndef __lib_pbd_command_h__ #define __lib_pbd_command_h__ +#include + +#include "pbd/signals.h" #include "pbd/statefuldestructible.h" -#include -class Command : public PBD::StatefulDestructible, public boost::noncopyable +class Command : public PBD::StatefulDestructible, public PBD::ScopedConnectionList { public: virtual ~Command() { /* NOTE: derived classes must call drop_references() */ } @@ -33,13 +36,17 @@ public: void set_name (const std::string& str) { _name = str; } const std::string& name() const { return _name; } - + virtual void undo() = 0; virtual void redo() { (*this)(); } virtual XMLNode &get_state(); virtual int set_state(const XMLNode&, int /*version*/) { /* noop */ return 0; } + virtual bool empty () const { + return false; + } + protected: Command() {} Command(const std::string& name) : _name(name) {}