// Copyright 2014 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 _FWL_BARCODE_LIGHT_H #define _FWL_BARCODE_LIGHT_H class CFWL_Widget; class CFWL_WidgetProperties; class IFWL_BarcodeDP; class CFWL_Edit; class CFWL_Barcode; class CFWL_BarcodeDP; class CFWL_Barcode : public CFWL_Edit { public: static CFWL_Barcode* Create(); FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); void SetType(BC_TYPE type); FX_BOOL IsProtectedType(); public: void SetCharEncoding(BC_CHAR_ENCODING encoding) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CHARENCODING; m_barcodeData.m_eCharEncoding = encoding; } void SetModuleHeight(FX_INT32 height) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEHEIGHT; m_barcodeData.m_nModuleHeight = height; } void SetModuleWidth(FX_INT32 width) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEWIDTH; m_barcodeData.m_nModuleWidth = width; } void SetDataLength(FX_INT32 dataLength) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_DATALENGTH; m_barcodeData.m_nDataLength = dataLength; ((IFWL_Barcode*)m_pImp)->SetLimit(dataLength); } void SetCalChecksum(FX_INT32 calChecksum) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CALCHECKSUM; m_barcodeData.m_nCalChecksum = calChecksum; } void SetPrintChecksum(FX_BOOL printChecksum) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_PRINTCHECKSUM; m_barcodeData.m_bPrintChecksum = printChecksum; } void SetTextLocation(BC_TEXT_LOC location) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TEXTLOCATION; m_barcodeData.m_eTextLocation = location; } void SetWideNarrowRatio(FX_INT32 ratio) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_WIDENARROWRATIO; m_barcodeData.m_nWideNarrowRatio = ratio; } void SetStartChar(FX_CHAR startChar) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_STARTCHAR; m_barcodeData.m_cStartChar = startChar; } void SetEndChar(FX_CHAR endChar) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ENDCHAR; m_barcodeData.m_cEndChar = endChar; } void SetVersion(FX_INT32 version) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_VERSION; m_barcodeData.m_nVersion = version; } void SetErrorCorrectionLevel(FX_INT32 ecLevel) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ECLEVEL; m_barcodeData.m_nECLevel = ecLevel; } void SetTruncated(FX_BOOL truncated) { m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TRUNCATED; m_barcodeData.m_bTruncated = truncated; } void ResetBarcodeAttributes() { m_barcodeData.m_dwAttributeMask = 0; } protected: CFWL_Barcode(); virtual ~CFWL_Barcode(); class CFWL_BarcodeDP : public IFWL_BarcodeDP { public: virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); BC_CHAR_ENCODING m_eCharEncoding; virtual BC_CHAR_ENCODING GetCharEncoding() { return m_eCharEncoding; } FX_INT32 m_nModuleHeight, m_nModuleWidth; virtual FX_INT32 GetModuleHeight() { return m_nModuleHeight; } virtual FX_INT32 GetModuleWidth() { return m_nModuleWidth; } FX_INT32 m_nDataLength; virtual FX_INT32 GetDataLength() { return m_nDataLength; } FX_INT32 m_nCalChecksum; virtual FX_INT32 GetCalChecksum() { return m_nCalChecksum; } FX_BOOL m_bPrintChecksum; virtual FX_BOOL GetPrintChecksum() { return m_bPrintChecksum; } BC_TEXT_LOC m_eTextLocation; virtual BC_TEXT_LOC GetTextLocation() { return m_eTextLocation; } FX_INT32 m_nWideNarrowRatio; virtual FX_INT32 GetWideNarrowRatio() { return m_nWideNarrowRatio; } FX_CHAR m_cStartChar, m_cEndChar; virtual FX_CHAR GetStartChar() { return m_cStartChar; } virtual FX_CHAR GetEndChar() { return m_cEndChar; } FX_INT32 m_nVersion; virtual FX_INT32 GetVersion() { return m_nVersion; } FX_INT32 m_nECLevel; virtual FX_INT32 GetErrorCorrectionLevel() { return m_nECLevel; } FX_BOOL m_bTruncated; virtual FX_BOOL GetTruncated() { return m_bTruncated; } FX_DWORD m_dwAttributeMask; virtual FX_DWORD GetBarcodeAttributeMask() { return m_dwAttributeMask; } public: CFWL_BarcodeDP() : m_dwAttributeMask(0) { } }; CFWL_BarcodeDP m_barcodeData; }; #endif