| 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/fxfa/app/xfa_textlayout.h" | 7 #include "xfa/fxfa/app/xfa_textlayout.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| 11 #include "core/fxcrt/include/fx_ext.h" | 11 #include "core/fxcrt/include/fx_ext.h" |
| 12 #include "xfa/fde/css/fde_csscache.h" |
| 12 #include "xfa/fde/fde_pen.h" | 13 #include "xfa/fde/fde_pen.h" |
| 13 #include "xfa/fde/xml/fde_xml_imp.h" | 14 #include "xfa/fde/xml/fde_xml_imp.h" |
| 14 #include "xfa/fgas/crt/fgas_algorithm.h" | 15 #include "xfa/fgas/crt/fgas_algorithm.h" |
| 15 #include "xfa/fgas/crt/fgas_codepage.h" | 16 #include "xfa/fgas/crt/fgas_codepage.h" |
| 16 #include "xfa/fxfa/app/xfa_ffwidgetacc.h" | 17 #include "xfa/fxfa/app/xfa_ffwidgetacc.h" |
| 17 #include "xfa/fxfa/include/xfa_ffapp.h" | 18 #include "xfa/fxfa/include/xfa_ffapp.h" |
| 18 #include "xfa/fxfa/include/xfa_ffdoc.h" | 19 #include "xfa/fxfa/include/xfa_ffdoc.h" |
| 19 #include "xfa/fxfa/include/xfa_fontmgr.h" | 20 #include "xfa/fxfa/include/xfa_fontmgr.h" |
| 20 | 21 |
| 21 CXFA_CSSTagProvider::~CXFA_CSSTagProvider() { | 22 CXFA_CSSTagProvider::~CXFA_CSSTagProvider() { |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 m_mapXMLNodeToParseContext.GetValueAt(pXMLNode)); | 219 m_mapXMLNodeToParseContext.GetValueAt(pXMLNode)); |
| 219 if (!pContext) | 220 if (!pContext) |
| 220 return nullptr; | 221 return nullptr; |
| 221 pContext->m_pParentStyle = pParentStyle; | 222 pContext->m_pParentStyle = pParentStyle; |
| 222 pParentStyle->AddRef(); | 223 pParentStyle->AddRef(); |
| 223 CXFA_CSSTagProvider tagProvider; | 224 CXFA_CSSTagProvider tagProvider; |
| 224 ParseTagInfo(pXMLNode, tagProvider); | 225 ParseTagInfo(pXMLNode, tagProvider); |
| 225 if (tagProvider.m_bContent) | 226 if (tagProvider.m_bContent) |
| 226 return nullptr; | 227 return nullptr; |
| 227 IFDE_CSSComputedStyle* pStyle = CreateStyle(pParentStyle); | 228 IFDE_CSSComputedStyle* pStyle = CreateStyle(pParentStyle); |
| 228 IFDE_CSSAccelerator* pCSSAccel = m_pSelector->InitAccelerator(); | 229 CFDE_CSSAccelerator* pCSSAccel = m_pSelector->InitAccelerator(); |
| 229 pCSSAccel->OnEnterTag(&tagProvider); | 230 pCSSAccel->OnEnterTag(&tagProvider); |
| 230 m_pSelector->ComputeStyle(&tagProvider, pContext->GetDecls(), | 231 m_pSelector->ComputeStyle(&tagProvider, pContext->GetDecls(), |
| 231 pContext->CountDecls(), pStyle); | 232 pContext->CountDecls(), pStyle); |
| 232 pCSSAccel->OnLeaveTag(&tagProvider); | 233 pCSSAccel->OnLeaveTag(&tagProvider); |
| 233 return pStyle; | 234 return pStyle; |
| 234 } | 235 } |
| 235 void CXFA_TextParser::DoParse(CFDE_XMLNode* pXMLContainer, | 236 void CXFA_TextParser::DoParse(CFDE_XMLNode* pXMLContainer, |
| 236 CXFA_TextProvider* pTextProvider) { | 237 CXFA_TextProvider* pTextProvider) { |
| 237 if (pXMLContainer == NULL || pTextProvider == NULL || m_pAllocator) { | 238 if (pXMLContainer == NULL || pTextProvider == NULL || m_pAllocator) { |
| 238 return; | 239 return; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 255 return; | 256 return; |
| 256 } | 257 } |
| 257 IFDE_CSSComputedStyle* pNewStyle = NULL; | 258 IFDE_CSSComputedStyle* pNewStyle = NULL; |
| 258 if ((tagProvider.GetTagName() != FX_WSTRC(L"body")) || | 259 if ((tagProvider.GetTagName() != FX_WSTRC(L"body")) || |
| 259 (tagProvider.GetTagName() != FX_WSTRC(L"html"))) { | 260 (tagProvider.GetTagName() != FX_WSTRC(L"html"))) { |
| 260 CXFA_TextParseContext* pTextContext = | 261 CXFA_TextParseContext* pTextContext = |
| 261 FXTARGET_NewWith(m_pAllocator) CXFA_TextParseContext; | 262 FXTARGET_NewWith(m_pAllocator) CXFA_TextParseContext; |
| 262 FDE_CSSDISPLAY eDisplay = FDE_CSSDISPLAY_Inline; | 263 FDE_CSSDISPLAY eDisplay = FDE_CSSDISPLAY_Inline; |
| 263 if (!tagProvider.m_bContent) { | 264 if (!tagProvider.m_bContent) { |
| 264 pNewStyle = CreateStyle(pParentStyle); | 265 pNewStyle = CreateStyle(pParentStyle); |
| 265 IFDE_CSSAccelerator* pCSSAccel = m_pSelector->InitAccelerator(); | 266 CFDE_CSSAccelerator* pCSSAccel = m_pSelector->InitAccelerator(); |
| 266 pCSSAccel->OnEnterTag(&tagProvider); | 267 pCSSAccel->OnEnterTag(&tagProvider); |
| 267 CFDE_CSSDeclarationArray DeclArray; | 268 CFDE_CSSDeclarationArray DeclArray; |
| 268 int32_t iMatchedDecls = | 269 int32_t iMatchedDecls = |
| 269 m_pSelector->MatchDeclarations(&tagProvider, DeclArray); | 270 m_pSelector->MatchDeclarations(&tagProvider, DeclArray); |
| 270 const IFDE_CSSDeclaration** ppMatchDecls = | 271 const IFDE_CSSDeclaration** ppMatchDecls = |
| 271 (const IFDE_CSSDeclaration**)DeclArray.GetData(); | 272 (const IFDE_CSSDeclaration**)DeclArray.GetData(); |
| 272 m_pSelector->ComputeStyle(&tagProvider, ppMatchDecls, iMatchedDecls, | 273 m_pSelector->ComputeStyle(&tagProvider, ppMatchDecls, iMatchedDecls, |
| 273 pNewStyle); | 274 pNewStyle); |
| 274 pCSSAccel->OnLeaveTag(&tagProvider); | 275 pCSSAccel->OnLeaveTag(&tagProvider); |
| 275 if (iMatchedDecls > 0) { | 276 if (iMatchedDecls > 0) { |
| (...skipping 1715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1991 tr.iLength = iLength; | 1992 tr.iLength = iLength; |
| 1992 tr.fFontSize = pPiece->fFontSize; | 1993 tr.fFontSize = pPiece->fFontSize; |
| 1993 tr.iBidiLevel = pPiece->iBidiLevel; | 1994 tr.iBidiLevel = pPiece->iBidiLevel; |
| 1994 tr.iCharRotation = 0; | 1995 tr.iCharRotation = 0; |
| 1995 tr.wLineBreakChar = L'\n'; | 1996 tr.wLineBreakChar = L'\n'; |
| 1996 tr.iVerticalScale = pPiece->iVerScale; | 1997 tr.iVerticalScale = pPiece->iVerScale; |
| 1997 tr.dwLayoutStyles = FX_RTFLAYOUTSTYLE_ExpandTab; | 1998 tr.dwLayoutStyles = FX_RTFLAYOUTSTYLE_ExpandTab; |
| 1998 tr.iHorizontalScale = pPiece->iHorScale; | 1999 tr.iHorizontalScale = pPiece->iHorScale; |
| 1999 return TRUE; | 2000 return TRUE; |
| 2000 } | 2001 } |
| OLD | NEW |