| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fde/tto/fde_textout.h" | 7 #include "xfa/fde/tto/fde_textout.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 772 if (!m_pRenderDevice) | 772 if (!m_pRenderDevice) |
| 773 return; | 773 return; |
| 774 | 774 |
| 775 int32_t iLines = m_ttoLines.GetSize(); | 775 int32_t iLines = m_ttoLines.GetSize(); |
| 776 if (iLines < 1) | 776 if (iLines < 1) |
| 777 return; | 777 return; |
| 778 | 778 |
| 779 CFDE_Brush* pBrush = new CFDE_Brush; | 779 CFDE_Brush* pBrush = new CFDE_Brush; |
| 780 pBrush->SetColor(m_TxtColor); | 780 pBrush->SetColor(m_TxtColor); |
| 781 CFDE_Pen* pPen = NULL; | 781 CFDE_Pen* pPen = NULL; |
| 782 FDE_HDEVICESTATE hDev = m_pRenderDevice->SaveState(); | 782 m_pRenderDevice->SaveState(); |
| 783 if (rtClip.Width() > 0.0f && rtClip.Height() > 0.0f) { | 783 if (rtClip.Width() > 0.0f && rtClip.Height() > 0.0f) { |
| 784 m_pRenderDevice->SetClipRect(rtClip); | 784 m_pRenderDevice->SetClipRect(rtClip); |
| 785 } | 785 } |
| 786 for (int32_t i = 0; i < iLines; i++) { | 786 for (int32_t i = 0; i < iLines; i++) { |
| 787 CFDE_TTOLine* pLine = m_ttoLines.GetPtrAt(i); | 787 CFDE_TTOLine* pLine = m_ttoLines.GetPtrAt(i); |
| 788 int32_t iPieces = pLine->GetSize(); | 788 int32_t iPieces = pLine->GetSize(); |
| 789 for (int32_t j = 0; j < iPieces; j++) { | 789 for (int32_t j = 0; j < iPieces; j++) { |
| 790 FDE_TTOPIECE* pPiece = pLine->GetPtrAt(j); | 790 FDE_TTOPIECE* pPiece = pLine->GetPtrAt(j); |
| 791 if (pPiece == NULL) { | 791 if (pPiece == NULL) { |
| 792 continue; | 792 continue; |
| 793 } | 793 } |
| 794 int32_t iCount = GetDisplayPos(pPiece); | 794 int32_t iCount = GetDisplayPos(pPiece); |
| 795 if (iCount > 0) { | 795 if (iCount > 0) { |
| 796 m_pRenderDevice->DrawString(pBrush, m_pFont, m_pCharPos, iCount, | 796 m_pRenderDevice->DrawString(pBrush, m_pFont, m_pCharPos, iCount, |
| 797 m_fFontSize, &m_Matrix); | 797 m_fFontSize, &m_Matrix); |
| 798 } | 798 } |
| 799 DrawLine(pPiece, pPen); | 799 DrawLine(pPiece, pPen); |
| 800 } | 800 } |
| 801 } | 801 } |
| 802 m_pRenderDevice->RestoreState(hDev); | 802 m_pRenderDevice->RestoreState(); |
| 803 delete pBrush; | 803 delete pBrush; |
| 804 delete pPen; | 804 delete pPen; |
| 805 } | 805 } |
| 806 | 806 |
| 807 int32_t CFDE_TextOut::GetDisplayPos(FDE_TTOPIECE* pPiece) { | 807 int32_t CFDE_TextOut::GetDisplayPos(FDE_TTOPIECE* pPiece) { |
| 808 FX_TXTRUN tr = ToTextRun(pPiece); | 808 FX_TXTRUN tr = ToTextRun(pPiece); |
| 809 ExpandBuffer(tr.iLength, 2); | 809 ExpandBuffer(tr.iLength, 2); |
| 810 return m_pTxtBreak->GetDisplayPos(&tr, m_pCharPos); | 810 return m_pTxtBreak->GetDisplayPos(&tr, m_pCharPos); |
| 811 } | 811 } |
| 812 | 812 |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 935 return NULL; | 935 return NULL; |
| 936 } | 936 } |
| 937 return m_pieces.GetPtrAt(index); | 937 return m_pieces.GetPtrAt(index); |
| 938 } | 938 } |
| 939 void CFDE_TTOLine::RemoveLast(int32_t iCount) { | 939 void CFDE_TTOLine::RemoveLast(int32_t iCount) { |
| 940 m_pieces.RemoveLast(iCount); | 940 m_pieces.RemoveLast(iCount); |
| 941 } | 941 } |
| 942 void CFDE_TTOLine::RemoveAll(FX_BOOL bLeaveMemory) { | 942 void CFDE_TTOLine::RemoveAll(FX_BOOL bLeaveMemory) { |
| 943 m_pieces.RemoveAll(bLeaveMemory); | 943 m_pieces.RemoveAll(bLeaveMemory); |
| 944 } | 944 } |
| OLD | NEW |