blob: c80dcbbf58fe5e78138e1da59ac4b8bcd8aff029 [file] [log] [blame]
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07001// 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.
Tom Sepez9857e202015-05-13 17:09:26 -07004
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07005// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
Tom Sepez9857e202015-05-13 17:09:26 -07007#ifndef PUBLIC_FPDF_EXT_H_
8#define PUBLIC_FPDF_EXT_H_
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07009
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070010#include "fpdfview.h"
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070011
12#ifdef __cplusplus
13extern "C" {
14#endif
15
Nico Weber9d8ec5a2015-08-04 13:00:21 -070016// 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
Tom Sepez9857e202015-05-13 17:09:26 -070023#define FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM 7
Nico Weber9d8ec5a2015-08-04 13:00:21 -070024#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
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070032
Nico Weber9d8ec5a2015-08-04 13:00:21 -070033typedef struct _UNSUPPORT_INFO {
34 /**
35 * Version number of the interface. Currently must be 1.
36 **/
37 int version;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070038
Nico Weber9d8ec5a2015-08-04 13:00:21 -070039 /**
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 * */
Tom Sepez9857e202015-05-13 17:09:26 -070052
Nico Weber9d8ec5a2015-08-04 13:00:21 -070053 void (*FSDK_UnSupport_Handler)(struct _UNSUPPORT_INFO* pThis, int nType);
Tom Sepezcf22eb82015-05-12 17:28:08 -070054} UNSUPPORT_INFO;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070055
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070056/**
57 * Function: FSDK_SetUnSpObjProcessHandler
Tom Sepez9857e202015-05-13 17:09:26 -070058 * Setup A UnSupport Object process handler for foxit sdk.
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070059 * Parameters:
Tom Sepez9857e202015-05-13 17:09:26 -070060 * unsp_info - Pointer to a UNSUPPORT_INFO structure.
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070061 * Return Value:
Tom Sepez9857e202015-05-13 17:09:26 -070062 * TRUE means successful. FALSE means fails.
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070063 **/
64
Nico Weber9d8ec5a2015-08-04 13:00:21 -070065DLLEXPORT FPDF_BOOL STDCALL
66FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070067
Nico Weber9d8ec5a2015-08-04 13:00:21 -070068// flags for page mode.
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070069
Nico Weber9d8ec5a2015-08-04 13:00:21 -070070// Unknown value
71#define PAGEMODE_UNKNOWN -1
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070072
Nico Weber9d8ec5a2015-08-04 13:00:21 -070073// Neither document outline nor thumbnail images visible
74#define PAGEMODE_USENONE 0
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070075
Nico Weber9d8ec5a2015-08-04 13:00:21 -070076// Document outline visible
77#define PAGEMODE_USEOUTLINES 1
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070078
Nico Weber9d8ec5a2015-08-04 13:00:21 -070079// Thumbnial images visible
80#define PAGEMODE_USETHUMBS 2
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070081
Nico Weber9d8ec5a2015-08-04 13:00:21 -070082// Full-screen mode, with no menu bar, window controls, or any other window
83// visible
84#define PAGEMODE_FULLSCREEN 3
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070085
Nico Weber9d8ec5a2015-08-04 13:00:21 -070086// Optional content group panel visible
87#define PAGEMODE_USEOC 4
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070088
Nico Weber9d8ec5a2015-08-04 13:00:21 -070089// Attachments panel visible
Tom Sepez9857e202015-05-13 17:09:26 -070090#define PAGEMODE_USEATTACHMENTS 5
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070091
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070092/**
93 * Function: FPDFDoc_GetPageMode
Nico Weber9d8ec5a2015-08-04 13:00:21 -070094 * Get the document's PageMode(How the document should be displayed
95 *when opened)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070096 * Parameters:
Nico Weber9d8ec5a2015-08-04 13:00:21 -070097 * doc - Handle to document. Returned by FPDF_LoadDocument
98 *function.
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070099 * Return Value:
Tom Sepez9857e202015-05-13 17:09:26 -0700100 * The flags for page mode.
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700101 **/
102DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document);
103
104#ifdef __cplusplus
Tom Sepez9857e202015-05-13 17:09:26 -0700105}
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700106#endif
Tom Sepez9857e202015-05-13 17:09:26 -0700107
108#endif // PUBLIC_FPDF_EXT_H_