21#include "cc_tools_qt/details/ToolsNumericFieldBase.h"
23#include <QtCore/QList>
24#include <QtCore/QPair>
34class CC_TOOLS_API ToolsFloatField :
public details::ToolsNumericFieldBase<double>
36 using Base = details::ToolsNumericFieldBase<double>;
39 using UnderlyingType = Base::UnderlyingType;
40 using ActPtr = std::unique_ptr<ToolsFloatField>;
41 using SpecialType = QPair<QString, UnderlyingType>;
42 using SpecialsList = QList<SpecialType>;
45 virtual ~ToolsFloatField() noexcept;
51 bool isMinusInf() const;
53 double getEpsilon() const;
54 const SpecialsList& specials() const;
60 virtual
bool isNanImpl() const = 0;
61 virtual
void setNanImpl() = 0;
62 virtual
bool isInfImpl() const = 0;
63 virtual
void setInfImpl() = 0;
64 virtual
bool isMinusInfImpl() const = 0;
65 virtual
void setMinusInfImpl() = 0;
66 virtual
double getEpsilonImpl() const = 0;
67 virtual const SpecialsList& specialsImpl() const = 0;
68 virtual
int decimalsImpl() const = 0;
70 virtual
void dispatchImpl(ToolsFieldHandler& handler) override;
73using ToolsFloatFieldPtr = ToolsFloatField::ActPtr;