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

Side by Side Diff: xfa/src/fwl/basewidget/fwl_comboboximp.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/basewidget/fwl_checkboximp.cpp ('k') | xfa/src/fwl/basewidget/fwl_comboboximp.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_BASEWIDGET_FWL_COMBOBOXIMP_H_
8 #define XFA_SRC_FWL_BASEWIDGET_FWL_COMBOBOXIMP_H_
9
10 #include <memory>
11
12 #include "xfa/src/fwl/basewidget/fwl_editimp.h"
13 #include "xfa/src/fwl/basewidget/fwl_listboximp.h"
14
15 class CFWL_WidgetImp;
16 class CFWL_WidgetImpProperties;
17 class CFWL_WidgetImpDelegate;
18 class CFWL_ListBoxImp;
19 class CFWL_ListBoxImpDelegate;
20 class CFWL_FormProxyImp;
21 class IFWL_Widget;
22 class CFWL_ComboEditImp;
23 class CFWL_ComboEditImpDelegate;
24 class CFWL_ComboListImp;
25 class CFWL_ComboListImpDelegate;
26 class CFWL_ComboBoxImp;
27 class CFWL_ComboBoxImpDelegate;
28 class CFWL_ComboProxyImpDelegate;
29 class CFWL_ComboEditImp : public CFWL_EditImp {
30 public:
31 CFWL_ComboEditImp(const CFWL_WidgetImpProperties& properties,
32 IFWL_Widget* pOuter);
33
34 void ClearSelected();
35 void SetSelected();
36 void EndCaret();
37 void FlagFocus(FX_BOOL bSet);
38
39 protected:
40 void SetComboBoxFocus(FX_BOOL bSet);
41 CFWL_ComboBoxImp* m_pOuter;
42 friend class CFWL_ComboEditImpDelegate;
43 };
44 class CFWL_ComboEditImpDelegate : public CFWL_EditImpDelegate {
45 public:
46 CFWL_ComboEditImpDelegate(CFWL_ComboEditImp* pOwner);
47 int32_t OnProcessMessage(CFWL_Message* pMessage) override;
48
49 protected:
50 CFWL_ComboEditImp* m_pOwner;
51 };
52 class CFWL_ComboListImp : public CFWL_ListBoxImp {
53 public:
54 CFWL_ComboListImp(const CFWL_WidgetImpProperties& properties,
55 IFWL_Widget* pOuter);
56 virtual FWL_ERR Initialize();
57 virtual FWL_ERR Finalize();
58 int32_t MatchItem(const CFX_WideString& wsMatch);
59 void ChangeSelected(int32_t iSel);
60 int32_t CountItems();
61 void GetItemRect(int32_t nIndex, CFX_RectF& rtItem);
62 void ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy);
63 void SetFocus(FX_BOOL bSet);
64 FX_BOOL m_bNotifyOwner;
65 friend class CFWL_ComboListImpDelegate;
66 friend class CFWL_ComboBoxImp;
67 };
68 class CFWL_ComboListImpDelegate : public CFWL_ListBoxImpDelegate {
69 public:
70 CFWL_ComboListImpDelegate(CFWL_ComboListImp* pOwner);
71 int32_t OnProcessMessage(CFWL_Message* pMessage) override;
72
73 protected:
74 void OnDropListFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE);
75 int32_t OnDropListMouseMove(CFWL_MsgMouse* pMsg);
76 int32_t OnDropListLButtonDown(CFWL_MsgMouse* pMsg);
77 int32_t OnDropListLButtonUp(CFWL_MsgMouse* pMsg);
78 int32_t OnDropListKey(CFWL_MsgKey* pKey);
79 void OnDropListKeyDown(CFWL_MsgKey* pKey);
80 CFWL_ComboListImp* m_pOwner;
81 };
82 class CFWL_ComboBoxImp : public CFWL_WidgetImp {
83 public:
84 CFWL_ComboBoxImp(const CFWL_WidgetImpProperties& properties,
85 IFWL_Widget* pOuter);
86 virtual ~CFWL_ComboBoxImp();
87 virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const;
88 virtual FX_DWORD GetClassID() const;
89 virtual FWL_ERR Initialize();
90 virtual FWL_ERR Finalize();
91 virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE);
92 virtual FWL_ERR ModifyStylesEx(FX_DWORD dwStylesExAdded,
93 FX_DWORD dwStylesExRemoved);
94 virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE);
95 virtual FWL_ERR Update();
96 virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy);
97 virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics,
98 const CFX_Matrix* pMatrix = NULL);
99 virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider);
100 virtual int32_t GetCurSel();
101 virtual FWL_ERR SetCurSel(int32_t iSel);
102 virtual FWL_ERR SetEditText(const CFX_WideString& wsText);
103 virtual int32_t GetEditTextLength() const;
104 virtual FWL_ERR GetEditText(CFX_WideString& wsText,
105 int32_t nStart = 0,
106 int32_t nCount = -1) const;
107 virtual FWL_ERR SetEditSelRange(int32_t nStart, int32_t nCount = -1);
108 virtual int32_t GetEditSelRange(int32_t nIndex, int32_t& nStart);
109 virtual int32_t GetEditLimit();
110 virtual FWL_ERR SetEditLimit(int32_t nLimit);
111 virtual FWL_ERR EditDoClipboard(int32_t iCmd);
112 virtual FX_BOOL EditRedo(const CFX_ByteStringC& bsRecord);
113 virtual FX_BOOL EditUndo(const CFX_ByteStringC& bsRecord);
114 virtual IFWL_ListBox* GetListBoxt();
115 virtual FX_BOOL AfterFocusShowDropList();
116 virtual FX_ERR OpenDropDownList(FX_BOOL bActivate);
117 virtual FX_BOOL EditCanUndo();
118 virtual FX_BOOL EditCanRedo();
119 virtual FX_BOOL EditUndo();
120 virtual FX_BOOL EditRedo();
121 virtual FX_BOOL EditCanCopy();
122 virtual FX_BOOL EditCanCut();
123 virtual FX_BOOL EditCanSelectAll();
124 virtual FX_BOOL EditCopy(CFX_WideString& wsCopy);
125 virtual FX_BOOL EditCut(CFX_WideString& wsCut);
126 virtual FX_BOOL EditPaste(const CFX_WideString& wsPaste);
127 virtual FX_BOOL EditSelectAll();
128 virtual FX_BOOL EditDelete();
129 virtual FX_BOOL EditDeSelect();
130 virtual FWL_ERR GetBBox(CFX_RectF& rect);
131 virtual FWL_ERR EditModifyStylesEx(FX_DWORD dwStylesExAdded,
132 FX_DWORD dwStylesExRemoved);
133
134 protected:
135 void DrawStretchHandler(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix);
136 FX_FLOAT GetListHeight();
137 void ShowDropList(FX_BOOL bActivate);
138 FX_BOOL IsDropListShowed();
139 FX_BOOL IsDropDownStyle() const;
140 void MatchEditText();
141 void SynchrEditText(int32_t iListItem);
142 void Layout();
143 void ReSetTheme();
144 void ReSetEditAlignment();
145 void ReSetListItemAlignment();
146 void ProcessSelChanged(FX_BOOL bLButtonUp);
147 void InitProxyForm();
148 FWL_ERR DisForm_Initialize();
149 void DisForm_InitComboList();
150 void DisForm_InitComboEdit();
151 void DisForm_ShowDropList(FX_BOOL bActivate);
152 FX_BOOL DisForm_IsDropListShowed();
153 FWL_ERR DisForm_ModifyStylesEx(FX_DWORD dwStylesExAdded,
154 FX_DWORD dwStylesExRemoved);
155 FWL_ERR DisForm_Update();
156 FX_DWORD DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy);
157 FWL_ERR DisForm_DrawWidget(CFX_Graphics* pGraphics,
158 const CFX_Matrix* pMatrix = NULL);
159 FWL_ERR DisForm_GetBBox(CFX_RectF& rect);
160 void DisForm_Layout();
161
162 CFX_RectF m_rtClient;
163 CFX_RectF m_rtContent;
164 CFX_RectF m_rtBtn;
165 CFX_RectF m_rtList;
166 CFX_RectF m_rtProxy;
167 CFX_RectF m_rtHandler;
168 std::unique_ptr<IFWL_Edit> m_pEdit;
169 std::unique_ptr<IFWL_ListBox> m_pListBox;
170 IFWL_Form* m_pForm;
171 FX_BOOL m_bLButtonDown;
172 FX_BOOL m_bUpFormHandler;
173 int32_t m_iCurSel;
174 int32_t m_iBtnState;
175 FX_FLOAT m_fComboFormHandler;
176 FX_FLOAT m_fItemHeight;
177 FX_BOOL m_bNeedShowList;
178 CFWL_FormProxyImp* m_pProxy;
179 CFWL_ComboProxyImpDelegate* m_pListProxyDelegate;
180
181 friend class CFWL_ComboListImp;
182 friend class CFWL_ComboEditImp;
183 friend class CFWL_ComboEditImpDelegate;
184 friend class CFWL_ComboListImpDelegate;
185 friend class CFWL_ComboBoxImpDelegate;
186 friend class CFWL_ComboProxyImpDelegate;
187 };
188 class CFWL_ComboBoxImpDelegate : public CFWL_WidgetImpDelegate {
189 public:
190 CFWL_ComboBoxImpDelegate(CFWL_ComboBoxImp* pOwner);
191 int32_t OnProcessMessage(CFWL_Message* pMessage) override;
192 FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override;
193 FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics,
194 const CFX_Matrix* pMatrix = NULL) override;
195
196 protected:
197 void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE);
198 void OnLButtonDown(CFWL_MsgMouse* pMsg);
199 void OnLButtonUp(CFWL_MsgMouse* pMsg);
200 void OnMouseMove(CFWL_MsgMouse* pMsg);
201 void OnMouseLeave(CFWL_MsgMouse* pMsg);
202 void OnKey(CFWL_MsgKey* pMsg);
203 void DoSubCtrlKey(CFWL_MsgKey* pMsg);
204
205 protected:
206 int32_t DisForm_OnProcessMessage(CFWL_Message* pMessage);
207 void DisForm_OnLButtonDown(CFWL_MsgMouse* pMsg);
208 void DisForm_OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE);
209 void DisForm_OnKey(CFWL_MsgKey* pMsg);
210
211 protected:
212 CFWL_ComboBoxImp* m_pOwner;
213 friend class CFWL_ComboEditImpDelegate;
214 friend class CFWL_ComboListImpDelegate;
215 };
216 class CFWL_ComboProxyImpDelegate : public CFWL_WidgetImpDelegate {
217 public:
218 CFWL_ComboProxyImpDelegate(IFWL_Form* pForm, CFWL_ComboBoxImp* pComboBox);
219 int32_t OnProcessMessage(CFWL_Message* pMessage) override;
220 FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics,
221 const CFX_Matrix* pMatrix = NULL) override;
222 void Reset() { m_bLButtonUpSelf = FALSE; }
223
224 protected:
225 void OnLButtonDown(CFWL_MsgMouse* pMsg);
226 void OnLButtonUp(CFWL_MsgMouse* pMsg);
227 void OnMouseMove(CFWL_MsgMouse* pMsg);
228 void OnDeactive(CFWL_MsgDeactivate* pMsg);
229 void OnFocusChanged(CFWL_MsgKillFocus* pMsg, FX_BOOL bSet);
230 FX_BOOL m_bLButtonDown;
231 FX_BOOL m_bLButtonUpSelf;
232 FX_FLOAT m_fStartPos;
233 IFWL_Form* m_pForm;
234 CFWL_ComboBoxImp* m_pComboBox;
235 };
236
237 #endif // XFA_SRC_FWL_BASEWIDGET_FWL_COMBOBOXIMP_H_
OLDNEW
« no previous file with comments | « xfa/src/fwl/basewidget/fwl_checkboximp.cpp ('k') | xfa/src/fwl/basewidget/fwl_comboboximp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698