aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/config/items/attrstr.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/config/items/attrstr.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Wasabi/api/config/items/attrstr.h')
-rw-r--r--Src/Wasabi/api/config/items/attrstr.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/Src/Wasabi/api/config/items/attrstr.h b/Src/Wasabi/api/config/items/attrstr.h
new file mode 100644
index 00000000..cde81a64
--- /dev/null
+++ b/Src/Wasabi/api/config/items/attrstr.h
@@ -0,0 +1,85 @@
+#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