1 // Copyright 2016 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 FPDFSDK_CFX_SYSTEMHANDLER_H_ 8 #define FPDFSDK_CFX_SYSTEMHANDLER_H_ 9 10 #include "core/fxcrt/fx_coordinates.h" 11 #include "core/fxcrt/fx_string.h" 12 #include "core/fxcrt/fx_system.h" 13 #include "core/fxcrt/unowned_ptr.h" 14 15 using TimerCallback = void (*)(int32_t idEvent); 16 17 struct FX_SYSTEMTIME { FX_SYSTEMTIMEFX_SYSTEMTIME18 FX_SYSTEMTIME() 19 : wYear(0), 20 wMonth(0), 21 wDayOfWeek(0), 22 wDay(0), 23 wHour(0), 24 wMinute(0), 25 wSecond(0), 26 wMilliseconds(0) {} 27 28 uint16_t wYear; 29 uint16_t wMonth; 30 uint16_t wDayOfWeek; 31 uint16_t wDay; 32 uint16_t wHour; 33 uint16_t wMinute; 34 uint16_t wSecond; 35 uint16_t wMilliseconds; 36 }; 37 38 // Cursor style. These must match the values in public/fpdf_formfill.h 39 #define FXCT_ARROW 0 40 #define FXCT_NESW 1 41 #define FXCT_NWSE 2 42 #define FXCT_VBEAM 3 43 #define FXCT_HBEAM 4 44 #define FXCT_HAND 5 45 46 class CFFL_FormFiller; 47 class CPDF_Document; 48 class CPDF_Font; 49 class CPDFSDK_FormFillEnvironment; 50 class CPDFSDK_Widget; 51 52 class CFX_SystemHandler { 53 public: 54 explicit CFX_SystemHandler(CPDFSDK_FormFillEnvironment* pFormFillEnv); 55 ~CFX_SystemHandler(); 56 57 void InvalidateRect(CPDFSDK_Widget* widget, const CFX_FloatRect& rect); 58 void OutputSelectedRect(CFFL_FormFiller* pFormFiller, CFX_FloatRect& rect); 59 bool IsSelectionImplemented() const; 60 void SetCursor(int32_t nCursorType); 61 bool FindNativeTrueTypeFont(ByteString sFontFaceName); 62 CPDF_Font* AddNativeTrueTypeFontToPDF(CPDF_Document* pDoc, 63 ByteString sFontFaceName, 64 uint8_t nCharset); 65 66 int32_t SetTimer(int32_t uElapse, TimerCallback lpTimerFunc); 67 void KillTimer(int32_t nID); 68 69 private: 70 UnownedPtr<CPDFSDK_FormFillEnvironment> const m_pFormFillEnv; 71 }; 72 73 #endif // FPDFSDK_CFX_SYSTEMHANDLER_H_ 74