This class acts as a wrapper around a property inside a ValueTree. More...
#include <juce_ValueWithDefault.h>
Public Member Functions | |
ValueWithDefault () | |
Creates an unitialised ValueWithDefault. More... | |
ValueWithDefault (ValueTree &tree, const Identifier &propertyID, UndoManager *um) | |
Creates an ValueWithDefault object. More... | |
ValueWithDefault (ValueTree &tree, const Identifier &propertyID, UndoManager *um, const var &defaultToUse) | |
Creates an ValueWithDefault object. More... | |
ValueWithDefault (ValueTree &tree, const Identifier &propertyID, UndoManager *um, const var &defaultToUse, StringRef arrayDelimiter) | |
Creates an ValueWithDefault object. More... | |
ValueWithDefault (const ValueWithDefault &other) | |
Creates a ValueWithDefault object from another ValueWithDefault object. More... | |
var | get () const noexcept |
Returns the current value of the property. More... | |
var | getDefault () const |
Returns the current default value. More... | |
Value | getPropertyAsValue () |
Returns the current property as a Value object. More... | |
Identifier & | getPropertyID () noexcept |
Returns the property ID of the referenced property. More... | |
UndoManager * | getUndoManager () noexcept |
Returns the UndoManager that is being used. More... | |
ValueTree & | getValueTree () noexcept |
Returns a reference to the ValueTree containing the referenced property. More... | |
bool | isUsingDefault () const |
Returns true if the property does not exist or is empty. More... | |
ValueWithDefault & | operator= (const var &newValue) |
Sets the property and returns the new ValueWithDefault. More... | |
ValueWithDefault & | operator= (const ValueWithDefault &other) |
void | referTo (ValueTree &tree, const Identifier &property, UndoManager *um) |
Makes the ValueWithDefault refer to the specified property inside the given ValueTree. More... | |
void | referTo (ValueTree &tree, const Identifier &property, UndoManager *um, const var &defaultVal) |
Makes the ValueWithDefault refer to the specified property inside the given ValueTree, and specifies a default value to use. More... | |
void | referTo (ValueTree &tree, const Identifier &property, UndoManager *um, const var &defaultVal, StringRef arrayDelimiter) |
void | resetToDefault () noexcept |
Removes the property from the referenced ValueTree. More... | |
void | setDefault (const var &newDefault) |
Sets the default value to a new var. More... | |
void | setValue (const var &newValue, UndoManager *undoManagerToUse) |
Sets the property. More... | |
Public Attributes | |
std::function< void()> | onDefaultChange |
You can assign a lambda to this callback object to have it called when the default value is changed. More... | |
Private Member Functions | |
Array< var > | delimitedStringToVarArray (StringRef input) const noexcept |
void | referToWithDefault (const ValueTree &v, const Identifier &i, UndoManager *um, const var &defaultVal, StringRef del) |
String | varArrayToDelimitedString (const Array< var > &input) const noexcept |
Private Attributes | |
var | defaultValue |
String | delimiter |
Identifier | targetProperty |
ValueTree | targetTree |
UndoManager * | undoManager = nullptr |
This class acts as a wrapper around a property inside a ValueTree.
If the property inside the ValueTree is missing or empty the ValueWithDefault will automatically return a default value, which can be specified when initialising the ValueWithDefault.
{DataStructures}
|
inline |
Creates an unitialised ValueWithDefault.
Initialise it using one of the referTo() methods.
|
inline |
Creates an ValueWithDefault object.
The default value will be an empty var.
|
inline |
Creates an ValueWithDefault object.
The default value will be defaultToUse.
|
inline |
Creates an ValueWithDefault object.
The default value will be defaultToUse.
Use this constructor if the underlying var object being controlled is an array and it will handle the conversion to/from a delimited String that can be written to XML format.
|
inline |
Creates a ValueWithDefault object from another ValueWithDefault object.
|
inlinenoexcept |
Returns the current value of the property.
If the property does not exist or is empty, returns the default value.
References defaultValue, delimitedStringToVarArray(), delimiter, juce::String::isNotEmpty(), isUsingDefault(), targetProperty, and targetTree.
|
inline |
Returns the current default value.
References defaultValue.
|
inline |
Returns the current property as a Value object.
References juce::ValueTree::getPropertyAsValue(), targetProperty, targetTree, and undoManager.
|
inlinenoexcept |
Returns the property ID of the referenced property.
References targetProperty.
|
inlinenoexcept |
Returns the UndoManager that is being used.
References undoManager.
|
inlinenoexcept |
Returns a reference to the ValueTree containing the referenced property.
References targetTree.
|
inline |
Returns true if the property does not exist or is empty.
References juce::ValueTree::getProperty(), juce::ValueTree::hasProperty(), juce::String::isEmpty(), targetProperty, targetTree, and juce::var::toString().
Referenced by get().
|
inline |
Sets the property and returns the new ValueWithDefault.
This will modify the property in the referenced ValueTree.
References setValue(), and undoManager.
|
inline |
References defaultValue, delimiter, referToWithDefault(), targetProperty, targetTree, and undoManager.
|
inline |
Makes the ValueWithDefault refer to the specified property inside the given ValueTree.
References referToWithDefault().
|
inline |
Makes the ValueWithDefault refer to the specified property inside the given ValueTree, and specifies a default value to use.
References referToWithDefault().
|
inline |
References referToWithDefault().
|
inlineprivate |
References juce::StandardApplicationCommandIDs::del.
Referenced by operator=(), and referTo().
|
inlinenoexcept |
Removes the property from the referenced ValueTree.
References juce::ValueTree::removeProperty(), targetProperty, and targetTree.
|
inline |
Sets the default value to a new var.
References defaultValue, and onDefaultChange.
|
inline |
Sets the property.
This will actually modify the property in the referenced ValueTree.
References juce::var::getArray(), juce::ValueTree::setProperty(), targetProperty, targetTree, and varArrayToDelimitedString().
Referenced by operator=().
|
inlineprivatenoexcept |
References juce::StringArray::add(), juce::String::isNotEmpty(), and jassert.
Referenced by setValue().
|
private |
Referenced by get(), getDefault(), operator=(), and setDefault().
|
private |
Referenced by get(), and operator=().
std::function<void()> juce::ValueWithDefault::onDefaultChange |
You can assign a lambda to this callback object to have it called when the default value is changed.
Referenced by setDefault().
|
private |
Referenced by get(), getPropertyAsValue(), getPropertyID(), isUsingDefault(), operator=(), resetToDefault(), and setValue().
|
private |
Referenced by get(), getPropertyAsValue(), getValueTree(), isUsingDefault(), operator=(), resetToDefault(), and setValue().
|
private |
Referenced by getPropertyAsValue(), getUndoManager(), and operator=().