From 9498db0f0342eac80bb02c790edcbcff109fc91b Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Wed, 2 Jun 2021 00:25:21 -0400 Subject: [PATCH] Move createIndexMenuItem() to Rack helpers. --- src/Marbles.cpp | 46 +++++++--------------------------------------- 1 file changed, 7 insertions(+), 39 deletions(-) diff --git a/src/Marbles.cpp b/src/Marbles.cpp index a69e3dc..e953ad4 100644 --- a/src/Marbles.cpp +++ b/src/Marbles.cpp @@ -526,38 +526,6 @@ struct CKD6Light : BASE { }; -MenuItem* createIndexMenu(int* ptr, std::string name, std::vector labels) { - struct IndexItem : MenuItem { - int* ptr; - int index; - void onAction(const event::Action& e) override { - *ptr = index; - } - }; - struct Item : MenuItem { - int* ptr; - std::vector labels; - Menu* createChildMenu() override { - Menu* menu = new Menu(); - for (int i = 0; i < (int) labels.size(); i++) { - IndexItem* item = createMenuItem(labels[i], CHECKMARK(*ptr == i)); - item->ptr = ptr; - item->index = i; - menu->addChild(item); - } - return menu; - } - }; - - int index = *ptr; - std::string label = (0 <= index && index < (int) labels.size()) ? labels[index] : ""; - Item* item = createMenuItem(name, label); - item->ptr = ptr; - item->labels = labels; - return item; -} - - struct MarblesWidget : ModuleWidget { MarblesWidget(Marbles* module) { setModule(module); @@ -623,7 +591,7 @@ struct MarblesWidget : ModuleWidget { menu->addChild(new MenuSeparator); - menu->addChild(createIndexMenu(&module->t_mode, "t mode", { + menu->addChild(createIndexMenuItem(&module->t_mode, "t mode", { "Complementary Bernoulli", "Clusters", "Drums", @@ -633,25 +601,25 @@ struct MarblesWidget : ModuleWidget { "Markov", })); - menu->addChild(createIndexMenu(&module->t_range, "t range", { + menu->addChild(createIndexMenuItem(&module->t_range, "t range", { "1/4x", "1x", "4x", })); - menu->addChild(createIndexMenu(&module->x_mode, "X mode", { + menu->addChild(createIndexMenuItem(&module->x_mode, "X mode", { "Identical", "Bump", "Tilt", })); - menu->addChild(createIndexMenu(&module->x_range, "X range", { + menu->addChild(createIndexMenuItem(&module->x_range, "X range", { "Narrow", "Positive", "Full", })); - menu->addChild(createIndexMenu(&module->x_scale, "Scales", { + menu->addChild(createIndexMenuItem(&module->x_scale, "Scales", { "Major", "Minor", "Pentatonic", @@ -660,14 +628,14 @@ struct MarblesWidget : ModuleWidget { "Raag Shri", })); - menu->addChild(createIndexMenu(&module->x_clock_source_internal, "Internal X clock source", { + menu->addChild(createIndexMenuItem(&module->x_clock_source_internal, "Internal X clock source", { "T₁ → X₁, T₂ → X₂, T₃ → X₃", "T₁ → X₁, X₂, X₃", "T₂ → X₁, X₂, X₃", "T₃ → X₁, X₂, X₃", })); - menu->addChild(createIndexMenu(&module->y_divider_index, "Y divider ratio", { + menu->addChild(createIndexMenuItem(&module->y_divider_index, "Y divider ratio", { "1/64", "1/48", "1/32",