From f20d0472a4335a15cd39fe509df468579d96fdd1 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Thu, 3 Jun 2021 20:21:12 -0400 Subject: [PATCH] Use menu item helpers in Plaits. --- src/Plaits.cpp | 42 +++++++++++------------------------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/src/Plaits.cpp b/src/Plaits.cpp index 078ad94..bb8d334 100644 --- a/src/Plaits.cpp +++ b/src/Plaits.cpp @@ -321,43 +321,23 @@ struct PlaitsWidget : ModuleWidget { void appendContextMenu(Menu* menu) override { Plaits* module = dynamic_cast(this->module); - struct PlaitsLowCpuItem : MenuItem { - Plaits* module; - void onAction(const event::Action& e) override { - module->lowCpu ^= true; - } - }; + menu->addChild(new MenuSeparator); - struct PlaitsLpgModeItem : MenuItem { - PlaitsWidget* moduleWidget; - void onAction(const event::Action& e) override { - moduleWidget->setLpgMode(!moduleWidget->getLpgMode()); - } - }; + menu->addChild(createBoolPtrMenuItem("Low CPU (disable resampling)", &module->lowCpu)); - struct PlaitsModelItem : MenuItem { - Plaits* module; - int model; - void onAction(const event::Action& e) override { - module->patch.engine = model; - } - }; - - menu->addChild(new MenuSeparator); - PlaitsLowCpuItem* lowCpuItem = createMenuItem("Low CPU", CHECKMARK(module->lowCpu)); - lowCpuItem->module = module; - menu->addChild(lowCpuItem); - PlaitsLpgModeItem* lpgItem = createMenuItem("Edit LPG response/decay", CHECKMARK(getLpgMode())); - lpgItem->moduleWidget = this; - menu->addChild(lpgItem); + menu->addChild(createBoolMenuItem("Edit LPG response/decay", + [=]() {return this->getLpgMode();}, + [=](bool val) {this->setLpgMode(val);} + )); menu->addChild(new MenuSeparator); menu->addChild(createMenuLabel("Models")); + for (int i = 0; i < 16; i++) { - PlaitsModelItem* modelItem = createMenuItem(modelLabels[i], CHECKMARK(module->patch.engine == i)); - modelItem->module = module; - modelItem->model = i; - menu->addChild(modelItem); + menu->addChild(createCheckMenuItem(modelLabels[i], + [=]() {return module->patch.engine == i;}, + [=]() {module->patch.engine = i;} + )); } }