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_FXBARCODE_CBC_CODEBASE_H_ 8 #define XFA_FXBARCODE_CBC_CODEBASE_H_ 9 10 #include <memory> 11 12 #include "core/fxcrt/fx_system.h" 13 #include "core/fxge/fx_dib.h" 14 #include "xfa/fxbarcode/BC_Library.h" 15 16 class CBC_Writer; 17 class CBC_Reader; 18 class CFX_DIBitmap; 19 class CFX_RenderDevice; 20 21 class CBC_CodeBase { 22 public: 23 explicit CBC_CodeBase(CBC_Writer* pWriter); 24 virtual ~CBC_CodeBase(); 25 26 virtual BC_TYPE GetType() = 0; 27 virtual bool Encode(const CFX_WideStringC& contents, 28 bool isDevice, 29 int32_t& e) = 0; 30 virtual bool RenderDevice(CFX_RenderDevice* device, 31 const CFX_Matrix* matrix, 32 int32_t& e) = 0; 33 virtual bool RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e) = 0; 34 35 bool SetCharEncoding(int32_t encoding); 36 bool SetModuleHeight(int32_t moduleHeight); 37 bool SetModuleWidth(int32_t moduleWidth); 38 bool SetHeight(int32_t height); 39 bool SetWidth(int32_t width); 40 void SetBackgroundColor(FX_ARGB backgroundColor); 41 void SetBarcodeColor(FX_ARGB foregroundColor); 42 43 protected: 44 std::unique_ptr<CBC_Writer> m_pBCWriter; 45 }; 46 47 #endif // XFA_FXBARCODE_CBC_CODEBASE_H_ 48