22#include "cc_tools_qt/ToolsField.h"
24#include "comms/field/Optional.h"
35class CC_TOOLS_API ToolsOptionalField :
public ToolsField
38 using ActPtr = std::unique_ptr<ToolsOptionalField>;
39 using Mode = comms::field::OptionalMode;
42 virtual ~ToolsOptionalField() noexcept;
46 void setMode(Mode mode);
48 bool hasField() const;
50 ToolsField& getField();
52 const ToolsField& getField() const;
54 void setField(ToolsFieldPtr fieldPtr);
59 virtual Mode getModeImpl() const = 0;
60 virtual
void setModeImpl(Mode mode) = 0;
62 void dispatchImpl(ToolsFieldHandler& handler);
65using ToolsOptionalFieldPtr = ToolsOptionalField::ActPtr;