TuttleOFX  1
TuttleOFX/libraries/tuttle/src/tuttle/host/ofx/attribute/OfxhParamPage.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_HOST_OFX_PARAM_PARAMPAGE_HPP_
00002 #define _TUTTLE_HOST_OFX_PARAM_PARAMPAGE_HPP_
00003 
00004 #include "OfxhParam.hpp"
00005 #include "OfxhParamDescriptor.hpp"
00006 #include "OfxhParamSet.hpp"
00007 
00008 #include <map>
00009 
00010 namespace tuttle {
00011 namespace host {
00012 namespace ofx {
00013 namespace attribute {
00014 
00015 class OfxhParamPage : public OfxhParam
00016 {
00017 public:
00018         OfxhParamPage( const OfxhParamDescriptor& descriptor, const std::string& name, OfxhParamSet& setInstance ) : OfxhParam( descriptor, name, setInstance ) {}
00019         const std::map<int, OfxhParam*>& getChildren() const;
00020 
00021 protected:
00022         mutable std::map<int, OfxhParam*> _children; // if set in a notify hook, this need not be mutable
00023 
00024         // Page params don't have values; just ignore set/get
00025         virtual void getValue( double& ) const OFX_EXCEPTION_SPEC {};
00026         virtual void getValueAtTime( const OfxTime time, double& ) const OFX_EXCEPTION_SPEC {};
00027         virtual void setValue( const double&, const EChange change ) OFX_EXCEPTION_SPEC {};
00028         virtual void setValueAtTime( const OfxTime time, const double&, const EChange change ) OFX_EXCEPTION_SPEC {};
00029         virtual void setValue( const int& v, const EChange change ) OFX_EXCEPTION_SPEC {};
00030         virtual void setValueAtTime( const OfxTime time, const int& v, const EChange change ) OFX_EXCEPTION_SPEC {};
00031         virtual void setValueFromExpression( const std::string& value, const EChange change ) OFX_EXCEPTION_SPEC { }
00032         inline void setValueFromExpression( const std::string& value ) OFX_EXCEPTION_SPEC { setValueFromExpression( value, eChangeUserEdited ); }
00033 
00034         bool paramTypeHasData() const { return false; }
00035 
00036         std::size_t getHashAtTime( const OfxTime time ) const { return 0; }
00037 };
00038 
00039 
00040 }
00041 }
00042 }
00043 }
00044 
00045 #endif
00046