22#include "cc_tools_qt/details/ToolsNumericFieldBase.h"
24#include <QtCore/QList>
25#include <QtCore/QPair>
35class CC_TOOLS_API ToolsFloatField :
public details::ToolsNumericFieldBase<double>
37 using Base = details::ToolsNumericFieldBase<double>;
40 using UnderlyingType = Base::UnderlyingType;
41 using ActPtr = std::unique_ptr<ToolsFloatField>;
42 using SpecialType = QPair<QString, UnderlyingType>;
43 using SpecialsList = QList<SpecialType>;
46 virtual ~ToolsFloatField() noexcept;
52 bool isMinusInf() const;
54 double getEpsilon() const;
55 const SpecialsList& specials() const;
61 virtual
bool isNanImpl() const = 0;
62 virtual
void setNanImpl() = 0;
63 virtual
bool isInfImpl() const = 0;
64 virtual
void setInfImpl() = 0;
65 virtual
bool isMinusInfImpl() const = 0;
66 virtual
void setMinusInfImpl() = 0;
67 virtual
double getEpsilonImpl() const = 0;
68 virtual const SpecialsList& specialsImpl() const = 0;
69 virtual
int decimalsImpl() const = 0;
71 virtual
void dispatchImpl(ToolsFieldHandler& handler) override;
74using ToolsFloatFieldPtr = ToolsFloatField::ActPtr;