00001 #ifndef _BaseTypedInControl_ 00002 #define _BaseTypedInControl_ 00003 00004 #include <string> 00005 #include <list> 00006 #include <typeinfo> 00007 00008 namespace CLAM { 00009 class Processing; 00010 00016 class BaseTypedInControl{ 00017 std::string mName; 00018 Processing * mProcessing; 00019 protected: 00020 float mDefaultValue; 00021 float mUpperBound; 00022 float mLowerBound; 00023 bool mBounded; 00024 bool mHasDefaultValue; 00025 00026 public: 00027 BaseTypedInControl(const std::string &name, Processing * proc = 0); 00028 virtual ~BaseTypedInControl(); 00029 virtual const std::type_info& ControlType() const = 0; 00030 const std::string& GetName() const { return mName; } 00031 Processing * GetProcessing() const { return mProcessing; } 00032 00036 //{@ 00037 bool IsBounded() const; 00038 float UpperBound() const; 00039 float LowerBound() const; 00041 float DefaultValue() const; 00042 void SetDefaultValue(float val); 00043 void SetBounds(float lower, float upper); 00045 }; 00046 } // End namespace CLAM 00047 #endif // _BaseTypedInControl_