Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/Action.hpp

    rf9352d rbfce50  
    1010
    1111#include <string>
    12 #include <boost/shared_ptr.hpp>
    13 
    14 // forward declaration
    15 
    16 class ActionState;
    17 class ActionSequence;
    1812
    1913/**
     
    2721class Action
    2822{
    29 friend class ActionSequence;
     23protected:
    3024public:
    31 
    32   typedef boost::shared_ptr<ActionState> state_ptr;
    33 
    3425  Action(std::string _name,bool _doRegister=true);
    3526  virtual ~Action();
    3627
    37   // this method only handles the infrastructure
    38   // actuall action is passed on to a private virtual
    39   void call();
    40   state_ptr undo(state_ptr);
    41   state_ptr redo(state_ptr);
    42 
     28  virtual void call()=0;
     29  virtual void undo()=0;
    4330  virtual bool canUndo()=0;
    44   virtual bool shouldUndo()=0;
    45 
    46   virtual bool isActive();
     31  //virtual bool shouldUndo()=0;
    4732
    4833  virtual const std::string getName();
    4934
    50 protected:
    51   static state_ptr success;
    52   static state_ptr failure;
    53 
    5435private:
    55   virtual state_ptr performCall()=0;
    56   virtual state_ptr performUndo(state_ptr)=0;
    57   virtual state_ptr performRedo(state_ptr)=0;
    58 
    5936  std::string name;
    6037};
    6138
    62 /**
    63  * This class can be used by actions to save the state.
    64  *
    65  * It is implementing a memento pattern. The base class is completely empty,
    66  * since no general state internals can be given. The Action performing
    67  * the Undo should downcast to the apropriate type.
    68  */
    69 class ActionState{
    70 public:
    71   ActionState(){}
    72   virtual ~ActionState(){}
    73 };
    74 
    7539#endif /* ACTION_H_ */
Note: See TracChangeset for help on using the changeset viewer.