41 auto* child = new SharedObject (*c);
58 c->sendParentChangeMessage();
67 template <
typename Function>
72 if (numListeners == 1)
76 else if (numListeners > 0)
80 for (
int i = 0;
i < numListeners; ++
i)
82 auto*
v = listenersCopy.getUnchecked (
i);
85 v->listeners.callExcluding (listenerToExclude,
fn);
90 template <
typename Function>
93 for (
auto*
t =
this;
t !=
nullptr;
t =
t->parent)
94 t->callListeners (listenerToExclude,
fn);
126 if (
auto* child =
children.getObjectPointer (
j))
127 child->sendParentChangeMessage();
135 if (undoManager ==
nullptr)
144 if (*existingValue != newValue)
146 false,
false, listenerToExclude));
151 true,
false, listenerToExclude));
163 if (undoManager ==
nullptr)
177 if (undoManager ==
nullptr)
207 if (
s->type == typeToMatch)
216 if (
s->type == typeToMatch)
220 addChild (newObject, -1, undoManager);
227 if (
s->properties[propertyName] == propertyValue)
235 for (
auto*
p =
parent;
p !=
nullptr;
p =
p->parent)
236 if (
p == possibleParent)
244 return children.indexOf (child.object);
249 if (child !=
nullptr && child->
parent !=
this)
258 if (child->
parent !=
nullptr)
264 if (undoManager ==
nullptr)
290 if (
auto child =
Ptr (
children.getObjectPointer (childIndex)))
292 if (undoManager ==
nullptr)
295 child->parent =
nullptr;
297 child->sendParentChangeMessage();
317 if (currentIndex != newIndex
320 if (undoManager ==
nullptr)
322 children.move (currentIndex, newIndex);
343 if (
children.getObjectPointerUnchecked (
i) != child)
345 auto oldIndex =
children.indexOf (child);
354 if (
type != other.type
355 ||
properties.size() != other.properties.size()
356 ||
children.size() != other.children.size()
361 if (!
children.getObjectPointerUnchecked (
i)->isEquivalentTo (*other.children.getObjectPointerUnchecked (
i)))
374 xml->prependChildElement (
children.getObjectPointerUnchecked (
i)->createXml());
398 if (
object !=
nullptr)
400 object->writeToStream (output);
414 const var& newVal,
const var& oldVal,
bool isAdding,
bool isDeleting,
447 return (
int)
sizeof (*this);
455 if (next->target ==
target && next->name ==
name
456 && ! (next->isAddingNewProperty || next->isDeletingProperty))
515 return (
int)
sizeof (*this);
548 return (
int)
sizeof (*this);
588 std::initializer_list<NamedValueSet::NamedValue> properties,
589 std::initializer_list<ValueTree> subTrees)
594 for (
auto&
tree : subTrees)
607 if (
object != other.
object)
615 if (
object !=
nullptr)
616 object->valueTreesWithListeners.removeValue (
this);
618 if (other.
object !=
nullptr)
619 other.
object->valueTreesWithListeners.add (
this);
631 :
object (std::move (other.object))
633 if (
object !=
nullptr)
634 object->valueTreesWithListeners.removeValue (&other);
639 if (!
listeners.isEmpty() &&
object !=
nullptr)
640 object->valueTreesWithListeners.removeValue (
this);
643bool ValueTree::operator== (
const ValueTree& other)
const noexcept
645 return object == other.object;
648bool ValueTree::operator!= (
const ValueTree& other)
const noexcept
650 return object != other.object;
655 return object == other.
object
656 || (
object !=
nullptr && other.
object !=
nullptr
657 &&
object->isEquivalentTo (*other.
object));
662 if (
object !=
nullptr)
672 if (source.
object ==
nullptr)
674 else if (
object !=
nullptr)
675 object->copyPropertiesFrom (*(source.
object), undoManager);
685 if (
object !=
nullptr && source.
object !=
nullptr)
686 for (
auto& child : source.
object->children)
692 return object !=
nullptr &&
object->type == typeName;
697 return object !=
nullptr ?
object->type :
Identifier();
702 if (
object !=
nullptr)
711 if (
object !=
nullptr)
719 if (
object !=
nullptr)
721 if (
auto*
c =
p->children.getObjectPointer (
p->indexOf (*
this) + delta))
745 return object ==
nullptr ? defaultReturnValue
746 :
object->properties.getWithDefault (
name, defaultReturnValue);
751 return object ==
nullptr ?
nullptr
752 :
object->properties.getVarPointer (
name);
766 if (
object !=
nullptr)
767 object->setProperty (
name, newValue, undoManager, listenerToExclude);
774 return object !=
nullptr &&
object->hasProperty (
name);
779 if (
object !=
nullptr)
780 object->removeProperty (
name, undoManager);
785 if (
object !=
nullptr)
786 object->removeAllProperties (undoManager);
791 return object ==
nullptr ? 0 :
object->properties.size();
797 :
object->properties.getName (index);
802 return object !=
nullptr ?
object->getReferenceCount() : 0;
812 tree.addListener (
this);
817 tree.removeListener (
this);
851 return object ==
nullptr ? 0 :
object->children.size();
856 if (
object !=
nullptr)
857 if (
auto*
c =
object->children.getObjectPointer (index))
887 return object !=
nullptr ?
object->getChildWithName (
type) :
ValueTree();
892 return object !=
nullptr ?
object->getOrCreateChildWithName (
type, undoManager) :
ValueTree();
897 return object !=
nullptr ?
object->getChildWithProperty (propertyName, propertyValue) :
ValueTree();
902 return object !=
nullptr &&
object->isAChildOf (possibleParent.object.get());
907 return object !=
nullptr ?
object->indexOf (child) : -1;
914 if (
object !=
nullptr)
915 object->addChild (child.
object.
get(), index, undoManager);
925 if (
object !=
nullptr)
926 object->removeChild (childIndex, undoManager);
931 if (
object !=
nullptr)
932 object->removeChild (
object->children.indexOf (child.
object), undoManager);
937 if (
object !=
nullptr)
938 object->removeAllChildren (undoManager);
943 if (
object !=
nullptr)
944 object->moveChild (currentIndex, newIndex, undoManager);
950 if (
object !=
nullptr)
951 for (
auto* o :
object->children)
958 if (
object !=
nullptr)
959 object->reorderChildren (newOrder, undoManager);
965 if (listener !=
nullptr)
967 if (
listeners.isEmpty() &&
object !=
nullptr)
968 object->valueTreesWithListeners.add (
this);
978 if (
listeners.isEmpty() &&
object !=
nullptr)
979 object->valueTreesWithListeners.removeValue (
this);
984 if (
object !=
nullptr)
985 object->sendPropertyChangeMessage (property);
991 return std::unique_ptr<XmlElement> (
object !=
nullptr ?
object->createXml() :
nullptr);
999 v.object->properties.setFromXmlAttributes (xml);
1023 return xml->toString (
format);
1051 for (
int i = 0;
i < numProps; ++
i)
1055 if (
name.isNotEmpty())
1062 v.object->children.ensureStorageAllocated (numChildren);
1064 for (
int i = 0;
i < numChildren; ++
i)
1068 if (! child.isValid())
1071 v.object->children.add (child.object);
1072 child.object->parent =
v.object.get();
1099#if JUCE_ALLOW_STATIC_NULL_VARIABLES
1115class ValueTreeTests :
public UnitTest
1124 char buffer[50] = { 0 };
1125 const char chars[] =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-:";
1127 for (
int i = 1 +
r.nextInt (numElementsInArray (buffer) - 2); --
i >= 0;)
1128 buffer[
i] = chars[
r.nextInt (sizeof (chars) - 1)];
1133 result = createRandomIdentifier (
r);
1138 static String createRandomWideCharString (Random&
r)
1150 while (! CharPointer_UTF16::canRepresent (buffer[
i]));
1156 return CharPointer_UTF32 (buffer);
1159 static ValueTree createRandomTree (UndoManager* undoManager,
int depth, Random&
r)
1161 ValueTree
v (createRandomIdentifier (
r));
1163 for (
int i =
r.nextInt (10); --
i >= 0;)
1165 switch (
r.nextInt (5))
1167 case 0:
v.setProperty (createRandomIdentifier (
r), createRandomWideCharString (
r), undoManager);
break;
1168 case 1:
v.setProperty (createRandomIdentifier (
r),
r.nextInt(), undoManager);
break;
1169 case 2:
if (depth < 5)
v.addChild (createRandomTree (undoManager, depth + 1,
r),
r.nextInt (
v.getNumChildren() + 1), undoManager);
break;
1170 case 3:
v.setProperty (createRandomIdentifier (
r),
r.nextBool(), undoManager);
break;
1171 case 4:
v.setProperty (createRandomIdentifier (
r),
r.nextDouble(), undoManager);
break;
1179 void runTest()
override
1182 beginTest (
"ValueTree");
1184 auto r = getRandom();
1186 for (
int i = 10; --
i >= 0;)
1188 MemoryOutputStream
mo;
1189 auto v1 = createRandomTree (
nullptr, 0,
r);
1190 v1.writeToStream (
mo);
1192 MemoryInputStream mi (
mo.getData(),
mo.getDataSize(),
false);
1193 auto v2 = ValueTree::readFromStream (mi);
1194 expect (v1.isEquivalentTo (
v2));
1196 MemoryOutputStream zipped;
1198 GZIPCompressorOutputStream zippedOut (zipped);
1199 v1.writeToStream (zippedOut);
1201 expect (v1.isEquivalentTo (ValueTree::readFromGZIPData (zipped.
getData(), zipped.
getDataSize())));
1203 auto xml1 = v1.createXml();
1204 auto xml2 =
v2.createCopy().createXml();
1205 expect (xml1->isEquivalentTo (xml2.get(),
false));
1207 auto v4 =
v2.createCopy();
1208 expect (v1.isEquivalentTo (v4));
1213 beginTest (
"Float formatting");
1215 ValueTree testVT (
"Test");
1216 Identifier number (
"number");
1218 std::map<double, String>
tests;
1221 tests[1.01] =
"1.01";
1222 tests[0.76378] =
"0.76378";
1223 tests[-10] =
"-10.0";
1224 tests[10.01] =
"10.01";
1225 tests[0.0123] =
"0.0123";
1226 tests[-3.7e-27] =
"-3.7e-27";
1228 tests[-12345678901234567.0] =
"-1.234567890123457e16";
1229 tests[192000] =
"192000.0";
1230 tests[1234567] =
"1.234567e6";
1231 tests[0.00006] =
"0.00006";
1232 tests[0.000006] =
"6.0e-6";
1236 testVT.setProperty (number,
test.first,
nullptr);
1238 lines.removeEmptyStrings();
1239 auto numLines = lines.size();
1240 expect (numLines > 1);
1241 expectEquals (lines[numLines - 1],
"<Test number=\"" +
test.second +
"\"/>");
1247static ValueTreeTests valueTreeTests;
#define noexcept
Definition DistrhoDefines.h:72
#define nullptr
Definition DistrhoDefines.h:75
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
size_t getDataSize() const noexcept
Definition MemoryOutputStream.h:84
const void * getData() const noexcept
Definition MemoryOutputStream.cpp:138
static StringArray fromLines(StringRef stringToBreakUp)
Definition StringArray.cpp:385
static bool isValidXmlName(StringRef possibleName) noexcept
Definition XmlElement.cpp:889
Definition juce_Identifier.h:39
Definition juce_NamedValueSet.h:35
bool contains(const Identifier &name) const noexcept
Definition juce_NamedValueSet.cpp:198
const var & getValueAt(int index) const noexcept
Definition juce_NamedValueSet.cpp:239
Identifier getName(int index) const noexcept
Definition juce_NamedValueSet.cpp:230
int size() const noexcept
Definition juce_NamedValueSet.cpp:125
Definition juce_OutputStream.h:38
virtual bool writeCompressedInt(int value)
Definition juce_OutputStream.cpp:121
virtual bool writeString(const String &text)
Definition juce_OutputStream.cpp:183
Definition juce_OwnedArray.h:51
int size() const noexcept
Definition juce_OwnedArray.h:130
ObjectClass * getUnchecked(int index) const noexcept
Definition juce_OwnedArray.h:160
Definition juce_Random.h:35
Definition juce_ReferenceCountedArray.h:51
ReferenceCountedObject()=default
Definition juce_ReferenceCountedObject.h:247
ReferencedType * get() const noexcept
Definition juce_ReferenceCountedObject.h:381
Definition juce_SortedSet.h:54
Definition juce_String.h:53
Definition juce_UndoManager.h:52
bool perform(UndoableAction *action)
Definition juce_UndoManager.cpp:111
Definition juce_UnitTest.h:70
Definition juce_Value.h:180
void sendChangeMessage(bool dispatchSynchronously)
Definition juce_Value.cpp:43
Definition juce_Value.h:51
Definition juce_ValueTree.h:479
virtual void valueTreeRedirected(ValueTree &treeWhichHasBeenChanged)
Definition juce_ValueTree.cpp:1096
virtual void valueTreeChildRemoved(ValueTree &parentTree, ValueTree &childWhichHasBeenRemoved, int indexFromWhichChildWasRemoved)
Definition juce_ValueTree.cpp:1093
virtual void valueTreeChildOrderChanged(ValueTree &parentTreeWhoseChildrenHaveMoved, int oldIndex, int newIndex)
Definition juce_ValueTree.cpp:1094
virtual void valueTreeParentChanged(ValueTree &treeWhoseParentHasChanged)
Definition juce_ValueTree.cpp:1095
virtual void valueTreePropertyChanged(ValueTree &treeWhosePropertyHasChanged, const Identifier &property)
Definition juce_ValueTree.cpp:1091
virtual void valueTreeChildAdded(ValueTree &parentTree, ValueTree &childWhichHasBeenAdded)
Definition juce_ValueTree.cpp:1092
Definition juce_ValueTree.cpp:30
void removeChild(int childIndex, UndoManager *undoManager)
Definition juce_ValueTree.cpp:288
SharedObject(const SharedObject &other)
Definition juce_ValueTree.cpp:36
void sendChildRemovedMessage(ValueTree child, int index)
Definition juce_ValueTree.cpp:109
void sendChildAddedMessage(ValueTree child)
Definition juce_ValueTree.cpp:103
void callListeners(ValueTree::Listener *listenerToExclude, Function fn) const
Definition juce_ValueTree.cpp:68
ReferenceCountedObjectPtr< SharedObject > Ptr
Definition juce_ValueTree.cpp:32
bool isEquivalentTo(const SharedObject &other) const noexcept
Definition juce_ValueTree.cpp:352
void removeAllChildren(UndoManager *undoManager)
Definition juce_ValueTree.cpp:306
SharedObject * parent
Definition juce_ValueTree.cpp:572
void setProperty(const Identifier &name, const var &newValue, UndoManager *undoManager, ValueTree::Listener *listenerToExclude=nullptr)
Definition juce_ValueTree.cpp:132
SortedSet< ValueTree * > valueTreesWithListeners
Definition juce_ValueTree.cpp:571
void writeToStream(OutputStream &output) const
Definition juce_ValueTree.cpp:379
void moveChild(int currentIndex, int newIndex, UndoManager *undoManager)
Definition juce_ValueTree.cpp:312
ReferenceCountedArray< SharedObject > children
Definition juce_ValueTree.cpp:570
ValueTree getChildWithName(const Identifier &typeToMatch) const
Definition juce_ValueTree.cpp:204
~SharedObject()
Definition juce_ValueTree.cpp:49
SharedObject(const Identifier &t) noexcept
Definition juce_ValueTree.cpp:34
void copyPropertiesFrom(const SharedObject &source, UndoManager *undoManager)
Definition juce_ValueTree.cpp:194
int indexOf(const ValueTree &child) const noexcept
Definition juce_ValueTree.cpp:242
ValueTree getOrCreateChildWithName(const Identifier &typeToMatch, UndoManager *undoManager)
Definition juce_ValueTree.cpp:213
const Identifier type
Definition juce_ValueTree.cpp:568
SharedObject & getRoot() noexcept
Definition juce_ValueTree.cpp:62
void removeProperty(const Identifier &name, UndoManager *undoManager)
Definition juce_ValueTree.cpp:161
void addChild(SharedObject *child, int index, UndoManager *undoManager)
Definition juce_ValueTree.cpp:247
void removeAllProperties(UndoManager *undoManager)
Definition juce_ValueTree.cpp:175
void callListenersForAllParents(ValueTree::Listener *listenerToExclude, Function fn) const
Definition juce_ValueTree.cpp:91
bool isAChildOf(const SharedObject *possibleParent) const noexcept
Definition juce_ValueTree.cpp:233
NamedValueSet properties
Definition juce_ValueTree.cpp:569
ValueTree getChildWithProperty(const Identifier &propertyName, const var &propertyValue) const
Definition juce_ValueTree.cpp:224
void reorderChildren(const OwnedArray< ValueTree > &newOrder, UndoManager *undoManager)
Definition juce_ValueTree.cpp:335
bool hasProperty(const Identifier &name) const noexcept
Definition juce_ValueTree.cpp:156
void sendChildOrderChangedMessage(int oldIndex, int newIndex)
Definition juce_ValueTree.cpp:115
static void writeObjectToStream(OutputStream &output, const SharedObject *object)
Definition juce_ValueTree.cpp:396
void sendPropertyChangeMessage(const Identifier &property, ValueTree::Listener *listenerToExclude=nullptr)
Definition juce_ValueTree.cpp:97
XmlElement * createXml() const
Definition juce_ValueTree.cpp:367
void sendParentChangeMessage()
Definition juce_ValueTree.cpp:121
Definition juce_ValueTree.h:72
Value getPropertyAsValue(const Identifier &name, UndoManager *undoManager, bool shouldUpdateSynchronously=false)
Definition juce_ValueTree.cpp:843
Identifier getPropertyName(int index) const noexcept
Definition juce_ValueTree.cpp:794
Iterator begin() const noexcept
Definition juce_ValueTree.cpp:882
std::unique_ptr< XmlElement > createXml() const
Definition juce_ValueTree.cpp:989
bool hasType(const Identifier &typeName) const noexcept
Definition juce_ValueTree.cpp:690
static ValueTree readFromStream(InputStream &input)
Definition juce_ValueTree.cpp:1034
void removeChild(const ValueTree &child, UndoManager *undoManager)
Definition juce_ValueTree.cpp:929
String toXmlString(const XmlElement::TextFormat &format={}) const
Definition juce_ValueTree.cpp:1020
static ValueTree readFromGZIPData(const void *data, size_t numBytes)
Definition juce_ValueTree.cpp:1084
ValueTree getChild(int index) const
Definition juce_ValueTree.cpp:854
int getNumProperties() const noexcept
Definition juce_ValueTree.cpp:789
int getNumChildren() const noexcept
Definition juce_ValueTree.cpp:849
void copyPropertiesFrom(const ValueTree &source, UndoManager *undoManager)
Definition juce_ValueTree.cpp:668
~ValueTree()
Definition juce_ValueTree.cpp:637
void reorderChildren(const OwnedArray< ValueTree > &, UndoManager *)
Definition juce_ValueTree.cpp:956
int getReferenceCount() const noexcept
Definition juce_ValueTree.cpp:800
const var * getPropertyPointer(const Identifier &name) const noexcept
Definition juce_ValueTree.cpp:749
ValueTree & setProperty(const Identifier &name, const var &newValue, UndoManager *undoManager)
Definition juce_ValueTree.cpp:755
void removeAllChildren(UndoManager *undoManager)
Definition juce_ValueTree.cpp:935
bool isAChildOf(const ValueTree &possibleParent) const noexcept
Definition juce_ValueTree.cpp:900
void removeAllProperties(UndoManager *undoManager)
Definition juce_ValueTree.cpp:783
void addListener(Listener *listener)
Definition juce_ValueTree.cpp:963
void appendChild(const ValueTree &child, UndoManager *undoManager)
Definition juce_ValueTree.cpp:918
int indexOf(const ValueTree &child) const noexcept
Definition juce_ValueTree.cpp:905
ValueTree & setPropertyExcludingListener(Listener *listenerToExclude, const Identifier &name, const var &newValue, UndoManager *undoManager)
Definition juce_ValueTree.cpp:760
void addChild(const ValueTree &child, int index, UndoManager *undoManager)
Definition juce_ValueTree.cpp:910
ValueTree getParent() const noexcept
Definition juce_ValueTree.cpp:700
const var & getProperty(const Identifier &name) const noexcept
Definition juce_ValueTree.cpp:738
ValueTree() noexcept
Definition juce_ValueTree.cpp:578
ReferenceCountedObjectPtr< SharedObject > object
Definition juce_ValueTree.h:620
static ValueTree fromXml(const XmlElement &xml)
Definition juce_ValueTree.cpp:994
ValueTree createCopy() const
Definition juce_ValueTree.cpp:660
Identifier getType() const noexcept
Definition juce_ValueTree.cpp:695
ValueTree getChildWithName(const Identifier &type) const
Definition juce_ValueTree.cpp:885
Iterator end() const noexcept
Definition juce_ValueTree.cpp:883
void removeListener(Listener *listener)
Definition juce_ValueTree.cpp:974
void writeToStream(OutputStream &output) const
Definition juce_ValueTree.cpp:1029
bool isEquivalentTo(const ValueTree &) const
Definition juce_ValueTree.cpp:653
ValueTree getOrCreateChildWithName(const Identifier &type, UndoManager *undoManager)
Definition juce_ValueTree.cpp:890
void moveChild(int currentIndex, int newIndex, UndoManager *undoManager)
Definition juce_ValueTree.cpp:941
void sendPropertyChangeMessage(const Identifier &property)
Definition juce_ValueTree.cpp:982
void removeProperty(const Identifier &name, UndoManager *undoManager)
Definition juce_ValueTree.cpp:777
ValueTree getSibling(int delta) const noexcept
Definition juce_ValueTree.cpp:717
ValueTree getChildWithProperty(const Identifier &propertyName, const var &propertyValue) const
Definition juce_ValueTree.cpp:895
void copyPropertiesAndChildrenFrom(const ValueTree &source, UndoManager *undoManager)
Definition juce_ValueTree.cpp:678
ValueTree getRoot() const noexcept
Definition juce_ValueTree.cpp:709
ListenerList< Listener > listeners
Definition juce_ValueTree.h:621
static ValueTree readFromData(const void *data, size_t numBytes)
Definition juce_ValueTree.cpp:1078
void createListOfChildren(OwnedArray< ValueTree > &) const
Definition juce_ValueTree.cpp:948
bool hasProperty(const Identifier &name) const noexcept
Definition juce_ValueTree.cpp:772
Definition juce_XmlElement.h:83
bool isTextElement() const noexcept
Definition juce_XmlElement.cpp:904
Iterator< GetNextElement > getChildIterator() const
Definition juce_XmlElement.h:715
const String & getTagName() const noexcept
Definition juce_XmlElement.h:173
Definition juce_Variant.h:42
static var readFromStream(InputStream &input)
Definition juce_Variant.cpp:838
* e
Definition inflate.c:1404
int * l
Definition inflate.c:1579
struct huft * t
Definition inflate.c:943
register unsigned j
Definition inflate.c:1576
unsigned v[N_MAX]
Definition inflate.c:1584
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
static void v2(register WDL_FFT_REAL *a)
Definition fft.c:1099
static const char * name
Definition pugl.h:1582
static uintptr_t parent
Definition pugl.h:1644
void * object
Definition jmemsys.h:50
JSAMPIMAGE data
Definition jpeglib.h:945
#define JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE(...)
Definition juce_CompilerWarnings.h:181
#define JUCE_END_IGNORE_WARNINGS_GCC_LIKE
Definition juce_CompilerWarnings.h:182
#define JUCE_BEGIN_IGNORE_WARNINGS_MSVC(warnings)
Definition juce_CompilerWarnings.h:198
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
#define JUCE_LEAK_DETECTOR(OwnerClass)
Definition juce_LeakedObjectDetector.h:138
static struct TestCase tests[]
Definition lilv_test.c:2218
float in
Definition lilv_test.c:1460
Definition juce_UnitTestCategories.h:27
JOCTET * buffer
Definition juce_JPEGLoader.cpp:302
Definition carla_juce.cpp:31
Type * createCopyIfNotNull(const Type *objectToCopy)
Definition juce_Memory.h:60
static const var & getNullVarRef() noexcept
Definition juce_NamedValueSet.cpp:128
wchar_t juce_wchar
Definition juce_CharacterFunctions.h:42
std::unique_ptr< XmlElement > parseXML(const String &textToParse)
Definition juce_XmlDocument.cpp:41
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
@ list
Definition juce_AccessibilityRole.h:56
@ tree
Definition juce_AccessibilityRole.h:58
constexpr int numElementsInArray(Type(&)[N]) noexcept
Definition juce_MathsFunctions.h:344
Definition juce_Uuid.h:141
static int test(SerdEnv *env, bool top_level, bool pretty_numbers)
Definition sratom_test.c:79
Definition juce_ValueTree.h:401
Iterator(const ValueTree &, bool isEnd)
Definition juce_ValueTree.cpp:863
ValueTree operator*() const
Definition juce_ValueTree.cpp:877
Iterator & operator++()
Definition juce_ValueTree.cpp:868
void * internal
Definition juce_ValueTree.h:416
Definition juce_ValueTree.cpp:476
const Ptr target
Definition juce_ValueTree.cpp:519
const bool isDeleting
Definition juce_ValueTree.cpp:521
int getSizeInUnits() override
Definition juce_ValueTree.cpp:513
const int childIndex
Definition juce_ValueTree.cpp:520
AddOrRemoveChildAction(Ptr parentObject, int index, SharedObject *newChild)
Definition juce_ValueTree.cpp:477
const Ptr child
Definition juce_ValueTree.cpp:519
bool undo() override
Definition juce_ValueTree.cpp:496
bool perform() override
Definition juce_ValueTree.cpp:486
Definition juce_ValueTree.cpp:528
bool perform() override
Definition juce_ValueTree.cpp:534
const int startIndex
Definition juce_ValueTree.cpp:562
MoveChildAction(Ptr parentObject, int fromIndex, int toIndex) noexcept
Definition juce_ValueTree.cpp:529
bool undo() override
Definition juce_ValueTree.cpp:540
int getSizeInUnits() override
Definition juce_ValueTree.cpp:546
const int endIndex
Definition juce_ValueTree.cpp:562
const Ptr parent
Definition juce_ValueTree.cpp:561
UndoableAction * createCoalescedAction(UndoableAction *nextAction) override
Definition juce_ValueTree.cpp:551
Definition juce_ValueTree.cpp:412
bool undo() override
Definition juce_ValueTree.cpp:435
const Ptr target
Definition juce_ValueTree.cpp:464
SetPropertyAction(Ptr targetObject, const Identifier &propertyName, const var &newVal, const var &oldVal, bool isAdding, bool isDeleting, ValueTree::Listener *listenerToExclude=nullptr)
Definition juce_ValueTree.cpp:413
int getSizeInUnits() override
Definition juce_ValueTree.cpp:445
const var newValue
Definition juce_ValueTree.cpp:466
var oldValue
Definition juce_ValueTree.cpp:467
UndoableAction * createCoalescedAction(UndoableAction *nextAction) override
Definition juce_ValueTree.cpp:450
const bool isAddingNewProperty
Definition juce_ValueTree.cpp:468
const Identifier name
Definition juce_ValueTree.cpp:465
const bool isDeletingProperty
Definition juce_ValueTree.cpp:468
ValueTree::Listener * excludeListener
Definition juce_ValueTree.cpp:469
bool perform() override
Definition juce_ValueTree.cpp:423
Definition juce_ValueTree.cpp:808
void valueTreeChildOrderChanged(ValueTree &, int, int) override
Definition juce_ValueTree.cpp:837
void valueTreeParentChanged(ValueTree &) override
Definition juce_ValueTree.cpp:838
ValueTreePropertyValueSource(const ValueTree &vt, const Identifier &prop, UndoManager *um, bool sync)
Definition juce_ValueTree.cpp:809
void valueTreePropertyChanged(ValueTree &changedTree, const Identifier &changedProperty) override
Definition juce_ValueTree.cpp:829
UndoManager *const undoManager
Definition juce_ValueTree.cpp:826
void valueTreeChildRemoved(ValueTree &, ValueTree &, int) override
Definition juce_ValueTree.cpp:836
~ValueTreePropertyValueSource() override
Definition juce_ValueTree.cpp:815
ValueTree tree
Definition juce_ValueTree.cpp:824
void valueTreeChildAdded(ValueTree &, ValueTree &) override
Definition juce_ValueTree.cpp:835
const Identifier property
Definition juce_ValueTree.cpp:825
const bool updateSynchronously
Definition juce_ValueTree.cpp:827
var getValue() const override
Definition juce_ValueTree.cpp:820
void setValue(const var &newValue) override
Definition juce_ValueTree.cpp:821
Definition juce_XmlElement.h:136
const char const char const char const char char * fn
Definition swell-functions.h:168
uch * p
Definition crypt.c:594
return c
Definition crypt.c:175
int r
Definition crypt.c:458
int result
Definition process.c:1455
mo
Definition zipinfo.c:2287
_WDL_CSTRING_PREFIX void INT_PTR const char * format
Definition wdlcstring.h:263
#define const
Definition zconf.h:137