14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2016 PDFium Authors. All rights reserved.
24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be
34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file.
44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann/*
74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * Copyright 2011 ZXing authors
84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann *
94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * Licensed under the Apache License, Version 2.0 (the "License");
104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * you may not use this file except in compliance with the License.
114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * You may obtain a copy of the License at
124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann *
134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann *      http://www.apache.org/licenses/LICENSE-2.0
144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann *
154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * Unless required by applicable law or agreed to in writing, software
164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * distributed under the License is distributed on an "AS IS" BASIS,
174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * See the License for the specific language governing permissions and
194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann * limitations under the License.
204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann */
214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxbarcode/cbc_onecode.h"
234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxbarcode/oned/BC_OneDimWriter.h"
254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCBC_OneCode::CBC_OneCode(CBC_Writer* pWriter) : CBC_CodeBase(pWriter) {}
274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCBC_OneCode::~CBC_OneCode() {}
294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CBC_OneCode::CheckContentValidity(const CFX_WideStringC& contents) {
314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return m_pBCWriter &&
324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann         static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())
334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann             ->CheckContentValidity(contents);
344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCFX_WideString CBC_OneCode::FilterContents(const CFX_WideStringC& contents) {
374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (!m_pBCWriter)
384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    return CFX_WideString();
394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())
404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann      ->FilterContents(contents);
414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CBC_OneCode::SetPrintChecksum(bool checksum) {
444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (m_pBCWriter)
454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())
464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann        ->SetPrintChecksum(checksum);
474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CBC_OneCode::SetDataLength(int32_t length) {
504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (m_pBCWriter)
514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())->SetDataLength(length);
524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CBC_OneCode::SetCalChecksum(bool calc) {
554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (m_pBCWriter)
564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())->SetCalcChecksum(calc);
574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CBC_OneCode::SetFont(CFX_Font* cFont) {
604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (m_pBCWriter)
614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    return static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())->SetFont(cFont);
624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CBC_OneCode::SetFontSize(FX_FLOAT size) {
664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (m_pBCWriter)
674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())->SetFontSize(size);
684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CBC_OneCode::SetFontStyle(int32_t style) {
714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (m_pBCWriter)
724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())->SetFontStyle(style);
734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CBC_OneCode::SetFontColor(FX_ARGB color) {
764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (m_pBCWriter)
774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())->SetFontColor(color);
784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
79