Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: xfa/fde/tto/fde_textout.cpp

Issue 1877383002: Only SolidBrush types are created, remove other brushes. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fde/fde_render.cpp ('k') | xfa/fxfa/app/xfa_textlayout.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
11 #include "core/fxcrt/include/fx_coordinates.h" 11 #include "core/fxcrt/include/fx_coordinates.h"
12 #include "core/fxcrt/include/fx_system.h" 12 #include "core/fxcrt/include/fx_system.h"
13 #include "xfa/fde/fde_brush.h" 13 #include "xfa/fde/fde_brush.h"
14 #include "xfa/fde/fde_object.h"
14 #include "xfa/fde/fde_pen.h" 15 #include "xfa/fde/fde_pen.h"
15 #include "xfa/fde/fde_renderdevice.h" 16 #include "xfa/fde/fde_renderdevice.h"
16 #include "xfa/fgas/crt/fgas_memory.h" 17 #include "xfa/fgas/crt/fgas_memory.h"
17 #include "xfa/fgas/crt/fgas_utils.h" 18 #include "xfa/fgas/crt/fgas_utils.h"
18 #include "xfa/fgas/layout/fgas_textbreak.h" 19 #include "xfa/fgas/layout/fgas_textbreak.h"
19 20
20 namespace { 21 namespace {
21 22
22 struct FDE_TTOPIECE { 23 struct FDE_TTOPIECE {
23 public: 24 public:
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 } 944 }
944 } 945 }
945 void CFDE_TextOut::OnDraw(const CFX_RectF& rtClip) { 946 void CFDE_TextOut::OnDraw(const CFX_RectF& rtClip) {
946 if (m_pRenderDevice == NULL) { 947 if (m_pRenderDevice == NULL) {
947 return; 948 return;
948 } 949 }
949 int32_t iLines = m_ttoLines.GetSize(); 950 int32_t iLines = m_ttoLines.GetSize();
950 if (iLines < 1) { 951 if (iLines < 1) {
951 return; 952 return;
952 } 953 }
953 IFDE_SolidBrush* pBrush = 954 IFDE_SolidBrush* pBrush = new CFDE_SolidBrush;
954 (IFDE_SolidBrush*)IFDE_Brush::Create(FDE_BRUSHTYPE_Solid);
955 pBrush->SetColor(m_TxtColor); 955 pBrush->SetColor(m_TxtColor);
956 IFDE_Pen* pPen = NULL; 956 IFDE_Pen* pPen = NULL;
957 FDE_HDEVICESTATE hDev = m_pRenderDevice->SaveState(); 957 FDE_HDEVICESTATE hDev = m_pRenderDevice->SaveState();
958 if (rtClip.Width() > 0.0f && rtClip.Height() > 0.0f) { 958 if (rtClip.Width() > 0.0f && rtClip.Height() > 0.0f) {
959 m_pRenderDevice->SetClipRect(rtClip); 959 m_pRenderDevice->SetClipRect(rtClip);
960 } 960 }
961 for (int32_t i = 0; i < iLines; i++) { 961 for (int32_t i = 0; i < iLines; i++) {
962 CFDE_TTOLine* pLine = m_ttoLines.GetPtrAt(i); 962 CFDE_TTOLine* pLine = m_ttoLines.GetPtrAt(i);
963 int32_t iPieces = pLine->GetSize(); 963 int32_t iPieces = pLine->GetSize();
964 for (int32_t j = 0; j < iPieces; j++) { 964 for (int32_t j = 0; j < iPieces; j++) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 } 1010 }
1011 void CFDE_TextOut::DrawLine(const FDE_LPTTOPIECE pPiece, IFDE_Pen*& pPen) { 1011 void CFDE_TextOut::DrawLine(const FDE_LPTTOPIECE pPiece, IFDE_Pen*& pPen) {
1012 FX_BOOL bUnderLine = !!(m_dwStyles & FDE_TTOSTYLE_Underline); 1012 FX_BOOL bUnderLine = !!(m_dwStyles & FDE_TTOSTYLE_Underline);
1013 FX_BOOL bStrikeOut = !!(m_dwStyles & FDE_TTOSTYLE_Strikeout); 1013 FX_BOOL bStrikeOut = !!(m_dwStyles & FDE_TTOSTYLE_Strikeout);
1014 FX_BOOL bHotKey = !!(m_dwStyles & FDE_TTOSTYLE_HotKey); 1014 FX_BOOL bHotKey = !!(m_dwStyles & FDE_TTOSTYLE_HotKey);
1015 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout); 1015 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout);
1016 if (!bUnderLine && !bStrikeOut && !bHotKey) { 1016 if (!bUnderLine && !bStrikeOut && !bHotKey) {
1017 return; 1017 return;
1018 } 1018 }
1019 if (pPen == NULL) { 1019 if (pPen == NULL) {
1020 pPen = IFDE_Pen::Create(); 1020 pPen = new CFDE_Pen;
1021 pPen->SetColor(m_TxtColor); 1021 pPen->SetColor(m_TxtColor);
1022 } 1022 }
1023 IFDE_Path* pPath = IFDE_Path::Create(); 1023 IFDE_Path* pPath = IFDE_Path::Create();
1024 int32_t iLineCount = 0; 1024 int32_t iLineCount = 0;
1025 CFX_RectF rtText = pPiece->rtPiece; 1025 CFX_RectF rtText = pPiece->rtPiece;
1026 CFX_PointF pt1, pt2; 1026 CFX_PointF pt1, pt2;
1027 if (bUnderLine) { 1027 if (bUnderLine) {
1028 if (bVertical) { 1028 if (bVertical) {
1029 pt1.x = rtText.left; 1029 pt1.x = rtText.left;
1030 pt1.y = rtText.top; 1030 pt1.y = rtText.top;
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 return NULL; 1111 return NULL;
1112 } 1112 }
1113 return m_pieces.GetPtrAt(index); 1113 return m_pieces.GetPtrAt(index);
1114 } 1114 }
1115 void CFDE_TTOLine::RemoveLast(int32_t iCount) { 1115 void CFDE_TTOLine::RemoveLast(int32_t iCount) {
1116 m_pieces.RemoveLast(iCount); 1116 m_pieces.RemoveLast(iCount);
1117 } 1117 }
1118 void CFDE_TTOLine::RemoveAll(FX_BOOL bLeaveMemory) { 1118 void CFDE_TTOLine::RemoveAll(FX_BOOL bLeaveMemory) {
1119 m_pieces.RemoveAll(bLeaveMemory); 1119 m_pieces.RemoveAll(bLeaveMemory);
1120 } 1120 }
OLDNEW
« no previous file with comments | « xfa/fde/fde_render.cpp ('k') | xfa/fxfa/app/xfa_textlayout.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698