MCPcopy Create free account
hub / github.com/VCVRack/AudibleInstruments / appendContextMenu

Method appendContextMenu

src/Plaits.cpp:321–362  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

319 }
320
321 void appendContextMenu(Menu* menu) override {
322 Plaits* module = dynamic_cast<Plaits*>(this->module);
323
324 struct PlaitsLowCpuItem : MenuItem {
325 Plaits* module;
326 void onAction(const event::Action& e) override {
327 module->lowCpu ^= true;
328 }
329 };
330
331 struct PlaitsLpgModeItem : MenuItem {
332 PlaitsWidget* moduleWidget;
333 void onAction(const event::Action& e) override {
334 moduleWidget->setLpgMode(!moduleWidget->getLpgMode());
335 }
336 };
337
338 struct PlaitsModelItem : MenuItem {
339 Plaits* module;
340 int model;
341 void onAction(const event::Action& e) override {
342 module->patch.engine = model;
343 }
344 };
345
346 menu->addChild(new MenuSeparator);
347 PlaitsLowCpuItem* lowCpuItem = createMenuItem<PlaitsLowCpuItem>("Low CPU", CHECKMARK(module->lowCpu));
348 lowCpuItem->module = module;
349 menu->addChild(lowCpuItem);
350 PlaitsLpgModeItem* lpgItem = createMenuItem<PlaitsLpgModeItem>("Edit LPG response/decay", CHECKMARK(getLpgMode()));
351 lpgItem->moduleWidget = this;
352 menu->addChild(lpgItem);
353
354 menu->addChild(new MenuSeparator);
355 menu->addChild(createMenuLabel("Models"));
356 for (int i = 0; i < 16; i++) {
357 PlaitsModelItem* modelItem = createMenuItem<PlaitsModelItem>(modelLabels[i], CHECKMARK(module->patch.engine == i));
358 modelItem->module = module;
359 modelItem->model = i;
360 menu->addChild(modelItem);
361 }
362 }
363
364 void setLpgMode(bool lpgMode) {
365 // ModuleWidget::getParam() doesn't work if the ModuleWidget doesn't have a module.

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected