86 lines
1.9 KiB
C
86 lines
1.9 KiB
C
|
#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
|