| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #pragma once
- #include "CmEditorPrerequisites.h"
- namespace CamelotEditor
- {
- class Preferences
- {
- public:
- void setValue(const String& key, const String& value, CamelotFramework::UINT32 arrayIdx = 0);
- void addValue(const String& key, const String& value);
- const String& getValue(const String& key, const String& defaultValue = StringUtil::BLANK, CamelotFramework::UINT32 arrayIdx = 0);
- void setValue(const String& key, const int value, CamelotFramework::UINT32 arrayIdx = 0);
- void addValue(const String& key, const int value);
- int getValue(const String& key, int defaultValue = 0, CamelotFramework::UINT32 arrayIdx = 0);
- void setValue(const String& key, float value, CamelotFramework::UINT32 arrayIdx = 0);
- void addValue(const String& key, float value);
- float getValue(const String& key, float defaultValue = 0.0f, CamelotFramework::UINT32 arrayIdx = 0);
- CamelotFramework::UINT32 getNumValues(const String& key);
- void save(const String& path, bool overwrite = true) const;
- void load(const String& path);
- private:
- struct PrefStringEntries
- {
- Vector<String>::type entries;
- };
- struct PrefIntEntries
- {
- Vector<int>::type entries;
- };
- struct PrefFloatEntries
- {
- Vector<float>::type entries;
- };
- enum ValueMapType
- {
- VMT_String,
- VMT_Int,
- VMT_Float
- };
- struct KeyMapIndex
- {
- ValueMapType mapType;
- CamelotFramework::UINT32 entryIdx;
- };
- struct EntryToSave
- {
- String name;
- String value;
- };
- Map<String, KeyMapIndex>::type mKeys;
- Vector<PrefStringEntries>::type mStringEntries;
- Vector<PrefIntEntries>::type mIntEntries;
- Vector<PrefFloatEntries>::type mFloatEntries;
- bool isKeyValid(const String& key) const;
- };
- }
|