Public Member Functions | Private Member Functions | Private Attributes

fp_CellContainer Class Reference

#include <fp_TableContainer.h>

Inheritance diagram for fp_CellContainer:
fp_VerticalContainer fp_Container fp_ContainerObject

List of all members.

Public Member Functions

 fp_CellContainer (fl_SectionLayout *pSectionLayout)
virtual ~fp_CellContainer ()
void sizeRequest (fp_Requisition *pRequest)
void sizeAllocate (fp_Allocation *pAllocate)
void layout (void)
fp_ContainerdrawSelectedCell (fp_Line *pLine)
bool isSelected (void) const
void clearSelection (void)
bool doesOverlapBrokenTable (const fp_TableContainer *pBroke) const
void drawBroken (dg_DrawArgs *pDa, fp_TableContainer *pTab)
virtual void clearScreen (void)
void clearScreen (bool bNoRecursive)
void getScreenPositions (fp_TableContainer *pBroke, GR_Graphics *pG, UT_sint32 &iLeft, UT_sint32 &iRight, UT_sint32 &iTop, UT_sint32 &iBot, UT_sint32 &col_y, fp_Column *&pCol, fp_ShadowContainer *&pShadow, bool &bDoClear) const
bool drawLines (fp_TableContainer *pBroke, GR_Graphics *pG, bool bDoClear)
void drawLinesAdjacent (void)
void draw (fp_Line *pLine)
fp_TableContainergetBrokenTable (const fp_Container *pCon) const
fp_VerticalContainergetColumn (const fp_Container *pCon) const
fp_ContainergetFirstContainerInBrokenTable (const fp_TableContainer *pBroke) const
UT_sint32 wantCellVBreakAt (UT_sint32, UT_sint32) const
virtual void draw (dg_DrawArgs *)
virtual void draw (GR_Graphics *)
virtual void setContainer (fp_Container *pContainer)
virtual void setWidth (UT_sint32 iWidth)
virtual void setHeight (UT_sint32 iHeight)
void _drawBoundaries (dg_DrawArgs *pDA, fp_TableContainer *pBroke)
virtual bool isVBreakable (void)
virtual bool isHBreakable (void)
virtual UT_sint32 wantHBreakAt (UT_sint32)
virtual fp_ContainerObjectVBreakAt (UT_sint32)
virtual fp_ContainerObjectHBreakAt (UT_sint32)
void recalcMaxWidth (bool bDontClearIfNeeded=false)
virtual void setAssignedScreenHeight (UT_sint32)
virtual fp_ContainergetNextContainerInSection (void) const
virtual fp_ContainergetPrevContainerInSection (void) const
fp_TableContainergetTopmostTable (void) const
void extendLeftTop (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextTop)
void extendLeftBot (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextBot)
void extendRightTop (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextTop)
void extendRightBot (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextBot)
void extendTopLeft (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextLeft)
void extendTopRight (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextRight)
void extendBotLeft (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextLeft)
void extendBotRight (PP_PropertyMap::Line &line, GR_Graphics *pG, UT_sint32 &iextRight)
UT_sint32 getCellX (fp_Line *pLine) const
UT_sint32 getCellY (fp_Line *pLine) const
UT_sint32 getSpannedHeight (void) const
void setLineMarkers (void)
void deleteBrokenTables (bool bClearFirst=true)
void deleteBrokenAfter (bool bClearFirst, UT_sint32 iOldBottom)
bool containsFootnoteReference (const fp_TableContainer *pBroke=NULL) const
bool getFootnoteContainers (UT_GenericVector< fp_FootnoteContainer * > *pvecFoots, const fp_TableContainer *pBroke=NULL) const
bool containsAnnotations (const fp_TableContainer *pBroke=NULL) const
bool getAnnotationContainers (UT_GenericVector< fp_AnnotationContainer * > *pvecAnns, const fp_TableContainer *pBroke=NULL) const
void getLeftTopOffsets (UT_sint32 &xoff, UT_sint32 &yoff) const
UT_sint32 getLeftAttach (void) const
UT_sint32 getRightAttach (void) const
UT_sint32 getTopAttach (void) const
UT_sint32 getBottomAttach (void) const
void setLeftAttach (UT_sint32 i)
void setRightAttach (UT_sint32 i)
void setTopAttach (UT_sint32 i)
void setBottomAttach (UT_sint32 i)
void setToAllocation (void)
UT_sint32 getLeftPad (void) const
UT_sint32 getRightPad (void) const
UT_sint32 getTopPad (void) const
UT_sint32 getBotPad (void) const
void setLeftPad (UT_sint32 i)
void setRightPad (UT_sint32 i)
void setTopPad (UT_sint32 i)
void setBotPad (UT_sint32 i)
PP_PropertyMap::Background getBackground () const
void setBackground (const PP_PropertyMap::Background &style)
PP_PropertyMap::Line getBottomStyle (const fl_TableLayout *table) const
PP_PropertyMap::Line getLeftStyle (const fl_TableLayout *table) const
PP_PropertyMap::Line getRightStyle (const fl_TableLayout *table) const
PP_PropertyMap::Line getTopStyle (const fl_TableLayout *table) const
void setBottomStyle (const PP_PropertyMap::Line &style)
void setLeftStyle (const PP_PropertyMap::Line &style)
void setRightStyle (const PP_PropertyMap::Line &style)
void setTopStyle (const PP_PropertyMap::Line &style)
bool getXexpand (void) const
bool getYexpand (void) const
bool getXshrink (void) const
bool getYshrink (void) const
void setXexpand (bool b)
void setYexpand (bool b)
void setXshrink (bool b)
void setYshrink (bool b)
bool getXfill (void) const
bool getYfill (void) const
void setXfill (bool b)
void setYfill (bool b)
UT_sint32 getStartY (void) const
UT_sint32 getStopY (void) const
UT_sint32 getLeftPos (void) const
UT_sint32 getRightPos (void) const
void markAsDirty (void)
bool isDirty (void) const
bool doesIntersectClip (fp_TableContainer *pBroke, const UT_Rect *rClip) const
bool isInNestedTable (void) const
bool containsNestedTables (void) const
bool isRepeated (void) const
void setVertAlign (UT_sint32 i)
void doVertAlign (void)

