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 XFA_FXGRAPHICS_CFX_COLOR_H_ 8 #define XFA_FXGRAPHICS_CFX_COLOR_H_ 9 10 #include "core/fxge/fx_dib.h" 11 #include "xfa/fxgraphics/cfx_graphics.h" 12 13 class CFX_Pattern; 14 class CFX_Shading; 15 16 enum { FX_COLOR_None = 0, FX_COLOR_Solid, FX_COLOR_Pattern, FX_COLOR_Shading }; 17 18 class CFX_Color { 19 public: 20 CFX_Color(); 21 explicit CFX_Color(const FX_ARGB argb); 22 explicit CFX_Color(CFX_Shading* shading); 23 CFX_Color(CFX_Pattern* pattern, const FX_ARGB argb); 24 virtual ~CFX_Color(); 25 26 void Set(const FX_ARGB argb); 27 void Set(CFX_Pattern* pattern, const FX_ARGB argb); 28 void Set(CFX_Shading* shading); 29 30 private: 31 friend class CFX_Graphics; 32 33 int32_t m_type; 34 union { 35 struct { 36 FX_ARGB argb; 37 CFX_Pattern* pattern; 38 } m_info; 39 CFX_Shading* m_shading; 40 }; 41 }; 42 43 #endif // XFA_FXGRAPHICS_CFX_COLOR_H_ 44