X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fpbd%2Fcommand.h;h=db4d2bbd814774d0910b1f59786c25a6d21f43c2;hb=99bf5d9eeda1e5e1811d660c0c22bb5a2d4984c0;hp=a66485bc0da179157104b2fb8e248e254db3d05c;hpb=d7db3f757fde92126ef9886370ce604992b7e974;p=ardour.git diff --git a/libs/pbd/pbd/command.h b/libs/pbd/pbd/command.h index a66485bc0d..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,23 +22,30 @@ #ifndef __lib_pbd_command_h__ #define __lib_pbd_command_h__ -#include +#include + +#include "pbd/signals.h" +#include "pbd/statefuldestructible.h" -class Command : public PBD::StatefulDestructible +class Command : public PBD::StatefulDestructible, public PBD::ScopedConnectionList { public: - virtual ~Command() {} + virtual ~Command() { /* NOTE: derived classes must call drop_references() */ } virtual void operator() () = 0; 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&) { /* noop */ return 0; } + virtual int set_state(const XMLNode&, int /*version*/) { /* noop */ return 0; } + + virtual bool empty () const { + return false; + } protected: Command() {}