diff options
Diffstat (limited to 'Src/Wasabi/api/config/items/attrfloat.h')
-rw-r--r-- | Src/Wasabi/api/config/items/attrfloat.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Src/Wasabi/api/config/items/attrfloat.h b/Src/Wasabi/api/config/items/attrfloat.h new file mode 100644 index 00000000..056f0c46 --- /dev/null +++ b/Src/Wasabi/api/config/items/attrfloat.h @@ -0,0 +1,52 @@ +#ifndef _ATTRFLOAT_H +#define _ATTRFLOAT_H + +#include "attribute.h" + +// actually it's a double :) + +class _float : public Attribute { +public: + /** + Optionally set the name and default value of + your configuration attribute during construction. + + @param name Name of the configuration attribute. + @param default_val Default value. + */ + _float(const wchar_t *name=NULL, double default_val=0.f) : Attribute(name) { + setValueAsDouble(default_val, true); + } + + /** + Get the attribute type. This will return + a constant representing the attribute type. + + These constants can be: BOOL, FLOAT, STRING and INT. + + @see AttributeType + @ret The attribute type. + */ + virtual int getAttributeType() { return AttributeType::FLOAT; } + + /** + Get the configuration group to be used to represent + this attribute in the registry. + + @ret Config group to be used. + */ + virtual const wchar_t *getConfigGroup() { return L"studio.configgroup.float"; } + + // convenience operators + /** + Get the value of the attribute. + */ + operator double() { return getValueAsDouble(); } + + /** + Set the value of the attribute. + */ + double operator =(double newval) { return setValueAsDouble(newval) ? newval : getValueAsDouble(); } +}; + +#endif |