#pragma once
#include "menu.hpp"
//! вывод булевых параметров + применение действия
class item_bool: public MenuItem {
  nocopy(item_bool);
protected:
  utf32 str = {};
  bool* pVal = nullptr;
  void_callback pFunc = nullptr;
public:
  explicit item_bool(CN(utf32) s, bool* p, void_callback f=nullptr)
  : str(s), pVal(p), pFunc(f)
    { IFERROR(!p, "menu item add: num pointer is null"); }
  void print(Font* pFont, Image& dst, int XPos=0, int YPos=0) const override {
    pFont->print(dst, XPos, YPos, str + yn2s<utf32>(*pVal));
  }
  bool accept() override {
    if (pFunc)
      return pFunc();
    return true;
  }
};