diff --git a/extras/Jucer (experimental)/Source/Utility/jucer_MiscUtilities.cpp b/extras/Jucer (experimental)/Source/Utility/jucer_MiscUtilities.cpp index ddc254e6d6..b1bbc5e0ae 100644 --- a/extras/Jucer (experimental)/Source/Utility/jucer_MiscUtilities.cpp +++ b/extras/Jucer (experimental)/Source/Utility/jucer_MiscUtilities.cpp @@ -337,8 +337,8 @@ const RelativeCoordinate RelativeRectangleLayoutManager::findNamedCoordinate (co { if (objectName == RelativeCoordinate::Strings::parent) { - if (edge == RelativeCoordinate::Strings::right) return RelativeCoordinate ((double) parent->getWidth(), true); - if (edge == RelativeCoordinate::Strings::bottom) return RelativeCoordinate ((double) parent->getHeight(), false); + if (edge == RelativeCoordinate::Strings::right) return RelativeCoordinate ((double) parent->getWidth()); + if (edge == RelativeCoordinate::Strings::bottom) return RelativeCoordinate ((double) parent->getHeight()); } if (objectName.isNotEmpty() && edge.isNotEmpty()) diff --git a/extras/Jucer (experimental)/Source/jucer_Headers.h b/extras/Jucer (experimental)/Source/jucer_Headers.h index 123c75be92..446e0df52b 100644 --- a/extras/Jucer (experimental)/Source/jucer_Headers.h +++ b/extras/Jucer (experimental)/Source/jucer_Headers.h @@ -32,7 +32,7 @@ //============================================================================== #include "../JuceLibraryCode/JuceHeader.h" -#include "jucer_CommonHeaders.h" +#include "Application/jucer_CommonHeaders.h" #endif // __JUCER_HEADERS_JUCEHEADER__ diff --git a/extras/juce demo/Source/demos/DragAndDropDemo.cpp b/extras/juce demo/Source/demos/DragAndDropDemo.cpp index fecbec867c..f33a6ab0da 100644 --- a/extras/juce demo/Source/demos/DragAndDropDemo.cpp +++ b/extras/juce demo/Source/demos/DragAndDropDemo.cpp @@ -34,7 +34,7 @@ class DragAndDropDemoSource : public ListBox, public: //============================================================================== DragAndDropDemoSource() - : ListBox (T("d+d source"), 0) + : ListBox ("d+d source", 0) { // tells the ListBox that this object supplies the info about // its rows. @@ -66,7 +66,7 @@ public: g.setColour (Colours::black); g.setFont (height * 0.7f); - g.drawText (T("Row Number ") + String (rowNumber + 1), + g.drawText ("Row Number " + String (rowNumber + 1), 5, 0, width, height, Justification::centredLeft, true); } @@ -79,7 +79,7 @@ public: String desc; for (int i = 0; i < selectedRows.size(); ++i) - desc << (selectedRows [i] + 1) << T(" "); + desc << (selectedRows [i] + 1) << " "; return desc.trim(); } @@ -121,7 +121,7 @@ public: { somethingIsBeingDraggedOver = false; - message = T("Drag-and-drop some rows from the top-left box onto this component!"); + message = "Drag-and-drop some rows from the top-left box onto this component!"; } ~DragAndDropDemoTarget() @@ -172,7 +172,7 @@ public: void itemDropped (const String& sourceDescription, Component* /*sourceComponent*/, int /*x*/, int /*y*/) { - message = T("last rows dropped: ") + sourceDescription; + message = "last rows dropped: " + sourceDescription; somethingIsBeingDraggedOver = false; repaint(); @@ -192,7 +192,7 @@ public: //============================================================================== DragAndDropDemo() { - setName (T("Drag-and-Drop")); + setName ("Drag-and-Drop"); source = new DragAndDropDemoSource(); addAndMakeVisible (source); diff --git a/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp b/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp index 021b0c222f..05021fa39e 100644 --- a/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp +++ b/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp @@ -37,56 +37,56 @@ public: { server = new DemoInterprocessConnectionServer (*this); - setName (T("Interprocess Communication")); + setName ("Interprocess Communication"); // create all our UI bits and pieces.. - addAndMakeVisible (modeSelector = new ComboBox (T("mode:"))); + addAndMakeVisible (modeSelector = new ComboBox ("mode:")); modeSelector->setBounds (100, 25, 200, 24); (new Label (modeSelector->getName(), modeSelector->getName()))->attachToComponent (modeSelector, true); - modeSelector->addItem (T("(Disconnected)"), 8); + modeSelector->addItem ("(Disconnected)", 8); modeSelector->addSeparator(); - modeSelector->addItem (T("Named pipe (listening)"), 1); - modeSelector->addItem (T("Named pipe (connect to existing pipe)"), 5); + modeSelector->addItem ("Named pipe (listening)", 1); + modeSelector->addItem ("Named pipe (connect to existing pipe)", 5); modeSelector->addSeparator(); - modeSelector->addItem (T("Socket (listening)"), 2); - modeSelector->addItem (T("Socket (connect to existing socket)"), 6); + modeSelector->addItem ("Socket (listening)", 2); + modeSelector->addItem ("Socket (connect to existing socket)", 6); modeSelector->setSelectedId (8); modeSelector->addListener (this); - addAndMakeVisible (pipeName = new TextEditor (T("pipe name:"))); + addAndMakeVisible (pipeName = new TextEditor ("pipe name:")); pipeName->setBounds (100, 60, 130, 24); pipeName->setMultiLine (false); - pipeName->setText (T("juce demo pipe")); + pipeName->setText ("juce demo pipe"); (new Label (pipeName->getName(), pipeName->getName()))->attachToComponent (pipeName, true); - addAndMakeVisible (socketNumber = new TextEditor (T("socket port:"))); + addAndMakeVisible (socketNumber = new TextEditor ("socket port:")); socketNumber->setBounds (350, 60, 80, 24); socketNumber->setMultiLine (false); - socketNumber->setText (T("12345")); - socketNumber->setInputRestrictions (5, T("0123456789")); + socketNumber->setText ("12345"); + socketNumber->setInputRestrictions (5, "0123456789"); (new Label (socketNumber->getName(), socketNumber->getName()))->attachToComponent (socketNumber, true); - addAndMakeVisible (socketHost = new TextEditor (T("socket host:"))); + addAndMakeVisible (socketHost = new TextEditor ("socket host:")); socketHost->setBounds (530, 60, 130, 24); socketHost->setMultiLine (false); - socketHost->setText (T("localhost")); + socketHost->setText ("localhost"); socketNumber->setInputRestrictions (512); (new Label (socketHost->getName(), socketHost->getName()))->attachToComponent (socketHost, true); - addChildComponent (sendText = new TextEditor (T("sendtext"))); + addChildComponent (sendText = new TextEditor ("sendtext")); sendText->setBounds (30, 120, 200, 24); sendText->setMultiLine (false); sendText->setReadOnly (false); - sendText->setText (T("testing 1234")); + sendText->setText ("testing 1234"); - addChildComponent (sendButton = new TextButton (T("send"), T("Fires off the message"))); + addChildComponent (sendButton = new TextButton ("send", "Fires off the message")); sendButton->setBounds (240, 120, 200, 24); sendButton->changeWidthToFitText(); sendButton->addButtonListener (this); - addChildComponent (incomingMessages = new TextEditor (T("messages"))); + addChildComponent (incomingMessages = new TextEditor ("messages")); incomingMessages->setReadOnly (true); incomingMessages->setMultiLine (true); incomingMessages->setBounds (30, 150, 500, 250); @@ -117,7 +117,7 @@ public: if (! activeConnections[i]->sendMessage (messageData)) { // the write failed, so indicate that the connection has broken.. - appendMessage (T("send message failed!")); + appendMessage ("send message failed!"); } } } @@ -205,7 +205,7 @@ public: openedOk = server->beginWaitingForSocket (socketNumber->getText().getIntValue()); if (openedOk) - appendMessage (T("Waiting for another app to connect to this socket..")); + appendMessage ("Waiting for another app to connect to this socket.."); } else { @@ -215,7 +215,7 @@ public: if (openedOk) { - appendMessage (T("Waiting for another app to connect to this pipe..")); + appendMessage ("Waiting for another app to connect to this pipe.."); activeConnections.add (newConnection); } else @@ -230,15 +230,15 @@ public: modeSelector->setSelectedId (8); AlertWindow::showMessageBox (AlertWindow::WarningIcon, - T("Interprocess Comms Demo"), - T("Failed to open the socket or pipe...")); + "Interprocess Comms Demo", + "Failed to open the socket or pipe..."); } } void appendMessage (const String& message) { incomingMessages->setCaretPosition (INT_MAX); - incomingMessages->insertTextAtCaret (message + T("\n")); + incomingMessages->insertTextAtCaret (message + "\n"); incomingMessages->setCaretPosition (INT_MAX); } @@ -263,17 +263,17 @@ public: void connectionMade() { - owner.appendMessage (T("Connection #") + String (ourNumber) + T(" - connection started")); + owner.appendMessage ("Connection #" + String (ourNumber) + " - connection started"); } void connectionLost() { - owner.appendMessage (T("Connection #") + String (ourNumber) + T(" - connection lost")); + owner.appendMessage ("Connection #" + String (ourNumber) + " - connection lost"); } void messageReceived (const MemoryBlock& message) { - owner.appendMessage (T("Connection #") + String (ourNumber) + T(" - message received: ") + message.toString()); + owner.appendMessage ("Connection #" + String (ourNumber) + " - message received: " + message.toString()); } }; diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index afac3e081a..5a55825947 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -84392,10 +84392,10 @@ BEGIN_JUCE_NAMESPACE DrawableComposite::DrawableComposite() : bounds (Point(), Point (100.0f, 0.0f), Point (0.0f, 100.0f)) { - setContentArea (RelativeRectangle (RelativeCoordinate (0.0, true), - RelativeCoordinate (100.0, true), - RelativeCoordinate (0.0, false), - RelativeCoordinate (100.0, false))); + setContentArea (RelativeRectangle (RelativeCoordinate (0.0), + RelativeCoordinate (100.0), + RelativeCoordinate (0.0), + RelativeCoordinate (100.0))); } DrawableComposite::DrawableComposite (const DrawableComposite& other) @@ -84504,10 +84504,10 @@ void DrawableComposite::resetContentAreaAndBoundingBoxToFitChildren() { const Rectangle bounds (getUntransformedBounds (false)); - setContentArea (RelativeRectangle (RelativeCoordinate (bounds.getX(), true), - RelativeCoordinate (bounds.getRight(), true), - RelativeCoordinate (bounds.getY(), false), - RelativeCoordinate (bounds.getBottom(), false))); + setContentArea (RelativeRectangle (RelativeCoordinate (bounds.getX()), + RelativeCoordinate (bounds.getRight()), + RelativeCoordinate (bounds.getY()), + RelativeCoordinate (bounds.getBottom()))); resetBoundingBoxToContentArea(); } @@ -84601,16 +84601,10 @@ const RelativeCoordinate DrawableComposite::findNamedCoordinate (const String& o { if (objectName == RelativeCoordinate::Strings::parent) { - if (edge == RelativeCoordinate::Strings::right) + if (edge == RelativeCoordinate::Strings::right || edge == RelativeCoordinate::Strings::bottom) { - jassertfalse; // a Drawable doesn't have a fixed right-hand edge - use a marker instead if you need a point of reference. - return RelativeCoordinate (100.0, true); - } - - if (edge == RelativeCoordinate::Strings::bottom) - { - jassertfalse; // a Drawable doesn't have a fixed bottom edge - use a marker instead if you need a point of reference. - return RelativeCoordinate (100.0, false); + jassertfalse; // a Drawable doesn't have a fixed right-hand or bottom edge - use a marker instead if you need a point of reference. + return RelativeCoordinate (100.0); } } @@ -84650,7 +84644,7 @@ const Rectangle DrawableComposite::getUntransformedBounds (const bool inc for (i = markersX.size(); --i >= 0;) { const Marker* m = markersX.getUnchecked(i); - const float pos = (float) m->position.resolve (parent); + const float pos = (float) m->position.resolve (this); minX = jmin (minX, pos); maxX = jmax (maxX, pos); } @@ -84676,7 +84670,7 @@ const Rectangle DrawableComposite::getUntransformedBounds (const bool inc for (i = markersY.size(); --i >= 0;) { const Marker* m = markersY.getUnchecked(i); - const float pos = (float) m->position.resolve (parent); + const float pos = (float) m->position.resolve (this); minY = jmin (minY, pos); maxY = jmax (maxY, pos); } @@ -92958,12 +92952,6 @@ namespace RelativeCoordinateHelpers || name == RelativeCoordinate::Strings::parentTop; } - static const String getOriginAnchorName (const bool isHorizontal) throw() - { - return isHorizontal ? RelativeCoordinate::Strings::parentLeft - : RelativeCoordinate::Strings::parentTop; - } - static const String getExtentAnchorName (const bool isHorizontal) throw() { return isHorizontal ? RelativeCoordinate::Strings::parentRight @@ -93082,9 +93070,6 @@ namespace RelativeCoordinateHelpers { anchor1 = readAnchorName (s, ++i); - if (anchor1.isEmpty()) - anchor1 = getOriginAnchorName (isHorizontal); - skipWhitespace (s, i); if (s[i] == '-' && s[i + 1] == '>') @@ -93095,19 +93080,19 @@ namespace RelativeCoordinateHelpers else { anchor2 = anchor1; - anchor1 = getOriginAnchorName (isHorizontal); + anchor1 = String::empty; } } else { - anchor1 = getOriginAnchorName (isHorizontal); + anchor1 = String::empty; anchor2 = getExtentAnchorName (isHorizontal); } return RelativeCoordinate (value, anchor1, anchor2); } - return RelativeCoordinate (value, isHorizontal); + return RelativeCoordinate (value); } } @@ -93135,9 +93120,8 @@ RelativeCoordinate::RelativeCoordinate() { } -RelativeCoordinate::RelativeCoordinate (const double absoluteDistanceFromOrigin, const bool horizontal_) - : anchor1 (RelativeCoordinateHelpers::getOriginAnchorName (horizontal_)), - value (absoluteDistanceFromOrigin) +RelativeCoordinate::RelativeCoordinate (const double absoluteDistanceFromOrigin) + : value (absoluteDistanceFromOrigin) { } @@ -93145,7 +93129,6 @@ RelativeCoordinate::RelativeCoordinate (const double absoluteDistance, const Str : anchor1 (source.trim()), value (absoluteDistance) { - jassert (anchor1.isNotEmpty()); } RelativeCoordinate::RelativeCoordinate (const double relativeProportion, const String& pos1, const String& pos2) @@ -93153,8 +93136,6 @@ RelativeCoordinate::RelativeCoordinate (const double relativeProportion, const S anchor2 (pos2.trim()), value (relativeProportion) { - jassert (anchor1.isNotEmpty()); - jassert (anchor2.isNotEmpty()); } RelativeCoordinate::RelativeCoordinate (const String& s, const bool isHorizontal) @@ -93258,13 +93239,13 @@ void RelativeCoordinate::moveToAbsolute (double newPos, const NamedCoordinateFin {} } -void RelativeCoordinate::toggleProportionality (const NamedCoordinateFinder* nameFinder, bool isHorizontal) +void RelativeCoordinate::toggleProportionality (const NamedCoordinateFinder* nameFinder, + const String& proportionalAnchor1, const String& proportionalAnchor2) { const double oldValue = resolve (nameFinder); - anchor1 = RelativeCoordinateHelpers::getOriginAnchorName (isHorizontal); - anchor2 = isProportional() ? String::empty - : RelativeCoordinateHelpers::getExtentAnchorName (isHorizontal); + anchor1 = proportionalAnchor1; + anchor2 = isProportional() ? String::empty : proportionalAnchor2; moveToAbsolute (oldValue, nameFinder); } @@ -93297,7 +93278,7 @@ const String RelativeCoordinate::toString() const if (isOrigin (anchor1)) { - if (anchor2 == "parent.right" || anchor2 == "parent.bottom") + if (anchor2 == Strings::parentRight || anchor2 == Strings::parentBottom) return percent + "%"; else return percent + "% * " + anchor2; @@ -93328,12 +93309,22 @@ void RelativeCoordinate::setEditableNumber (const double newValue) value = isProportional() ? newValue / 100.0 : newValue; } +const String RelativeCoordinate::getAnchorName1 (const String& returnValueIfOrigin) const +{ + return RelativeCoordinateHelpers::isOrigin (anchor1) ? returnValueIfOrigin : anchor1; +} + +const String RelativeCoordinate::getAnchorName2 (const String& returnValueIfOrigin) const +{ + return RelativeCoordinateHelpers::isOrigin (anchor2) ? returnValueIfOrigin : anchor2; +} + void RelativeCoordinate::changeAnchor1 (const String& newAnchorName, const NamedCoordinateFinder* nameFinder) { jassert (newAnchorName.toLowerCase().containsOnly ("abcdefghijklmnopqrstuvwxyz0123456789_.")); const double oldValue = resolve (nameFinder); - anchor1 = newAnchorName; + anchor1 = RelativeCoordinateHelpers::isOrigin (newAnchorName) ? String::empty : newAnchorName; moveToAbsolute (oldValue, nameFinder); } @@ -93343,7 +93334,7 @@ void RelativeCoordinate::changeAnchor2 (const String& newAnchorName, const Named jassert (newAnchorName.toLowerCase().containsOnly ("abcdefghijklmnopqrstuvwxyz0123456789_.")); const double oldValue = resolve (nameFinder); - anchor2 = newAnchorName; + anchor2 = RelativeCoordinateHelpers::isOrigin (newAnchorName) ? String::empty : newAnchorName; moveToAbsolute (oldValue, nameFinder); } @@ -93374,17 +93365,16 @@ void RelativeCoordinate::renameAnchorIfUsed (const String& oldName, const String } RelativePoint::RelativePoint() - : x (0, true), y (0, false) { } RelativePoint::RelativePoint (const Point& absolutePoint) - : x (absolutePoint.getX(), true), y (absolutePoint.getY(), false) + : x (absolutePoint.getX()), y (absolutePoint.getY()) { } RelativePoint::RelativePoint (const float x_, const float y_) - : x (x_, true), y (y_, false) + : x (x_), y (y_) { } @@ -93450,9 +93440,9 @@ RelativeRectangle::RelativeRectangle (const RelativeCoordinate& left_, const Rel } RelativeRectangle::RelativeRectangle (const Rectangle& rect, const String& componentName) - : left (rect.getX(), true), + : left (rect.getX()), right (rect.getWidth(), componentName + "." + RelativeCoordinate::Strings::left), - top (rect.getY(), false), + top (rect.getY()), bottom (rect.getHeight(), componentName + "." + RelativeCoordinate::Strings::top) { } diff --git a/juce_amalgamated.h b/juce_amalgamated.h index bf41be4e6a..636c161e5b 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -64,7 +64,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 52 -#define JUCE_BUILDNUMBER 25 +#define JUCE_BUILDNUMBER 26 /** Current Juce version number. @@ -42641,7 +42641,7 @@ public: @param absoluteDistanceFromOrigin the distance from the origin @param isHorizontal this must be true if this is an X coordinate, or false if it's on the Y axis. */ - RelativeCoordinate (double absoluteDistanceFromOrigin, bool isHorizontal); + RelativeCoordinate (double absoluteDistanceFromOrigin); /** Creates an absolute position relative to a named coordinate. @@ -42755,7 +42755,8 @@ public: Note that calling this will reset the names of any anchor points, and just make the coordinate relative to the parent origin and parent size. */ - void toggleProportionality (const NamedCoordinateFinder* nameFinder, bool isHorizontal); + void toggleProportionality (const NamedCoordinateFinder* nameFinder, + const String& proportionalAnchor1, const String& proportionalAnchor2); /** Returns a value that can be edited to set this coordinate's position. The meaning of this number depends on the coordinate's mode. If the coordinate is @@ -42775,12 +42776,12 @@ public: /** Returns the name of the first anchor point from which this coordinate is relative. */ - const String getAnchorName1() const { return anchor1; } + const String getAnchorName1 (const String& returnValueIfOrigin) const; /** Returns the name of the second anchor point from which this coordinate is relative. The second anchor is only valid if the coordinate is in proportional mode. */ - const String getAnchorName2() const { return anchor2; } + const String getAnchorName2 (const String& returnValueIfOrigin) const; /** Returns the first anchor point as a coordinate. */ const RelativeCoordinate getAnchorCoordinate1() const; diff --git a/src/core/juce_StandardHeader.h b/src/core/juce_StandardHeader.h index a1094f2421..9c5f2734c9 100644 --- a/src/core/juce_StandardHeader.h +++ b/src/core/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 52 -#define JUCE_BUILDNUMBER 25 +#define JUCE_BUILDNUMBER 26 /** Current Juce version number. diff --git a/src/gui/graphics/drawables/juce_DrawableComposite.cpp b/src/gui/graphics/drawables/juce_DrawableComposite.cpp index 8f79015297..0f0d7b8f81 100644 --- a/src/gui/graphics/drawables/juce_DrawableComposite.cpp +++ b/src/gui/graphics/drawables/juce_DrawableComposite.cpp @@ -38,10 +38,10 @@ BEGIN_JUCE_NAMESPACE DrawableComposite::DrawableComposite() : bounds (Point(), Point (100.0f, 0.0f), Point (0.0f, 100.0f)) { - setContentArea (RelativeRectangle (RelativeCoordinate (0.0, true), - RelativeCoordinate (100.0, true), - RelativeCoordinate (0.0, false), - RelativeCoordinate (100.0, false))); + setContentArea (RelativeRectangle (RelativeCoordinate (0.0), + RelativeCoordinate (100.0), + RelativeCoordinate (0.0), + RelativeCoordinate (100.0))); } DrawableComposite::DrawableComposite (const DrawableComposite& other) @@ -153,10 +153,10 @@ void DrawableComposite::resetContentAreaAndBoundingBoxToFitChildren() { const Rectangle bounds (getUntransformedBounds (false)); - setContentArea (RelativeRectangle (RelativeCoordinate (bounds.getX(), true), - RelativeCoordinate (bounds.getRight(), true), - RelativeCoordinate (bounds.getY(), false), - RelativeCoordinate (bounds.getBottom(), false))); + setContentArea (RelativeRectangle (RelativeCoordinate (bounds.getX()), + RelativeCoordinate (bounds.getRight()), + RelativeCoordinate (bounds.getY()), + RelativeCoordinate (bounds.getBottom()))); resetBoundingBoxToContentArea(); } @@ -251,16 +251,10 @@ const RelativeCoordinate DrawableComposite::findNamedCoordinate (const String& o { if (objectName == RelativeCoordinate::Strings::parent) { - if (edge == RelativeCoordinate::Strings::right) + if (edge == RelativeCoordinate::Strings::right || edge == RelativeCoordinate::Strings::bottom) { - jassertfalse; // a Drawable doesn't have a fixed right-hand edge - use a marker instead if you need a point of reference. - return RelativeCoordinate (100.0, true); - } - - if (edge == RelativeCoordinate::Strings::bottom) - { - jassertfalse; // a Drawable doesn't have a fixed bottom edge - use a marker instead if you need a point of reference. - return RelativeCoordinate (100.0, false); + jassertfalse; // a Drawable doesn't have a fixed right-hand or bottom edge - use a marker instead if you need a point of reference. + return RelativeCoordinate (100.0); } } @@ -300,7 +294,7 @@ const Rectangle DrawableComposite::getUntransformedBounds (const bool inc for (i = markersX.size(); --i >= 0;) { const Marker* m = markersX.getUnchecked(i); - const float pos = (float) m->position.resolve (parent); + const float pos = (float) m->position.resolve (this); minX = jmin (minX, pos); maxX = jmax (maxX, pos); } @@ -326,7 +320,7 @@ const Rectangle DrawableComposite::getUntransformedBounds (const bool inc for (i = markersY.size(); --i >= 0;) { const Marker* m = markersY.getUnchecked(i); - const float pos = (float) m->position.resolve (parent); + const float pos = (float) m->position.resolve (this); minY = jmin (minY, pos); maxY = jmax (maxY, pos); } diff --git a/src/gui/graphics/geometry/juce_RelativeCoordinate.cpp b/src/gui/graphics/geometry/juce_RelativeCoordinate.cpp index 14e31b4217..0128d870ea 100644 --- a/src/gui/graphics/geometry/juce_RelativeCoordinate.cpp +++ b/src/gui/graphics/geometry/juce_RelativeCoordinate.cpp @@ -42,12 +42,6 @@ namespace RelativeCoordinateHelpers || name == RelativeCoordinate::Strings::parentTop; } - static const String getOriginAnchorName (const bool isHorizontal) throw() - { - return isHorizontal ? RelativeCoordinate::Strings::parentLeft - : RelativeCoordinate::Strings::parentTop; - } - static const String getExtentAnchorName (const bool isHorizontal) throw() { return isHorizontal ? RelativeCoordinate::Strings::parentRight @@ -168,9 +162,6 @@ namespace RelativeCoordinateHelpers { anchor1 = readAnchorName (s, ++i); - if (anchor1.isEmpty()) - anchor1 = getOriginAnchorName (isHorizontal); - skipWhitespace (s, i); if (s[i] == '-' && s[i + 1] == '>') @@ -181,19 +172,19 @@ namespace RelativeCoordinateHelpers else { anchor2 = anchor1; - anchor1 = getOriginAnchorName (isHorizontal); + anchor1 = String::empty; } } else { - anchor1 = getOriginAnchorName (isHorizontal); + anchor1 = String::empty; anchor2 = getExtentAnchorName (isHorizontal); } return RelativeCoordinate (value, anchor1, anchor2); } - return RelativeCoordinate (value, isHorizontal); + return RelativeCoordinate (value); } } @@ -223,9 +214,8 @@ RelativeCoordinate::RelativeCoordinate() { } -RelativeCoordinate::RelativeCoordinate (const double absoluteDistanceFromOrigin, const bool horizontal_) - : anchor1 (RelativeCoordinateHelpers::getOriginAnchorName (horizontal_)), - value (absoluteDistanceFromOrigin) +RelativeCoordinate::RelativeCoordinate (const double absoluteDistanceFromOrigin) + : value (absoluteDistanceFromOrigin) { } @@ -233,7 +223,6 @@ RelativeCoordinate::RelativeCoordinate (const double absoluteDistance, const Str : anchor1 (source.trim()), value (absoluteDistance) { - jassert (anchor1.isNotEmpty()); } RelativeCoordinate::RelativeCoordinate (const double relativeProportion, const String& pos1, const String& pos2) @@ -241,8 +230,6 @@ RelativeCoordinate::RelativeCoordinate (const double relativeProportion, const S anchor2 (pos2.trim()), value (relativeProportion) { - jassert (anchor1.isNotEmpty()); - jassert (anchor2.isNotEmpty()); } RelativeCoordinate::RelativeCoordinate (const String& s, const bool isHorizontal) @@ -347,13 +334,13 @@ void RelativeCoordinate::moveToAbsolute (double newPos, const NamedCoordinateFin {} } -void RelativeCoordinate::toggleProportionality (const NamedCoordinateFinder* nameFinder, bool isHorizontal) +void RelativeCoordinate::toggleProportionality (const NamedCoordinateFinder* nameFinder, + const String& proportionalAnchor1, const String& proportionalAnchor2) { const double oldValue = resolve (nameFinder); - anchor1 = RelativeCoordinateHelpers::getOriginAnchorName (isHorizontal); - anchor2 = isProportional() ? String::empty - : RelativeCoordinateHelpers::getExtentAnchorName (isHorizontal); + anchor1 = proportionalAnchor1; + anchor2 = isProportional() ? String::empty : proportionalAnchor2; moveToAbsolute (oldValue, nameFinder); } @@ -387,7 +374,7 @@ const String RelativeCoordinate::toString() const if (isOrigin (anchor1)) { - if (anchor2 == "parent.right" || anchor2 == "parent.bottom") + if (anchor2 == Strings::parentRight || anchor2 == Strings::parentBottom) return percent + "%"; else return percent + "% * " + anchor2; @@ -420,12 +407,22 @@ void RelativeCoordinate::setEditableNumber (const double newValue) } //============================================================================== +const String RelativeCoordinate::getAnchorName1 (const String& returnValueIfOrigin) const +{ + return RelativeCoordinateHelpers::isOrigin (anchor1) ? returnValueIfOrigin : anchor1; +} + +const String RelativeCoordinate::getAnchorName2 (const String& returnValueIfOrigin) const +{ + return RelativeCoordinateHelpers::isOrigin (anchor2) ? returnValueIfOrigin : anchor2; +} + void RelativeCoordinate::changeAnchor1 (const String& newAnchorName, const NamedCoordinateFinder* nameFinder) { jassert (newAnchorName.toLowerCase().containsOnly ("abcdefghijklmnopqrstuvwxyz0123456789_.")); const double oldValue = resolve (nameFinder); - anchor1 = newAnchorName; + anchor1 = RelativeCoordinateHelpers::isOrigin (newAnchorName) ? String::empty : newAnchorName; moveToAbsolute (oldValue, nameFinder); } @@ -435,7 +432,7 @@ void RelativeCoordinate::changeAnchor2 (const String& newAnchorName, const Named jassert (newAnchorName.toLowerCase().containsOnly ("abcdefghijklmnopqrstuvwxyz0123456789_.")); const double oldValue = resolve (nameFinder); - anchor2 = newAnchorName; + anchor2 = RelativeCoordinateHelpers::isOrigin (newAnchorName) ? String::empty : newAnchorName; moveToAbsolute (oldValue, nameFinder); } @@ -467,17 +464,16 @@ void RelativeCoordinate::renameAnchorIfUsed (const String& oldName, const String //============================================================================== RelativePoint::RelativePoint() - : x (0, true), y (0, false) { } RelativePoint::RelativePoint (const Point& absolutePoint) - : x (absolutePoint.getX(), true), y (absolutePoint.getY(), false) + : x (absolutePoint.getX()), y (absolutePoint.getY()) { } RelativePoint::RelativePoint (const float x_, const float y_) - : x (x_, true), y (y_, false) + : x (x_), y (y_) { } @@ -545,9 +541,9 @@ RelativeRectangle::RelativeRectangle (const RelativeCoordinate& left_, const Rel } RelativeRectangle::RelativeRectangle (const Rectangle& rect, const String& componentName) - : left (rect.getX(), true), + : left (rect.getX()), right (rect.getWidth(), componentName + "." + RelativeCoordinate::Strings::left), - top (rect.getY(), false), + top (rect.getY()), bottom (rect.getHeight(), componentName + "." + RelativeCoordinate::Strings::top) { } diff --git a/src/gui/graphics/geometry/juce_RelativeCoordinate.h b/src/gui/graphics/geometry/juce_RelativeCoordinate.h index 22a47f893c..cdae708cc2 100644 --- a/src/gui/graphics/geometry/juce_RelativeCoordinate.h +++ b/src/gui/graphics/geometry/juce_RelativeCoordinate.h @@ -64,7 +64,7 @@ public: @param absoluteDistanceFromOrigin the distance from the origin @param isHorizontal this must be true if this is an X coordinate, or false if it's on the Y axis. */ - RelativeCoordinate (double absoluteDistanceFromOrigin, bool isHorizontal); + RelativeCoordinate (double absoluteDistanceFromOrigin); /** Creates an absolute position relative to a named coordinate. @@ -182,7 +182,8 @@ public: Note that calling this will reset the names of any anchor points, and just make the coordinate relative to the parent origin and parent size. */ - void toggleProportionality (const NamedCoordinateFinder* nameFinder, bool isHorizontal); + void toggleProportionality (const NamedCoordinateFinder* nameFinder, + const String& proportionalAnchor1, const String& proportionalAnchor2); /** Returns a value that can be edited to set this coordinate's position. The meaning of this number depends on the coordinate's mode. If the coordinate is @@ -203,12 +204,12 @@ public: //============================================================================== /** Returns the name of the first anchor point from which this coordinate is relative. */ - const String getAnchorName1() const { return anchor1; } + const String getAnchorName1 (const String& returnValueIfOrigin) const; /** Returns the name of the second anchor point from which this coordinate is relative. The second anchor is only valid if the coordinate is in proportional mode. */ - const String getAnchorName2() const { return anchor2; } + const String getAnchorName2 (const String& returnValueIfOrigin) const; /** Returns the first anchor point as a coordinate. */ const RelativeCoordinate getAnchorCoordinate1() const;