Home | History | Annotate | Download | only in fpdfsdk
      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 {
     16   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:
     52   explicit CFX_SystemHandler(CPDFSDK_FormFillEnvironment* pFormFillEnv)
     53       : m_pFormFillEnv(pFormFillEnv) {}
     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