Homepage Demos Overview Downloads Tutorials Reference
Credits

ValueSetControl.h

Go to the documentation of this file.
00001 //-*-c++-*-
00002 #ifndef INCLUDED_ValueSetControl_h
00003 #define INCLUDED_ValueSetControl_h
00004 
00005 #include "ControlBase.h"
00006 
00007 //! Upon activation, this control will set the target pointer to the specified value
00008 template < class T >
00009 class ValueSetControl : public ControlBase {
00010 public:
00011   /*!@name Constructors/Destructors*/
00012   //!constructor
00013   ValueSetControl() : ControlBase(), target(NULL) {}
00014   ValueSetControl(const std::string& n, T* t) : ControlBase(n), target(t) {}
00015   ValueSetControl(const std::string& n, T* t, const T& d) : ControlBase(n), target(t), def(d) {}
00016   ValueSetControl(const ValueSetControl& vsc) : target(vsc.target), def(vsc.def) {} //!<copy constructor
00017   ValueSetControl operator=(const ValueSetControl& vsc) { ControlBase::operator=(vsc); target=vsc.target; def=vsc.def; return *this; } //!<assignment operator
00018   virtual ~ValueSetControl() {} //!< destructor
00019   //@}
00020 
00021   //! assigns #def to object pointed to by #target
00022   virtual ControlBase * activate(MotionManager::MC_ID display) {
00023     *target=def;
00024     if(display!=MotionManager::invalid_MC_ID) {
00025       //!@todo make the leds flash
00026     }
00027     return NULL;
00028   }
00029 
00030   /*!@name Target
00031    * accessors for the target pointer */
00032   virtual T* getTarget() const { return target; } //!< returns the target pointer
00033   virtual ValueSetControl& setTarget(T* t) { target=t; return *this; } //!< sets the target pointer - the object pointed to will be overwritten on activate(); returns @c *this
00034   //@}
00035 
00036   /*!@name Value
00037    * accessors for the default value assigned when activated */
00038   virtual T& getDefault() { return def; } //!< gets reference to default value
00039   virtual const T& getDefault() const { return def; } //!< gets reference to default value
00040   virtual ValueSetControl& setDefault(const T& d) { def=d; return *this; } //!< assigns d to the default value (not to the target, yet); returns @c *this
00041   //@}  
00042 
00043 protected:
00044   T* target; //!< the target that will be set to the default value (#def)
00045   T def; //!< the value that will be assigned to #target upon a call to activate()
00046 };
00047 
00048 /*! @file
00049  * @brief Defines ValueSetControl class, which will assign a value through a pointer upon activation
00050  * @author ejt (Creator)
00051  *
00052  * $Author: ejt $
00053  * $Name: tekkotsu-2_1 $
00054  * $Revision: 1.3 $
00055  * $State: Exp $
00056  * $Date: 2004/01/18 10:16:56 $
00057  */
00058 
00059 #endif

Tekkotsu v2.1
Generated Tue Mar 16 23:19:16 2004 by Doxygen 1.3.5