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_IMP_H
8#define _FWL_BARCODE_IMP_H
9class CFWL_WidgetImp;
10class CFWL_WidgetImpProperties;
11class CFWL_WidgetImpDelegate;
12class CFWL_EditImp;
13class CFWL_EditImpDelegate;
14class IFWL_Widget;
15class CFWL_BarcodeEdit;
16class CFWL_BarcodeEditDelegate;
17class CFWL_BarcodeImp;
18class CFWL_BarcodeImpDelegate;
19#define XFA_BCS_NeedUpdate 0x0001
20#define XFA_BCS_EncodeSuccess 0x0002
21class CFWL_BarcodeImp : public CFWL_EditImp {
22 public:
23  CFWL_BarcodeImp(const CFWL_WidgetImpProperties& properties,
24                  IFWL_Widget* pOuter);
25  virtual ~CFWL_BarcodeImp();
26  virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const;
27  virtual FX_DWORD GetClassID() const;
28  virtual FWL_ERR Initialize();
29  virtual FWL_ERR Finalize();
30  virtual FWL_ERR Update();
31  virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics,
32                             const CFX_Matrix* pMatrix = NULL);
33  virtual FWL_ERR SetText(const CFX_WideString& wsText);
34  virtual void SetType(BC_TYPE type);
35  FX_BOOL IsProtectedType();
36
37 protected:
38  void GenerateBarcodeImageCache();
39  void CreateBarcodeEngine();
40  void ReleaseBarcodeEngine();
41  IFX_Barcode* m_pBarcodeEngine;
42  FX_DWORD m_dwStatus;
43  BC_TYPE m_type;
44  friend class CFWL_BarcodeImpDelegate;
45};
46class CFWL_BarcodeImpDelegate : public CFWL_EditImpDelegate {
47 public:
48  CFWL_BarcodeImpDelegate(CFWL_BarcodeImp* pOwner);
49  FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override;
50};
51#endif
52