1 // Copyright 2014 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 7 #ifndef _FWL_BARCODE_LIGHT_H 8 #define _FWL_BARCODE_LIGHT_H 9 class CFWL_Widget; 10 class CFWL_WidgetProperties; 11 class IFWL_BarcodeDP; 12 class CFWL_Edit; 13 class CFWL_Barcode; 14 class CFWL_BarcodeDP; 15 class CFWL_Barcode : public CFWL_Edit { 16 public: 17 static CFWL_Barcode* Create(); 18 FWL_ERR Initialize(const CFWL_WidgetProperties* pProperties = NULL); 19 void SetType(BC_TYPE type); 20 FX_BOOL IsProtectedType(); 21 22 public: 23 void SetCharEncoding(BC_CHAR_ENCODING encoding) { 24 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CHARENCODING; 25 m_barcodeData.m_eCharEncoding = encoding; 26 } 27 void SetModuleHeight(int32_t height) { 28 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEHEIGHT; 29 m_barcodeData.m_nModuleHeight = height; 30 } 31 void SetModuleWidth(int32_t width) { 32 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEWIDTH; 33 m_barcodeData.m_nModuleWidth = width; 34 } 35 void SetDataLength(int32_t dataLength) { 36 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_DATALENGTH; 37 m_barcodeData.m_nDataLength = dataLength; 38 static_cast<IFWL_Barcode*>(m_pIface)->SetLimit(dataLength); 39 } 40 void SetCalChecksum(int32_t calChecksum) { 41 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CALCHECKSUM; 42 m_barcodeData.m_nCalChecksum = calChecksum; 43 } 44 void SetPrintChecksum(FX_BOOL printChecksum) { 45 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_PRINTCHECKSUM; 46 m_barcodeData.m_bPrintChecksum = printChecksum; 47 } 48 void SetTextLocation(BC_TEXT_LOC location) { 49 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TEXTLOCATION; 50 m_barcodeData.m_eTextLocation = location; 51 } 52 void SetWideNarrowRatio(int32_t ratio) { 53 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_WIDENARROWRATIO; 54 m_barcodeData.m_nWideNarrowRatio = ratio; 55 } 56 void SetStartChar(FX_CHAR startChar) { 57 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_STARTCHAR; 58 m_barcodeData.m_cStartChar = startChar; 59 } 60 void SetEndChar(FX_CHAR endChar) { 61 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ENDCHAR; 62 m_barcodeData.m_cEndChar = endChar; 63 } 64 void SetVersion(int32_t version) { 65 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_VERSION; 66 m_barcodeData.m_nVersion = version; 67 } 68 void SetErrorCorrectionLevel(int32_t ecLevel) { 69 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ECLEVEL; 70 m_barcodeData.m_nECLevel = ecLevel; 71 } 72 void SetTruncated(FX_BOOL truncated) { 73 m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TRUNCATED; 74 m_barcodeData.m_bTruncated = truncated; 75 } 76 void ResetBarcodeAttributes() { m_barcodeData.m_dwAttributeMask = 0; } 77 78 protected: 79 CFWL_Barcode(); 80 virtual ~CFWL_Barcode(); 81 class CFWL_BarcodeDP : public IFWL_BarcodeDP { 82 public: 83 virtual FWL_ERR GetCaption(IFWL_Widget* pWidget, CFX_WideString& wsCaption); 84 BC_CHAR_ENCODING m_eCharEncoding; 85 virtual BC_CHAR_ENCODING GetCharEncoding() { return m_eCharEncoding; } 86 int32_t m_nModuleHeight, m_nModuleWidth; 87 virtual int32_t GetModuleHeight() { return m_nModuleHeight; } 88 virtual int32_t GetModuleWidth() { return m_nModuleWidth; } 89 int32_t m_nDataLength; 90 virtual int32_t GetDataLength() { return m_nDataLength; } 91 int32_t m_nCalChecksum; 92 virtual int32_t GetCalChecksum() { return m_nCalChecksum; } 93 FX_BOOL m_bPrintChecksum; 94 virtual FX_BOOL GetPrintChecksum() { return m_bPrintChecksum; } 95 96 BC_TEXT_LOC m_eTextLocation; 97 virtual BC_TEXT_LOC GetTextLocation() { return m_eTextLocation; } 98 int32_t m_nWideNarrowRatio; 99 virtual int32_t GetWideNarrowRatio() { return m_nWideNarrowRatio; } 100 FX_CHAR m_cStartChar, m_cEndChar; 101 virtual FX_CHAR GetStartChar() { return m_cStartChar; } 102 virtual FX_CHAR GetEndChar() { return m_cEndChar; } 103 int32_t m_nVersion; 104 virtual int32_t GetVersion() { return m_nVersion; } 105 int32_t m_nECLevel; 106 virtual int32_t GetErrorCorrectionLevel() { return m_nECLevel; } 107 FX_BOOL m_bTruncated; 108 virtual FX_BOOL GetTruncated() { return m_bTruncated; } 109 FX_DWORD m_dwAttributeMask; 110 virtual FX_DWORD GetBarcodeAttributeMask() { return m_dwAttributeMask; } 111 112 public: 113 CFWL_BarcodeDP() : m_dwAttributeMask(0) {} 114 }; 115 CFWL_BarcodeDP m_barcodeData; 116 }; 117 #endif 118