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 #include "xfa/fxgraphics/cxfa_gecolor.h" 8 9 CXFA_GEColor::CXFA_GEColor() : m_type(Invalid) {} 10 11 CXFA_GEColor::CXFA_GEColor(const FX_ARGB argb) : m_type(Solid), m_argb(argb) { 12 m_pointer.pattern = nullptr; 13 } 14 15 CXFA_GEColor::CXFA_GEColor(CXFA_GEPattern* pattern, const FX_ARGB argb) 16 : m_type(Pattern), m_argb(argb) { 17 m_pointer.pattern = pattern; 18 } 19 20 CXFA_GEColor::CXFA_GEColor(CXFA_GEShading* shading) 21 : m_type(Shading), m_argb(0) { 22 m_pointer.shading = shading; 23 } 24 25 CXFA_GEColor::~CXFA_GEColor() {} 26 27 CXFA_GEColor& CXFA_GEColor::operator=(const CXFA_GEColor& that) { 28 if (this != &that) { 29 m_type = that.m_type; 30 switch (m_type) { 31 case Solid: 32 m_argb = that.m_argb; 33 m_pointer.pattern = nullptr; 34 break; 35 case Pattern: 36 m_argb = that.m_argb; 37 m_pointer.pattern = that.m_pointer.pattern; 38 break; 39 case Shading: 40 m_argb = 0; 41 m_pointer.shading = that.m_pointer.shading; 42 default: 43 break; 44 } 45 } 46 return *this; 47 } 48