| // 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_ |