blob: c5da75579bca699b06af0976115cabe00b3f4853 [file] [log] [blame]
dsinclairb9590102016-04-27 06:38:59 -07001// 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
Tom Sepez940967d2017-05-18 12:32:20 -070010#include "core/fxcrt/cfx_unowned_ptr.h"
dsinclaira52ab742016-09-29 13:59:29 -070011#include "core/fxcrt/fx_coordinates.h"
12#include "core/fxcrt/fx_system.h"
dsinclairb9590102016-04-27 06:38:59 -070013
dsinclairb9590102016-04-27 06:38:59 -070014using TimerCallback = void (*)(int32_t idEvent);
15
16struct FX_SYSTEMTIME {
17 FX_SYSTEMTIME()
18 : wYear(0),
19 wMonth(0),
20 wDayOfWeek(0),
21 wDay(0),
22 wHour(0),
23 wMinute(0),
24 wSecond(0),
25 wMilliseconds(0) {}
26
27 uint16_t wYear;
28 uint16_t wMonth;
29 uint16_t wDayOfWeek;
30 uint16_t wDay;
31 uint16_t wHour;
32 uint16_t wMinute;
33 uint16_t wSecond;
34 uint16_t wMilliseconds;
35};
36
37// Cursor style. These must match the values in public/fpdf_formfill.h
38#define FXCT_ARROW 0
39#define FXCT_NESW 1
40#define FXCT_NWSE 2
41#define FXCT_VBEAM 3
42#define FXCT_HBEAM 4
43#define FXCT_HAND 5
44
dsinclair8faac622016-09-15 12:41:50 -070045class CFFL_FormFiller;
dsinclairb9590102016-04-27 06:38:59 -070046class CPDF_Document;
47class CPDF_Font;
dsinclair735606d2016-10-05 15:47:02 -070048class CPDFSDK_FormFillEnvironment;
dsinclair8faac622016-09-15 12:41:50 -070049class CPDFSDK_Widget;
dsinclairb9590102016-04-27 06:38:59 -070050
51class CFX_SystemHandler {
52 public:
Tom Sepez940967d2017-05-18 12:32:20 -070053 explicit CFX_SystemHandler(CPDFSDK_FormFillEnvironment* pFormFillEnv);
54 ~CFX_SystemHandler();
dsinclairb9590102016-04-27 06:38:59 -070055
Lei Zhang77f9bff2017-08-29 11:34:12 -070056 void InvalidateRect(CPDFSDK_Widget* widget, const CFX_FloatRect& rect);
dsinclair8faac622016-09-15 12:41:50 -070057 void OutputSelectedRect(CFFL_FormFiller* pFormFiller, CFX_FloatRect& rect);
dsinclairb9590102016-04-27 06:38:59 -070058 bool IsSelectionImplemented() const;
dsinclairb9590102016-04-27 06:38:59 -070059 void SetCursor(int32_t nCursorType);
thestig907a5222016-06-21 14:38:27 -070060 bool FindNativeTrueTypeFont(CFX_ByteString sFontFaceName);
dsinclairb9590102016-04-27 06:38:59 -070061 CPDF_Font* AddNativeTrueTypeFontToPDF(CPDF_Document* pDoc,
62 CFX_ByteString sFontFaceName,
63 uint8_t nCharset);
dsinclair8faac622016-09-15 12:41:50 -070064
dsinclairb9590102016-04-27 06:38:59 -070065 int32_t SetTimer(int32_t uElapse, TimerCallback lpTimerFunc);
66 void KillTimer(int32_t nID);
dsinclairb9590102016-04-27 06:38:59 -070067
dsinclairb9590102016-04-27 06:38:59 -070068 private:
Tom Sepez940967d2017-05-18 12:32:20 -070069 CFX_UnownedPtr<CPDFSDK_FormFillEnvironment> const m_pFormFillEnv;
dsinclairb9590102016-04-27 06:38:59 -070070};
71
72#endif // FPDFSDK_CFX_SYSTEMHANDLER_H_