diff --git a/include/util/theme.hpp b/include/util/theme.hpp new file mode 100644 index 0000000..d3f9a4b --- /dev/null +++ b/include/util/theme.hpp @@ -0,0 +1,27 @@ +#pragma once + +#include +#include +#include +#include "json.hpp" + +using json = nlohmann::json; + +namespace Theme { + void Load(); + std::string ThemeEntry(std::string key); + inline json GetRelativeJson(json j, std::string key) { + std::istringstream ss(key); + std::string token; + + while (std::getline(ss, token, '.') && j != nullptr) { + j = j[token]; + } + + return j; + } +} + +inline std::string operator ""_theme(const char* key, size_t size) { + return Theme::ThemeEntry(std::string(key, size)); +} \ No newline at end of file