20#include "cc_tools_qt/ToolsField.h"
22#include "comms/field/Optional.h"
33class CC_TOOLS_API ToolsOptionalField :
public ToolsField
36 using ActPtr = std::unique_ptr<ToolsOptionalField>;
37 using Mode = comms::field::OptionalMode;
40 virtual ~ToolsOptionalField() noexcept;
44 void setMode(Mode mode);
46 bool hasField() const;
48 ToolsField& getField();
50 const ToolsField& getField() const;
52 void setField(ToolsFieldPtr fieldPtr);
57 virtual Mode getModeImpl() const = 0;
58 virtual
void setModeImpl(Mode mode) = 0;
60 void dispatchImpl(ToolsFieldHandler& handler);
63using ToolsOptionalFieldPtr = ToolsOptionalField::ActPtr;