diff --git a/modules/juce_graphics/fonts/juce_TextLayout.cpp b/modules/juce_graphics/fonts/juce_TextLayout.cpp index 5987bb19a6..1a713db557 100644 --- a/modules/juce_graphics/fonts/juce_TextLayout.cpp +++ b/modules/juce_graphics/fonts/juce_TextLayout.cpp @@ -122,8 +122,8 @@ Range TextLayout::Line::getLineBoundsX() const noexcept Range TextLayout::Line::getLineBoundsY() const noexcept { - return Range (lineOrigin.y - ascent, - lineOrigin.y + descent); + return { lineOrigin.y - ascent, + lineOrigin.y + descent }; } Rectangle TextLayout::Line::getLineBounds() const noexcept @@ -223,7 +223,8 @@ void TextLayout::draw (Graphics& g, Rectangle area) const : 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, runExtent.getLength(), lineThickness }); } @@ -256,8 +257,8 @@ void TextLayout::createLayoutWithBalancedLineLengths (const AttributedString& te 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; while (maxWidth > minimumWidth) @@ -267,12 +268,13 @@ void TextLayout::createLayoutWithBalancedLineLengths (const AttributedString& te if (getNumLines() < 2) 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; if (prop > bestLineProportion) @@ -308,8 +310,7 @@ namespace TextLayoutHelpers float lineHeight; const bool isWhitespace, isNewLine; - private: - Token& operator= (const Token&); + Token& operator= (const Token&) = delete; }; struct TokenList @@ -346,7 +347,7 @@ namespace TextLayoutHelpers if (newGlyphs.size() > 0) { currentRun->glyphs.ensureStorageAllocated (currentRun->glyphs.size() + newGlyphs.size()); - const Point tokenOrigin (t.area.getPosition().translated (0, t.font.getAscent())); + auto tokenOrigin = t.area.getPosition().translated (0, t.font.getAscent()); if (needToSetLineOrigin) { @@ -354,11 +355,11 @@ namespace TextLayoutHelpers currentLine->lineOrigin = tokenOrigin; } - const Point glyphOffset (tokenOrigin - currentLine->lineOrigin); + auto glyphOffset = tokenOrigin - currentLine->lineOrigin; 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), glyphOffset.translated (x, 0), xOffsets.getUnchecked (j + 1) - x)); @@ -370,7 +371,7 @@ namespace TextLayoutHelpers if (t.isWhitespace || t.isNewLine) ++charPosition; - if (auto* nextToken = tokens [i + 1]) + if (auto* nextToken = tokens[i + 1]) { if (t.font != nextToken->font || t.colour != nextToken->colour) { @@ -408,12 +409,12 @@ namespace TextLayoutHelpers 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) { - float dx = totalW - layout.getLine(i).getLineBoundsX().getLength(); + auto dx = totalW - layout.getLine(i).getLineBoundsX().getLength(); if (isCentred) dx /= 2.0f; @@ -451,11 +452,12 @@ namespace TextLayoutHelpers for (;;) { - const juce_wchar c = t.getAndAdvance(); + auto c = t.getAndAdvance(); + if (c == 0) break; - const int charType = getCharacterType (c); + auto charType = getCharacterType (c); if (charType == 0 || charType != lastCharType) { @@ -529,7 +531,7 @@ namespace TextLayoutHelpers void addTextRuns (const AttributedString& text) { - const int numAttributes = text.getNumAttributes(); + auto numAttributes = text.getNumAttributes(); tokens.ensureStorageAllocated (jmax (64, numAttributes)); for (int i = 0; i < numAttributes; ++i)