Browse Source

Move createIndexMenuItem() to Rack helpers.

pull/114/head
Andrew Belt 3 years ago
parent
commit
9498db0f03
1 changed files with 7 additions and 39 deletions
  1. +7
    -39
      src/Marbles.cpp

+ 7
- 39
src/Marbles.cpp View File

@@ -526,38 +526,6 @@ struct CKD6Light : BASE {
}; };




MenuItem* createIndexMenu(int* ptr, std::string name, std::vector<std::string> labels) {
struct IndexItem : MenuItem {
int* ptr;
int index;
void onAction(const event::Action& e) override {
*ptr = index;
}
};
struct Item : MenuItem {
int* ptr;
std::vector<std::string> labels;
Menu* createChildMenu() override {
Menu* menu = new Menu();
for (int i = 0; i < (int) labels.size(); i++) {
IndexItem* item = createMenuItem<IndexItem>(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<Item>(name, label);
item->ptr = ptr;
item->labels = labels;
return item;
}


struct MarblesWidget : ModuleWidget { struct MarblesWidget : ModuleWidget {
MarblesWidget(Marbles* module) { MarblesWidget(Marbles* module) {
setModule(module); setModule(module);
@@ -623,7 +591,7 @@ struct MarblesWidget : ModuleWidget {


menu->addChild(new MenuSeparator); menu->addChild(new MenuSeparator);


menu->addChild(createIndexMenu(&module->t_mode, "t mode", {
menu->addChild(createIndexMenuItem(&module->t_mode, "t mode", {
"Complementary Bernoulli", "Complementary Bernoulli",
"Clusters", "Clusters",
"Drums", "Drums",
@@ -633,25 +601,25 @@ struct MarblesWidget : ModuleWidget {
"Markov", "Markov",
})); }));


menu->addChild(createIndexMenu(&module->t_range, "t range", {
menu->addChild(createIndexMenuItem(&module->t_range, "t range", {
"1/4x", "1/4x",
"1x", "1x",
"4x", "4x",
})); }));


menu->addChild(createIndexMenu(&module->x_mode, "X mode", {
menu->addChild(createIndexMenuItem(&module->x_mode, "X mode", {
"Identical", "Identical",
"Bump", "Bump",
"Tilt", "Tilt",
})); }));


menu->addChild(createIndexMenu(&module->x_range, "X range", {
menu->addChild(createIndexMenuItem(&module->x_range, "X range", {
"Narrow", "Narrow",
"Positive", "Positive",
"Full", "Full",
})); }));


menu->addChild(createIndexMenu(&module->x_scale, "Scales", {
menu->addChild(createIndexMenuItem(&module->x_scale, "Scales", {
"Major", "Major",
"Minor", "Minor",
"Pentatonic", "Pentatonic",
@@ -660,14 +628,14 @@ struct MarblesWidget : ModuleWidget {
"Raag Shri", "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₁, T₂ → X₂, T₃ → X₃",
"T₁ → X₁, X₂, X₃", "T₁ → X₁, X₂, X₃",
"T₂ → X₁, X₂, 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/64",
"1/48", "1/48",
"1/32", "1/32",


Loading…
Cancel
Save