| @@ -122,8 +122,8 @@ Range<float> TextLayout::Line::getLineBoundsX() const noexcept | |||||
| Range<float> TextLayout::Line::getLineBoundsY() const noexcept | Range<float> TextLayout::Line::getLineBoundsY() const noexcept | ||||
| { | { | ||||
| return Range<float> (lineOrigin.y - ascent, | |||||
| lineOrigin.y + descent); | |||||
| return { lineOrigin.y - ascent, | |||||
| lineOrigin.y + descent }; | |||||
| } | } | ||||
| Rectangle<float> TextLayout::Line::getLineBounds() const noexcept | Rectangle<float> TextLayout::Line::getLineBounds() const noexcept | ||||
| @@ -223,7 +223,8 @@ void TextLayout::draw (Graphics& g, Rectangle<float> area) const | |||||
| : runExtent.getUnionWith (glyphRange); | : runExtent.getUnionWith (glyphRange); | ||||
| } | } | ||||
| const float lineThickness = run->font.getDescent() * 0.3f; | |||||
| auto lineThickness = run->font.getDescent() * 0.3f; | |||||
| context.fillRect ({ runExtent.getStart() + lineOrigin.x, lineOrigin.y + lineThickness * 2.0f, | context.fillRect ({ runExtent.getStart() + lineOrigin.x, lineOrigin.y + lineThickness * 2.0f, | ||||
| runExtent.getLength(), lineThickness }); | runExtent.getLength(), lineThickness }); | ||||
| } | } | ||||
| @@ -256,8 +257,8 @@ void TextLayout::createLayoutWithBalancedLineLengths (const AttributedString& te | |||||
| void TextLayout::createLayoutWithBalancedLineLengths (const AttributedString& text, float maxWidth, float maxHeight) | void TextLayout::createLayoutWithBalancedLineLengths (const AttributedString& text, float maxWidth, float maxHeight) | ||||
| { | { | ||||
| const float minimumWidth = maxWidth / 2.0f; | |||||
| float bestWidth = maxWidth; | |||||
| auto minimumWidth = maxWidth / 2.0f; | |||||
| auto bestWidth = maxWidth; | |||||
| float bestLineProportion = 0.0f; | float bestLineProportion = 0.0f; | ||||
| while (maxWidth > minimumWidth) | while (maxWidth > minimumWidth) | ||||
| @@ -267,12 +268,13 @@ void TextLayout::createLayoutWithBalancedLineLengths (const AttributedString& te | |||||
| if (getNumLines() < 2) | if (getNumLines() < 2) | ||||
| return; | return; | ||||
| const float line1 = lines.getUnchecked (lines.size() - 1)->getLineBoundsX().getLength(); | |||||
| const float line2 = lines.getUnchecked (lines.size() - 2)->getLineBoundsX().getLength(); | |||||
| const float shortestLine = jmin (line1, line2); | |||||
| const float prop = (shortestLine > 0) ? jmax (line1, line2) / shortestLine : 1.0f; | |||||
| auto line1 = lines.getUnchecked (lines.size() - 1)->getLineBoundsX().getLength(); | |||||
| auto line2 = lines.getUnchecked (lines.size() - 2)->getLineBoundsX().getLength(); | |||||
| auto shortest = jmin (line1, line2); | |||||
| auto longest = jmax (line1, line2); | |||||
| auto prop = shortest > 0 ? longest / shortest : 1.0f; | |||||
| if (prop > 0.9f) | |||||
| if (prop > 0.9f && prop < 1.1f) | |||||
| return; | return; | ||||
| if (prop > bestLineProportion) | if (prop > bestLineProportion) | ||||
| @@ -308,8 +310,7 @@ namespace TextLayoutHelpers | |||||
| float lineHeight; | float lineHeight; | ||||
| const bool isWhitespace, isNewLine; | const bool isWhitespace, isNewLine; | ||||
| private: | |||||
| Token& operator= (const Token&); | |||||
| Token& operator= (const Token&) = delete; | |||||
| }; | }; | ||||
| struct TokenList | struct TokenList | ||||
| @@ -346,7 +347,7 @@ namespace TextLayoutHelpers | |||||
| if (newGlyphs.size() > 0) | if (newGlyphs.size() > 0) | ||||
| { | { | ||||
| currentRun->glyphs.ensureStorageAllocated (currentRun->glyphs.size() + newGlyphs.size()); | currentRun->glyphs.ensureStorageAllocated (currentRun->glyphs.size() + newGlyphs.size()); | ||||
| const Point<float> tokenOrigin (t.area.getPosition().translated (0, t.font.getAscent())); | |||||
| auto tokenOrigin = t.area.getPosition().translated (0, t.font.getAscent()); | |||||
| if (needToSetLineOrigin) | if (needToSetLineOrigin) | ||||
| { | { | ||||
| @@ -354,11 +355,11 @@ namespace TextLayoutHelpers | |||||
| currentLine->lineOrigin = tokenOrigin; | currentLine->lineOrigin = tokenOrigin; | ||||
| } | } | ||||
| const Point<float> glyphOffset (tokenOrigin - currentLine->lineOrigin); | |||||
| auto glyphOffset = tokenOrigin - currentLine->lineOrigin; | |||||
| for (int j = 0; j < newGlyphs.size(); ++j) | for (int j = 0; j < newGlyphs.size(); ++j) | ||||
| { | { | ||||
| const float x = xOffsets.getUnchecked (j); | |||||
| auto x = xOffsets.getUnchecked (j); | |||||
| currentRun->glyphs.add (TextLayout::Glyph (newGlyphs.getUnchecked(j), | currentRun->glyphs.add (TextLayout::Glyph (newGlyphs.getUnchecked(j), | ||||
| glyphOffset.translated (x, 0), | glyphOffset.translated (x, 0), | ||||
| xOffsets.getUnchecked (j + 1) - x)); | xOffsets.getUnchecked (j + 1) - x)); | ||||
| @@ -370,7 +371,7 @@ namespace TextLayoutHelpers | |||||
| if (t.isWhitespace || t.isNewLine) | if (t.isWhitespace || t.isNewLine) | ||||
| ++charPosition; | ++charPosition; | ||||
| if (auto* nextToken = tokens [i + 1]) | |||||
| if (auto* nextToken = tokens[i + 1]) | |||||
| { | { | ||||
| if (t.font != nextToken->font || t.colour != nextToken->colour) | if (t.font != nextToken->font || t.colour != nextToken->colour) | ||||
| { | { | ||||
| @@ -408,12 +409,12 @@ namespace TextLayoutHelpers | |||||
| if ((text.getJustification().getFlags() & (Justification::right | Justification::horizontallyCentred)) != 0) | if ((text.getJustification().getFlags() & (Justification::right | Justification::horizontallyCentred)) != 0) | ||||
| { | { | ||||
| const float totalW = layout.getWidth(); | |||||
| const bool isCentred = (text.getJustification().getFlags() & Justification::horizontallyCentred) != 0; | |||||
| auto totalW = layout.getWidth(); | |||||
| bool isCentred = (text.getJustification().getFlags() & Justification::horizontallyCentred) != 0; | |||||
| for (int i = 0; i < layout.getNumLines(); ++i) | for (int i = 0; i < layout.getNumLines(); ++i) | ||||
| { | { | ||||
| float dx = totalW - layout.getLine(i).getLineBoundsX().getLength(); | |||||
| auto dx = totalW - layout.getLine(i).getLineBoundsX().getLength(); | |||||
| if (isCentred) | if (isCentred) | ||||
| dx /= 2.0f; | dx /= 2.0f; | ||||
| @@ -451,11 +452,12 @@ namespace TextLayoutHelpers | |||||
| for (;;) | for (;;) | ||||
| { | { | ||||
| const juce_wchar c = t.getAndAdvance(); | |||||
| auto c = t.getAndAdvance(); | |||||
| if (c == 0) | if (c == 0) | ||||
| break; | break; | ||||
| const int charType = getCharacterType (c); | |||||
| auto charType = getCharacterType (c); | |||||
| if (charType == 0 || charType != lastCharType) | if (charType == 0 || charType != lastCharType) | ||||
| { | { | ||||
| @@ -529,7 +531,7 @@ namespace TextLayoutHelpers | |||||
| void addTextRuns (const AttributedString& text) | void addTextRuns (const AttributedString& text) | ||||
| { | { | ||||
| const int numAttributes = text.getNumAttributes(); | |||||
| auto numAttributes = text.getNumAttributes(); | |||||
| tokens.ensureStorageAllocated (jmax (64, numAttributes)); | tokens.ensureStorageAllocated (jmax (64, numAttributes)); | ||||
| for (int i = 0; i < numAttributes; ++i) | for (int i = 0; i < numAttributes; ++i) | ||||