// Copyright 2016 PDFium Authors. All rights reserved.
// 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_CBC_CODE128_H_
#define FXBARCODE_CBC_CODE128_H_

#include "core/fxcrt/fx_string.h"
#include "fxbarcode/BC_Library.h"
#include "fxbarcode/cbc_onecode.h"

class CBC_OnedCode128Writer;
class CFX_Matrix;

class CBC_Code128 final : public CBC_OneCode {
 public:
  explicit CBC_Code128(BC_TYPE type);
  ~CBC_Code128() override;

  // CBC_OneCode:
  BC_TYPE GetType() override;
  bool Encode(WideStringView contents) override;
  bool RenderDevice(CFX_RenderDevice* device,
                    const CFX_Matrix& matrix) override;

 private:
  CBC_OnedCode128Writer* GetOnedCode128Writer();

  WideString m_renderContents;
};

#endif  // FXBARCODE_CBC_CODE128_H_
