fl_BlockLayout Class Reference

#include <fl_BlockLayout.h>

Inheritance diagram for fl_BlockLayout:

fl_ContainerLayout fl_Layout

List of all members.

Public Types

enum  _eSpacingPolicy { spacing_MULTIPLE, spacing_EXACT, spacing_ATLEAST }
typedef enum
fl_BlockLayout::_eSpacingPolicy 
eSpacingPolicy

Public Member Functions

 fl_BlockLayout (PL_StruxDocHandle sdh, fl_ContainerLayout *pPrev, fl_SectionLayout *, PT_AttrPropIndex indexAP, bool bIsHdrFtr=false)
 ~fl_BlockLayout ()
void formatAll (void)
virtual void format (void)
void formatWrappedFromHere (fp_Line *pLine, fp_Page *pPage)
fp_LinegetNextWrappedLine (UT_sint32 iX, UT_sint32 iHeight, fp_Page *pPage)
void getLeftRightForWrapping (UT_sint32 iX, UT_sint32 iHeight, UT_sint32 &iMinLeft, UT_sint32 &iMinRight, UT_sint32 &iMinWidth)
virtual bool recalculateFields (UT_uint32 iUpdateCount)
virtual void redrawUpdate ()
virtual void updateLayout (bool)
virtual fp_ContainergetNewContainer (fp_Container *pCon=NULL)
FV_ViewgetView (void) const
const char * getProperty (const gchar *pszName, bool bExpandStyles=true) const
const PP_PropertyTypegetPropertyType (const gchar *szName, tProperty_type Type, bool bExpandStyles=true) const
void setAlignment (UT_uint32 iAlignCmd)
UT_sint32 getLength (void)
bool isEmbeddedType (void)
bool isNotTOCable (void)
bool isLastRunInBlock (fp_Run *pRun)
void updateOffsets (PT_DocPosition posEmbedded, UT_uint32 iEmebbedSize, UT_sint32 iSuggestedDiff)
void updateEnclosingBlockIfNeeded (void)
fl_BlockLayoutgetEnclosingBlock (void)
UT_sint32 getEmbeddedOffset (UT_sint32 startOffset, fl_ContainerLayout *&pEmbedCL)
void shuffleEmbeddedIfNeeded (fl_BlockLayout *pBlock, UT_uint32 blockOffset)
bool getXYOffsetToLine (UT_sint32 &xoff, UT_sint32 &yoff, fp_Line *pLine)
bool setFramesOnPage (fp_Line *pLastLine)
UT_sint32 getMinWrapWidth (void)
UT_sint32 getHeightOfBlock (void)
fp_LinefindLineWithFootnotePID (UT_uint32 pid)
UT_sint32 getMaxNonBreakableRun (void)
fp_LinefindPrevLineInDocument (fp_Line *)
fp_LinefindNextLineInDocument (fp_Line *)
virtual void appendTextToBuf (UT_GrowBuf &buf)
void appendUTF8String (UT_UTF8String &sText)
virtual fp_RungetFirstRun (void) const
void setFirstRun (fp_Run *pRun)
bool isListItem (void) const
bool isFirstInList (void)
void getListAttributesVector (UT_GenericVector< const gchar * > *va)
void getListPropertyVector (UT_GenericVector< const gchar * > *vp)
char * getFormatFromListType (FL_ListType iListType)
void remItemFromList (void)
virtual void listUpdate (void)
void resumeList (fl_BlockLayout *prevList)
void prependList (fl_BlockLayout *nextList)
FL_ListType decodeListType (char *listformat)
FL_ListType getListType (void)
gchar * getListStyleString (FL_ListType iListType)
FL_ListType getListTypeFromStyle (const gchar *style)
fl_BlockLayoutgetNextList (UT_uint32 id)
bool isListLabelInBlock (void)
void StartList (const gchar *style, PL_StruxDocHandle prevSDH=NULL)
void StartList (FL_ListType lType, UT_uint32 start, const gchar *lDelim, const gchar *lDecimal, const gchar *fFont, float Align, float indent, UT_uint32 iParentID=0, UT_uint32 level=0)
void StopListInBlock (void)
void deleteListLabel (void)
UT_UCSChargetListLabel (void)
void transferListFlags (void)
UT_uint32 getLevel (void)
void setStarting (bool bValue)
void setStopping (bool bValue)
fl_BlockLayoutgetPreviousList (UT_uint32 id)
fl_BlockLayoutgetPreviousList (void)
fl_BlockLayoutgetPreviousListOfSameMargin (void)
fl_BlockLayoutgetParentItem (void)
UT_uint32 canSlurp (fp_Line *pLine) const
PT_DocPosition getPosition (bool bActualBlockPos=false) const
fp_RunfindPointCoords (PT_DocPosition position, bool bEOL, UT_sint32 &x, UT_sint32 &y, UT_sint32 &x2, UT_sint32 &y2, UT_sint32 &height, bool &bDirection) const
fp_RunfindRunAtOffset (UT_uint32 offset) const
bool getBlockBuf (UT_GrowBuf *pgb) const
void clearScreen (GR_Graphics *)
void getStyle (UT_UTF8String &sStyle)
UT_sint32 getTextIndent (void) const
UT_sint32 getLeftMargin (void) const
UT_sint32 getRightMargin (void) const
UT_sint32 getTopMargin (void) const
UT_sint32 getBottomMargin (void) const
fb_AlignmentgetAlignment (void) const
virtual FL_DocLayoutgetDocLayout (void) const
virtual fl_SectionLayoutgetSectionLayout (void) const
fl_DocSectionLayoutgetDocSectionLayout (void) const
void setSectionLayout (fl_SectionLayout *pSectionLayout)
void getLineSpacing (double &dSpacing, eSpacingPolicy &eSpacing) const
UT_uint32 getProp_Orphans (void) const
UT_uint32 getProp_Widows (void) const
bool getProp_KeepTogether (void) const
bool getProp_KeepWithNext (void) const
UT_BidiCharType getDominantDirection (void) const
void setDominantDirection (UT_BidiCharType iDirection)
bool isHdrFtr (void)
void setHdrFtr (void)
void clearHdrFtr (void)
void debugFlashing (void)
bool findNextTabStop (UT_sint32 iStartX, UT_sint32 iMaxX, UT_sint32 &iPosition, eTabType &iType, eTabLeader &iLeader)
bool findPrevTabStop (UT_sint32 iStartX, UT_sint32 iMaxX, UT_sint32 &iPosition, eTabType &iType, eTabLeader &iLeader)
bool hasUpdatableField (void)
void setUpdatableField (bool bValue)
UT_sint32 getDefaultTabInterval (void) const
UT_sint32 getTabsCount (void) const
bool doclistener_populateSpan (const PX_ChangeRecord_Span *pcrs, PT_BlockOffset blockOffset, UT_uint32 len)
bool doclistener_populateObject (PT_BlockOffset blockOffset, const PX_ChangeRecord_Object *pcro)
bool doclistener_insertSpan (const PX_ChangeRecord_Span *pcrs)
bool doclistener_deleteSpan (const PX_ChangeRecord_Span *pcrs)
bool doclistener_changeSpan (const PX_ChangeRecord_SpanChange *pcrsc)
bool doclistener_deleteStrux (const PX_ChangeRecord_Strux *pcrx)
bool doclistener_changeStrux (const PX_ChangeRecord_StruxChange *pcrxc)
bool doclistener_insertFirstBlock (const PX_ChangeRecord_Strux *pcrx, PL_StruxDocHandle sdh, PL_ListenerId lid, void(*pfnBindHandles)(PL_StruxDocHandle sdhNew, PL_ListenerId lid, PL_StruxFmtHandle sfhNew))
bool doclistener_insertBlock (const PX_ChangeRecord_Strux *pcrx, PL_StruxDocHandle sdh, PL_ListenerId lid, void(*pfnBindHandles)(PL_StruxDocHandle sdhNew, PL_ListenerId lid, PL_StruxFmtHandle sfhNew))
bool doclistener_insertSection (const PX_ChangeRecord_Strux *pcrx, SectionType iType, PL_StruxDocHandle sdh, PL_ListenerId lid, void(*pfnBindHandles)(PL_StruxDocHandle sdhNew, PL_ListenerId lid, PL_StruxFmtHandle sfhNew))
fl_SectionLayoutdoclistener_insertTable (const PX_ChangeRecord_Strux *pcrx, SectionType iType, PL_StruxDocHandle sdh, PL_ListenerId lid, void(*pfnBindHandles)(PL_StruxDocHandle sdhNew, PL_ListenerId lid, PL_StruxFmtHandle sfhNew))
fl_SectionLayoutdoclistener_insertFrame (const PX_ChangeRecord_Strux *pcrx, SectionType iType, PL_StruxDocHandle sdh, PL_ListenerId lid, void(*pfnBindHandles)(PL_StruxDocHandle sdhNew, PL_ListenerId lid, PL_StruxFmtHandle sfhNew))
bool doclistener_insertObject (const PX_ChangeRecord_Object *pcro)
bool doclistener_deleteObject (const PX_ChangeRecord_Object *pcro)
bool doclistener_changeObject (const PX_ChangeRecord_ObjectChange *pcroc)
bool doclistener_insertFmtMark (const PX_ChangeRecord_FmtMark *pcrfm)
bool doclistener_deleteFmtMark (const PX_ChangeRecord_FmtMark *pcrfm)
bool doclistener_changeFmtMark (const PX_ChangeRecord_FmtMarkChange *pcrfmc)
void purgeLayout (void)
virtual void collapse (void)
virtual bool isCollapsed (void) const
void coalesceRuns (void)
virtual void setNeedsReformat (fl_ContainerLayout *pCL, UT_uint32 offset=0)
bool needsReformat (void) const
virtual void setNeedsRedraw (void)
virtual bool needsRedraw (void) const
virtual void markAllRunsDirty (void)
UT_sint32 findLineInBlock (fp_Line *pLine)
bool isWordDelimiter (UT_UCS4Char c, UT_UCS4Char next, UT_UCS4Char prev, UT_uint32 iBlockPos)
bool isSentenceSeparator (UT_UCS4Char c, UT_uint32 iBlockPos)
void setStyleInTOC (bool b)
void forceSectionBreak (void)
bool isContainedByTOC (void) const
FootnoteType getTOCNumType (void)
eTabLeader getTOCTabLeader (UT_sint32 iOff)
UT_sint32 getTOCTabPosition (UT_sint32 iOff)
void setAccumHeight (UT_sint32 i)
UT_sint32 getAccumHeight (void) const
void addBackgroundCheckReason (UT_uint32 reason)
void removeBackgroundCheckReason (UT_uint32 reason)
bool hasBackgroundCheckReason (UT_uint32 reason) const
void setPrevListLabel (bool b)
bool getNextTableElement (UT_GrowBuf *buf, PT_DocPosition startPos, PT_DocPosition &begPos, PT_DocPosition &endPos, UT_UTF8String &sWord, bool bIgnoreSpace)
 fl_BlockLayout (FL_DocLayout *l)
