TuttleOFX
1
|
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