pdfium: Fix all -Wdelete-non-virtual-dtor violations on Mac.
[pdfium.git] / fpdfsdk / include / fsdk_define.h
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4  
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef _FPDFSDK_DEFINE_H
8 #define _FPDFSDK_DEFINE_H
9
10 #ifdef _WIN32
11 #include <tchar.h>
12 #include <math.h>
13 #endif
14
15 //#define API5
16 #define API6
17 #define  _FPDFAPI_ASYNC_PARSING_
18 #define _FXSDK_OPENSOURCE_
19
20 #ifdef _FPDFEMB_WCE_
21         #include "../../core/include/fpdfapi/fpdfapi.h" 
22         #include "../../core/include/fpdfapi/fpdf_parser.h" 
23         #include "../../core/include/fpdfapi/fpdf_module.h" 
24         #include "../../core/include/fpdfapi/fpdf_render.h" 
25         #include "../../core/include/fpdfapi/fpdf_pageobj.h" 
26         #include "../../core/include/fpdfapi/fpdf_serial.h" 
27
28         #include "../../core/include/fpdftext/fpdf_text.h"
29
30         #include "../../core/include/fxge/fx_ge_win32.h"
31         #include "../../core/include/fxge/fx_ge.h"
32
33         #include "../../core/include/fxcodec/fx_codec.h"
34
35         #include "../../core/include/fpdfdoc/fpdf_doc.h" 
36         #include "../../core/include/fpdfdoc/fpdf_vt.h" 
37
38         #include "../../core/include/fxcrt/fx_xml.h" 
39         #include "../../core/include/fxcrt/fx_crypt.h"
40
41 #else
42         #ifdef API6
43                 #include "../../core/include/fpdfapi/fpdf_parser.h" 
44                 #include "../../core/include/fpdfapi/fpdfapi.h" 
45                 #include "../../core/include/fpdfapi/fpdf_parser.h" 
46                 #include "../../core/include/fpdfapi/fpdf_module.h" 
47                 #include "../../core/include/fpdfapi/fpdf_render.h" 
48                 #include "../../core/include/fpdfapi/fpdf_pageobj.h" 
49                 #include "../../core/include/fpdfapi/fpdf_serial.h" 
50
51                 #include "../../core/include/fpdftext/fpdf_text.h"
52
53                 #include "../../core/include/fxge/fx_ge_win32.h"
54                 #include "../../core/include/fxge/fx_ge.h"
55
56                 #include "../../core/include/fxcodec/fx_codec.h"
57
58                 #include "../../core/include/fpdfdoc/fpdf_doc.h" 
59                 #include "../../core/include/fpdfdoc/fpdf_vt.h" 
60
61                 #include "../../core/include/fxcrt/fx_xml.h" 
62         //      #include "../../core/include/fdrm/fx_crypt.h"
63                 #ifdef _LICENSED_BUILD_
64                         #include "../../cryptopp/Cryptlib.h"
65                 #endif
66         #endif
67 #endif
68
69
70 #ifndef FX_GetAValue
71 /** @brief It retrieves an intensity value for the alpha component of a #FX_ARGB value. */
72 #define FX_GetAValue(argb)                      ((argb & 0xFF000000) >> 24)
73 #endif
74
75 #ifndef FX_GetRValue
76 /** @brief It retrieves an intensity value for the red component of a #FX_ARGB value. */
77 #define FX_GetRValue(argb)                      ((argb & 0x00FF0000) >> 16)
78 #endif
79
80 #ifndef FX_GetGValue
81 /** @brief It retrieves an intensity value for the green component of a #FX_ARGB value. */
82 #define FX_GetGValue(argb)                      ((argb & 0x0000FF00) >> 8)
83 #endif
84
85 #ifndef FX_GetBValue
86 /** @brief It retrieves an intensity value for the blue component of a #FX_ARGB value. */
87 #define FX_GetBValue(argb)                      (argb & 0x000000FF)
88 #endif
89
90 #ifndef FX_ARGBTOCOLORREF
91 /** @brief Convert a #FX_ARGB to a #FX_COLORREF. */
92 #define FX_ARGBTOCOLORREF(argb)         ((((FX_DWORD)argb & 0x00FF0000) >> 16)|((FX_DWORD)argb & 0x0000FF00)|(((FX_DWORD)argb & 0x000000FF) << 16))
93 #endif
94
95 #ifndef FX_COLORREFTOARGB
96 /** @brief Convert a #FX_COLORREF to a #FX_ARGB. */
97 #define FX_COLORREFTOARGB(rgb)          ((FX_DWORD)0xFF000000|(((FX_DWORD)rgb & 0x000000FF) << 16)|((FX_DWORD)rgb & 0x0000FF00)|(((FX_DWORD)rgb & 0x00FF0000) >> 16))
98 #endif
99
100 typedef unsigned int FX_UINT;   
101
102 #include "fpdfview.h"
103
104 class CPDF_CustomAccess FX_FINAL : public IFX_FileRead, public CFX_Object
105 {
106 public:
107         CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess);
108         ~CPDF_CustomAccess() {}
109
110         virtual CFX_ByteString GetFullPath() { return ""; }
111         virtual FX_FILESIZE     GetSize() { return m_FileAccess.m_FileLen; }
112
113         virtual FX_BOOL         GetByte(FX_DWORD pos, FX_BYTE& ch);
114         virtual FX_BOOL         GetBlock(FX_DWORD pos, FX_LPBYTE pBuf, FX_DWORD size);
115         virtual void            Release() { delete this; }
116
117         virtual FX_BOOL         ReadBlock(void* buffer, FX_FILESIZE offset, size_t size);
118
119         FPDF_FILEACCESS         m_FileAccess;
120         FX_BYTE                         m_Buffer[512];
121         FX_DWORD                        m_BufferOffset;
122 };
123
124 void            FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable);
125 FPDF_BOOL       FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy);
126
127
128 #endif//_FPDFSDK_DEFINE_H