/*! * This method sets the height and width of the preview from * the size of the comment in the annotation. */ void AP_Preview_Annotation::setSizeFromAnnotation(void) { FV_View * pView = static_cast<FV_View *>(getActiveFrame()->getCurrentView()); GR_Graphics * pG = NULL; UT_return_if_fail(pView); pG = pView->getGraphics(); UT_return_if_fail(pG); GR_Font * pFont = pG->findFont("Times New Roman", "normal", "normal", "normal", "normal", "12pt", NULL); UT_return_if_fail(pFont); double rat = 100./static_cast<double>(pG->getZoomPercentage()); UT_sint32 iHeight = pG->getFontAscent(pFont) + pG->tlu(7); iHeight = static_cast<UT_sint32>(static_cast<double>(iHeight)); m_drawString = m_sDescription; UT_sint32 len = m_drawString.size(); pG->setFont(pFont); UT_sint32 iwidth = pG->measureString(m_drawString.ucs4_str(),0,len,NULL) + pG->tlu(6); iwidth = static_cast<UT_sint32>(static_cast<double>(iwidth)); m_width = static_cast<UT_sint32>(static_cast<double>(pG->tdu(iwidth))*rat); m_height = static_cast<UT_sint32>(static_cast<double>(pG->tdu(iHeight))*rat); if(pG->tdu(pView->getWindowWidth()) < m_width) m_width = pG->tdu(pView->getWindowWidth()); UT_DEBUGMSG(("SetSize from Annotation width %d rat %f \n",m_width,rat)); }
bool Presentation::drawNthPage(UT_sint32 iPage) { GR_Graphics * pG = m_pView->getGraphics(); GR_Painter p(pG); #if USE_PIXMAP GR_Image * pImage = renderPageToImage(iPage,pG->getZoomPercentage()); UT_DEBUGMSG(("Image Display Width %d Image Display Height %d Zoom %d \n",pImage->getDisplayWidth(),pImage->getDisplayHeight(),pG->getZoomPercentage())); p.drawImage(pImage,0,0); delete pImage; #else dg_DrawArgs da; da.pG = pG; da.xoff = 0; da.yoff = 0; m_pView->draw(iPage, &da); fp_Page * pPage = m_pView->getLayout()->getNthPage(iPage); UT_sint32 iTotalHeight = (pPage->getHeight() + m_pView->getPageViewSep())*iPage; m_pView->setYScrollOffset(iTotalHeight); if(pG) pG->allCarets()->disable(); #endif return true; }