Horizon
in_tool_action_catalog.hpp
1 #pragma once
2 #include "in_tool_action.hpp"
3 #include "common/lut.hpp"
4 #include <map>
5 
6 namespace horizon {
7 
8 enum class ToolID;
9 
11 public:
12  enum Flags {
13  FLAGS_DEFAULT = 0,
14  FLAGS_NO_PREFERENCES = (1 << 5),
15  };
16 
17  InToolActionCatalogItem(const std::string &n, ToolID t, int fl = FLAGS_DEFAULT)
18  : name(n), tool(t), flags(static_cast<Flags>(fl)){};
19 
20  const std::string name;
21  ToolID tool;
22  const Flags flags;
23 };
24 
25 extern const std::map<InToolActionID, InToolActionCatalogItem> in_tool_action_catalog;
26 extern const LutEnumStr<InToolActionID> in_tool_action_lut;
27 } // namespace horizon
horizon::InToolActionCatalogItem
Definition: in_tool_action_catalog.hpp:10
horizon::LutEnumStr
Trivial bidirectional map for mapping strings to enums.
Definition: lut.hpp:11