12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef _ATTRSTR_H
- #define _ATTRSTR_H
- #include "attribute.h"
- #include <bfc/string/bfcstring.h>
- #include <bfc/common.h>
- /**
- String configuration attributes, can have any string value
- of any length. They can be used like any other config item.
-
- @short String configuration attribute.
- @ver 1.0
- @author Nullsoft
- @see _int
- @see _bool
- @see _float
- */
- class _string : public Attribute {
- public:
- /**
- Optionally set the name and default value of
- your configuration attribute during construction.
-
- @param name
- @param default_val
- */
- _string(const wchar_t *name=NULL, const wchar_t *default_val=NULL)
- : Attribute(name) {
- setData(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::STRING; }
-
- /**
- 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.string"; }
- //CUT virtual int getPermissions() { return ATTR_PERM_ALL; }
- /**
- Get the value of the attribute.
-
- @ret The value of the attribute
- */
- const wchar_t *getValue();
-
- /**
- Set the value of the attribute.
-
- @param val The value you want to set.
- @ret 1, success; 0, failure;
- */
- int setValue(const wchar_t *val) { return setData(val); }
- // convenience operators
- /**
- Get the value of the attribute.
- */
- operator const wchar_t *() { return getValue(); }
- /**
- Set the value of the attribute.
- */
- const wchar_t *operator =(const wchar_t *newval) { return setValue(newval) ? newval : getValue(); }
- private:
- StringW returnval;
- };
- #endif
|