20#include "cc_tools_qt/details/ToolsNumericFieldBase.h"
22#include <QtCore/QList>
23#include <QtCore/QString>
33class CC_TOOLS_API ToolsBitmaskField :
public details::ToolsNumericFieldBase<unsigned long long>
36 using ActPtr = std::unique_ptr<ToolsBitmaskField>;
38 virtual ~ToolsBitmaskField() noexcept;
40 bool bitValue(
unsigned idx) const;
42 void setBitValue(
unsigned idx,
bool value);
44 unsigned bitIdxLimit() const;
46 const QStringList& bits() const;
51 virtual
bool bitValueImpl(
unsigned idx) const = 0;
52 virtual
void setBitValueImpl(
unsigned idx,
bool value) = 0;
53 virtual
unsigned bitIdxLimitImpl() const = 0;
54 virtual const QStringList& bitsImpl() const = 0;
56 virtual
void dispatchImpl(ToolsFieldHandler& handler) override;
59using ToolsBitmaskFieldPtr = ToolsBitmaskField::ActPtr;