Index: xfa/fwl/core/cfwl_barcode.h |
diff --git a/xfa/fwl/core/cfwl_barcode.h b/xfa/fwl/core/cfwl_barcode.h |
index 90dfdcaebdea15452399d0621e4bea56669a2327..05c2375c7cf896a30ef77f41a3c871b62f7f3fc3 100644 |
--- a/xfa/fwl/core/cfwl_barcode.h |
+++ b/xfa/fwl/core/cfwl_barcode.h |
@@ -7,35 +7,54 @@ |
#ifndef XFA_FWL_CORE_CFWL_BARCODE_H_ |
#define XFA_FWL_CORE_CFWL_BARCODE_H_ |
+#include <memory> |
+ |
#include "xfa/fwl/core/cfwl_edit.h" |
-#include "xfa/fwl/core/fwl_error.h" |
-#include "xfa/fwl/core/ifwl_barcode.h" |
+#include "xfa/fwl/core/cfwl_scrollbar.h" |
+#include "xfa/fwl/core/cfwl_widget.h" |
+#include "xfa/fxbarcode/BC_Library.h" |
+ |
+class CFWL_WidgetProperties; |
+class CFX_Barcode; |
+class CFWL_Widget; |
+ |
+#define XFA_BCS_NeedUpdate 0x0001 |
+#define XFA_BCS_EncodeSuccess 0x0002 |
-class CFWL_Barcode : public CFWL_Edit, public IFWL_Barcode::DataProvider { |
+enum FWL_BCDAttribute { |
+ FWL_BCDATTRIBUTE_NONE = 0, |
+ FWL_BCDATTRIBUTE_CHARENCODING = 1 << 0, |
+ FWL_BCDATTRIBUTE_MODULEHEIGHT = 1 << 1, |
+ FWL_BCDATTRIBUTE_MODULEWIDTH = 1 << 2, |
+ FWL_BCDATTRIBUTE_DATALENGTH = 1 << 3, |
+ FWL_BCDATTRIBUTE_CALCHECKSUM = 1 << 4, |
+ FWL_BCDATTRIBUTE_PRINTCHECKSUM = 1 << 5, |
+ FWL_BCDATTRIBUTE_TEXTLOCATION = 1 << 6, |
+ FWL_BCDATTRIBUTE_WIDENARROWRATIO = 1 << 7, |
+ FWL_BCDATTRIBUTE_STARTCHAR = 1 << 8, |
+ FWL_BCDATTRIBUTE_ENDCHAR = 1 << 9, |
+ FWL_BCDATTRIBUTE_VERSION = 1 << 10, |
+ FWL_BCDATTRIBUTE_ECLEVEL = 1 << 11, |
+ FWL_BCDATTRIBUTE_TRUNCATED = 1 << 12 |
+}; |
+ |
+class CFWL_Barcode : public CFWL_Edit { |
public: |
explicit CFWL_Barcode(const CFWL_App* pApp); |
~CFWL_Barcode() override; |
- void Initialize(); |
+ // CFWL_Widget |
+ FWL_Type GetClassID() const override; |
+ void Update() override; |
+ void DrawWidget(CFX_Graphics* pGraphics, |
+ const CFX_Matrix* pMatrix = nullptr) override; |
+ void OnProcessEvent(CFWL_Event* pEvent) override; |
- // IFWL_Barcode::DataProvider |
- BC_CHAR_ENCODING GetCharEncoding() const override; |
- int32_t GetModuleHeight() const override; |
- int32_t GetModuleWidth() const override; |
- int32_t GetDataLength() const override; |
- bool GetCalChecksum() const override; |
- bool GetPrintChecksum() const override; |
- BC_TEXT_LOC GetTextLocation() const override; |
- int32_t GetWideNarrowRatio() const override; |
- FX_CHAR GetStartChar() const override; |
- FX_CHAR GetEndChar() const override; |
- int32_t GetVersion() const override; |
- int32_t GetErrorCorrectionLevel() const override; |
- bool GetTruncated() const override; |
- uint32_t GetBarcodeAttributeMask() const override; |
+ // CFWL_Edit |
+ void SetText(const CFX_WideString& wsText) override; |
void SetType(BC_TYPE type); |
- bool IsProtectedType(); |
+ bool IsProtectedType() const; |
void SetCharEncoding(BC_CHAR_ENCODING encoding); |
void SetModuleHeight(int32_t height); |
@@ -51,6 +70,12 @@ class CFWL_Barcode : public CFWL_Edit, public IFWL_Barcode::DataProvider { |
void SetTruncated(bool truncated); |
private: |
+ void GenerateBarcodeImageCache(); |
+ void CreateBarcodeEngine(); |
+ |
+ std::unique_ptr<CFX_Barcode> m_pBarcodeEngine; |
+ uint32_t m_dwStatus; |
+ BC_TYPE m_type; |
BC_CHAR_ENCODING m_eCharEncoding; |
int32_t m_nModuleHeight; |
int32_t m_nModuleWidth; |