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