49 targetProperty (propertyID),
57 const var& defaultToUse)
59 targetProperty (propertyID),
61 defaultValue (defaultToUse)
74 targetProperty (propertyID),
76 defaultValue (defaultToUse),
77 delimiter (arrayDelimiter)
83 : targetTree (other.targetTree),
84 targetProperty (other.targetProperty),
85 undoManager (other.undoManager),
86 defaultValue (other.defaultValue),
87 delimiter (other.delimiter)
95 var get()
const noexcept
101 return delimitedStringToVarArray (targetTree[targetProperty].toString());
103 return targetTree[targetProperty];
115 if (defaultValue != newDefault)
117 defaultValue = newDefault;
150 if (
auto* array = newValue.
getArray())
151 targetTree.
setProperty (targetProperty, varArrayToDelimitedString (*array), undoManagerToUse);
153 targetTree.
setProperty (targetProperty, newValue, undoManagerToUse);
160 referToWithDefault (tree, property, um,
var(), {});
168 referToWithDefault (tree, property, um, defaultVal, {});
174 referToWithDefault (tree, property, um, defaultVal, arrayDelimiter);
190 referToWithDefault (other.targetTree, other.targetProperty, other.undoManager,
191 other.defaultValue, other.delimiter);
212 defaultValue = defaultVal;
225 for (
auto& v : input)
226 elements.
add (v.toString());
228 return elements.joinIntoString (delimiter);
ValueTree & getValueTree() noexcept
bool isNotEmpty() const noexcept
UndoManager * getUndoManager() noexcept
Value getPropertyAsValue(const Identifier &name, UndoManager *undoManager, bool shouldUpdateSynchronously=false)
Value getPropertyAsValue()
void add(const ElementType &newElement)
void referTo(ValueTree &tree, const Identifier &property, UndoManager *um)
void setDefault(const var &newDefault)
ValueWithDefault(const ValueWithDefault &other)
ValueWithDefault(ValueTree &tree, const Identifier &propertyID, UndoManager *um, const var &defaultToUse)
std::function< void()> onDefaultChange
Identifier & getPropertyID() noexcept
ValueWithDefault(ValueTree &tree, const Identifier &propertyID, UndoManager *um, const var &defaultToUse, StringRef arrayDelimiter)
void resetToDefault() noexcept
ValueWithDefault(ValueTree &tree, const Identifier &propertyID, UndoManager *um)
void setValue(const var &newValue, UndoManager *undoManagerToUse)
ValueTree & setProperty(const Identifier &name, const var &newValue, UndoManager *undoManager)
Array< var > * getArray() const noexcept
bool isUsingDefault() const
void referTo(ValueTree &tree, const Identifier &property, UndoManager *um, const var &defaultVal)
static StringArray fromTokens(StringRef stringToTokenise, bool preserveQuotedStrings)
ValueWithDefault & operator=(const var &newValue)
ValueWithDefault()=default
void removeProperty(const Identifier &name, UndoManager *undoManager)
bool hasProperty(const Identifier &name) const noexcept
void add(String stringToAdd)