Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxbarcode / src / include / BC_OneDimWriter.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _BC_ONEDIMWRITER_H_\r
8 #define _BC_ONEDIMWRITER_H_\r
9 class CBC_Writer;\r
10 class CBC_CommonBitMatrix;\r
11 class CBC_OneDimWriter;\r
12 class CBC_OneDimWriter : public CBC_Writer\r
13 {\r
14 public:\r
15     CBC_OneDimWriter();\r
16     virtual ~CBC_OneDimWriter();\r
17     FX_BYTE                     *Encode(const CFX_ByteString &contents, BCFORMAT format,\r
18                             FX_INT32 &outWidth, FX_INT32 &outHeight, FX_INT32 &e);\r
19     FX_BYTE                     *Encode(const CFX_ByteString &contents, BCFORMAT format,\r
20                             FX_INT32 &outWidth, FX_INT32 &outHeight, FX_INT32 hints, FX_INT32 &e);\r
21     virtual FX_BYTE *Encode(const CFX_ByteString &contents, FX_INT32 &outLength, FX_INT32 &e)\r
22     {\r
23         return NULL;\r
24     };\r
25     virtual void     RenderResult(FX_WSTR contents, FX_BYTE* code, FX_INT32 codeLength,  FX_BOOL isDevice, FX_INT32 &e);\r
26     virtual void     RenderBitmapResult(CFX_DIBitmap *&pOutBitmap, FX_WSTR contents, FX_INT32 &e);\r
27     virtual void     RenderDeviceResult(CFX_RenderDevice* device, const CFX_Matrix* matrix, FX_WSTR contents, FX_INT32 &e);\r
28     virtual FX_BOOL                     CheckContentValidity(FX_WSTR contents)\r
29     {\r
30         return TRUE;\r
31     };\r
32     virtual CFX_WideString      FilterContents(FX_WSTR contents)\r
33     {\r
34         return CFX_WideString();\r
35     }\r
36     virtual CFX_WideString      RenderTextContents(FX_WSTR contents)\r
37     {\r
38         return CFX_WideString();\r
39     }\r
40     virtual void                        SetPrintChecksum(FX_BOOL checksum);\r
41     virtual void                        SetDataLength(FX_INT32 length);\r
42     virtual void                        SetCalcChecksum(FX_INT32 state);\r
43     virtual void                        SetFontSize(FX_FLOAT size);\r
44     virtual void                        SetFontStyle(FX_INT32 style);\r
45     virtual void                        SetFontColor(FX_ARGB color);\r
46     virtual FX_BOOL                     SetFont(CFX_Font * cFont);\r
47 protected:\r
48     FX_BOOL                     m_bPrintChecksum;\r
49     FX_INT32            m_iDataLenth;\r
50     FX_BOOL                     m_bCalcChecksum;\r
51     CFX_Font*           m_pFont;\r
52     FX_FLOAT            m_fFontSize;\r
53     FX_INT32            m_iFontStyle;\r
54     FX_DWORD            m_fontColor;\r
55     BC_TEXT_LOC         m_locTextLoc;\r
56     FX_INT32            m_iContentLen;\r
57     FX_BOOL         m_bLeftPadding;\r
58     FX_BOOL         m_bRightPadding;\r
59     CBC_CommonBitMatrix*   m_output;\r
60     FX_INT32               m_barWidth;\r
61     FX_INT32               m_multiple;\r
62     FX_FLOAT               m_outputHScale;\r
63     void                        CalcTextInfo(const CFX_ByteString &text, FXTEXT_CHARPOS *charPos, CFX_Font *cFont, FX_FLOAT geWidth, FX_INT32 fontSize, FX_FLOAT &charsLen);\r
64     virtual void        ShowChars(FX_WSTR contents, CFX_DIBitmap *pOutBitmap, CFX_RenderDevice *device, const CFX_Matrix* matrix, FX_INT32 barWidth, FX_INT32 multiple, FX_INT32 &e);\r
65     virtual void        ShowBitmapChars(CFX_DIBitmap *pOutBitmap, const CFX_ByteString str, FX_FLOAT geWidth, FXTEXT_CHARPOS* pCharPos, FX_FLOAT locX, FX_FLOAT locY, FX_INT32 barWidth);\r
66     virtual void    ShowDeviceChars(CFX_RenderDevice *device, const CFX_Matrix* matrix, const CFX_ByteString str, FX_FLOAT geWidth, FXTEXT_CHARPOS* pCharPos, FX_FLOAT locX, FX_FLOAT locY,  FX_INT32 barWidth);\r
67     FX_INT32            AppendPattern(FX_BYTE* target, FX_INT32 pos, const FX_INT32* pattern, FX_INT32 patternLength, FX_INT32 startColor, FX_INT32 &e);\r
68     FX_WCHAR            Upper(FX_WCHAR ch);\r
69 };\r
70 #endif\r