summaryrefslogtreecommitdiff
path: root/xfa/fwl/core/cfwl_barcode.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fwl/core/cfwl_barcode.h')
-rw-r--r--xfa/fwl/core/cfwl_barcode.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/xfa/fwl/core/cfwl_barcode.h b/xfa/fwl/core/cfwl_barcode.h
new file mode 100644
index 0000000000..39006676e9
--- /dev/null
+++ b/xfa/fwl/core/cfwl_barcode.h
@@ -0,0 +1,128 @@
+// 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 XFA_FWL_CORE_CFWL_BARCODE_H_
+#define XFA_FWL_CORE_CFWL_BARCODE_H_
+
+#include "xfa/fwl/core/cfwl_edit.h"
+#include "xfa/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/ifwl_barcode.h"
+
+class CFWL_Widget;
+class CFWL_WidgetProperties;
+
+class CFWL_Barcode : public CFWL_Edit {
+ public:
+ CFWL_Barcode();
+ ~CFWL_Barcode() override;
+
+ IFWL_Barcode* GetWidget() override;
+ const IFWL_Barcode* GetWidget() const override;
+
+ FWL_Error Initialize(const CFWL_WidgetProperties* pProperties = nullptr);
+ void SetType(BC_TYPE type);
+ FX_BOOL IsProtectedType();
+
+ void SetCharEncoding(BC_CHAR_ENCODING encoding) {
+ m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CHARENCODING;
+ m_barcodeData.m_eCharEncoding = encoding;
+ }
+ void SetModuleHeight(int32_t height) {
+ m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEHEIGHT;
+ m_barcodeData.m_nModuleHeight = height;
+ }
+ void SetModuleWidth(int32_t width) {
+ m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEWIDTH;
+ m_barcodeData.m_nModuleWidth = width;
+ }
+ void SetDataLength(int32_t dataLength) {
+ m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_DATALENGTH;
+ m_barcodeData.m_nDataLength = dataLength;
+ GetWidget()->SetLimit(dataLength);
+ }
+ void SetCalChecksum(int32_t 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(int32_t 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(int32_t version) {
+ m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_VERSION;
+ m_barcodeData.m_nVersion = version;
+ }
+ void SetErrorCorrectionLevel(int32_t 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 = FWL_BCDATTRIBUTE_NONE;
+ }
+
+ protected:
+ class CFWL_BarcodeDP : public IFWL_BarcodeDP {
+ public:
+ CFWL_BarcodeDP();
+
+ // IFWL_DataProvider
+ FWL_Error GetCaption(IFWL_Widget* pWidget,
+ CFX_WideString& wsCaption) override;
+
+ // IFWL_BarcodeDP
+ BC_CHAR_ENCODING GetCharEncoding() override;
+ int32_t GetModuleHeight() override;
+ int32_t GetModuleWidth() override;
+ int32_t GetDataLength() override;
+ int32_t GetCalChecksum() override;
+ FX_BOOL GetPrintChecksum() override;
+ BC_TEXT_LOC GetTextLocation() override;
+ int32_t GetWideNarrowRatio() override;
+ FX_CHAR GetStartChar() override;
+ FX_CHAR GetEndChar() override;
+ int32_t GetVersion() override;
+ int32_t GetErrorCorrectionLevel() override;
+ FX_BOOL GetTruncated() override;
+ uint32_t GetBarcodeAttributeMask() override;
+
+ BC_CHAR_ENCODING m_eCharEncoding;
+ int32_t m_nModuleHeight, m_nModuleWidth;
+ int32_t m_nDataLength;
+ int32_t m_nCalChecksum;
+ FX_BOOL m_bPrintChecksum;
+ BC_TEXT_LOC m_eTextLocation;
+ int32_t m_nWideNarrowRatio;
+ FX_CHAR m_cStartChar, m_cEndChar;
+ int32_t m_nVersion;
+ int32_t m_nECLevel;
+ FX_BOOL m_bTruncated;
+ uint32_t m_dwAttributeMask;
+ };
+
+ CFWL_BarcodeDP m_barcodeData;
+};
+
+#endif // XFA_FWL_CORE_CFWL_BARCODE_H_