mirror of
https://github.com/daveallie/crosspoint-reader.git
synced 2025-12-18 23:27:44 +03:00
Compare commits
2 Commits
b372353a01
...
96a88493cd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96a88493cd | ||
|
|
7016e2b0fb |
@ -27,6 +27,8 @@ void ParsedText::layoutAndExtractLines(const GfxRenderer& renderer, const int fo
|
|||||||
const size_t totalWordCount = words.size();
|
const size_t totalWordCount = words.size();
|
||||||
const int pageWidth = renderer.getScreenWidth() - horizontalMargin;
|
const int pageWidth = renderer.getScreenWidth() - horizontalMargin;
|
||||||
const int spaceWidth = renderer.getSpaceWidth(fontId);
|
const int spaceWidth = renderer.getSpaceWidth(fontId);
|
||||||
|
// width of 1em to indent first line of paragraph if Extra Spacing is enabled
|
||||||
|
const int indentWidth = (!extraParagraphSpacing) ? 1 * renderer.getTextWidth(fontId, "m", REGULAR) : 0;
|
||||||
|
|
||||||
std::vector<uint16_t> wordWidths;
|
std::vector<uint16_t> wordWidths;
|
||||||
wordWidths.reserve(totalWordCount);
|
wordWidths.reserve(totalWordCount);
|
||||||
@ -51,7 +53,7 @@ void ParsedText::layoutAndExtractLines(const GfxRenderer& renderer, const int fo
|
|||||||
ans[totalWordCount - 1] = totalWordCount - 1;
|
ans[totalWordCount - 1] = totalWordCount - 1;
|
||||||
|
|
||||||
for (int i = totalWordCount - 2; i >= 0; --i) {
|
for (int i = totalWordCount - 2; i >= 0; --i) {
|
||||||
int currlen = -spaceWidth;
|
int currlen = -spaceWidth + indentWidth;
|
||||||
dp[i] = MAX_COST;
|
dp[i] = MAX_COST;
|
||||||
|
|
||||||
for (size_t j = i; j < totalWordCount; ++j) {
|
for (size_t j = i; j < totalWordCount; ++j) {
|
||||||
@ -123,12 +125,10 @@ void ParsedText::layoutAndExtractLines(const GfxRenderer& renderer, const int fo
|
|||||||
|
|
||||||
// Calculate spacing
|
// Calculate spacing
|
||||||
int spareSpace = pageWidth - lineWordWidthSum;
|
int spareSpace = pageWidth - lineWordWidthSum;
|
||||||
// width of 1em to indent first line of paragraph
|
if (wordWidthIndex == 0) {
|
||||||
const int indentWidth = 1 * renderer.getTextWidth(fontId, "m", REGULAR);
|
|
||||||
|
|
||||||
if (!extraParagraphSpacing && wordWidthIndex ==0) {
|
|
||||||
spareSpace -= indentWidth;
|
spareSpace -= indentWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
int spacing = spaceWidth;
|
int spacing = spaceWidth;
|
||||||
const bool isLastLine = lineBreak == totalWordCount;
|
const bool isLastLine = lineBreak == totalWordCount;
|
||||||
|
|
||||||
@ -137,10 +137,8 @@ void ParsedText::layoutAndExtractLines(const GfxRenderer& renderer, const int fo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Calculate initial x position
|
// Calculate initial x position
|
||||||
uint16_t xpos = 0;
|
uint16_t xpos = (wordWidthIndex == 0) ? indentWidth : 0;
|
||||||
if (!extraParagraphSpacing && wordWidthIndex ==0) {
|
|
||||||
xpos = indentWidth;
|
|
||||||
}
|
|
||||||
if (style == TextBlock::RIGHT_ALIGN) {
|
if (style == TextBlock::RIGHT_ALIGN) {
|
||||||
xpos = spareSpace - (lineWordCount - 1) * spaceWidth;
|
xpos = spareSpace - (lineWordCount - 1) * spaceWidth;
|
||||||
} else if (style == TextBlock::CENTER_ALIGN) {
|
} else if (style == TextBlock::CENTER_ALIGN) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user