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