CYD-UI
A C++ library for building native graphic user interfaces
Loading...
Searching...
No Matches
context.cppm
Go to the documentation of this file.
1
5
6export module cydui.dimensions:context;
7
8import std;
9
10import fabric.logging;
11
12export import :types;
13
14export template <typename Type>
16public:
17 using value_type = Type;
18
19 template <typename V>
20 void set_parameter(const std::string& name, V&& getter) {
21 if (getters.contains(name)) {
22 getters.at(name) = getter;
23 } else {
24 getters.emplace(name, std::forward<V>(getter));
25 }
26 }
27
28 void delete_parameter(const std::string& name) {
29 getters.erase(name);
30 }
31
33 getters.clear();
34 }
35
36 std::size_t count_parameters() const {
37 return getters.size();
38 }
39
40 bool contains(const std::string& name) const {
41 // LOG::print{INFO}("{{");
42 // for (const auto& [name, g]: getters) {
43 // LOG::print{INFO}(" {},", name);
44 // }
45 // LOG::print{INFO}("}}");
46 return getters.contains(name);
47 }
48
49 void set_name(const std::string& name_) {
50 name = name_;
51 }
52
53 const std::string& get_name() const {
54 return name;
55 }
56
57 auto& operator[](const std::string& name) {
58 return getters.at(name);
59 }
60
61private:
62 std::unordered_map<std::string, dimension<value_type>> getters{};
63 std::string name{};
64};
bool contains(const std::string &name) const
Definition context.cppm:40
void set_name(const std::string &name_)
Definition context.cppm:49
std::size_t count_parameters() const
Definition context.cppm:36
const std::string & get_name() const
Definition context.cppm:53
auto & operator[](const std::string &name)
Definition context.cppm:57
void delete_parameter(const std::string &name)
Definition context.cppm:28
void set_parameter(const std::string &name, V &&getter)
Definition context.cppm:20