void CtrlrPanelUtilities::reloadContent() { if ((owner.isVisible() && owner.getSelection()->getNumSelected() == 0) || owner.getSelection()->getNumSelected() > 1) { ScopedPointer <XmlElement> xml (owner.getOwner().getPanelTree().createXml()); if (xml) { codeDocument.replaceAllContent (xml->createDocument(String::empty)); } } else if (owner.isVisible() && owner.getSelection()->getNumSelected() == 1) { CtrlrComponent *c = owner.getSelection()->getSelectedItem(0); if (c) { ScopedPointer <XmlElement> xml (c->getOwner().getModulatorTree().createXml()); String doc = xml->createDocument(String::empty); if (doc.length() <= 8192) { codeDocument.replaceAllContent (doc); } } } }
void CtrlrPanelCanvas::handleRightClickOnComponent(const MouseEvent &e) { CtrlrComponent *c = findEventComponent(e); if (c == 0) return; if (dynamic_cast<ResizableBorderComponent*>(e.eventComponent) == 0 && getOwner().getSelection()) { getOwner().getSelection()->selectOnly (c); } PopupMenu m; PopupMenu componentSubMenu = CtrlrComponentTypeManager::getComponentMenu(true); m.addSectionHeader ("Actions"); m.addItem (512, "Export component"); m.addItem (513, "Lock", true, c->getProperty(Ids::componentIsLocked)); m.addSectionHeader ("Layout"); m.addItem (1024, "Send to back"); m.addItem (1025, "Send to front"); m.addSubMenu ("Send to layer", getLayerMenu()); m.addSeparator(); m.addSubMenu ("Replace with", componentSubMenu, true); m.addSeparator(); getEditMenu(m); m.addSeparator(); if (CtrlrComponentTypeManager::isGroupingComponent(c)) { m.addItem (1026, "Delete with children"); m.addItem (1027, "Copy with children"); } const int ret = m.show(); if (ret == 512) { exportSelectedComponents(); } else if (ret == 513) { c->setProperty (Ids::componentIsLocked, !c->getProperty(Ids::componentIsLocked)); } if (ret == 1024) { c->toBack(); c->setProperty (Ids::componentSentBack, true); } else if (ret == 1025) { c->toFront(false); c->setProperty (Ids::componentSentBack, false); } else if (ret == 1026) { deleteWithChildren (c); } else if (ret == 1027) { copyWithChildren (c); } else if (ret >= 2048 && ret < 4096) { handleEditMenu (ret, e); } else if (ret >= 4096 && ret < 8192) { handleLayerMenu (ret, e); } else if (ret < 1024 && ret > 10) { PopupMenu::MenuItemIterator iterator((const PopupMenu &)componentSubMenu); while (iterator.next()) { if (iterator.getItem().subMenu) { PopupMenu::MenuItemIterator iterator2(*iterator.getItem().subMenu); while (iterator2.next()) { if (iterator2.getItem().itemID == ret) { if (c) { replaceComponent (c->getOwner(), iterator2.getItem().text); return; } } } } } } }