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