void enqueueToSpellCheckAfter (fl_BlockLayout *prev)
void dequeueFromSpellCheck (void)
fl_BlockLayoutnextToSpell (void) const
fl_BlockLayoutprevToSpell (void) const
 fl_BlockLayout (FL_DocLayout *l)
void enqueueToSpellCheckAfter (fl_BlockLayout *prev)
void dequeueFromSpellCheck (void)
fl_BlockLayoutnextToSpell (void) const
fl_BlockLayoutprevToSpell (void) const

Static Public Member Functions

static bool s_EnumTabStops (void *myThis, UT_uint32 k, fl_TabStop *pTabInfo)

Public Attributes

UT_uint32 m_uBackgroundCheckReasons

Protected Member Functions

void _recalcPendingWord (UT_uint32 iOffset, UT_sint32 chg)
bool _doCheckWord (fl_PartOfBlock *pPOB, const UT_UCSChar *pBlockText, UT_sint32 iLength, bool bAddSquiggle=true, bool bClearScreen=true)
bool _truncateLayout (fp_Run *pTruncRun)
void _assertRunListIntegrityImpl (void)
void _assertRunListIntegrity (void)
void _mergeRuns (fp_Run *pFirstRunToMerge, fp_Run *pLastRunToMerge)
bool _doInsertRun (fp_Run *pNewRun)
bool _delete (PT_BlockOffset blockOffset, UT_uint32 len)
bool _doInsertTextSpan (PT_BlockOffset blockOffset, UT_uint32 len)
bool _doInsertForcedLineBreakRun (PT_BlockOffset blockOffset)
bool _doInsertFieldStartRun (PT_BlockOffset blockOffset)
bool _doInsertFieldEndRun (PT_BlockOffset blockOffset)
bool _doInsertBookmarkRun (PT_BlockOffset blockOffset)
bool _doInsertHyperlinkRun (PT_BlockOffset blockOffset)
bool _doInsertAnnotationRun (PT_BlockOffset blockOffset)
bool _doInsertMathRun (PT_BlockOffset blockOffset, PT_AttrPropIndex indexAP, PL_ObjectHandle oh)
bool _doInsertEmbedRun (PT_BlockOffset blockOffset, PT_AttrPropIndex indexAP, PL_ObjectHandle oh)
bool _doInsertForcedColumnBreakRun (PT_BlockOffset blockOffset)
bool _doInsertForcedPageBreakRun (PT_BlockOffset blockOffset)
bool _doInsertTabRun (PT_BlockOffset blockOffset)
bool _doInsertTOCTabRun (PT_BlockOffset blockOffset)
bool _doInsertTOCListLabelRun (PT_BlockOffset blockOffset)
bool _doInsertTOCHeadingRun (PT_BlockOffset blockOffset)
bool _doInsertTOCListTabRun (PT_BlockOffset blockOffset)
bool _doInsertImageRun (PT_BlockOffset blockOffset, FG_Graphic *pFG)
bool _doInsertFieldRun (PT_BlockOffset blockOffset, const PX_ChangeRecord_Object *pcro)
bool _doInsertFieldTOCRun (PT_BlockOffset blockOffset)
bool _doInsertDirectionMarkerRun (PT_BlockOffset blockOffset, UT_UCS4Char iM)
bool _deleteFmtMark (PT_BlockOffset blockOffset)
virtual void _lookupProperties (const PP_AttrProp *pAP)
virtual void _lookupMarginProperties (const PP_AttrProp *pAP)
void _removeLine (fp_Line *, bool bRemoveFromContainer, bool bReCalc)
void _purgeLine (fp_Line *)
void _removeAllEmptyLines (void)
bool _checkMultiWord (UT_sint32 iStart, UT_sint32 eor, bool bToggleIP)
UT_uint32 _getLastChar ()
void _stuffAllRunsOnALine (void)
void _insertEndOfParagraphRun (void)
void _purgeEndOfParagraphRun (void)
void _breakLineAfterRun (fp_Run *)
void _createListLabel (void)
void _deleteListLabel (void)
void _addBlockToPrevList (fl_BlockLayout *prevBlockInList, UT_uint32 level)
void _prependBlockToPrevList (fl_BlockLayout *nextBlockInList)

