Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: xfa/src/fwl/core/fwl_formimp.h

Issue 1803723002: Move xfa/src up to xfa/. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/src/fwl/core/fwl_contentimp.cpp ('k') | xfa/src/fwl/core/fwl_formimp.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 XFA_SRC_FWL_CORE_FWL_FORMIMP_H_
8 #define XFA_SRC_FWL_CORE_FWL_FORMIMP_H_
9
10 #include "xfa/include/fwl/core/fwl_form.h"
11 #include "xfa/src/fwl/core/fwl_panelimp.h"
12 #include "xfa/src/fwl/core/fwl_widgetimp.h"
13
14 class CFWL_NoteLoop;
15 class CFWL_WidgetImpProperties;
16 class CFWL_MsgMouse;
17 class IFWL_Widget;
18 class IFWL_ThemeProvider;
19 class CFWL_SysBtn;
20 class CFWL_FormImp;
21 class CFWL_FormImpDelegate;
22
23 #define FWL_SYSBUTTONSTATE_Hover 0x0001
24 #define FWL_SYSBUTTONSTATE_Pressed 0x0002
25 #define FWL_SYSBUTTONSTATE_Disabled 0x0010
26 class CFWL_SysBtn {
27 public:
28 CFWL_SysBtn() {
29 m_rtBtn.Set(0, 0, 0, 0);
30 m_dwState = 0;
31 }
32
33 FX_BOOL IsHover() { return m_dwState & FWL_SYSBUTTONSTATE_Hover; }
34 FX_BOOL IsPressed() { return m_dwState & FWL_SYSBUTTONSTATE_Pressed; }
35 FX_BOOL IsDisabled() { return m_dwState & FWL_SYSBUTTONSTATE_Disabled; }
36 void SetNormal() { m_dwState &= 0xFFF0; }
37 void SetPressed() {
38 SetNormal();
39 m_dwState |= FWL_SYSBUTTONSTATE_Pressed;
40 }
41 void SetHover() {
42 SetNormal();
43 m_dwState |= FWL_SYSBUTTONSTATE_Hover;
44 }
45 void SetDisabled(FX_BOOL bDisabled) {
46 bDisabled ? m_dwState |= FWL_SYSBUTTONSTATE_Disabled
47 : m_dwState &= ~FWL_SYSBUTTONSTATE_Disabled;
48 }
49 int32_t GetPartState() {
50 return (IsDisabled() ? FWL_PARTSTATE_FRM_Disabled : (m_dwState + 1));
51 }
52
53 CFX_RectF m_rtBtn;
54 FX_DWORD m_dwState;
55 };
56 enum FORM_RESIZETYPE {
57 FORM_RESIZETYPE_None = 0,
58 FORM_RESIZETYPE_Cap,
59 FORM_RESIZETYPE_Left,
60 FORM_RESIZETYPE_Top,
61 FORM_RESIZETYPE_Right,
62 FORM_RESIZETYPE_Bottom,
63 FORM_RESIZETYPE_LeftTop,
64 FORM_RESIZETYPE_LeftBottom,
65 FORM_RESIZETYPE_RightTop,
66 FORM_RESIZETYPE_RightBottom
67 };
68 typedef struct RestoreResizeInfo {
69 CFX_PointF m_ptStart;
70 CFX_SizeF m_szStart;
71 } RestoreInfo;
72 class CFWL_FormImp : public CFWL_PanelImp {
73 public:
74 CFWL_FormImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter);
75 virtual ~CFWL_FormImp();
76 virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const;
77 virtual FX_DWORD GetClassID() const;
78 virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const;
79 virtual FWL_ERR Initialize();
80 virtual FWL_ERR Finalize();
81
82 virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE);
83 virtual FWL_ERR GetClientRect(CFX_RectF& rect);
84 virtual FWL_ERR Update();
85 virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy);
86 virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics,
87 const CFX_Matrix* pMatrix = NULL);
88 virtual FWL_FORMSIZE GetFormSize();
89 virtual FWL_ERR SetFormSize(FWL_FORMSIZE eFormSize);
90 virtual IFWL_Widget* DoModal();
91 virtual IFWL_Widget* DoModal(FX_DWORD& dwCommandID);
92 virtual FWL_ERR EndDoModal();
93 virtual FWL_ERR SetBorderRegion(CFX_Path* pPath);
94 virtual void DrawBackground(CFX_Graphics* pGraphics,
95 IFWL_ThemeProvider* pTheme);
96 CFWL_WidgetImp* GetSubFocus();
97 void SetSubFocus(CFWL_WidgetImp* pWidget);
98 CFX_MapAccelerators& GetAccelerator();
99 void SetAccelerator(CFX_MapAccelerators* pAccelerators);
100
101 protected:
102 void ShowChildWidget(IFWL_Widget* pParent);
103 void RemoveSysButtons();
104 void CalcContentRect(CFX_RectF& rtContent);
105 CFWL_SysBtn* GetSysBtnAtPoint(FX_FLOAT fx, FX_FLOAT fy);
106 CFWL_SysBtn* GetSysBtnByState(FX_DWORD dwState);
107 CFWL_SysBtn* GetSysBtnByIndex(int32_t nIndex);
108 int32_t GetSysBtnIndex(CFWL_SysBtn* pBtn);
109 FX_FLOAT GetCaptionHeight();
110 void DrawCaptionText(CFX_Graphics* pGs,
111 IFWL_ThemeProvider* pTheme,
112 const CFX_Matrix* pMatrix = NULL);
113 void DrawIconImage(CFX_Graphics* pGs,
114 IFWL_ThemeProvider* pTheme,
115 const CFX_Matrix* pMatrix = NULL);
116 void GetEdgeRect(CFX_RectF& rtEdge);
117 void SetWorkAreaRect();
118 void SetCursor(FX_FLOAT fx, FX_FLOAT fy);
119 void Layout();
120 void ReSetSysBtn();
121 void RegisterForm();
122 void UnRegisterForm();
123 FX_BOOL IsDoModal();
124 void SetThemeData();
125 FX_BOOL HasIcon();
126 void UpdateIcon();
127 void UpdateCaption();
128 void DoWidthLimit(FX_FLOAT& fLeft,
129 FX_FLOAT& fWidth,
130 FX_FLOAT fCurX,
131 FX_FLOAT fSpace,
132 FX_FLOAT fLimitMin,
133 FX_FLOAT fLimitMax,
134 FX_BOOL bLeft);
135 void DoHeightLimit(FX_FLOAT& fTop,
136 FX_FLOAT& fHeight,
137 FX_FLOAT fCurY,
138 FX_FLOAT fSpace,
139 FX_FLOAT fLimitMin,
140 FX_FLOAT fLimitMax,
141 FX_BOOL bTop);
142 CFX_MapAccelerators m_mapAccelerators;
143 CFX_RectF m_rtRestore;
144 CFX_RectF m_rtCaptionText;
145 CFX_RectF m_rtRelative;
146 CFX_RectF m_rtCaption;
147 CFX_RectF m_rtIcon;
148 CFWL_SysBtn* m_pCloseBox;
149 CFWL_SysBtn* m_pMinBox;
150 CFWL_SysBtn* m_pMaxBox;
151 CFWL_SysBtn* m_pCaptionBox;
152 CFWL_NoteLoop* m_pNoteLoop;
153 CFWL_WidgetImp* m_pSubFocus;
154 RestoreInfo m_InfoStart;
155 FX_FLOAT m_fCXBorder;
156 FX_FLOAT m_fCYBorder;
157 int32_t m_iCaptureBtn;
158 int32_t m_iSysBox;
159 int32_t m_eResizeType;
160 FX_BOOL m_bLButtonDown;
161 FX_BOOL m_bMaximized;
162 FX_BOOL m_bSetMaximize;
163 FX_BOOL m_bCustomizeLayout;
164 FWL_FORMSIZE m_eFormSize;
165 FX_BOOL m_bDoModalFlag;
166 FX_FLOAT m_fSmallIconSz;
167 FX_FLOAT m_fBigIconSz;
168 CFX_DIBitmap* m_pBigIcon;
169 CFX_DIBitmap* m_pSmallIcon;
170 FX_BOOL m_bMouseIn;
171 friend class CFWL_FormImpDelegate;
172 };
173 class CFWL_FormImpDelegate : public CFWL_WidgetImpDelegate {
174 public:
175 CFWL_FormImpDelegate(CFWL_FormImp* pOwner);
176 int32_t OnProcessMessage(CFWL_Message* pMessage) override;
177 FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override;
178 FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics,
179 const CFX_Matrix* pMatrix = NULL) override;
180
181 protected:
182 void OnLButtonDown(CFWL_MsgMouse* pMsg);
183 void OnLButtonUp(CFWL_MsgMouse* pMsg);
184 void OnMouseMove(CFWL_MsgMouse* pMsg);
185 void OnMouseHover(CFWL_MsgMouse* pMsg);
186 void OnMouseLeave(CFWL_MsgMouse* pMsg);
187 void OnLButtonDblClk(CFWL_MsgMouse* pMsg);
188 void OnWindowMove(CFWL_MsgWindowMove* pMsg);
189 void OnClose(CFWL_MsgClose* pMsg);
190 CFWL_FormImp* m_pOwner;
191 };
192
193 #endif // XFA_SRC_FWL_CORE_FWL_FORMIMP_H_
OLDNEW
« no previous file with comments | « xfa/src/fwl/core/fwl_contentimp.cpp ('k') | xfa/src/fwl/core/fwl_formimp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698