7#include "fxbarcode/cfx_barcode.h"
11#include "core/fxcrt/notreached.h"
12#include "core/fxcrt/ptr_util.h"
13#include "fxbarcode/cbc_codabar.h"
14#include "fxbarcode/cbc_code128.h"
15#include "fxbarcode/cbc_code39.h"
16#include "fxbarcode/cbc_codebase.h"
17#include "fxbarcode/cbc_datamatrix.h"
18#include "fxbarcode/cbc_ean13.h"
19#include "fxbarcode/cbc_ean8.h"
20#include "fxbarcode/cbc_pdf417i.h"
21#include "fxbarcode/cbc_qrcode.h"
22#include "fxbarcode/cbc_upca.h"
26std::unique_ptr<CBC_CodeBase> CreateBarCodeEngineObject(
BC_TYPE type) {
29 return std::make_unique<CBC_Code39>();
31 return std::make_unique<CBC_Codabar>();
39 return std::make_unique<CBC_EAN8>();
41 return std::make_unique<CBC_UPCA>();
43 return std::make_unique<CBC_EAN13>();
45 return std::make_unique<CBC_QRCode>();
47 return std::make_unique<CBC_PDF417I>();
49 return std::make_unique<CBC_DataMatrix>();
64 barcode->m_pBCEngine = CreateBarCodeEngineObject(type);
69 return m_pBCEngine ? m_pBCEngine->GetType() : BC_TYPE::kUnknown;
73 return m_pBCEngine && m_pBCEngine->SetModuleHeight(moduleHeight);
77 return m_pBCEngine && m_pBCEngine->SetModuleWidth(moduleWidth);
82 m_pBCEngine->SetHeight(height);
87 m_pBCEngine->SetWidth(width);
95 case BC_TYPE::kCode39:
96 case BC_TYPE::kCodabar:
97 case BC_TYPE::kCode128:
98 case BC_TYPE::kCode128B:
99 case BC_TYPE::kCode128C:
101 case BC_TYPE::kEAN13:
103 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetPrintChecksum(checksum);
115 case BC_TYPE::kCode39:
116 case BC_TYPE::kCodabar:
117 case BC_TYPE::kCode128:
118 case BC_TYPE::kCode128B:
119 case BC_TYPE::kCode128C:
121 case BC_TYPE::kEAN13:
123 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetDataLength(length);
135 case BC_TYPE::kCode39:
136 case BC_TYPE::kCodabar:
137 case BC_TYPE::kCode128:
138 case BC_TYPE::kCode128B:
139 case BC_TYPE::kCode128C:
141 case BC_TYPE::kEAN13:
143 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetCalChecksum(state);
155 case BC_TYPE::kCode39:
156 case BC_TYPE::kCodabar:
157 case BC_TYPE::kCode128:
158 case BC_TYPE::kCode128B:
159 case BC_TYPE::kCode128C:
161 case BC_TYPE::kEAN13:
163 return static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetFont(pFont);
174 case BC_TYPE::kCode39:
175 case BC_TYPE::kCodabar:
176 case BC_TYPE::kCode128:
177 case BC_TYPE::kCode128B:
178 case BC_TYPE::kCode128C:
180 case BC_TYPE::kEAN13:
182 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetFontSize(size);
194 case BC_TYPE::kCode39:
195 case BC_TYPE::kCodabar:
196 case BC_TYPE::kCode128:
197 case BC_TYPE::kCode128B:
198 case BC_TYPE::kCode128C:
200 case BC_TYPE::kEAN13:
202 static_cast<CBC_OneCode*>(m_pBCEngine.get())->SetFontColor(color);
211 m_pBCEngine->SetTextLocation(location);
215 return m_pBCEngine && m_pBCEngine->SetWideNarrowRatio(ratio);
219 return m_pBCEngine && m_pBCEngine->SetStartChar(start);
223 return m_pBCEngine && m_pBCEngine->SetEndChar(end);
227 return m_pBCEngine && m_pBCEngine->SetErrorCorrectionLevel(level);
231 return m_pBCEngine && m_pBCEngine->Encode(contents);
236 return m_pBCEngine && m_pBCEngine->RenderDevice(device, matrix);
bool SetEndChar(char end)
bool SetModuleWidth(int32_t moduleWidth)
bool SetStartChar(char start)
bool SetPrintChecksum(bool checksum)
void SetTextLocation(BC_TEXT_LOC location)
void SetHeight(int32_t height)
bool SetErrorCorrectionLevel(int32_t level)
bool SetModuleHeight(int32_t moduleHeight)
bool SetCalChecksum(bool state)
bool SetDataLength(int32_t length)
bool SetFont(CFX_Font *pFont)
bool Encode(WideStringView contents)
bool SetFontSize(float size)
void SetWidth(int32_t width)
bool SetFontColor(FX_ARGB color)
bool RenderDevice(CFX_RenderDevice *device, const CFX_Matrix &matrix)
bool SetWideNarrowRatio(int8_t ratio)
#define NOTREACHED_NORETURN()
fxcrt::WideStringView WideStringView