#pragma once #include #include #include namespace DHE { struct BooleanOption : rack::MenuItem { template BooleanOption(const std::string &name, const Setter &setter, const Getter &getter) : set{setter}, is_on{getter} { text = name; } void onAction(rack::EventAction &e) override { set(!is_on()); } void step() override { rightText = is_on() ? "✔" : ""; rack::MenuItem::step(); } const std::function set; const std::function is_on; }; } // namespace DHE