// Copyright 2016 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef FPDFSDK_CFX_SYSTEMHANDLER_H_ #define FPDFSDK_CFX_SYSTEMHANDLER_H_ #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" #include "core/fxcrt/unowned_ptr.h" using TimerCallback = void (*)(int32_t idEvent); struct FX_SYSTEMTIME { FX_SYSTEMTIME() : wYear(0), wMonth(0), wDayOfWeek(0), wDay(0), wHour(0), wMinute(0), wSecond(0), wMilliseconds(0) {} uint16_t wYear; uint16_t wMonth; uint16_t wDayOfWeek; uint16_t wDay; uint16_t wHour; uint16_t wMinute; uint16_t wSecond; uint16_t wMilliseconds; }; // Cursor style. These must match the values in public/fpdf_formfill.h #define FXCT_ARROW 0 #define FXCT_NESW 1 #define FXCT_NWSE 2 #define FXCT_VBEAM 3 #define FXCT_HBEAM 4 #define FXCT_HAND 5 class CFFL_FormFiller; class CPDF_Document; class CPDF_Font; class CPDFSDK_FormFillEnvironment; class CPDFSDK_Widget; class CFX_SystemHandler { public: explicit CFX_SystemHandler(CPDFSDK_FormFillEnvironment* pFormFillEnv); ~CFX_SystemHandler(); void InvalidateRect(CPDFSDK_Widget* widget, const CFX_FloatRect& rect); void OutputSelectedRect(CFFL_FormFiller* pFormFiller, CFX_FloatRect& rect); bool IsSelectionImplemented() const; void SetCursor(int32_t nCursorType); bool FindNativeTrueTypeFont(ByteString sFontFaceName); CPDF_Font* AddNativeTrueTypeFontToPDF(CPDF_Document* pDoc, ByteString sFontFaceName, uint8_t nCharset); int32_t SetTimer(int32_t uElapse, TimerCallback lpTimerFunc); void KillTimer(int32_t nID); private: UnownedPtr<CPDFSDK_FormFillEnvironment> const m_pFormFillEnv; }; #endif // FPDFSDK_CFX_SYSTEMHANDLER_H_