Exemplo n.º 1
0
int32_t CXFA_RenderContext::DoRender(IFX_Pause* pPause) {
  int32_t iCount = 0;
  while (m_pWidget) {
    CXFA_FFWidget* pWidget = m_pWidget;
    CFX_RectF rtWidgetBox;
    pWidget->GetBBox(rtWidgetBox, XFA_WidgetStatus_Visible);
    rtWidgetBox.width += 1;
    rtWidgetBox.height += 1;
    if (rtWidgetBox.IntersectWith(m_rtClipRect))
      pWidget->RenderWidget(m_pGS, &m_matrix, m_dwStatus);
    m_pWidget = m_pWidgetIterator->MoveToNext();
    iCount++;
    if (iCount > kMaxCount && pPause && pPause->NeedToPauseNow())
      return XFA_RENDERSTATUS_ToBeContinued;
  }
  return XFA_RENDERSTATUS_Done;
}