135 std::initializer_list<NamedValueSet::NamedValue> properties,
136 std::initializer_list<ValueTree>
subTrees = {});
173 bool isEquivalentTo (
const ValueTree&)
const;
260 void removeAllProperties (
UndoManager* undoManager);
349 void removeChild (
int childIndex,
UndoManager* undoManager);
414 using difference_type = std::ptrdiff_t;
418 using iterator_category = std::forward_iterator_tag;
552 void addListener (
Listener* listener);
555 void removeListener (
Listener* listener);
567 void sendPropertyChangeMessage (
const Identifier& property);
591 template <
typename ElementComparator>
594 if (
object !=
nullptr)
616 JUCE_PUBLIC_IN_DLL_BUILD (
class SharedObject)
627 int compareElements (
const ValueTree*
const first,
const ValueTree*
const second)
629 return comparator.compareElements (*first, *second);
633 ElementComparator& comparator;
634 JUCE_DECLARE_NON_COPYABLE (ComparatorAdapter)
637 void createListOfChildren (OwnedArray<ValueTree>&)
const;
638 void reorderChildren (
const OwnedArray<ValueTree>&, UndoManager*);
640 explicit ValueTree (ReferenceCountedObjectPtr<SharedObject>)
noexcept;
641 explicit ValueTree (SharedObject&)
noexcept;
Holds a resizable array of primitive or copy-by-value objects.
void sort()
Sorts the array using a default comparison operation.
Represents a string identifier, designed for accessing properties by name.
Holds a set of objects and can invoke a member function callback on each object in the set with a sin...
The base class for streams that write data to some kind of destination.
A smart-pointer class which points to a reference-counted object.
Manages a list of undo/redo commands.
Listener class for events that happen to a ValueTree.
virtual void valueTreeChildRemoved(ValueTree &parentTree, ValueTree &childWhichHasBeenRemoved, int indexFromWhichChildWasRemoved)=0
This method is called when a child sub-tree is removed.
virtual void valueTreeChildAdded(ValueTree &parentTree, ValueTree &childWhichHasBeenAdded)=0
This method is called when a child sub-tree is added.
virtual ~Listener()=default
Destructor.
virtual void valueTreeParentChanged(ValueTree &treeWhoseParentHasChanged)=0
This method is called when a tree has been added or removed from a parent.
virtual void valueTreeChildOrderChanged(ValueTree &parentTreeWhoseChildrenHaveMoved, int oldIndex, int newIndex)=0
This method is called when a tree's children have been re-shuffled.
virtual void valueTreePropertyChanged(ValueTree &treeWhosePropertyHasChanged, const Identifier &property)=0
This method is called when a property of this tree (or of one of its sub-trees) is changed.
A powerful tree structure that can be used to hold free-form data, and which can handle its own undo ...
bool isValid() const noexcept
Returns true if this tree refers to some valid data.
void sort(ElementComparator &comparator, UndoManager *undoManager, bool retainOrderOfEquivalentItems)
This method uses a comparator object to sort the tree's children into order.
Represents a shared variant value.
Used to build a tree of elements representing an XML document.
A variant class, that can be used to hold a range of primitive values.
#define JUCE_API
This macro is added to all JUCE public class declarations.
Iterator for a ValueTree.