1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2014 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #ifndef PUBLIC_FPDF_EXT_H_ 8*3ac0a46fSAndroid Build Coastguard Worker #define PUBLIC_FPDF_EXT_H_ 9*3ac0a46fSAndroid Build Coastguard Worker 10*3ac0a46fSAndroid Build Coastguard Worker #include <time.h> 11*3ac0a46fSAndroid Build Coastguard Worker 12*3ac0a46fSAndroid Build Coastguard Worker // NOLINTNEXTLINE(build/include) 13*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfview.h" 14*3ac0a46fSAndroid Build Coastguard Worker 15*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 16*3ac0a46fSAndroid Build Coastguard Worker extern "C" { 17*3ac0a46fSAndroid Build Coastguard Worker #endif // __cplusplus 18*3ac0a46fSAndroid Build Coastguard Worker 19*3ac0a46fSAndroid Build Coastguard Worker // Unsupported XFA form. 20*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_XFAFORM 1 21*3ac0a46fSAndroid Build Coastguard Worker // Unsupported portable collection. 22*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_PORTABLECOLLECTION 2 23*3ac0a46fSAndroid Build Coastguard Worker // Unsupported attachment. 24*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_ATTACHMENT 3 25*3ac0a46fSAndroid Build Coastguard Worker // Unsupported security. 26*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_SECURITY 4 27*3ac0a46fSAndroid Build Coastguard Worker // Unsupported shared review. 28*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_SHAREDREVIEW 5 29*3ac0a46fSAndroid Build Coastguard Worker // Unsupported shared form, acrobat. 30*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_SHAREDFORM_ACROBAT 6 31*3ac0a46fSAndroid Build Coastguard Worker // Unsupported shared form, filesystem. 32*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM 7 33*3ac0a46fSAndroid Build Coastguard Worker // Unsupported shared form, email. 34*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_DOC_SHAREDFORM_EMAIL 8 35*3ac0a46fSAndroid Build Coastguard Worker // Unsupported 3D annotation. 36*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_ANNOT_3DANNOT 11 37*3ac0a46fSAndroid Build Coastguard Worker // Unsupported movie annotation. 38*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_ANNOT_MOVIE 12 39*3ac0a46fSAndroid Build Coastguard Worker // Unsupported sound annotation. 40*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_ANNOT_SOUND 13 41*3ac0a46fSAndroid Build Coastguard Worker // Unsupported screen media annotation. 42*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_ANNOT_SCREEN_MEDIA 14 43*3ac0a46fSAndroid Build Coastguard Worker // Unsupported screen rich media annotation. 44*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA 15 45*3ac0a46fSAndroid Build Coastguard Worker // Unsupported attachment annotation. 46*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_ANNOT_ATTACHMENT 16 47*3ac0a46fSAndroid Build Coastguard Worker // Unsupported signature annotation. 48*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_UNSP_ANNOT_SIG 17 49*3ac0a46fSAndroid Build Coastguard Worker 50*3ac0a46fSAndroid Build Coastguard Worker // Interface for unsupported feature notifications. 51*3ac0a46fSAndroid Build Coastguard Worker typedef struct _UNSUPPORT_INFO { 52*3ac0a46fSAndroid Build Coastguard Worker // Version number of the interface. Must be 1. 53*3ac0a46fSAndroid Build Coastguard Worker int version; 54*3ac0a46fSAndroid Build Coastguard Worker 55*3ac0a46fSAndroid Build Coastguard Worker // Unsupported object notification function. 56*3ac0a46fSAndroid Build Coastguard Worker // Interface Version: 1 57*3ac0a46fSAndroid Build Coastguard Worker // Implementation Required: Yes 58*3ac0a46fSAndroid Build Coastguard Worker // 59*3ac0a46fSAndroid Build Coastguard Worker // pThis - pointer to the interface structure. 60*3ac0a46fSAndroid Build Coastguard Worker // nType - the type of unsupported object. One of the |FPDF_UNSP_*| entries. 61*3ac0a46fSAndroid Build Coastguard Worker void (*FSDK_UnSupport_Handler)(struct _UNSUPPORT_INFO* pThis, int nType); 62*3ac0a46fSAndroid Build Coastguard Worker } UNSUPPORT_INFO; 63*3ac0a46fSAndroid Build Coastguard Worker 64*3ac0a46fSAndroid Build Coastguard Worker // Setup an unsupported object handler. 65*3ac0a46fSAndroid Build Coastguard Worker // 66*3ac0a46fSAndroid Build Coastguard Worker // unsp_info - Pointer to an UNSUPPORT_INFO structure. 67*3ac0a46fSAndroid Build Coastguard Worker // 68*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 69*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 70*3ac0a46fSAndroid Build Coastguard Worker FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info); 71*3ac0a46fSAndroid Build Coastguard Worker 72*3ac0a46fSAndroid Build Coastguard Worker // Set replacement function for calls to time(). 73*3ac0a46fSAndroid Build Coastguard Worker // 74*3ac0a46fSAndroid Build Coastguard Worker // This API is intended to be used only for testing, thus may cause PDFium to 75*3ac0a46fSAndroid Build Coastguard Worker // behave poorly in production environments. 76*3ac0a46fSAndroid Build Coastguard Worker // 77*3ac0a46fSAndroid Build Coastguard Worker // func - Function pointer to alternate implementation of time(), or 78*3ac0a46fSAndroid Build Coastguard Worker // NULL to restore to actual time() call itself. 79*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FSDK_SetTimeFunction(time_t (*func)()); 80*3ac0a46fSAndroid Build Coastguard Worker 81*3ac0a46fSAndroid Build Coastguard Worker // Set replacement function for calls to localtime(). 82*3ac0a46fSAndroid Build Coastguard Worker // 83*3ac0a46fSAndroid Build Coastguard Worker // This API is intended to be used only for testing, thus may cause PDFium to 84*3ac0a46fSAndroid Build Coastguard Worker // behave poorly in production environments. 85*3ac0a46fSAndroid Build Coastguard Worker // 86*3ac0a46fSAndroid Build Coastguard Worker // func - Function pointer to alternate implementation of localtime(), or 87*3ac0a46fSAndroid Build Coastguard Worker // NULL to restore to actual localtime() call itself. 88*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV 89*3ac0a46fSAndroid Build Coastguard Worker FSDK_SetLocaltimeFunction(struct tm* (*func)(const time_t*)); 90*3ac0a46fSAndroid Build Coastguard Worker 91*3ac0a46fSAndroid Build Coastguard Worker // Unknown page mode. 92*3ac0a46fSAndroid Build Coastguard Worker #define PAGEMODE_UNKNOWN -1 93*3ac0a46fSAndroid Build Coastguard Worker // Document outline, and thumbnails hidden. 94*3ac0a46fSAndroid Build Coastguard Worker #define PAGEMODE_USENONE 0 95*3ac0a46fSAndroid Build Coastguard Worker // Document outline visible. 96*3ac0a46fSAndroid Build Coastguard Worker #define PAGEMODE_USEOUTLINES 1 97*3ac0a46fSAndroid Build Coastguard Worker // Thumbnail images visible. 98*3ac0a46fSAndroid Build Coastguard Worker #define PAGEMODE_USETHUMBS 2 99*3ac0a46fSAndroid Build Coastguard Worker // Full-screen mode, no menu bar, window controls, or other decorations visible. 100*3ac0a46fSAndroid Build Coastguard Worker #define PAGEMODE_FULLSCREEN 3 101*3ac0a46fSAndroid Build Coastguard Worker // Optional content group panel visible. 102*3ac0a46fSAndroid Build Coastguard Worker #define PAGEMODE_USEOC 4 103*3ac0a46fSAndroid Build Coastguard Worker // Attachments panel visible. 104*3ac0a46fSAndroid Build Coastguard Worker #define PAGEMODE_USEATTACHMENTS 5 105*3ac0a46fSAndroid Build Coastguard Worker 106*3ac0a46fSAndroid Build Coastguard Worker // Get the document's PageMode. 107*3ac0a46fSAndroid Build Coastguard Worker // 108*3ac0a46fSAndroid Build Coastguard Worker // doc - Handle to document. 109*3ac0a46fSAndroid Build Coastguard Worker // 110*3ac0a46fSAndroid Build Coastguard Worker // Returns one of the |PAGEMODE_*| flags defined above. 111*3ac0a46fSAndroid Build Coastguard Worker // 112*3ac0a46fSAndroid Build Coastguard Worker // The page mode defines how the document should be initially displayed. 113*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFDoc_GetPageMode(FPDF_DOCUMENT document); 114*3ac0a46fSAndroid Build Coastguard Worker 115*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 116*3ac0a46fSAndroid Build Coastguard Worker } // extern "C" 117*3ac0a46fSAndroid Build Coastguard Worker #endif // __cplusplus 118*3ac0a46fSAndroid Build Coastguard Worker 119*3ac0a46fSAndroid Build Coastguard Worker #endif // PUBLIC_FPDF_EXT_H_ 120