25 std::vector<prm::Default> defaults,
26 unsigned int vectorSize = 1,
27 std::vector<prm::Range> ranges = std::vector<prm::Range>()
33 unsigned int vectorSize = 1,
37 enzo::String getName()
const;
38 enzo::String getToken()
const;
39 enzo::String getLabel()
const;
40 const prm::Default getDefault(
unsigned int index = 0)
const;
41 const prm::Range& getRange(
unsigned int index = 0)
const;
52 const std::vector<prm::Name>&
getOptions()
const;
53 bool hasOptions()
const;
58 const prm::Type getType()
const;
59 const unsigned int getSize()
const;
60 const unsigned int getNumDefaults()
const;
62 Direction getDirection()
const;
63 const std::vector<Template>& getChildren()
const;
69 const bool isContainer()
const;
70 bool isMultiParm()
const;
72 enzo::String getTooltip()
const;
73 enzo::String getDocumentation()
const;
80 bool isLabelHidden()
const;
81 bool isBackgroundEnabled()
const;
85 Template& setTooltip(String tooltip);
86 Template& setDocumentation(String documentation);
87 Template& setDisableCondition(String condition);
88 Template& setHideCondition(String condition);
89 Template& setDirection(Direction direction);
90 Template& setOptions(std::vector<prm::Name> options);
95 Template& setInstanceDefault(std::string fieldToken, std::vector<Default> defaults);
98 std::optional<Default>
100 Template& setLabelHidden(
bool hidden);
101 Template& setBackgroundEnabled(
bool enabled);
106 template <
typename T>
Template& setStyle(T style)
108 style_ = std::make_shared<T>(std::move(style));
112 const std::any& getStyle()
const;
115 enzo::prm::Type type_;
116 std::vector<prm::Default> defaults_;
117 std::vector<prm::Range> ranges_;
118 std::vector<prm::Name> options_;
120 unsigned int vectorSize_;
123 String documentation_;
124 String disableCondition_;
125 String hideCondition_;
127 bool labelHidden_ =
false;
128 bool backgroundEnabled_ =
true;
130 Direction direction_ = Direction::HORIZONTAL;
131 std::vector<Template> children_;
132 std::unordered_map<std::string, std::vector<Default>> instanceDefaults_;
134 inline const static std::unordered_set<prm::Type> containerTypes_ = {prm::Type::GROUP};
137 inline const static std::unordered_set<prm::Type> multiParmTypes_ = {prm::Type::RAMP};
138 inline const static std::unordered_set<prm::Type> backgroundDisabledByDefault_ =
139 {prm::Type::GROUP, prm::Type::XYZ, prm::Type::SPACER};
141 inline const static std::unordered_set<prm::Type> labelHiddenByDefault_ = {prm::Type::SPACER};
const Template & getChild(const enzo::String &token) const
Returns the child template with the given token.
Definition Template.cpp:121
std::optional< Default > getInstanceDefault(const std::string &fieldToken, unsigned int instanceIndex) const
The default for a multiparm field at a given instance.
Definition Template.cpp:198
enzo::String getDisableCondition() const
A condition that greys the parameter out, such as "applyscale == 0".
Definition Template.cpp:132
enzo::String getHideCondition() const
A condition that hides the parameter, such as "profileshape != 1".
Definition Template.cpp:134