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;