• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
CXFA_GEColor()9 CXFA_GEColor::CXFA_GEColor() : m_type(Invalid) {}
10 
CXFA_GEColor(const FX_ARGB argb)11 CXFA_GEColor::CXFA_GEColor(const FX_ARGB argb) : m_type(Solid), m_argb(argb) {
12   m_pointer.pattern = nullptr;
13 }
14 
CXFA_GEColor(CXFA_GEPattern * pattern,const FX_ARGB argb)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 
CXFA_GEColor(CXFA_GEShading * shading)20 CXFA_GEColor::CXFA_GEColor(CXFA_GEShading* shading)
21     : m_type(Shading), m_argb(0) {
22   m_pointer.shading = shading;
23 }
24 
~CXFA_GEColor()25 CXFA_GEColor::~CXFA_GEColor() {}
26 
operator =(const CXFA_GEColor & that)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