1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2018 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #ifndef FXBARCODE_CBC_EANCODE_H_ 8*3ac0a46fSAndroid Build Coastguard Worker #define FXBARCODE_CBC_EANCODE_H_ 9*3ac0a46fSAndroid Build Coastguard Worker 10*3ac0a46fSAndroid Build Coastguard Worker #include <memory> 11*3ac0a46fSAndroid Build Coastguard Worker 12*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/widestring.h" 13*3ac0a46fSAndroid Build Coastguard Worker #include "fxbarcode/cbc_onecode.h" 14*3ac0a46fSAndroid Build Coastguard Worker 15*3ac0a46fSAndroid Build Coastguard Worker class CBC_OneDimEANWriter; 16*3ac0a46fSAndroid Build Coastguard Worker 17*3ac0a46fSAndroid Build Coastguard Worker class CBC_EANCode : public CBC_OneCode { 18*3ac0a46fSAndroid Build Coastguard Worker public: 19*3ac0a46fSAndroid Build Coastguard Worker explicit CBC_EANCode(std::unique_ptr<CBC_OneDimEANWriter> pWriter); 20*3ac0a46fSAndroid Build Coastguard Worker ~CBC_EANCode() override; 21*3ac0a46fSAndroid Build Coastguard Worker 22*3ac0a46fSAndroid Build Coastguard Worker virtual size_t GetMaxLength() const = 0; 23*3ac0a46fSAndroid Build Coastguard Worker 24*3ac0a46fSAndroid Build Coastguard Worker // CBC_EANCode: 25*3ac0a46fSAndroid Build Coastguard Worker bool Encode(WideStringView contents) override; 26*3ac0a46fSAndroid Build Coastguard Worker bool RenderDevice(CFX_RenderDevice* device, 27*3ac0a46fSAndroid Build Coastguard Worker const CFX_Matrix& matrix) override; 28*3ac0a46fSAndroid Build Coastguard Worker 29*3ac0a46fSAndroid Build Coastguard Worker protected: 30*3ac0a46fSAndroid Build Coastguard Worker CBC_OneDimEANWriter* GetOneDimEANWriter(); 31*3ac0a46fSAndroid Build Coastguard Worker WideString Preprocess(WideStringView contents); 32*3ac0a46fSAndroid Build Coastguard Worker 33*3ac0a46fSAndroid Build Coastguard Worker WideString m_renderContents; 34*3ac0a46fSAndroid Build Coastguard Worker }; 35*3ac0a46fSAndroid Build Coastguard Worker 36*3ac0a46fSAndroid Build Coastguard Worker #endif // FXBARCODE_CBC_EANCODE_H_ 37