var CtrlrValueTreeEditorItem::getDragSourceDescription () { Array <ValueTree> selectedTreeItems; String returnValue; if (getOwnerView()) { for (int i=0; i<getOwnerView()->getNumSelectedItems(); i++) { CtrlrValueTreeEditorItem *item = dynamic_cast<CtrlrValueTreeEditorItem*>(getOwnerView()->getSelectedItem(i)); selectedTreeItems.add (item->getTree()); } } if ((returnValue = provider.getDragSourceDescription(selectedTreeItems)) != String::empty) { return (returnValue); } else { for (int i=0; i<selectedTreeItems.size(); i++) { returnValue << selectedTreeItems[i].getType().toString() + ";"; } } return (returnValue); }
var CtrlrLuaMethodEditor::getDragSourceDescription(Array <ValueTree> &selectedTreeItems) { String returnValue; for (int i=0; i<methodTree->getNumSelectedItems(); i++) { CtrlrValueTreeEditorItem *item = dynamic_cast<CtrlrValueTreeEditorItem*>(methodTree->getSelectedItem(i)); if (item != nullptr) { returnValue << item->getItemIdentifierString() + ";"; } } return (returnValue); }
//========================================================================================================= bool CtrlrValueTreeEditorTree::keyPressed (const KeyPress &key) { if (getNumSelectedItems() == 1) { if (getSelectedItem(0)) { CtrlrValueTreeEditorItem *item = dynamic_cast<CtrlrValueTreeEditorItem*>(getSelectedItem(0)); if (item != nullptr) { item->keyPressed(key); } } } return (TreeView::keyPressed(key)); }
void CtrlrLuaMethodEditor::itemDropped (ValueTree &targetItem, const DragAndDropTarget::SourceDetails &dragSourceDetails, int insertIndex) { if ( (targetItem.hasType(Ids::luaMethodGroup) || targetItem.hasType(Ids::luaManagerMethods)) && insertIndex == 0 ) { StringArray ar; ar.addTokens (dragSourceDetails.description.toString(), ";", "\"'"); for (int i=0; i<ar.size(); i++) { CtrlrValueTreeEditorItem *sourceItem = dynamic_cast<CtrlrValueTreeEditorItem*>(methodTree->findItemFromIdentifierString (ar[i])); if (sourceItem != nullptr) { ValueTree child = sourceItem->getTree(); ValueTree parent = child.getParent(); parent.removeChild (child, nullptr); targetItem.addChild (child, -1, nullptr); } } triggerAsyncUpdate(); } }