void CtrlrPanelComponentProperties::changeListenerCallback (ChangeBroadcaster* source) { if (owner.getSelection() == nullptr) return; if (selectedItems != owner.getSelection()->getNumSelected() && owner.getSelection()->getNumSelected() > 1) { selectedItems = owner.getSelection()->getNumSelected(); msTree = ValueTree(Ids::modulator); msTree.removeListener (this); for (int i=0; i<owner.getSelection()->getNumSelected(); i++) { ValueTree modTree = owner.getSelection()->getSelectedItem(i)->getOwner().getModulatorTree(); copyProperties (modTree, msTree); for (int i=0; i<modTree.getNumChildren(); i++) { if (!msTree.getChildWithName(modTree.getChild(i).getType()).isValid()) msTree.addChild (modTree.getChild(i).createCopy(), i, 0); } } if (msTree.getChildWithName(Ids::component).isValid()) { msTree.getChildWithName(Ids::component).setProperty (Ids::uiType, "uiMultipleSelection", 0); } msTree.addListener (this); setTree (msTree); } if (owner.getSelection()->getNumSelected() == 0) { setTree (owner.getOwner().getPanelTree()); propertyPanel->restoreOpennessState(panelPropertyOpennessState); } if (owner.getSelection()->getNumSelected() == 1) { refreshTargetModulationPropertyList(owner.getSelection()->getSelectedItem(0)->getOwner().getModulatorTree()); refreshDynamicData(); setTree (owner.getSelection()->getSelectedItem(0)->getOwner().getModulatorTree()); propertyPanel->restoreOpennessState(modulatorPropertyOpennessState); } }
//============================================================================== CtrlrPanelComponentProperties::CtrlrPanelComponentProperties (CtrlrPanelEditor &_owner) : owner(_owner), panelPropertyOpennessState("invalid"), modulatorPropertyOpennessState("invalid") { addAndMakeVisible (propertyPanel = new PropertyPanel()); //[UserPreSize] selectedItems=-1; owner.getOwner().getOwner().addListener (this); msTree.addListener (this); refreshDynamicData(); if (owner.getSelection()) { owner.getSelection()->addChangeListener (this); } //[/UserPreSize] setSize (216, 400); //[Constructor] You can add your own custom stuff here.. //[/Constructor] }
void CtrlrPanelComponentProperties::refreshAll() { refreshDynamicData(); propertyPanel->refreshAll(); setTree(treeToEdit, true); }