本文整理汇总了C++中FV_View::getVisibleDocumentPagesAndRectangles方法的典型用法代码示例。如果您正苦于以下问题:C++ FV_View::getVisibleDocumentPagesAndRectangles方法的具体用法?C++ FV_View::getVisibleDocumentPagesAndRectangles怎么用?C++ FV_View::getVisibleDocumentPagesAndRectangles使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FV_View
的用法示例。
在下文中一共展示了FV_View::getVisibleDocumentPagesAndRectangles方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isOnScreen
bool fl_ContainerLayout::isOnScreen() const
{
// we check if any of our containers is on screen
// however, we will not call fp_Container::isOnScreen() to avoid
// unnecessary overhead
if(isCollapsed())
return false;
UT_return_val_if_fail(getDocLayout(),false);
FV_View *pView = getDocLayout()->getView();
bool bShowHidden = pView && pView->getShowPara();
bool bHidden = ((m_eHidden == FP_HIDDEN_TEXT && !bShowHidden)
|| m_eHidden == FP_HIDDEN_REVISION
|| m_eHidden == FP_HIDDEN_REVISION_AND_TEXT);
if(bHidden)
return false;
UT_GenericVector<UT_Rect*> vRect;
UT_GenericVector<fp_Page*> vPages;
pView->getVisibleDocumentPagesAndRectangles(vRect, vPages);
UT_uint32 iCount = vPages.getItemCount();
if(!iCount)
return false;
bool bRet = false;
fp_Container * pC = getFirstContainer();
if(!pC)
return false;
fp_Container *pCEnd = getLastContainer();
while(pC)
{
fp_Page * pMyPage = pC->getPage();
if(pMyPage)
{
for(UT_uint32 i = 0; i < iCount; i++)
{
fp_Page * pPage = vPages.getNthItem(i);
if(pPage == pMyPage)
{
UT_Rect r;
UT_Rect *pR = vRect.getNthItem(i);
if(!pC->getPageRelativeOffsets(r))
break;
bRet = r.intersectsRect(pR);
break;
}
}
}
if(bRet || pC == pCEnd)
break;
pC = static_cast<fp_Container*>(pC->getNext());
}
UT_VECTOR_PURGEALL(UT_Rect*,vRect);
return bRet;
}