#include <fl_BlockLayout.h>

| fl_BlockLayout::fl_BlockLayout | ( | PL_StruxDocHandle | sdh, | |
| fl_ContainerLayout * | pPrev, | |||
| fl_SectionLayout * | pSectionLayout, | |||
| PT_AttrPropIndex | indexAP, | |||
| bool | bIsHdrFtr = false | |||
| ) |
References _insertEndOfParagraphRun(), fl_ContainerLayout::_insertIntoList(), FL_DocLayout::addOrRemoveBlockFromTOC(), FL_CONTAINER_TOC, fl_GrammarSquiggles, FL_SECTION_HDRFTR, fl_SpellSquiggles, fl_ContainerLayout::getAP(), PP_AttrProp::getAttribute(), PD_Style::getBasedOn(), fl_ContainerLayout::getContainerType(), fl_TOCLayout::getCurrentLevel(), fl_SectionLayout::getDocLayout(), getDocSectionLayout(), FL_DocLayout::getDocument(), fl_ContainerLayout::getFirstLayout(), getSectionLayout(), fl_Layout::getStruxDocHandle(), PD_Document::getStyle(), fl_SectionLayout::getType(), isHdrFtr(), isNotTOCable(), fl_ContainerLayout::lookupProperties(), m_bIsHdrFtr, m_bIsTOC, m_bStyleInTOC, m_iTOCLevel, fl_Layout::m_pDoc, m_pLayout, m_pSectionLayout, m_szStyle, fl_ContainerLayout::myContainingLayout(), PT_STYLE_ATTRIBUTE_NAME, fl_Layout::setAttrPropIndex(), fl_ContainerLayout::setNext(), fl_ContainerLayout::setPrev(), setUpdatableField(), updateEnclosingBlockIfNeeded(), PD_Style::used(), UT_ASSERT, UT_ASSERT_HARMLESS, UT_DEBUGMSG, and xxx_UT_DEBUGMSG.
Referenced by main().
| fl_BlockLayout::~fl_BlockLayout | ( | ) |
References DELETEP, dequeueFromSpellCheck(), fl_Layout::getStruxDocHandle(), isNotTOCable(), m_bIsTOC, m_pAlignment, fl_Layout::m_pDoc, m_pLayout, m_vecTabs, FL_DocLayout::notifyBlockIsBeingDeleted(), purgeLayout(), FL_DocLayout::removeBlockFromTOC(), UT_ASSERT_HARMLESS, UT_VECTOR_PURGEALL, and xxx_UT_DEBUGMSG.
| fl_BlockLayout::fl_BlockLayout | ( | FL_DocLayout * | l | ) | [inline] |
| fl_BlockLayout::fl_BlockLayout | ( | FL_DocLayout * | l | ) | [inline] |
| void fl_BlockLayout::formatAll | ( | void | ) |
References format(), and m_iNeedsReformat.
| void fl_BlockLayout::format | ( | void | ) | [virtual] |
Format paragraph: split the content into lines which will fit in the container.
Implements fl_ContainerLayout.
References _assertRunListIntegrity(), _insertEndOfParagraphRun(), _removeAllEmptyLines(), _stuffAllRunsOnALine(), UT_GenericVector< T >::addItem(), FL_DocLayout::addOrRemoveBlockFromTOC(), fb_LineBreaker::breakParagraph(), fp_Line::calculateWidthOfLine(), fp_Run::clearIfNeeded(), fp_Line::clearScreen(), coalesceRuns(), collapse(), FB_ALIGNMENT_JUSTIFY, FB_ALIGNMENT_LEFT, FL_CONTAINER_BLOCK, FL_CONTAINER_CELL, FL_CONTAINER_DOCSECTION, FL_CONTAINER_SHADOW, fl_ContainerLayout::format(), FP_CONTAINER_LINE, FP_HIDDEN_FOLDED, FPRUN_ENDOFPARAGRAPH, FPRUN_FIELD, FPRUN_HYPERLINK, fp_Run::getBlockOffset(), fp_ContainerObject::getContainerType(), fl_ContainerLayout::getContainerType(), getDocSectionLayout(), fl_ContainerLayout::getFirstContainer(), getHeightOfBlock(), fp_HyperlinkRun::getHyperlinkType(), UT_GenericVector< T >::getItemCount(), fl_ContainerLayout::getLastContainer(), fp_Run::getLength(), fp_Run::getLine(), fp_Container::getNext(), fp_Run::getNextRun(), UT_GenericVector< T >::getNthItem(), fp_Container::getPage(), fl_ContainerLayout::getPrev(), getSectionLayout(), fp_Run::getType(), fb_Alignment::getType(), fp_Run::getWidth(), fp_Line::getWidth(), fp_Run::getX(), fp_Run::getY(), HYPERLINK_ANNOTATION, fl_CellLayout::isDoingFormat(), fl_ContainerLayout::isHidden(), FL_DocLayout::isLayoutFilling(), isListLabelInBlock(), isNotTOCable(), fp_Line::layout(), fp_Run::lookupProperties(), m_bIsCollapsed, m_bIsTOC, m_bListLabelCreated, m_Breaker, m_bStyleInTOC, m_iNeedsReformat, m_pAlignment, fl_Layout::m_pAutoNum, m_pFirstRun, m_pLayout, m_pSectionLayout, fl_ContainerLayout::myContainingLayout(), fp_FieldRun::needsFrequentUpdates(), recalculateFields(), fp_Run::recalcWidth(), fp_Line::resetJustification(), fl_SectionLayout::setNeedsReformat(), fl_DocSectionLayout::setNeedsSectionBreak(), fp_Run::setTmpLine(), fp_Run::setTmpWidth(), fp_Run::setTmpX(), fp_Run::setTmpY(), setUpdatableField(), UT_ASSERT, UT_DEBUGMSG, and xxx_UT_DEBUGMSG.
Referenced by doclistener_changeFmtMark(), doclistener_changeObject(), doclistener_changeSpan(), doclistener_changeStrux(), doclistener_deleteFmtMark(), doclistener_deleteObject(), doclistener_deleteSpan(), fl_FrameLayout::doclistener_deleteStrux(), doclistener_deleteStrux(), doclistener_insertFmtMark(), doclistener_insertFrame(), doclistener_insertObject(), doclistener_insertSpan(), formatAll(), listUpdate(), redrawUpdate(), remItemFromList(), and fp_Page::updatePageForWrapping().
Reformat a block from the line given.
References _removeAllEmptyLines(), _removeLine(), fp_Line::addRun(), BIG_NUM_BLOCKBL, fb_LineBreaker::breakParagraph(), FB_ALIGNMENT_JUSTIFY, fp_Container::findCon(), FP_CONTAINER_LINE, FP_CONTAINER_TABLE, fp_Container::getContainer(), fp_ContainerObject::getContainerType(), getDominantDirection(), fl_ContainerLayout::getFirstContainer(), fp_Line::getFirstRun(), fp_Line::getHeight(), fl_ContainerLayout::getLastContainer(), fp_Line::getLastRun(), getLeftMargin(), getLeftRightForWrapping(), fp_Line::getMarginAfter(), fp_Line::getMaxWidth(), getMinWrapWidth(), getNewContainer(), fp_Container::getNext(), fp_Run::getNextRun(), getNextWrappedLine(), fl_ContainerLayout::getPrev(), fp_Container::getPrev(), fp_Line::getPrevContainerInSection(), getRightMargin(), fp_VerticalContainer::getScreenRect(), fp_Line::getScreenRect(), getTextIndent(), fb_Alignment::getType(), fp_VerticalContainer::getWidth(), fp_Line::getX(), fp_Line::getY(), UT_Rect::height, FL_DocLayout::isLayoutFilling(), fp_Line::isSameYAsPrevious(), UT_Rect::left, m_Breaker, m_bSameYAsPrevious, m_iAccumulatedHeight, m_iAdditionalMarginAfter, m_iLinePosInContainer, m_iNeedsReformat, m_pAlignment, m_pLayout, m_pVertContainer, fp_Line::recalcHeight(), fp_Line::resetJustification(), fp_Line::setBlock(), fl_ContainerLayout::setFirstContainer(), fl_ContainerLayout::setLastContainer(), fp_Line::setMaxWidth(), fp_Container::setPrev(), fp_Line::setSameYAsPrevious(), fp_Line::setX(), UT_Rect::top, UT_ASSERT, UT_BIDI_LTR, UT_DEBUGMSG, UT_Rect::width, and xxx_UT_DEBUGMSG.
Referenced by fp_Page::updatePageForWrapping().
Create a new line that will fit between positioned objects on the page. iX is the position of the last X coordinate of the previous Line relative to it's container. The X location of wrapped line will be greater than this. iHeight is the assumed height of the line (at first approximation this is the height of the previous line). pPage Pointer to the page with the positioned objects.
References BIG_NUM_BLOCKBL, fp_Container::findCon(), findLineInBlock(), fp_Container::getContainer(), getDominantDirection(), fl_ContainerLayout::getFirstContainer(), fl_ContainerLayout::getLastContainer(), getLeftMargin(), getLeftRightForWrapping(), fp_Line::getMaxWidth(), getMinWrapWidth(), getNewContainer(), fl_ContainerLayout::getPrev(), getRightMargin(), fp_Page::getScreenOffsets(), fp_VerticalContainer::getScreenRect(), getSectionLayout(), getTextIndent(), fp_VerticalContainer::getWidth(), fp_Line::getX(), UT_Rect::height, fp_Container::insertConAt(), fp_VerticalContainer::insertContainerAfter(), fp_Line::isSameYAsPrevious(), fp_Line::isWrapped(), m_bSameYAsPrevious, m_iAccumulatedHeight, m_iAdditionalMarginAfter, m_iLinePosInContainer, m_pVertContainer, fp_Line::setAdditionalMargin(), fp_Line::setBlock(), fp_Line::setContainer(), fl_ContainerLayout::setFirstContainer(), fp_Line::setHeight(), fl_ContainerLayout::setLastContainer(), fp_Line::setMaxWidth(), fp_Container::setNext(), fp_Container::setPrev(), fp_Line::setSameYAsPrevious(), fp_Line::setWrapped(), fp_Line::setX(), UT_Rect::top, UT_ASSERT, UT_BIDI_LTR, and xxx_UT_DEBUGMSG.
Referenced by fb_LineBreaker::_breakTheLineAtLastRunToKeep(), and formatWrappedFromHere().
| void fl_BlockLayout::getLeftRightForWrapping | ( | UT_sint32 | iX, | |
| UT_sint32 | iHeight, | |||
| UT_sint32 & | iMinLeft, | |||
| UT_sint32 & | iMinRight, | |||
| UT_sint32 & | iMinWidth | |||
| ) |
Given the x-position (iX) and the height of the line (iHeight) this Method returns the width of the line that fits at the current screen position.
The dimensions of all the parameters are logical units.
(input) (iX)The position relative the container holding the line of the left edge of the line. (input) (iHeight) The assumed height of the line.
(output) The width of the line that fits between the image is iMinWidth (output) iMinLeft is the left-most edge of the line that fits (output) iMinRight is the right-most edge of the line that fits
References BIG_NUM_BLOCKBL, fp_Page::countAboveFrameContainers(), fl_FrameLayout::getBoundingSpace(), getDominantDirection(), fl_ContainerLayout::getFirstContainer(), FL_DocLayout::getGraphics(), fp_ContainerObject::getHeight(), fl_ContainerLayout::getLastContainer(), getLeftMargin(), fp_FrameContainer::getLeftPad(), getMinWrapWidth(), fp_Page::getNthAboveFrameContainer(), fp_Container::getPage(), getRightMargin(), fp_FrameContainer::getRightPad(), fp_Page::getScreenOffsets(), fp_VerticalContainer::getScreenRect(), fp_ContainerObject::getSectionLayout(), getTextIndent(), fp_VerticalContainer::getWidth(), UT_Rect::height, UT_Rect::intersectsRect(), fp_FrameContainer::isLeftWrapped(), fp_FrameContainer::isRightWrapped(), fp_FrameContainer::isTightWrapped(), fp_FrameContainer::isWrappingSet(), UT_Rect::left, m_iAccumulatedHeight, m_iAdditionalMarginAfter, m_pLayout, m_pVertContainer, fp_FrameContainer::overlapsRect(), GR_Graphics::tlu(), UT_Rect::top, UT_ASSERT, UT_BIDI_LTR, UT_Rect::width, and xxx_UT_DEBUGMSG.
Referenced by formatWrappedFromHere(), and getNextWrappedLine().
| bool fl_BlockLayout::recalculateFields | ( | UT_uint32 | iUpdateCount | ) | [virtual] |
Implements fl_ContainerLayout.
References _assertRunListIntegrity(), fp_FieldRun::calculateValue(), FPRUN_FIELD, FPRUN_HYPERLINK, fp_Run::getHyperlink(), fp_HyperlinkRun::getHyperlinkType(), fp_Run::getNextRun(), fp_Run::getType(), fp_Run::getWidth(), HYPERLINK_ANNOTATION, m_pFirstRun, fp_FieldRun::n