Static Protected Member Functions

static void _prefsListener (XAP_App *, XAP_Prefs *pPrefs, UT_StringPtrMap *, void *data)

Protected Attributes

UT_sint32 m_iNeedsReformat
bool m_bNeedsRedraw
bool m_bIsHdrFtr
FL_DocLayoutm_pLayout
fb_LineBreaker m_Breaker
fp_Runm_pFirstRun
fl_SectionLayoutm_pSectionLayout
UT_GenericVector< fl_TabStop * > m_vecTabs
UT_sint32 m_iDefaultTabInterval
UT_uint32 m_iOrphansProperty
UT_uint32 m_iWidowsProperty
UT_sint32 m_iTopMargin
UT_sint32 m_iBottomMargin
UT_sint32 m_iLeftMargin
UT_sint32 m_iRightMargin
UT_sint32 m_iTextIndent
fb_Alignmentm_pAlignment
double m_dLineSpacing
eSpacingPolicy m_eSpacingPolicy
bool m_bKeepTogether
bool m_bKeepWithNext
bool m_bStartList
bool m_bStopList
bool m_bListLabelCreated
bool m_bListItem
const gchar * m_szStyle
bool m_bIsCollapsed
bool m_bHasUpdatableField
UT_BidiCharType m_iDomDirection
UT_BidiCharType m_iDirOverride
bool m_bIsTOC
bool m_bStyleInTOC
UT_sint32 m_iTOCLevel
bool m_bSameYAsPrevious
UT_sint32 m_iAccumulatedHeight
fp_VerticalContainerm_pVertContainer
UT_sint32 m_iLinePosInContainer
bool m_bForceSectionBreak
bool m_bPrevListLabel
UT_sint32 m_iAdditionalMarginAfter

