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 16class CBC_Writer; 17class CBC_Reader; 18class CFX_DIBitmap; 19class CFX_RenderDevice; 20 21class 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