What is EnumeratedStringProperty?¶
EnumeratedStringProperty allows the use of EnumeratedString objects within the Property structure framework.
How to use the EnumeratedStringProperty¶
Include the EnumeratedStringProperty.h header file. Set up the EnumeratedStringProperty as follows:
namespace {
const std::vector<std::string> binningModeNames{"Default", "Linear", "Logarithmic", "ReverseLogarithmic", "Power"};
enum class BinningMode { DEFAULT, LINEAR, LOGARITHMIC, REVERSELOG, POWER, enum_count };
typedef Mantid::Kernel::EnumeratedString<BinningMode, &binningModeNames> BINMODE;
} // namespace
Declare property:
declareProperty(
std::make_unique<EnumeratedStringProperty<BinningMode, &binningModeNames>>("PropertyName"),
"Description"
);
Use declared property:
BINMODE binMode = someName;
if (binMode == BinningMode::LINEAR)
do_something();
else if (binMode != "Default")
do_something_else();
Determining and using pre-set mode, if present, or using the default setting:
BINMODE binMode;
if (existsProperty("PropertyName"))
Mode = getPropertyValue("PropertyName");
else
Mode = "Default";
Example Use of EnumeratedString¶
Please see examples of usage in Rebin.cpp, CalculateDIFC.cpp, and AddSampleLog.cpp.