Home | History | Annotate | Download | only in fxgraphics
      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