Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / xfa / src / fxfa / src / app / xfa_fffield.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _FXFA_FORMFILLER_FIELD_IMP_H\r
8 #define _FXFA_FORMFILLER_FIELD_IMP_H\r
9 #define XFA_MINUI_HEIGHT                4.32f\r
10 #define XFA_DEFAULTUI_HEIGHT    2.0f\r
11 class CXFA_TextLayout;\r
12 class CXFA_FFField : public CXFA_FFWidget, public IFWL_WidgetDelegate\r
13 {\r
14 public:\r
15     CXFA_FFField(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc);\r
16     virtual ~CXFA_FFField();\r
17 \r
18     virtual FX_BOOL     GetBBox(CFX_RectF &rtBox, FX_DWORD dwStatus, FX_BOOL bDrawFocus = FALSE);\r
19     virtual void        RenderWidget(CFX_Graphics* pGS, CFX_Matrix* pMatrix = NULL, FX_DWORD dwStatus = 0, int32_t iRotate = 0);\r
20     virtual     FX_BOOL IsLoaded();\r
21     virtual FX_BOOL     LoadWidget();\r
22     virtual void        UnloadWidget();\r
23     virtual     FX_BOOL LayoutWidget();\r
24     virtual     void    UpdateFWL();\r
25     FX_DWORD    UpdateUIProperty();\r
26     virtual FX_BOOL             OnMouseEnter();\r
27     virtual FX_BOOL             OnMouseExit();\r
28     virtual FX_BOOL             OnLButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
29     virtual FX_BOOL             OnLButtonUp(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
30     virtual FX_BOOL             OnLButtonDblClk(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
31     virtual FX_BOOL             OnMouseMove(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
32     virtual FX_BOOL             OnMouseWheel(FX_DWORD dwFlags, int16_t zDelta, FX_FLOAT fx, FX_FLOAT fy);\r
33     virtual FX_BOOL             OnRButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
34     virtual FX_BOOL             OnRButtonUp(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
35     virtual FX_BOOL             OnRButtonDblClk(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
36 \r
37     virtual FX_BOOL             OnSetFocus(CXFA_FFWidget* pOldWidget);\r
38     virtual FX_BOOL             OnKillFocus(CXFA_FFWidget* pNewWidget);\r
39     virtual FX_BOOL             OnKeyDown(FX_DWORD dwKeyCode, FX_DWORD dwFlags);\r
40     virtual FX_BOOL             OnKeyUp(FX_DWORD dwKeyCode, FX_DWORD dwFlags);\r
41     virtual FX_BOOL             OnChar(FX_DWORD dwChar, FX_DWORD dwFlags);\r
42     virtual     FX_DWORD        OnHitTest(FX_FLOAT fx, FX_FLOAT fy);\r
43     virtual FX_BOOL             OnSetCursor(FX_FLOAT fx, FX_FLOAT fy);\r
44 protected:\r
45     virtual FX_BOOL     PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy);\r
46     virtual     void    SetFWLRect();\r
47     void                        SetFWLThemeProvider();\r
48     CFWL_Widget*        GetNormalWidget()\r
49     {\r
50         return m_pNormalWidget;\r
51     }\r
52     void                        FWLToClient(FX_FLOAT &fx, FX_FLOAT &fy);\r
53     void                        LayoutCaption();\r
54     void                        RenderCaption(CFX_Graphics* pGS, CFX_Matrix* pMatrix = NULL);\r
55 \r
56     int32_t             CalculateOverride();\r
57     int32_t             CalculateWidgetAcc(CXFA_WidgetAcc* pAcc);\r
58     FX_BOOL                     ProcessCommittedData();\r
59     virtual FX_BOOL     CommitData();\r
60     virtual     FX_BOOL IsDataChanged();\r
61     void                        DrawHighlight(CFX_Graphics* pGS, CFX_Matrix* pMatrix, FX_DWORD dwStatus, FX_BOOL bEllipse = FALSE);\r
62     void                        DrawFocus(CFX_Graphics* pGS, CFX_Matrix* pMatrix);\r
63     void                        TranslateFWLMessage(CFWL_Message* pMessage);\r
64     void                        CapPlacement();\r
65     void                        CapTopBottomPlacement(CXFA_Caption caption, const CFX_RectF &rtWidget, int32_t iCapPlacement);\r
66     void                        CapLeftRightPlacement(CXFA_Caption caption, const CFX_RectF &rtWidget, int32_t iCapPlacement);\r
67     void                        SetEditScrollOffset();\r
68 public:\r
69     virtual int32_t     OnProcessMessage(CFWL_Message *pMessage);\r
70     virtual FWL_ERR             OnProcessEvent(CFWL_Event *pEvent);\r
71     virtual FWL_ERR             OnDrawWidget(CFX_Graphics *pGraphics, const CFX_Matrix *pMatrix = NULL);\r
72 protected:\r
73     CFWL_Widget*        m_pNormalWidget;\r
74     CFX_RectF           m_rtUI;\r
75     CFX_RectF           m_rtCaption;\r
76 };\r
77 #endif\r