diff options
author | Sebastian Geerken <devnull@localhost> | 2014-12-31 00:03:35 +0100 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2014-12-31 00:03:35 +0100 |
commit | 0d0a2370f560e046bc420529d5a9234246f3a560 (patch) | |
tree | a6200bf92f06f2ec53c66655629f966878961fa3 /dw/textblock_linebreaking.cc | |
parent | aad16191d40497d2e8f12507bcdd6d6b622adc0b (diff) |
Some RTFL messages.
Diffstat (limited to 'dw/textblock_linebreaking.cc')
-rw-r--r-- | dw/textblock_linebreaking.cc | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/dw/textblock_linebreaking.cc b/dw/textblock_linebreaking.cc index 38d325bc..65cac81e 100644 --- a/dw/textblock_linebreaking.cc +++ b/dw/textblock_linebreaking.cc @@ -544,6 +544,7 @@ void Textblock::processWord (int wordIndex) if (paragraphs->size() > 0) { firstWord = paragraphs->getLastRef()->firstWord; paragraphs->setSize (paragraphs->size() - 1); + DBG_OBJ_SET_NUM ("paragraphs.size", paragraphs->size ()); DBG_OBJ_MSG ("construct.paragraph", 1, "removing last paragraph"); } else firstWord = 0; @@ -1221,6 +1222,8 @@ void Textblock::handleWordExtremes (int wordIndex) ->badnessAndPenalty.lineMustBeBroken (1)) { // Add a new paragraph. paragraphs->increase (); + DBG_OBJ_SET_NUM ("paragraphs.size", paragraphs->size ()); + Paragraph *prevPar = paragraphs->size() == 1 ? NULL : paragraphs->getRef(paragraphs->size() - 2); Paragraph *par = paragraphs->getLastRef(); @@ -1238,12 +1241,16 @@ void Textblock::handleWordExtremes (int wordIndex) par->maxParMin = par->maxParMinIntrinsic = par->maxParMax = par->maxParMaxIntrinsic = 0; - DBG_OBJ_MSGF ("construct.paragraph", 1, "new par: %d", - paragraphs->size() - 1); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, "maxParMin", + par->maxParMin); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, + "maxParMinIntrinsic", par->maxParMinIntrinsic); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, "maxParMax", + par->maxParMax); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, + "maxParMaxIntrinsic", par->maxParMaxIntrinsic); } - DBG_OBJ_MSGF ("construct.paragraph", 1, "last par: %d", - paragraphs->size() - 1); Paragraph *lastPar = paragraphs->getLastRef(); int corrDiffMin, corrDiffMax; @@ -1259,19 +1266,6 @@ void Textblock::handleWordExtremes (int wordIndex) } else corrDiffMin = corrDiffMax = 0; - DBG_OBJ_MSGF ("construct.paragraph", 1, - "(lastPar from %d to %d; corrDiffMin = %d, corDiffMax = %d)", - lastPar->firstWord, lastPar->lastWord, corrDiffMin, - corrDiffMax); - - DBG_OBJ_MSGF ("construct.paragraph", 1, - "before: parMin = %d (%d) (max = %d (%d)), " - "parMax = %d (%d) (max = %d (%d))", - lastPar->parMin, lastPar->parMinIntrinsic, - lastPar->maxParMin, lastPar->maxParMinIntrinsic, - lastPar->parMax, lastPar->parMaxIntrinsic, - lastPar->maxParMax, lastPar->maxParMaxIntrinsic); - // Minimum: between two *possible* breaks. // Shrinkability could be considered, but really does not play a role. lastPar->parMin += wordExtremes.minWidth + word->hyphenWidth + corrDiffMin; @@ -1280,10 +1274,26 @@ void Textblock::handleWordExtremes (int wordIndex) lastPar->maxParMin = misc::max (lastPar->maxParMin, lastPar->parMin); lastPar->maxParMinIntrinsic = misc::max (lastPar->maxParMinIntrinsic, lastPar->parMinIntrinsic); + + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, "parMin", + lastPar->parMin); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, + "parMinIntrinsic", lastPar->parMinIntrinsic); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, "maxParMin", + lastPar->maxParMin); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, + "maxParMinIntrinsic", lastPar->maxParMinIntrinsic); + if (word->badnessAndPenalty.lineCanBeBroken (1) && - (word->flags & Word::UNBREAKABLE_FOR_MIN_WIDTH) == 0) + (word->flags & Word::UNBREAKABLE_FOR_MIN_WIDTH) == 0) { lastPar->parMin = lastPar->parMinIntrinsic = 0; + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, "parMin", + lastPar->parMin); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, + "parMinIntrinsic", lastPar->parMinIntrinsic); + } + // Maximum: between two *necessary* breaks. lastPar->parMax += wordExtremes.maxWidth + word->hyphenWidth + corrDiffMax; lastPar->parMaxIntrinsic += @@ -1292,14 +1302,15 @@ void Textblock::handleWordExtremes (int wordIndex) lastPar->maxParMaxIntrinsic = misc::max (lastPar->maxParMaxIntrinsic, lastPar->parMaxIntrinsic); - DBG_OBJ_MSGF ("construct.paragraph", 1, - "after: parMin = %d (%d) (max = %d (%d)), " - "parMax = %d (%d) (max = %d (%d))", - lastPar->parMin, lastPar->parMinIntrinsic, - lastPar->maxParMin, lastPar->maxParMinIntrinsic, - lastPar->parMax, lastPar->parMaxIntrinsic, - lastPar->maxParMax, lastPar->maxParMaxIntrinsic); - + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, "parMax", + lastPar->parMax); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, + "parMaxIntrinsic", lastPar->parMaxIntrinsic); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, "maxParMax", + lastPar->maxParMax); + DBG_OBJ_ARRATTRSET_NUM ("paragraphs", paragraphs->size() - 1, + "maxParMaxIntrinsic", lastPar->maxParMaxIntrinsic); + lastPar->lastWord = wordIndex; DBG_OBJ_LEAVE (); } @@ -1896,6 +1907,7 @@ void Textblock::fillParagraphs () parNo = misc::max (0, findParagraphOfWord (firstWordOfLine)); paragraphs->setSize (parNo); + DBG_OBJ_SET_NUM ("paragraphs.size", paragraphs->size ()); int firstWord; if (paragraphs->size () > 0) |