73 JUCE_PUBLIC_IN_DLL_BUILD (
class SharedObject)
132 std::initializer_list<NamedValueSet::NamedValue> properties,
133 std::initializer_list<ValueTree>
subTrees = {});
170 bool isEquivalentTo (
const ValueTree&)
const;
257 void removeAllProperties (
UndoManager* undoManager);
346 void removeChild (
int childIndex,
UndoManager* undoManager);
411 using difference_type = std::ptrdiff_t;
415 using iterator_category = std::forward_iterator_tag;
418 SharedObject** internal =
nullptr;
467 static ValueTree readFromData (
const void* data,
size_t numBytes);
472 static ValueTree readFromGZIPData (
const void* data,
size_t numBytes);
554 void addListener (
Listener* listener);
557 void removeListener (
Listener* listener);
569 void sendPropertyChangeMessage (
const Identifier& property);
593 template <
typename ElementComparator>
596 if (
object !=
nullptr)
611 #if JUCE_ALLOW_STATIC_NULL_VARIABLES && ! defined (DOXYGEN)
613 [[
deprecated (
"If you need an empty ValueTree object, just use ValueTree() or {}.")]]
619 friend class SharedObject;
624 template <
typename ElementComparator>
625 struct ComparatorAdapter
629 int compareElements (
const ValueTree*
const first,
const ValueTree*
const second)
631 return comparator.compareElements (*first, *second);
635 ElementComparator& comparator;
636 JUCE_DECLARE_NON_COPYABLE (ComparatorAdapter)
639 void createListOfChildren (OwnedArray<ValueTree>&)
const;
640 void reorderChildren (
const OwnedArray<ValueTree>&, UndoManager*);
642 explicit ValueTree (ReferenceCountedObjectPtr<SharedObject>)
noexcept;
643 explicit ValueTree (SharedObject&)
noexcept;