blob: e8fcfea47642829a049b8ea6a480954f5f1359a8 [file]
// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#ifndef _FWL_BARCODE_LIGHT_H
#define _FWL_BARCODE_LIGHT_H
class CFWL_Widget;
class CFWL_WidgetProperties;
class IFWL_BarcodeDP;
class CFWL_Edit;
class CFWL_Barcode;
class CFWL_BarcodeDP;
class CFWL_Barcode : public CFWL_Edit
{
public:
static CFWL_Barcode* Create();
FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL);
void SetType(BC_TYPE type);
FX_BOOL IsProtectedType();
public:
void SetCharEncoding(BC_CHAR_ENCODING encoding)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CHARENCODING;
m_barcodeData.m_eCharEncoding = encoding;
}
void SetModuleHeight(FX_INT32 height)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEHEIGHT;
m_barcodeData.m_nModuleHeight = height;
}
void SetModuleWidth(FX_INT32 width)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEWIDTH;
m_barcodeData.m_nModuleWidth = width;
}
void SetDataLength(FX_INT32 dataLength)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_DATALENGTH;
m_barcodeData.m_nDataLength = dataLength;
((IFWL_Barcode*)m_pImp)->SetLimit(dataLength);
}
void SetCalChecksum(FX_INT32 calChecksum)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CALCHECKSUM;
m_barcodeData.m_nCalChecksum = calChecksum;
}
void SetPrintChecksum(FX_BOOL printChecksum)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_PRINTCHECKSUM;
m_barcodeData.m_bPrintChecksum = printChecksum;
}
void SetTextLocation(BC_TEXT_LOC location)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TEXTLOCATION;
m_barcodeData.m_eTextLocation = location;
}
void SetWideNarrowRatio(FX_INT32 ratio)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_WIDENARROWRATIO;
m_barcodeData.m_nWideNarrowRatio = ratio;
}
void SetStartChar(FX_CHAR startChar)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_STARTCHAR;
m_barcodeData.m_cStartChar = startChar;
}
void SetEndChar(FX_CHAR endChar)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ENDCHAR;
m_barcodeData.m_cEndChar = endChar;
}
void SetVersion(FX_INT32 version)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_VERSION;
m_barcodeData.m_nVersion = version;
}
void SetErrorCorrectionLevel(FX_INT32 ecLevel)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ECLEVEL;
m_barcodeData.m_nECLevel = ecLevel;
}
void SetTruncated(FX_BOOL truncated)
{
m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TRUNCATED;
m_barcodeData.m_bTruncated = truncated;
}
void ResetBarcodeAttributes()
{
m_barcodeData.m_dwAttributeMask = 0;
}
protected:
CFWL_Barcode();
virtual ~CFWL_Barcode();
class CFWL_BarcodeDP : public IFWL_BarcodeDP
{
public:
virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption);
BC_CHAR_ENCODING m_eCharEncoding;
virtual BC_CHAR_ENCODING GetCharEncoding()
{
return m_eCharEncoding;
}
FX_INT32 m_nModuleHeight, m_nModuleWidth;
virtual FX_INT32 GetModuleHeight()
{
return m_nModuleHeight;
}
virtual FX_INT32 GetModuleWidth()
{
return m_nModuleWidth;
}
FX_INT32 m_nDataLength;
virtual FX_INT32 GetDataLength()
{
return m_nDataLength;
}
FX_INT32 m_nCalChecksum;
virtual FX_INT32 GetCalChecksum()
{
return m_nCalChecksum;
}
FX_BOOL m_bPrintChecksum;
virtual FX_BOOL GetPrintChecksum()
{
return m_bPrintChecksum;
}
BC_TEXT_LOC m_eTextLocation;
virtual BC_TEXT_LOC GetTextLocation()
{
return m_eTextLocation;
}
FX_INT32 m_nWideNarrowRatio;
virtual FX_INT32 GetWideNarrowRatio()
{
return m_nWideNarrowRatio;
}
FX_CHAR m_cStartChar, m_cEndChar;
virtual FX_CHAR GetStartChar()
{
return m_cStartChar;
}
virtual FX_CHAR GetEndChar()
{
return m_cEndChar;
}
FX_INT32 m_nVersion;
virtual FX_INT32 GetVersion()
{
return m_nVersion;
}
FX_INT32 m_nECLevel;
virtual FX_INT32 GetErrorCorrectionLevel()
{
return m_nECLevel;
}
FX_BOOL m_bTruncated;
virtual FX_BOOL GetTruncated()
{
return m_bTruncated;
}
FX_DWORD m_dwAttributeMask;
virtual FX_DWORD GetBarcodeAttributeMask()
{
return m_dwAttributeMask;
}
public:
CFWL_BarcodeDP()
: m_dwAttributeMask(0)
{
}
};
CFWL_BarcodeDP m_barcodeData;
};
#endif