Private Member Functions

virtual bool _canContainPoint () const

Private Attributes

FL_DocLayoutm_pLayout
fl_BlockLayoutm_nextToSpell
fl_BlockLayoutm_prevToSpell
FL_DocLayoutm_pLayout
fl_BlockLayoutm_nextToSpell
fl_BlockLayoutm_prevToSpell

Friends

class fl_Squiggles
class fl_SpellSquiggles
class fl_GrammarSquiggles
class fl_DocListener
class fl_TOCLayout
class fb_LineBreaker


Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
spacing_MULTIPLE 
spacing_EXACT 
spacing_ATLEAST 


Constructor & Destructor Documentation

fl_BlockLayout::fl_BlockLayout ( PL_StruxDocHandle  sdh,
fl_ContainerLayout pPrev,
fl_SectionLayout pSectionLayout,
PT_AttrPropIndex  indexAP,
bool  bIsHdrFtr = false 
)

fl_BlockLayout::~fl_BlockLayout (  ) 

fl_BlockLayout::fl_BlockLayout ( FL_DocLayout l  )  [inline]

fl_BlockLayout::fl_BlockLayout ( FL_DocLayout l  )  [inline]


Member Function Documentation

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().

void fl_BlockLayout::formatWrappedFromHere ( fp_Line pLine,
fp_Page pPage 
)

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().

fp_Line * fl_BlockLayout::getNextWrappedLine ( UT_sint32  iX,
UT_sint32  iHeight,
fp_Page pPage 
)

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]