openMSX
FloatSetting.cc
Go to the documentation of this file.
1#include "FloatSetting.hh"
2
3namespace openmsx {
4
6 std::string_view name_, static_string_view description_,
7 double initialValue,
8 double minValue_, double maxValue_)
9 : Setting(commandController_, name_, description_,
10 TclObject(initialValue), SAVE)
11 , minValue(minValue_)
12 , maxValue(maxValue_)
13{
14 auto& interp = getInterpreter();
15 setChecker([this, &interp](TclObject& newValue) {
16 double val = newValue.getDouble(interp); // may throw
17 newValue = std::clamp(val, minValue, maxValue);
18 });
19 init();
20}
21
22std::string_view FloatSetting::getTypeString() const
23{
24 return "float";
25}
26
28{
29 result.addListElement(makeTclList(minValue, maxValue));
30}
31
33{
35}
36
37} // namespace openmsx
FloatSetting(CommandController &commandController, std::string_view name, static_string_view description, double initialValue, double minValue, double maxValue)
Definition: FloatSetting.cc:5
void additionalInfo(TclObject &result) const override
Helper method for info().
Definition: FloatSetting.cc:27
void setDouble(double d)
Definition: FloatSetting.cc:32
std::string_view getTypeString() const override
Returns a string describing the setting type (integer, string, ..) Could be used in a GUI to pick an ...
Definition: FloatSetting.cc:22
void setChecker(std::function< void(TclObject &)> checkFunc_)
Set value-check-callback.
Definition: Setting.hh:160
Interpreter & getInterpreter() const
Definition: Setting.cc:148
void setValue(const TclObject &newValue) final
Change the value of this setting to the given value.
Definition: Setting.cc:82
double getDouble(Interpreter &interp) const
Definition: TclObject.cc:110
void addListElement(const T &t)
Definition: TclObject.hh:128
static_string_view
constexpr vecN< N, T > clamp(const vecN< N, T > &x, const vecN< N, T > &minVal, const vecN< N, T > &maxVal)
Definition: gl_vec.hh:293
This file implemented 3 utility functions:
Definition: Autofire.cc:9
TclObject makeTclList(Args &&... args)
Definition: TclObject.hh:283