1d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// found in the LICENSE file. 4d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 5d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 7d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifndef XFA_FXFA_CXFA_FFBARCODE_H_ 8d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define XFA_FXFA_CXFA_FFBARCODE_H_ 9d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 10d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "fxbarcode/BC_Library.h" 11d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "xfa/fxfa/cxfa_ffpageview.h" 12d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "xfa/fxfa/cxfa_fftextedit.h" 13d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 14d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannenum class BarcodeType { 15d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann aztec, 16d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann codabar, 17d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code11, 18d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code128, 19d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code128A, 20d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code128B, 21d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code128C, 22d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code128SSCC, 23d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code2Of5Industrial, 24d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code2Of5Interleaved, 25d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code2Of5Matrix, 26d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code2Of5Standard, 27d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code3Of9, 28d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code3Of9extended, 29d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code49, 30d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann code93, 31d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann dataMatrix, 32d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ean13, 33d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ean13add2, 34d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ean13add5, 35d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ean13pwcd, 36d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ean8, 37d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ean8add2, 38d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ean8add5, 39d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann fim, 40d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann logmars, 41d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann maxicode, 42d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann msi, 43d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann pdf417, 44d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann pdf417macro, 45d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann plessey, 46d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postAUSCust2, 47d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postAUSCust3, 48d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postAUSReplyPaid, 49d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postAUSStandard, 50d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postUKRM4SCC, 51d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postUS5Zip, 52d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postUSDPBC, 53d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postUSIMB, 54d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann postUSStandard, 55d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann QRCode, 56d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann rfid, 57d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann rss14, 58d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann rss14Expanded, 59d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann rss14Limited, 60d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann rss14Stacked, 61d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann rss14StackedOmni, 62d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann rss14Truncated, 63d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann telepen, 64d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ucc128, 65d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ucc128random, 66d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ucc128sscc, 67d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcA, 68d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcAadd2, 69d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcAadd5, 70d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcApwcd, 71d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcE, 72d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcEadd2, 73d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcEadd5, 74d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcean2, 75d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upcean5, 76d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann upsMaxicode 77d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann}; 78d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 79d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannstruct BarCodeInfo { 80d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann uint32_t uHash; 81d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const wchar_t* pName; 82d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann BarcodeType eName; 83d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann BC_TYPE eBCType; 84d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann}; 85d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 86d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannclass CXFA_FFBarcode : public CXFA_FFTextEdit { 87d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann public: 88d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann static const BarCodeInfo* GetBarcodeTypeByName(const WideString& wsName); 89d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 90d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann explicit CXFA_FFBarcode(CXFA_Node* pNode); 91d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ~CXFA_FFBarcode() override; 92d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 93d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann // CXFA_FFTextEdit 94d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool LoadWidget() override; 95d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void RenderWidget(CXFA_Graphics* pGS, 96d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const CFX_Matrix& matrix, 97d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann uint32_t dwStatus) override; 98d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void UpdateWidgetProperty() override; 99d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool OnLButtonDown(uint32_t dwFlags, const CFX_PointF& point) override; 100d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool OnRButtonDown(uint32_t dwFlags, const CFX_PointF& point) override; 101d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann}; 102d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 103d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // XFA_FXFA_CXFA_FFBARCODE_H_ 104