@@ -4830,6 +4830,7 @@ public: | |||
const TermPtr createTermToEvaluateInput (const EvaluationContext& context, const Term* input_, double overallTarget, Term* topLevelTerm) const | |||
{ | |||
(void) input_; | |||
jassert (input_ == input); | |||
const Term* const dest = findDestinationFor (topLevelTerm, this); | |||
@@ -5596,7 +5597,13 @@ Expression::ParseError::ParseError (const String& message) | |||
Expression::EvaluationError::EvaluationError (const String& message) | |||
: description (message) | |||
{ | |||
DBG ("Expression::EvaluationError: " + message); | |||
DBG ("Expression::EvaluationError: " + description); | |||
} | |||
Expression::EvaluationError::EvaluationError (const String& symbol, const String& member) | |||
: description ("Unknown symbol: \"" + symbol + (member.isEmpty() ? "\"" : ("." + member + "\""))) | |||
{ | |||
DBG ("Expression::EvaluationError: " + description); | |||
} | |||
Expression::EvaluationContext::EvaluationContext() {} | |||
@@ -5604,7 +5611,7 @@ Expression::EvaluationContext::~EvaluationContext() {} | |||
const Expression Expression::EvaluationContext::getSymbolValue (const String& symbol, const String& member) const | |||
{ | |||
throw EvaluationError ("Unknown symbol: \"" + symbol + (member.isEmpty() ? "\"" : ("." + member + "\""))); | |||
throw EvaluationError (symbol, member); | |||
} | |||
double Expression::EvaluationContext::evaluateFunction (const String& functionName, const double* parameters, int numParams) const | |||
@@ -5629,14 +5636,10 @@ double Expression::EvaluationContext::evaluateFunction (const String& functionNa | |||
} | |||
else if (numParams == 1) | |||
{ | |||
if (functionName == "sin") | |||
return sin (parameters[0]); | |||
else if (functionName == "cos") | |||
return cos (parameters[0]); | |||
else if (functionName == "tan") | |||
return tan (parameters[0]); | |||
else if (functionName == "abs") | |||
return std::abs (parameters[0]); | |||
if (functionName == "sin") return sin (parameters[0]); | |||
else if (functionName == "cos") return cos (parameters[0]); | |||
else if (functionName == "tan") return tan (parameters[0]); | |||
else if (functionName == "abs") return std::abs (parameters[0]); | |||
} | |||
} | |||
@@ -68677,13 +68680,12 @@ void MenuBarComponent::paint (Graphics& g) | |||
void MenuBarComponent::resized() | |||
{ | |||
xPositions.clear(); | |||
int x = 2; | |||
int x = 0; | |||
xPositions.add (x); | |||
for (int i = 0; i < menuNames.size(); ++i) | |||
{ | |||
x += getLookAndFeel().getMenuBarItemWidth (*this, i, menuNames[i]); | |||
xPositions.add (x); | |||
} | |||
} | |||
@@ -68799,7 +68801,9 @@ void MenuBarComponent::handleCommandMessage (int commandId) | |||
{ | |||
const Point<int> mousePos (getMouseXYRelative()); | |||
updateItemUnderMouse (mousePos.getX(), mousePos.getY()); | |||
setOpenItem (-1); | |||
if (currentPopupIndex == topLevelIndexClicked) | |||
setOpenItem (-1); | |||
if (commandId != 0 && model != 0) | |||
model->menuItemSelected (commandId, topLevelIndexClicked); | |||
@@ -77065,13 +77069,19 @@ void AlertWindow::addTextEditor (const String& name, | |||
updateLayout (false); | |||
} | |||
const String AlertWindow::getTextEditorContents (const String& nameOfTextEditor) const | |||
TextEditor* AlertWindow::getTextEditor (const String& nameOfTextEditor) const | |||
{ | |||
for (int i = textBoxes.size(); --i >= 0;) | |||
if (((TextEditor*)textBoxes[i])->getName() == nameOfTextEditor) | |||
return ((TextEditor*)textBoxes[i])->getText(); | |||
if (static_cast <TextEditor*> (textBoxes.getUnchecked(i))->getName() == nameOfTextEditor) | |||
return static_cast <TextEditor*> (textBoxes.getUnchecked(i)); | |||
return String::empty; | |||
return 0; | |||
} | |||
const String AlertWindow::getTextEditorContents (const String& nameOfTextEditor) const | |||
{ | |||
TextEditor* const t = getTextEditor (nameOfTextEditor); | |||
return t != 0 ? t->getText() : String::empty; | |||
} | |||
void AlertWindow::addComboBox (const String& name, | |||
@@ -86404,7 +86414,7 @@ const Expression DrawableComposite::getSymbolValue (const String& symbol, const | |||
return m->position.getExpression(); | |||
} | |||
return Expression::EvaluationContext::getSymbolValue (symbol, member); | |||
throw Expression::EvaluationError (symbol, member); | |||
} | |||
const Rectangle<float> DrawableComposite::getUntransformedBounds (const bool includeMarkers) const | |||
@@ -86662,6 +86672,7 @@ bool DrawableComposite::ValueTreeWrapper::containsMarker (bool xAxis, const Valu | |||
const DrawableComposite::Marker DrawableComposite::ValueTreeWrapper::getMarker (bool xAxis, const ValueTree& state) const | |||
{ | |||
(void) xAxis; | |||
jassert (containsMarker (xAxis, state)); | |||
return Marker (state [nameProperty], RelativeCoordinate (state [posProperty].toString())); | |||
@@ -90744,6 +90755,11 @@ void TextLayout::clear() | |||
totalLines = 0; | |||
} | |||
bool TextLayout::isEmpty() const | |||
{ | |||
return tokens.size() == 0; | |||
} | |||
void TextLayout::appendText (const String& text, const Font& font) | |||
{ | |||
const juce_wchar* t = text; | |||
@@ -6923,6 +6923,7 @@ public: | |||
{ | |||
public: | |||
EvaluationError (const String& message); | |||
EvaluationError (const String& symbolName, const String& memberName); | |||
String description; | |||
}; | |||
@@ -54408,6 +54409,9 @@ public: | |||
void setText (const String& newText, | |||
const Font& fontToUse); | |||
/** Returns true if the layout has not had any text added yet. */ | |||
bool isEmpty() const; | |||
/** Breaks the text up to form a paragraph with the given width. | |||
@param maximumWidth any text wider than this will be split | |||
@@ -54568,6 +54572,9 @@ public: | |||
*/ | |||
const String getTextEditorContents (const String& nameOfTextEditor) const; | |||
/** Returns a pointer to a textbox that was added with addTextEditor(). */ | |||
TextEditor* getTextEditor (const String& nameOfTextEditor) const; | |||
/** Adds a drop-down list of choices to the box. | |||
After the box has been shown, the getComboBoxComponent() method can | |||
@@ -210,6 +210,7 @@ public: | |||
const TermPtr createTermToEvaluateInput (const EvaluationContext& context, const Term* input_, double overallTarget, Term* topLevelTerm) const | |||
{ | |||
(void) input_; | |||
jassert (input_ == input); | |||
const Term* const dest = findDestinationFor (topLevelTerm, this); | |||
@@ -987,7 +988,13 @@ Expression::ParseError::ParseError (const String& message) | |||
Expression::EvaluationError::EvaluationError (const String& message) | |||
: description (message) | |||
{ | |||
DBG ("Expression::EvaluationError: " + message); | |||
DBG ("Expression::EvaluationError: " + description); | |||
} | |||
Expression::EvaluationError::EvaluationError (const String& symbol, const String& member) | |||
: description ("Unknown symbol: \"" + symbol + (member.isEmpty() ? "\"" : ("." + member + "\""))) | |||
{ | |||
DBG ("Expression::EvaluationError: " + description); | |||
} | |||
//============================================================================== | |||
@@ -996,7 +1003,7 @@ Expression::EvaluationContext::~EvaluationContext() {} | |||
const Expression Expression::EvaluationContext::getSymbolValue (const String& symbol, const String& member) const | |||
{ | |||
throw EvaluationError ("Unknown symbol: \"" + symbol + (member.isEmpty() ? "\"" : ("." + member + "\""))); | |||
throw EvaluationError (symbol, member); | |||
} | |||
double Expression::EvaluationContext::evaluateFunction (const String& functionName, const double* parameters, int numParams) const | |||
@@ -1021,14 +1028,10 @@ double Expression::EvaluationContext::evaluateFunction (const String& functionNa | |||
} | |||
else if (numParams == 1) | |||
{ | |||
if (functionName == "sin") | |||
return sin (parameters[0]); | |||
else if (functionName == "cos") | |||
return cos (parameters[0]); | |||
else if (functionName == "tan") | |||
return tan (parameters[0]); | |||
else if (functionName == "abs") | |||
return std::abs (parameters[0]); | |||
if (functionName == "sin") return sin (parameters[0]); | |||
else if (functionName == "cos") return cos (parameters[0]); | |||
else if (functionName == "tan") return tan (parameters[0]); | |||
else if (functionName == "abs") return std::abs (parameters[0]); | |||
} | |||
} | |||
@@ -182,6 +182,7 @@ public: | |||
{ | |||
public: | |||
EvaluationError (const String& message); | |||
EvaluationError (const String& symbolName, const String& memberName); | |||
String description; | |||
}; | |||
@@ -113,13 +113,12 @@ void MenuBarComponent::paint (Graphics& g) | |||
void MenuBarComponent::resized() | |||
{ | |||
xPositions.clear(); | |||
int x = 2; | |||
int x = 0; | |||
xPositions.add (x); | |||
for (int i = 0; i < menuNames.size(); ++i) | |||
{ | |||
x += getLookAndFeel().getMenuBarItemWidth (*this, i, menuNames[i]); | |||
xPositions.add (x); | |||
} | |||
} | |||
@@ -235,7 +234,9 @@ void MenuBarComponent::handleCommandMessage (int commandId) | |||
{ | |||
const Point<int> mousePos (getMouseXYRelative()); | |||
updateItemUnderMouse (mousePos.getX(), mousePos.getY()); | |||
setOpenItem (-1); | |||
if (currentPopupIndex == topLevelIndexClicked) | |||
setOpenItem (-1); | |||
if (commandId != 0 && model != 0) | |||
model->menuItemSelected (commandId, topLevelIndexClicked); | |||
@@ -226,13 +226,19 @@ void AlertWindow::addTextEditor (const String& name, | |||
updateLayout (false); | |||
} | |||
const String AlertWindow::getTextEditorContents (const String& nameOfTextEditor) const | |||
TextEditor* AlertWindow::getTextEditor (const String& nameOfTextEditor) const | |||
{ | |||
for (int i = textBoxes.size(); --i >= 0;) | |||
if (((TextEditor*)textBoxes[i])->getName() == nameOfTextEditor) | |||
return ((TextEditor*)textBoxes[i])->getText(); | |||
if (static_cast <TextEditor*> (textBoxes.getUnchecked(i))->getName() == nameOfTextEditor) | |||
return static_cast <TextEditor*> (textBoxes.getUnchecked(i)); | |||
return 0; | |||
} | |||
return String::empty; | |||
const String AlertWindow::getTextEditorContents (const String& nameOfTextEditor) const | |||
{ | |||
TextEditor* const t = getTextEditor (nameOfTextEditor); | |||
return t != 0 ? t->getText() : String::empty; | |||
} | |||
@@ -142,6 +142,9 @@ public: | |||
*/ | |||
const String getTextEditorContents (const String& nameOfTextEditor) const; | |||
/** Returns a pointer to a textbox that was added with addTextEditor(). */ | |||
TextEditor* getTextEditor (const String& nameOfTextEditor) const; | |||
//============================================================================== | |||
/** Adds a drop-down list of choices to the box. | |||
@@ -266,7 +266,7 @@ const Expression DrawableComposite::getSymbolValue (const String& symbol, const | |||
return m->position.getExpression(); | |||
} | |||
return Expression::EvaluationContext::getSymbolValue (symbol, member); | |||
throw Expression::EvaluationError (symbol, member); | |||
} | |||
const Rectangle<float> DrawableComposite::getUntransformedBounds (const bool includeMarkers) const | |||
@@ -526,6 +526,7 @@ bool DrawableComposite::ValueTreeWrapper::containsMarker (bool xAxis, const Valu | |||
const DrawableComposite::Marker DrawableComposite::ValueTreeWrapper::getMarker (bool xAxis, const ValueTree& state) const | |||
{ | |||
(void) xAxis; | |||
jassert (containsMarker (xAxis, state)); | |||
return Marker (state [nameProperty], RelativeCoordinate (state [posProperty].toString())); | |||
@@ -136,6 +136,11 @@ void TextLayout::clear() | |||
totalLines = 0; | |||
} | |||
bool TextLayout::isEmpty() const | |||
{ | |||
return tokens.size() == 0; | |||
} | |||
void TextLayout::appendText (const String& text, const Font& font) | |||
{ | |||
const juce_wchar* t = text; | |||
@@ -88,6 +88,9 @@ public: | |||
void setText (const String& newText, | |||
const Font& fontToUse); | |||
/** Returns true if the layout has not had any text added yet. */ | |||
bool isEmpty() const; | |||
//============================================================================== | |||
/** Breaks the text up to form a paragraph with the given width. | |||