|  | // Copyright 2014 The PDFium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
|  |  | 
|  | #ifndef FXBARCODE_CFX_BARCODE_H_ | 
|  | #define FXBARCODE_CFX_BARCODE_H_ | 
|  |  | 
|  | #include <stdint.h> | 
|  |  | 
|  | #include <memory> | 
|  |  | 
|  | #include "core/fxcrt/widestring.h" | 
|  | #include "core/fxge/dib/fx_dib.h" | 
|  | #include "fxbarcode/BC_Library.h" | 
|  |  | 
|  | class CBC_CodeBase; | 
|  | class CFX_Font; | 
|  | class CFX_RenderDevice; | 
|  | class CFX_Matrix; | 
|  |  | 
|  | class CFX_Barcode { | 
|  | public: | 
|  | ~CFX_Barcode(); | 
|  |  | 
|  | static std::unique_ptr<CFX_Barcode> Create(BC_TYPE type); | 
|  | BC_TYPE GetType(); | 
|  | bool Encode(WideStringView contents); | 
|  |  | 
|  | bool RenderDevice(CFX_RenderDevice* device, const CFX_Matrix& matrix); | 
|  |  | 
|  | bool SetModuleHeight(int32_t moduleHeight); | 
|  | bool SetModuleWidth(int32_t moduleWidth); | 
|  | void SetHeight(int32_t height); | 
|  | void SetWidth(int32_t width); | 
|  |  | 
|  | bool SetPrintChecksum(bool checksum); | 
|  | bool SetDataLength(int32_t length); | 
|  | bool SetCalChecksum(bool state); | 
|  |  | 
|  | bool SetFont(CFX_Font* font); | 
|  | bool SetFontSize(float size); | 
|  | bool SetFontColor(FX_ARGB color); | 
|  |  | 
|  | void SetTextLocation(BC_TEXT_LOC location); | 
|  | bool SetWideNarrowRatio(int8_t ratio); | 
|  | bool SetStartChar(char start); | 
|  | bool SetEndChar(char end); | 
|  | bool SetErrorCorrectionLevel(int32_t level); | 
|  |  | 
|  | private: | 
|  | CFX_Barcode(); | 
|  |  | 
|  | std::unique_ptr<CBC_CodeBase> bc_engine_; | 
|  | }; | 
|  |  | 
|  | #endif  // FXBARCODE_CFX_BARCODE_H_ |