void fl_AnnotationLayout::format(void) { UT_DEBUGMSG(("SEVIOR: Formatting Annotations first container is %p\n", getFirstContainer())); if(getFirstContainer() == NULL) { getNewContainer(); } if(!m_bIsOnPage) { _insertAnnotationContainer(getFirstContainer()); } fl_ContainerLayout* pBL = getFirstLayout(); while (pBL) { pBL->format(); UT_sint32 count = 0; while(pBL->getLastContainer() == NULL || pBL->getFirstContainer()==NULL) { UT_DEBUGMSG(("Error formatting a block try again \n")); count = count + 1; pBL->format(); if(count > 3) { UT_DEBUGMSG(("Give up trying to format. Hope for the best :-( \n")); break; } } pBL = pBL->getNext(); } static_cast<fp_AnnotationContainer *>(getFirstContainer())->layout(); m_bNeedsFormat = false; m_bNeedsReformat = false; }
void fl_EndnoteLayout::format(void) { UT_DEBUGMSG(("SEVIOR: Formatting Endnote first container is %p \n",getFirstContainer())); if(getFirstContainer() == NULL) { getNewContainer(); } if(!m_bIsOnPage) { _insertEndnoteContainer(getFirstContainer()); } fl_ContainerLayout* pBL = getFirstLayout(); while (pBL) { pBL->format(); UT_sint32 count = 0; while(pBL->getLastContainer() == NULL || pBL->getFirstContainer()==NULL) { UT_DEBUGMSG(("Error formatting a block try again \n")); count = count + 1; pBL->format(); if(count > 3) { UT_DEBUGMSG(("Give up trying to format. Hope for the best :-( \n")); break; } } pBL = pBL->getNext(); } static_cast<fp_EndnoteContainer *>(getFirstContainer())->layout(); m_bNeedsFormat = false; m_bNeedsReformat = false; bool bOnPage = (getFirstContainer()->getPage() != NULL); FV_View * pView = NULL; if(m_pLayout) pView = m_pLayout->getView(); if(bOnPage && pView && !pView->isLayoutFilling()) { getDocSectionLayout()->setNeedsSectionBreak(true,NULL); } UT_ASSERT(getFirstContainer()->getPage()); }
void fl_FrameLayout::format(void) { // ingnore frames in normal view mode FV_View * pView = getDocLayout()->getView(); GR_Graphics * pG = getDocLayout()->getGraphics(); UT_return_if_fail( pView && pG ); xxx_UT_DEBUGMSG(("SEVIOR: Formatting first container is %x \n",getFirstContainer())); if(isHidden() > FP_VISIBLE) { xxx_UT_DEBUGMSG(("Don't format FRAME coz I'm hidden! \n")); return; } if(getFirstContainer() == NULL) { getNewContainer(); } fl_ContainerLayout* pBL2 = getFirstLayout(); while (pBL2) { pBL2->format(); UT_sint32 count = 0; while(pBL2->getLastContainer() == NULL || pBL2->getFirstContainer()==NULL) { UT_DEBUGMSG(("Error formatting a block try again \n")); count = count + 1; pBL2->format(); if(count > 3) { UT_DEBUGMSG(("Give up trying to format. Hope for the best :-( \n")); break; } } pBL2 = pBL2->getNext(); } static_cast<fp_FrameContainer *>(getFirstContainer())->layout(); bool bPlacedOnPage = false; if(!m_bIsOnPage) { // // Place it on the correct page. // fl_ContainerLayout * pCL = getPrev(); while(pCL && ((pCL->getContainerType() == FL_CONTAINER_ENDNOTE) || (pCL->getContainerType() == FL_CONTAINER_FOOTNOTE) || (pCL->getContainerType() == FL_CONTAINER_TOC) || (pCL->getContainerType() == FL_CONTAINER_FRAME) )) { pCL = pCL->getPrev(); } if(pCL == NULL) { UT_DEBUGMSG(("No BlockLayout before this frame! \n")); UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); return; } fl_BlockLayout * pBL = NULL; if(pCL->getContainerType() != FL_CONTAINER_BLOCK) { pCL = pCL->getPrevBlockInDocument(); pBL = static_cast<fl_BlockLayout *>(pCL); } else { pBL = static_cast<fl_BlockLayout *>(pCL); } UT_return_if_fail(pBL); UT_sint32 count = pBL->getNumFrames(); if(count == 0) { UT_DEBUGMSG(("BlockLayout does not contain this frame! \n")); UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); return; } UT_sint32 i =0; for(i=0; i<count; i++) { fl_FrameLayout * pFL = pBL->getNthFrameLayout(i); if(pFL == this) { break; } } if(count == i) { UT_DEBUGMSG(("BlockLayout does not contain this frame! \n")); UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); return; } if(!pBL->isCollapsed()) { m_bIsOnPage = pBL->setFramesOnPage(NULL); if(!m_bIsOnPage) { setNeedsReformat(this); } } if(m_bIsOnPage) bPlacedOnPage = true; } m_bNeedsFormat = m_bIsOnPage; m_bNeedsReformat = m_bIsOnPage; if(!m_bIsOnPage) { setNeedsReformat(this); } if(!m_bIsOnPage) { return; } if(bPlacedOnPage) { fl_DocSectionLayout * pDSL = getDocSectionLayout(); fp_FrameContainer * pFC = static_cast<fp_FrameContainer *>(getFirstContainer()); if(pFC) { pDSL->setNeedsSectionBreak(true,pFC->getPage()); } } }