computerscare-vcv-modules

computerscare modules for VCV Rack
Log | Files | Refs

commit 4bc32f2b7b327cbcaa27fa9f638d5a8da8b25276
parent ebcf5b636f812a96bd092e453e73e1030e43bc90
Author: Adam M <aemalone@gmail.com>
Date:   Tue, 23 Nov 2021 11:48:23 -0600

move pouter menu items inside modulewidget definition

Diffstat:
Msrc/ComputerscareRolyPouter.cpp | 128+++++++++++++++++++++++++++++++++++++++----------------------------------------
1 file changed, 63 insertions(+), 65 deletions(-)

diff --git a/src/ComputerscareRolyPouter.cpp b/src/ComputerscareRolyPouter.cpp @@ -266,84 +266,82 @@ struct ComputerscareRolyPouterWidget : ModuleWidget { addChild(outputChannelLabel); } - DisableableSnapKnob* knob; - PolyOutputChannelsWidget* channelWidget; - PouterSmallDisplay* pouterSmallDisplay; - SmallLetterDisplay* outputChannelLabel; - - void addMenuItems(ComputerscareRolyPouter *pouter, Menu *menu); - void appendContextMenu(Menu *menu) override; -}; -struct ssmi : MenuItem -{ - ComputerscareRolyPouter *pouter; - int mySetVal = 1; - ssmi(int setVal) - { - mySetVal = setVal; - } - - void onAction(const event::Action &e) override + void appendContextMenu(Menu *menu) override { - pouter->setAll(mySetVal); - } -}; -struct OneToOneItem: MenuItem { - ComputerscareRolyPouter *pouter; + ComputerscareRolyPouter *module = dynamic_cast<ComputerscareRolyPouter *>(this->module); - OneToOneItem() { + struct ssmi : MenuItem + { + ComputerscareRolyPouter *pouter; + int mySetVal = 1; + ssmi(int setVal) + { + mySetVal = setVal; + MenuItem(); + } - } - void onAction(const event::Action &e) override { - pouter->toggleOneToOne(); - } - void step() override { - rightText = pouter->params[ComputerscareRolyPouter::RANDOMIZE_ONE_TO_ONE].getValue() == 1.f ? "✔" : ""; - MenuItem::step(); - } -}; + void onAction(const event::Action &e) override + { + pouter->setAll(mySetVal); + } + }; + struct OneToOneItem: MenuItem { + ComputerscareRolyPouter *pouter; -struct SetAllItem : MenuItem { - ComputerscareRolyPouter *pouter; + OneToOneItem() { + MenuItem(); + } + void onAction(const event::Action &e) override { + pouter->toggleOneToOne(); + } + void step() override { + rightText = pouter->params[ComputerscareRolyPouter::RANDOMIZE_ONE_TO_ONE].getValue() == 1.f ? "✔" : ""; + MenuItem::step(); + } + }; + + struct SetAllItem : MenuItem { + ComputerscareRolyPouter *pouter; + + Menu *createChildMenu() override { + Menu *menu = new Menu; + for (unsigned int i = 1; i < 17; i++) { + ssmi *menuItem = new ssmi(i); + menuItem->text = "Set all to ch. " + std::to_string(i); + menuItem->pouter = pouter; + menu->addChild(menuItem); + } + return menu; + } + }; - Menu *createChildMenu() override { - Menu *menu = new Menu; - for (int i = 1; i < 17; i++) { - ssmi *menuItem = new ssmi(i); - menuItem->text = "Set all to ch. " + std::to_string(i); - menuItem->pouter = pouter; - menu->addChild(menuItem); - } - return menu; - } + MenuLabel *spacerLabel = new MenuLabel(); + menu->addChild(spacerLabel); -}; -void ComputerscareRolyPouterWidget::appendContextMenu(Menu *menu) -{ - ComputerscareRolyPouter *pouter = dynamic_cast<ComputerscareRolyPouter *>(this->module); + OneToOneItem *oneToOne = new OneToOneItem(); + oneToOne->text = "Randomize one-to-one (Don't re-use input channels on randomize)"; + oneToOne->pouter = module; + menu->addChild(oneToOne); - MenuLabel *spacerLabel = new MenuLabel(); - menu->addChild(spacerLabel); - OneToOneItem *oneToOne = new OneToOneItem(); - oneToOne->text = "Randomize one-to-one (Don't re-use input channels on randomize)"; - oneToOne->pouter = pouter; - menu->addChild(oneToOne); + menu->addChild(construct<MenuLabel>(&MenuLabel::text, "")); + SetAllItem *setAllItem = new SetAllItem(); + setAllItem->text = "Set All To"; + setAllItem->rightText = RIGHT_ARROW; + setAllItem->pouter = module; + menu->addChild(setAllItem); - MenuLabel *modeLabel = new MenuLabel(); - modeLabel->text = "Presets"; - menu->addChild(modeLabel); + } - SetAllItem *setAllItem = new SetAllItem(); - setAllItem->text = "Set All To"; - setAllItem->rightText = RIGHT_ARROW; - setAllItem->pouter = pouter; - menu->addChild(setAllItem); + DisableableSnapKnob* knob; + PolyOutputChannelsWidget* channelWidget; + PouterSmallDisplay* pouterSmallDisplay; + SmallLetterDisplay* outputChannelLabel; - //addMenuItems(pouter, menu); + void addMenuItems(ComputerscareRolyPouter *pouter, Menu *menu); +}; -} Model *modelComputerscareRolyPouter = createModel<ComputerscareRolyPouter, ComputerscareRolyPouterWidget>("computerscare-roly-pouter");