void FrameAttachmentPoint::onContextMenuClick(int frame, int command) { if (frame >= 0 && frame < mAttachedFrames.size()) { auto framePos = mAttachedFrames.begin(); for (int i = 0; i < frame; i++) framePos++; //Check for command if (command == COMMAND_COPY) { //Copy the plugin PluginManager* manager = Carbon::get()->getPluginManager(); AbstractPlugin* plugin = manager->createPlugin(*(*framePos)->getPluginDefinition(), true); } else if (command == COMMAND_DELETE) { //Delete the plugin PluginManager* manager = Carbon::get()->getPluginManager(); manager->deletePlugin((*framePos)->getPluginId(), true); } else if (command >= COMMAND_MAX_ID) { //Reattach the plugin int target = command - COMMAND_MAX_ID; WindowManager* manager = Carbon::get()->getWindowManager(); if ((int)manager->getFrameAttachmentPoints().size() > target && target >= 0) { auto pos = manager->getFrameAttachmentPoints().begin(); for (int i = 0; i < target; i++) pos++; manager->changeAttachment(*framePos, pos->second->getName()); } } } else { LOG_ERROR() << "Illegal frame index " << frame; } }