Private Member Functions

void _clear (fp_TableContainer *pBroke)
void _getBrokenRect (fp_TableContainer *pBroke, fp_Page *&pPage, UT_Rect &bRec, GR_Graphics *pG) const

Private Attributes

UT_sint32 m_iLeftAttach
UT_sint32 m_iRightAttach
UT_sint32 m_iTopAttach
UT_sint32 m_iBottomAttach
UT_RGBColor m_borderColorNone
UT_sint32 m_iLeftPad
UT_sint32 m_iRightPad
UT_sint32 m_iTopPad
UT_sint32 m_iBotPad
fp_CellContainerm_pNextInTable
fp_CellContainerm_pPrevInTable
bool m_bXexpand
bool m_bYexpand
bool m_bXshrink
bool m_bYshrink
bool m_bXfill
bool m_bYfill
fp_Allocation m_MyAllocation
fp_Requisition m_MyRequest
UT_sint32 m_iLeft
UT_sint32 m_iRight
UT_sint32 m_iTopY
UT_sint32 m_iBotY
bool m_bDrawLeft
bool m_bDrawTop
bool m_bDrawBot
bool m_bDrawRight
bool m_bLinesDrawn
bool m_bBgDirty
PP_PropertyMap::Background m_background
PP_PropertyMap::Line m_lineBottom
PP_PropertyMap::Line m_lineLeft
PP_PropertyMap::Line m_lineRight
PP_PropertyMap::Line m_lineTop
bool m_bIsSelected
bool m_bDirty
bool m_bIsRepeated
UT_sint32 m_iVertAlign

Constructor & Destructor Documentation

fp_CellContainer::fp_CellContainer ( fl_SectionLayout pSectionLayout  ) 

Create Cell container

Parameters:
iType Container type
pSectionLayout Section layout type used for this container
fp_CellContainer::~fp_CellContainer (  )  [virtual]

Destruct container

Note:
The Containers in vector of the container are not destructed. They are owned by the logical hierarchy (i.e., the fl_Container classes like fl_BlockLayout), not the physical hierarchy.

References fp_Container::setNext(), fp_Container::setPrev(), and xxx_UT_DEBUGMSG.


Member Function Documentation

void fp_CellContainer::clearSelection ( void   )  [inline]
bool fp_CellContainer::containsNestedTables ( void   )  const
bool fp_CellContainer::doesIntersectClip ( fp_TableContainer pBroke,
const UT_Rect rClip 
) const

Returns true if the cell in a broken table overlaps the supplied clip Rect

References _getBrokenRect(), fp_ContainerObject::getGraphics(), and UT_Rect::intersectsRect().

Referenced by fp_TableContainer::_brokenDraw().

virtual void fp_CellContainer::draw ( GR_Graphics  )  [inline, virtual]

Reimplemented from fp_VerticalContainer.

void fp_CellContainer::drawBroken ( dg_DrawArgs pDA,
fp_TableContainer pBroke 
)

Draw container content visible within the supplied broken table

Parameters:
pDA Draw arguments
pBroke broken table that cell is part of

