21#include "cc_tools_qt/details/ToolsNumericFieldBase.h"
23#include <QtCore/QList>
24#include <QtCore/QString>
34class CC_TOOLS_API ToolsBitmaskField :
public details::ToolsNumericFieldBase<unsigned long long>
37 using ActPtr = std::unique_ptr<ToolsBitmaskField>;
39 virtual ~ToolsBitmaskField() noexcept;
41 bool bitValue(
unsigned idx) const;
43 void setBitValue(
unsigned idx,
bool value);
45 unsigned bitIdxLimit() const;
47 const QStringList& bits() const;
52 virtual
bool bitValueImpl(
unsigned idx) const = 0;
53 virtual
void setBitValueImpl(
unsigned idx,
bool value) = 0;
54 virtual
unsigned bitIdxLimitImpl() const = 0;
55 virtual const QStringList& bitsImpl() const = 0;
57 virtual
void dispatchImpl(ToolsFieldHandler& handler) override;
60using ToolsBitmaskFieldPtr = ToolsBitmaskField::ActPtr;