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
13extern "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
33typedef struct _UNSUPPORT_INFO {
34  /**
35  * Version number of the interface. Currently must be 1.
36  **/
37  int version;
38
39  /**
40  * Method: FSDK_UnSupport_Handler
41  *            UnSupport Object process handling function.
42  * Interface Version:
43  *           1
44  * Implementation Required:
45  *           Yes
46  * Parameters:
47  *       pThis       -   Pointer to the interface structure itself.
48  *       nType       -   The type of unsupportObject
49  *   Return value:
50  *       None.
51  * */
52
53  void (*FSDK_UnSupport_Handler)(struct _UNSUPPORT_INFO* pThis, int nType);
54} UNSUPPORT_INFO;
55
56/**
57 * Function: FSDK_SetUnSpObjProcessHandler
58 *           Setup A UnSupport Object process handler for foxit sdk.
59 * Parameters:
60 *          unsp_info       -   Pointer to a UNSUPPORT_INFO structure.
61 * Return Value:
62 *          TRUE means successful. FALSE means fails.
63 **/
64
65DLLEXPORT FPDF_BOOL STDCALL
66FSDK_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
83// visible
84#define PAGEMODE_FULLSCREEN 3
85
86// Optional content group panel visible
87#define PAGEMODE_USEOC 4
88
89// Attachments panel visible
90#define PAGEMODE_USEATTACHMENTS 5
91
92/**
93 * Function: FPDFDoc_GetPageMode
94 *           Get the document's PageMode(How the document should be displayed
95 *when opened)
96 * Parameters:
97 *          doc     -   Handle to document. Returned by FPDF_LoadDocument
98 *function.
99 * Return Value:
100 *          The flags for page mode.
101 **/
102DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document);
103
104#ifdef __cplusplus
105}
106#endif
107
108#endif  // PUBLIC_FPDF_EXT_H_
109