References _drawBoundaries(), _getBrokenRect(), fp_VerticalContainer::_getMaxContainerHeight(), dg_DrawArgs::bDirtyRunsOnly, fl_SectionLayout::clearNeedsRedraw(), fp_Container::countCons(), GR_Graphics::DGP_SCREEN, fp_ContainerObject::draw(), fp_TableContainer::draw(), drawLines(), fp_Page::expandDamageRect(), FG_FILL_IMAGE, fg_FillType::Fill(), GR_Painter::fillRect(), fl_DocSectionLayout::getActualColumnHeight(), getBottomAttach(), fp_ContainerObject::getBreakTick(), fp_TableContainer::getCellAtRowColumn(), GR_Graphics::getClipRect(), FV_View::getColorSelBackground(), fp_Container::getContainer(), fp_ContainerObject::getContainerType(), fp_Page::getDocLayout(), fl_ContainerLayout::getDocSectionLayout(), fp_Container::getFillType(), fp_TableContainer::getFirstBrokenTable(), fp_TableContainer::getHeight(), fp_ContainerObject::getHeight(), fp_VerticalContainer::getHeight(), getLeftAttach(), getLeftTopOffsets(), fp_TableContainer::getMasterTable(), fp_Container::getNthCon(), fp_Container::getPage(), fp_Page::getPageNumber(), FV_View::getPageViewLeftMargin(), getRightAttach(), fp_ContainerObject::getSectionLayout(), getTopAttach(), FL_DocLayout::getView(), fp_VerticalContainer::getWidth(), FV_View::getWidthPagesInRow(), fp_ContainerObject::getX(), fp_VerticalContainer::getX(), fp_ContainerObject::getY(), fp_VerticalContainer::getY(), fp_TableContainer::getYBreak(), UT_Rect::height, fp_TableContainer::isInBrokenTable(), fp_TableContainer::isThisBroken(), UT_Rect::left, m_bBgDirty, m_bDirty, m_bDrawBot, m_bDrawLeft, m_bDrawRight, m_bDrawTop, m_bIsSelected, dg_DrawArgs::pG, GR_Graphics::queryProperties(), fp_ContainerObject::setBreakTick(), fl_SectionLayout::setImageHeight(), fl_SectionLayout::setImageWidth(), fp_TableContainer::setRedrawLines(), fg_FillType::setWidthHeight(), fp_TableContainer::setY(), GR_Graphics::tlu(), UT_Rect::top, UT_ASSERT, UT_DEBUGMSG, UT_MAX, fp_TableContainer::VBreakAt(), UT_Rect::width, dg_DrawArgs::xoff, xxx_UT_DEBUGMSG, and dg_DrawArgs::yoff.

Referenced by fp_TableContainer::_brokenDraw(), draw(), and drawSelectedCell().

void fp_CellContainer::drawLinesAdjacent ( void   ) 

| |_

Extend the cell line at the left top corner if needed

Draw lines around neighbouring cells. Use to fix artifacts of editting.

References drawLines(), fp_TableContainer::getCellAtRowColumn(), fp_Container::getContainer(), fp_TableContainer::getFirstBrokenTable(), fp_ContainerObject::getGraphics(), getLeftAttach(), fp_Container::getNext(), getRightAttach(), and getTopAttach().

Referenced by FV_View::_drawOrClearBetweenPositions(), and fp_Line::draw().

void fp_CellContainer::extendBotLeft ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextLeft 
)
void fp_CellContainer::extendBotRight ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextRight 
)
void fp_CellContainer::extendLeftBot ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextBot 
)
void fp_CellContainer::extendLeftTop ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextTop 
)
void fp_CellContainer::extendRightBot ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextBot 
)
void fp_CellContainer::extendRightTop ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextTop 
)
void fp_CellContainer::extendTopLeft ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextLeft 
)
void fp_CellContainer::extendTopRight ( PP_PropertyMap::Line line,
GR_Graphics pG,
UT_sint32 iextRight 
)
PP_PropertyMap::Line fp_CellContainer::getBottomStyle ( const fl_TableLayout table  )  const
UT_sint32 fp_CellContainer::getCellX ( fp_Line pLine  )  const

Return the x coordinate offset of this cell. We need to know the line for situations where the cell is broken over different pages.

UT_sint32 fp_CellContainer::getCellY ( fp_Line pLine  )  const

Return the y coordinate offset of this cell. We need to know the line for situations where the cell is broken over different pages.

References getTopmostTable(), and fp_VerticalContainer::getY().

fp_Container * fp_CellContainer::getFirstContainerInBrokenTable ( const fp_TableContainer pBroke  )  const
UT_sint32 fp_CellContainer::getLeftPos ( void   )  const [inline]
PP_PropertyMap::Line fp_CellContainer::getLeftStyle ( const fl_TableLayout table  )  const
UT_sint32 fp_CellContainer::getRightPos ( void   )  const [inline]
PP_PropertyMap::Line fp_CellContainer::getRightStyle ( const fl_TableLayout table  )  const
void fp_CellContainer::getScreenPositions ( fp_TableContainer pBroke,
GR_Graphics pG,
UT_sint32 iLeft,
UT_sint32 iRight,
UT_sint32 iTop,
UT_sint32 iBot,
UT_sint32 col_y,
fp_Column *&  pCol,
fp_ShadowContainer *&  pShadow,
bool &  bDoClear 
) const
UT_sint32 fp_CellContainer::getStartY ( void   )  const [inline]
UT_sint32 fp_CellContainer::getStopY ( void   )  const [inline]
fp_TableContainer * fp_CellContainer::getTopmostTable ( void   )  const

