25 #ifndef JUCE_VALUETREE_H_INCLUDED
26 #define JUCE_VALUETREE_H_INCLUDED
90 #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
115 bool isEquivalentTo (
const ValueTree&)
const;
122 bool isValid()
const {
return object !=
nullptr; }
137 bool hasType (
const Identifier& typeName)
const;
152 var getProperty (
const Identifier& name,
const var& defaultReturnValue)
const;
171 bool hasProperty (
const Identifier& name)
const;
183 void removeAllProperties (
UndoManager* undoManager);
188 int getNumProperties()
const;
213 int getNumChildren()
const;
270 void removeChild (
int childIndex,
UndoManager* undoManager);
291 void moveChild (
int currentIndex,
int newIndex,
UndoManager* undoManager);
296 bool isAChildOf (
const ValueTree& possibleParent)
const;
301 int indexOf (
const ValueTree& child)
const;
339 String toXmlString()
const;
355 static ValueTree readFromData (
const void*
data,
size_t numBytes);
360 static ValueTree readFromGZIPData (
const void*
data,
size_t numBytes);
385 virtual void valueTreePropertyChanged (
ValueTree& treeWhosePropertyHasChanged,
395 virtual void valueTreeChildAdded (
ValueTree& parentTree,
405 virtual void valueTreeChildRemoved (
ValueTree& parentTree,
407 int indexFromWhichChildWasRemoved) = 0;
416 virtual void valueTreeChildOrderChanged (
ValueTree& parentTreeWhoseChildrenHaveMoved,
417 int oldIndex,
int newIndex) = 0;
425 virtual void valueTreeParentChanged (
ValueTree& treeWhoseParentHasChanged) = 0;
431 virtual void valueTreeRedirected (
ValueTree& treeWhichHasBeenChanged);
448 void addListener (Listener* listener);
451 void removeListener (Listener* listener);
456 void sendPropertyChangeMessage (
const Identifier& property);
480 template <
typename ElementComparator>
481 void sort (ElementComparator& comparator,
UndoManager* undoManager,
bool retainOrderOfEquivalentItems)
483 if (
object !=
nullptr)
486 createListOfChildren (sortedList);
487 ComparatorAdapter<ElementComparator> adapter (comparator);
488 sortedList.
sort (adapter, retainOrderOfEquivalentItems);
489 reorderChildren (sortedList, undoManager);
501 int getReferenceCount()
const noexcept;
511 template <typename ElementComparator>
512 struct ComparatorAdapter
514 ComparatorAdapter (ElementComparator& comp) noexcept : comparator (comp) {}
518 return comparator.compareElements (*first, *second);
522 ElementComparator& comparator;
533 #endif // JUCE_VALUETREE_H_INCLUDED
Definition: juce_Variant.h:46
void sort(ElementComparator &comparator, bool retainOrderOfEquivalentItems=false) const noexcept
Definition: juce_OwnedArray.h:854
virtual ~Listener()
Definition: juce_ValueTree.h:372
#define noexcept
Definition: juce_CompilerSupport.h:141
Definition: juce_ValueTree.h:368
Definition: juce_ValueTree.cpp:25
Definition: juce_String.h:43
void sort(ElementComparator &comparator, UndoManager *undoManager, bool retainOrderOfEquivalentItems)
Definition: juce_ValueTree.h:481
#define JUCE_API
Definition: juce_StandardHeader.h:139
#define JUCE_PUBLIC_IN_DLL_BUILD(declaration)
Definition: juce_StandardHeader.h:145
Definition: juce_XmlElement.h:142
Definition: juce_ListenerList.h:69
Definition: juce_ReferenceCountedObject.h:227
Definition: juce_OutputStream.h:42
bool operator==(const var &v1, const var &v2) noexcept
Definition: juce_Variant.cpp:565
Definition: juce_OwnedArray.h:55
Definition: juce_Value.h:44
static const ValueTree invalid
Definition: juce_ValueTree.h:496
JSAMPIMAGE data
Definition: jpeglib.h:945
Definition: juce_ValueTree.h:64
Definition: juce_UndoManager.h:49
bool operator!=(const var &v1, const var &v2) noexcept
Definition: juce_Variant.cpp:566
bool isValid() const
Definition: juce_ValueTree.h:122
Definition: juce_Identifier.h:43