00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef TSE3_CMD_COMMANDGROUP_H
00018 #define TSE3_CMD_COMMANDGROUP_H
00019
00020 #include "tse3/cmd/Command.h"
00021
00022 #include <vector>
00023 #include <cstddef>
00024
00025 namespace TSE3
00026 {
00027 namespace Cmd
00028 {
00041 class CommandGroup : public Command
00042 {
00043 public:
00044
00055 CommandGroup(const std::string &title = "");
00056
00057 virtual ~CommandGroup();
00058
00077 void add(Command *command);
00078
00085 size_t size() const { return cmds.size(); }
00086
00087 protected:
00088
00092 virtual void executeImpl();
00093
00097 virtual void undoImpl();
00098
00099 private:
00100
00101 CommandGroup(const CommandGroup &);
00102 const CommandGroup &operator=(const CommandGroup &);
00103
00104 std::vector<Command *> cmds;
00105 bool canAdd;
00106 };
00107 }
00108 }
00109
00110 #endif