20#include "cc_tools_qt/details/ToolsNumericFieldBase.h"
22#include <QtCore/QList>
23#include <QtCore/QPair>
33class CC_TOOLS_API ToolsFloatField :
public details::ToolsNumericFieldBase<double>
35 using Base = details::ToolsNumericFieldBase<double>;
38 using UnderlyingType = Base::UnderlyingType;
39 using ActPtr = std::unique_ptr<ToolsFloatField>;
40 using SpecialType = QPair<QString, UnderlyingType>;
41 using SpecialsList = QList<SpecialType>;
44 virtual ~ToolsFloatField() noexcept;
50 bool isMinusInf() const;
52 double getEpsilon() const;
53 const SpecialsList& specials() const;
59 virtual
bool isNanImpl() const = 0;
60 virtual
void setNanImpl() = 0;
61 virtual
bool isInfImpl() const = 0;
62 virtual
void setInfImpl() = 0;
63 virtual
bool isMinusInfImpl() const = 0;
64 virtual
void setMinusInfImpl() = 0;
65 virtual
double getEpsilonImpl() const = 0;
66 virtual const SpecialsList& specialsImpl() const = 0;
67 virtual
int decimalsImpl() const = 0;
69 virtual
void dispatchImpl(ToolsFieldHandler& handler) override;
72using ToolsFloatFieldPtr = ToolsFloatField::ActPtr;