diff --git a/include/helpers.hpp b/include/helpers.hpp index a867626e..63e95f59 100644 --- a/include/helpers.hpp +++ b/include/helpers.hpp @@ -298,35 +298,9 @@ Example: */ template TMenuItem* createBoolMenuItem(std::string text, std::string rightText, std::function getter, std::function setter, bool disabled = false, bool alwaysConsume = false) { - struct Item : TMenuItem { - std::string rightTextPrefix; - std::function getter; - std::function setter; - bool alwaysConsume; - - void step() override { - this->rightText = rightTextPrefix; - if (getter()) { - if (!rightTextPrefix.empty()) - this->rightText += " "; - this->rightText += CHECKMARK_STRING; - } - TMenuItem::step(); - } - void onAction(const event::Action& e) override { - setter(!getter()); - if (alwaysConsume) - e.consume(this); - } - }; - - Item* item = createMenuItem(text); - item->rightTextPrefix = rightText; - item->getter = getter; - item->setter = setter; - item->disabled = disabled; - item->alwaysConsume = alwaysConsume; - return item; + return createCheckMenuItem(text, rightText, getter, [=]() { + setter(!getter()); + }, disabled, alwaysConsume); }