clone45
(Bret Truchan)
March 4, 2020, 1:15am
1
Hello! I’m contemplating using a menu for one of my modules but I don’t know how to get started. Much of the code that I can find (Squinky Labs being one) is somewhat overwhelming.
Could someone help me get started by explaining the bare minimum required for adding a menu to a module? (including code, if possible!)
Coirt
(Phil Golden)
March 4, 2020, 1:46am
2
Simplest one I could find was VCV Merge.
}
void dataFromJson(json_t* rootJ) override {
json_t* channelsJ = json_object_get(rootJ, "channels");
if (channelsJ)
channels = json_integer_value(channelsJ);
}
};
struct MergeChannelItem : MenuItem {
Merge* module;
int channels;
void onAction(const event::Action& e) override {
module->channels = channels;
}
};
struct MergeChannelsItem : MenuItem {
Merge* module;
When you append override just write any menus in here e.g.
addChild(createWidget<BarkScrew1>(Vec(2.7f, 2.7f))); //pos1
addChild(createWidget<BarkScrew2>(Vec(box.size.x - 12.3f, 367.7f))); //pos4
if (module != NULL) {
ChannelNumberWidget *label = new ChannelNumberWidget;
label->chNum = module->displayNumber;
addChild(label);
}
}
void appendContextMenu(Menu* menu) override {
SHTH* module = dynamic_cast<SHTH*>(this->module);
assert(module);
int numCh = module->normalMode ? module->nCh : module->overrideCh;
//blank space
//menu->addChild(new MenuEntry);
menu->addChild(new MenuSeparator());
SHTHGateModeItem *modeItem = new SHTHGateModeItem;
Vortico
(VCV - Andrew)
March 4, 2020, 1:47am
3
The createMenu()
helper function from helpers.hpp
creates and returns a new Menu
at the current mouse position. You can add menu items with
MyMenuItem* item = new MyMenuItem;
menu->addChild(item);
If you instead want to add menu items to the module context menu , override ModuleWidget::appendContextMenu()
as @Coirt said.
2 Likes