Return the topmost table in this structure. The one embedded in the column.

References fp_Container::getContainer(), fp_ContainerObject::getContainerType(), UT_ASSERT, and UT_SHOULD_NOT_HAPPEN.

Referenced by getCellY().

PP_PropertyMap::Line fp_CellContainer::getTopStyle ( const fl_TableLayout table  )  const
bool fp_CellContainer::getXexpand ( void   )  const [inline]
bool fp_CellContainer::getXfill ( void   )  const [inline]
bool fp_CellContainer::getXshrink ( void   )  const [inline]
bool fp_CellContainer::getYexpand ( void   )  const [inline]
bool fp_CellContainer::getYfill ( void   )  const [inline]
bool fp_CellContainer::getYshrink ( void   )  const [inline]
virtual fp_ContainerObject* fp_CellContainer::HBreakAt ( UT_sint32   )  [inline, virtual]

Reimplemented from fp_VerticalContainer.

bool fp_CellContainer::isDirty ( void   )  const [inline]
virtual bool fp_CellContainer::isHBreakable ( void   )  [inline, virtual]

Reimplemented from fp_VerticalContainer.

bool fp_CellContainer::isInNestedTable ( void   )  const
bool fp_CellContainer::isRepeated ( void   )  const

References m_bIsRepeated.

Referenced by Defun_EV_GetMenuItemState_Fn().

bool fp_CellContainer::isSelected ( void   )  const [inline]
bool fp_CellContainer::isVBreakable ( void   )  [virtual]

Returns true since cells can be broken vertically.

Reimplemented from fp_VerticalContainer.

void fp_CellContainer::markAsDirty ( void   )  [inline]
void fp_CellContainer::recalcMaxWidth ( bool  bDontClearIfNeeded = false  )  [inline, virtual]

Reimplemented from fp_VerticalContainer.

References UT_UNUSED.

virtual void fp_CellContainer::setAssignedScreenHeight ( UT_sint32   )  [inline, virtual]

Reimplemented from fp_VerticalContainer.

void fp_CellContainer::setBotPad ( UT_sint32  i  )  [inline]
void fp_CellContainer::setBottomAttach ( UT_sint32  i  )  [inline]
void fp_CellContainer::setBottomStyle ( const PP_PropertyMap::Line style  )  [inline]
void fp_CellContainer::setContainer ( fp_Container pContainer  )  [virtual]
void fp_CellContainer::setLeftAttach ( UT_sint32  i  )  [inline]
void fp_CellContainer::setLeftPad ( UT_sint32  i  )  [inline]
void fp_CellContainer::setLeftStyle ( const PP_PropertyMap::Line style  )  [inline]
void fp_CellContainer::setLineMarkers ( void   ) 
void fp_CellContainer::setRightAttach ( UT_sint32  i  )  [inline]
void fp_CellContainer::setRightPad ( UT_sint32  i  )  [inline]
void fp_CellContainer::setRightStyle ( const PP_PropertyMap::Line style  )  [inline]
void fp_CellContainer::setTopAttach ( UT_sint32  i  )  [inline]
void fp_CellContainer::setTopPad ( UT_sint32  i  )  [inline]
void fp_CellContainer::setTopStyle ( const PP_PropertyMap::Line style  )  [inline]
void fp_CellContainer::setVertAlign ( UT_sint32  i  )  [inline]
void fp_CellContainer::setXexpand ( bool  b  )  [inline]
void fp_CellContainer::setXfill ( bool  b  )  [inline]
void fp_CellContainer::setXshrink ( bool  b  )  [inline]
void fp_CellContainer::setYexpand ( bool  b  )  [inline]
void fp_CellContainer::setYfill ( bool  b  )  [inline]
void fp_CellContainer::setYshrink ( bool  b  )  [inline]
void fp_CellContainer::sizeAllocate ( fp_Allocation pAllocate  ) 
virtual UT_sint32 fp_CellContainer::wantHBreakAt ( UT_sint32   )  [inline, virtual]

Reimplemented from fp_VerticalContainer.


Member Data Documentation

Referenced by draw(), drawBroken(), and drawLines().

Referenced by draw(), drawBroken(), and drawLines().

Referenced by drawBroken(), and drawLines().

Referenced by draw(), drawBroken(), and drawLines().

Referenced by isRepeated().


The documentation for this class was generated from the following files: