From 01685a6e1d35e0d393fb301c39a26d0d53b60a1e Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 6 Jul 2024 15:16:19 -0400 Subject: [PATCH] Make createIndexSubmenuItem() implementation simpler by calling createCheckMenuItem(). --- include/helpers.hpp | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/include/helpers.hpp b/include/helpers.hpp index 63e95f59..2f094f16 100644 --- a/include/helpers.hpp +++ b/include/helpers.hpp @@ -367,24 +367,6 @@ Example: */ template TMenuItem* createIndexSubmenuItem(std::string text, std::vector labels, std::function getter, std::function setter, bool disabled = false, bool alwaysConsume = false) { - struct IndexItem : ui::MenuItem { - std::function getter; - std::function setter; - size_t index; - bool alwaysConsume; - - void step() override { - size_t currIndex = getter(); - this->rightText = CHECKMARK(currIndex == index); - MenuItem::step(); - } - void onAction(const event::Action& e) override { - setter(index); - if (alwaysConsume) - e.consume(this); - } - }; - struct Item : TMenuItem { std::function getter; std::function setter; @@ -400,12 +382,11 @@ TMenuItem* createIndexSubmenuItem(std::string text, std::vector lab ui::Menu* createChildMenu() override { ui::Menu* menu = new ui::Menu; for (size_t i = 0; i < labels.size(); i++) { - IndexItem* item = createMenuItem(labels[i]); - item->getter = getter; - item->setter = setter; - item->index = i; - item->alwaysConsume = alwaysConsume; - menu->addChild(item); + menu->addChild(createCheckMenuItem(labels[i], "", [=]() { + return getter() == i; + }, [=]() { + setter(i); + }, false, alwaysConsume)); } return menu; }