MCPcopy Create free account
hub / github.com/benkuper/Chataigne / showAllValuesAndGetControllable

Method showAllValuesAndGetControllable

Source/Module/ModuleManager.cpp:52–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52void ModuleManager::showAllValuesAndGetControllable(const StringArray& typeFilters, const StringArray& excludeTypeFilters, ControllableContainer* startFromCC, std::function<void(Controllable*)> returnFunc)
53{
54
55 if (startFromCC != nullptr)
56 {
57 ControllableChooserPopupMenu * cMenu = new ControllableChooserPopupMenu(startFromCC, 0, -1, typeFilters, excludeTypeFilters);
58 cMenu->showAndGetControllable(returnFunc, true);
59 return;
60 }
61
62 PopupMenu menu;
63 Array<Module*> mList = ModuleManager::getInstance()->getModuleList();
64 int numItems = mList.size();
65
66 const int maxValuesPerModule = 100000;
67
68 getInstance()->modulesMenu.clear();
69
70 for (int i = 0; i < numItems; ++i)
71 {
72 Module* m = mList[i];
73 ControllableChooserPopupMenu* vCC = new ControllableChooserPopupMenu(&m->valuesCC, i * maxValuesPerModule, -1, typeFilters, excludeTypeFilters);
74 getInstance()->modulesMenu.add(vCC);
75 if (i == ModuleManager::getInstance()->items.size()) menu.addSeparator(); // Separator between user created module and special modules
76 menu.addSubMenu(m->niceName, *vCC);
77 }
78
79 getInstance()->engineMenu.reset(new ControllableChooserPopupMenu(Engine::mainEngine, -10000000, -1, typeFilters, excludeTypeFilters));
80 menu.addSubMenu("Generic", *getInstance()->engineMenu);
81
82
83 menu.showMenuAsync(PopupMenu::Options(), [maxValuesPerModule, returnFunc](int result)
84 {
85
86 if (result < 0)
87 {
88 returnFunc(ModuleManager::getInstance()->engineMenu->getControllableForResult(result));
89 }
90 else
91 {
92 ControllableChooserPopupMenu* mm = ModuleManager::getInstance()->modulesMenu[(int)floorf(result / maxValuesPerModule)];
93 returnFunc(mm->getControllableForResult(result));
94 }
95 }
96 );
97
98}
99
100bool ModuleManager::checkControllableIsAValue(Controllable* c)
101{

Callers

nothing calls this directly

Calls 5

getModuleListMethod · 0.80
sizeMethod · 0.45
clearMethod · 0.45
addMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected