Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

/home/pete/Work/TSE3.svn/tse3/src/tse3/cmd/CommandGroup.h

Go to the documentation of this file.
00001 /*
00002  * @(#)cmd/CommandGroup.h 3.00 5 Septemeber 2000
00003  *
00004  * Copyright (c) 2000 Pete Goodliffe (pete@cthree.org)
00005  *
00006  * This file is part of TSE3 - the Trax Sequencer Engine version 3.00.
00007  *
00008  * This library is modifiable/redistributable under the terms of the GNU
00009  * General Public License.
00010  *
00011  * You should have received a copy of the GNU General Public License along
00012  * with this program; see the file COPYING. If not, write to the Free Software
00013  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
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

Generated on Wed May 25 14:45:05 2005 for TSE3 by doxygen 1.3.2