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 PUBLIC_FPDF_EXT_H_
8 #define PUBLIC_FPDF_EXT_H_
9 
10 #include "fpdfview.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 //flags for type of unsupport object.
17 #define FPDF_UNSP_DOC_XFAFORM               1
18 #define FPDF_UNSP_DOC_PORTABLECOLLECTION    2
19 #define FPDF_UNSP_DOC_ATTACHMENT            3
20 #define FPDF_UNSP_DOC_SECURITY              4
21 #define FPDF_UNSP_DOC_SHAREDREVIEW          5
22 #define FPDF_UNSP_DOC_SHAREDFORM_ACROBAT    6
23 #define FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM 7
24 #define FPDF_UNSP_DOC_SHAREDFORM_EMAIL      8
25 #define FPDF_UNSP_ANNOT_3DANNOT             11
26 #define FPDF_UNSP_ANNOT_MOVIE               12
27 #define FPDF_UNSP_ANNOT_SOUND               13
28 #define FPDF_UNSP_ANNOT_SCREEN_MEDIA        14
29 #define FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA    15
30 #define FPDF_UNSP_ANNOT_ATTACHMENT          16
31 #define FPDF_UNSP_ANNOT_SIG                 17
32 
33 typedef struct _UNSUPPORT_INFO
34 {
35     /**
36     * Version number of the interface. Currently must be 1.
37     **/
38     int version;
39 
40     /**
41     * Method: FSDK_UnSupport_Handler
42     *            UnSupport Object process handling function.
43     * Interface Version:
44     *           1
45     * Implementation Required:
46     *           Yes
47     * Parameters:
48     *       pThis       -   Pointer to the interface structure itself.
49     *       nType       -   The type of unsupportObject
50     *   Return value:
51     *       None.
52     * */
53 
54     void(*FSDK_UnSupport_Handler)(struct _UNSUPPORT_INFO* pThis, int nType);
55 } UNSUPPORT_INFO;
56 
57 /**
58  * Function: FSDK_SetUnSpObjProcessHandler
59  *           Setup A UnSupport Object process handler for foxit sdk.
60  * Parameters:
61  *          unsp_info       -   Pointer to a UNSUPPORT_INFO structure.
62  * Return Value:
63  *          TRUE means successful. FALSE means fails.
64  **/
65 
66 DLLEXPORT FPDF_BOOL STDCALL FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info);
67 
68 //flags for page mode.
69 
70 //Unknown value
71 #define PAGEMODE_UNKNOWN        -1
72 
73 //Neither document outline nor thumbnail images visible
74 #define PAGEMODE_USENONE        0
75 
76 //Document outline visible
77 #define PAGEMODE_USEOUTLINES    1
78 
79 //Thumbnial images visible
80 #define PAGEMODE_USETHUMBS      2
81 
82 //Full-screen mode, with no menu bar, window controls, or any other window visible
83 #define PAGEMODE_FULLSCREEN     3
84 
85 //Optional content group panel visible
86 #define PAGEMODE_USEOC          4
87 
88 //Attachments panel visible
89 #define PAGEMODE_USEATTACHMENTS 5
90 
91 
92 /**
93  * Function: FPDFDoc_GetPageMode
94  *           Get the document's PageMode(How the document should be displayed when opened)
95  * Parameters:
96  *          doc     -   Handle to document. Returned by FPDF_LoadDocument function.
97  * Return Value:
98  *          The flags for page mode.
99  **/
100 DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document);
101 
102 #ifdef __cplusplus
103 }
104 #endif
105 
106 #endif  // PUBLIC_FPDF_EXT_H_
107