1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef CORE_FPDFDOC_CPDF_DEFAULTAPPEARANCE_H_ 8 #define CORE_FPDFDOC_CPDF_DEFAULTAPPEARANCE_H_ 9 10 #include "core/fpdfdoc/cpdf_defaultappearance.h" 11 #include "core/fxcrt/fx_coordinates.h" 12 #include "core/fxcrt/fx_string.h" 13 #include "core/fxcrt/fx_system.h" 14 #include "core/fxge/fx_dib.h" 15 16 enum class BorderStyle { SOLID, DASH, BEVELED, INSET, UNDERLINE }; 17 enum class PaintOperation { STROKE, FILL }; 18 19 class CPDF_DefaultAppearance { 20 public: CPDF_DefaultAppearance()21 CPDF_DefaultAppearance() {} CPDF_DefaultAppearance(const CFX_ByteString & csDA)22 explicit CPDF_DefaultAppearance(const CFX_ByteString& csDA) : m_csDA(csDA) {} 23 CPDF_DefaultAppearance(const CPDF_DefaultAppearance & cDA)24 CPDF_DefaultAppearance(const CPDF_DefaultAppearance& cDA) { 25 m_csDA = cDA.GetStr(); 26 } 27 GetStr()28 CFX_ByteString GetStr() const { return m_csDA; } 29 30 bool HasFont(); 31 CFX_ByteString GetFontString(); 32 void GetFont(CFX_ByteString& csFontNameTag, FX_FLOAT& fFontSize); 33 34 bool HasColor(PaintOperation nOperation = PaintOperation::FILL); 35 CFX_ByteString GetColorString( 36 PaintOperation nOperation = PaintOperation::FILL); 37 void GetColor(int& iColorType, 38 FX_FLOAT fc[4], 39 PaintOperation nOperation = PaintOperation::FILL); 40 void GetColor(FX_ARGB& color, 41 int& iColorType, 42 PaintOperation nOperation = PaintOperation::FILL); 43 44 bool HasTextMatrix(); 45 CFX_ByteString GetTextMatrixString(); 46 CFX_Matrix GetTextMatrix(); 47 48 private: 49 CFX_ByteString m_csDA; 50 }; 51 52 #endif // CORE_FPDFDOC_CPDF_DEFAULTAPPEARANCE_H_ 53