diff --git a/src/nekohook/ui/settings/var.hpp b/src/nekohook/ui/settings/var.hpp index 13dcb31..c1f071f 100644 --- a/src/nekohook/ui/settings/var.hpp +++ b/src/nekohook/ui/settings/var.hpp @@ -1,16 +1,21 @@ +#include + #include "ui/command.hpp" #pragma once namespace nekohook::setting { +template +class Var; + using StrEnum = std::initializer_list; using TreeMap = StrEnum; -class Var { +class BaseVar { public: - Var(TreeMap _tree_map, std::string_view gui_name); + BaseVar(TreeMap _tree_map, std::string_view gui_name); enum class Type { kBool, kInt, @@ -30,10 +35,16 @@ public: virtual std::string GetString() = 0; // Used by cfg mgr and gui virtual void SetString(std::string_view) = 0; private: - static inline std::vector list; + static inline std::vector*, Var*, Var*, >> list; public: static inline const auto& GetList() { return list; } }; +template +class Var { +public: + Var(TreeMap, std::string_view _gui_name, T _defaults); + +}; }