clang-format all pdfium code.
[pdfium.git] / fpdfsdk / include / pdfwindow / PWL_Caret.h
1 // Copyright 2014 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_INCLUDE_PDFWINDOW_PWL_CARET_H_
8 #define FPDFSDK_INCLUDE_PDFWINDOW_PWL_CARET_H_
9
10 #include "PWL_Wnd.h"
11
12 struct PWL_CARET_INFO {
13  public:
14   PWL_CARET_INFO() : bVisible(FALSE), ptHead(0, 0), ptFoot(0, 0) {}
15
16   FX_BOOL bVisible;
17   CPDF_Point ptHead;
18   CPDF_Point ptFoot;
19 };
20
21 class CPWL_Caret : public CPWL_Wnd {
22  public:
23   CPWL_Caret();
24   virtual ~CPWL_Caret();
25
26   virtual CFX_ByteString GetClassName() const;
27   virtual void GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream);
28   virtual void DrawThisAppearance(CFX_RenderDevice* pDevice,
29                                   CPDF_Matrix* pUser2Device);
30   virtual void InvalidateRect(CPDF_Rect* pRect = NULL);
31   virtual void SetVisible(FX_BOOL bVisible) {}
32   virtual void TimerProc();
33   void SetCaret(FX_BOOL bVisible,
34                 const CPDF_Point& ptHead,
35                 const CPDF_Point& ptFoot);
36   CFX_ByteString GetCaretAppearanceStream(const CPDF_Point& ptOffset);
37   void SetInvalidRect(CPDF_Rect rc) { m_rcInvalid = rc; }
38
39  private:
40   void GetCaretApp(CFX_ByteTextBuf& sAppStream, const CPDF_Point& ptOffset);
41   CPDF_Rect GetCaretRect() const;
42
43   FX_BOOL m_bFlash;
44   CPDF_Point m_ptHead;
45   CPDF_Point m_ptFoot;
46   FX_FLOAT m_fWidth;
47   int32_t m_nDelay;
48   CPDF_Rect m_rcInvalid;
49 };
50
51 #endif  // FPDFSDK_INCLUDE_PDFWINDOW_PWL_CARET_H_