blob: 7b83fd70d2f8e43d943436f662d835fb9fbc097c [file] [log] [blame]
Dan Sinclaira98600a2016-03-21 15:15:56 -04001// 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
Dan Sinclaire7786682017-03-29 15:18:41 -04007#ifndef FXBARCODE_CBC_CODEBASE_H_
8#define FXBARCODE_CBC_CODEBASE_H_
Dan Sinclaira98600a2016-03-21 15:15:56 -04009
tsepez52d78562016-06-06 12:57:44 -070010#include <memory>
11
dsinclaira52ab742016-09-29 13:59:29 -070012#include "core/fxcrt/fx_system.h"
dsinclair74a34fc2016-09-29 16:41:42 -070013#include "core/fxge/fx_dib.h"
Dan Sinclaire7786682017-03-29 15:18:41 -040014#include "fxbarcode/BC_Library.h"
Dan Sinclaira98600a2016-03-21 15:15:56 -040015
Dan Sinclaira98600a2016-03-21 15:15:56 -040016class CBC_Reader;
Lei Zhang1badb852017-04-20 15:58:56 -070017class CBC_Writer;
Dan Sinclaira98600a2016-03-21 15:15:56 -040018class CFX_DIBitmap;
Lei Zhang1badb852017-04-20 15:58:56 -070019class CFX_Matrix;
Dan Sinclaira98600a2016-03-21 15:15:56 -040020class CFX_RenderDevice;
21
22class CBC_CodeBase {
23 public:
Tom Sepezea23e0a2017-05-01 14:24:19 -070024 explicit CBC_CodeBase(std::unique_ptr<CBC_Writer> pWriter);
Dan Sinclaira98600a2016-03-21 15:15:56 -040025 virtual ~CBC_CodeBase();
26
27 virtual BC_TYPE GetType() = 0;
Lei Zhang1badb852017-04-20 15:58:56 -070028 virtual bool Encode(const CFX_WideStringC& contents, bool isDevice) = 0;
tsepezd19e9122016-11-02 15:43:18 -070029 virtual bool RenderDevice(CFX_RenderDevice* device,
Lei Zhang1badb852017-04-20 15:58:56 -070030 const CFX_Matrix* matrix) = 0;
Dan Sinclaira98600a2016-03-21 15:15:56 -040031
tsepezd19e9122016-11-02 15:43:18 -070032 bool SetCharEncoding(int32_t encoding);
33 bool SetModuleHeight(int32_t moduleHeight);
34 bool SetModuleWidth(int32_t moduleWidth);
35 bool SetHeight(int32_t height);
36 bool SetWidth(int32_t width);
tsepez52d78562016-06-06 12:57:44 -070037 void SetBackgroundColor(FX_ARGB backgroundColor);
38 void SetBarcodeColor(FX_ARGB foregroundColor);
Dan Sinclaira98600a2016-03-21 15:15:56 -040039
40 protected:
tsepez52d78562016-06-06 12:57:44 -070041 std::unique_ptr<CBC_Writer> m_pBCWriter;
Dan Sinclaira98600a2016-03-21 15:15:56 -040042};
43
Dan Sinclaire7786682017-03-29 15:18:41 -040044#endif // FXBARCODE_CBC_CODEBASE_H_