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

Side by Side Diff: xfa/fwl/core/ifwl_combobox.h

Issue 2494743002: IFWL cleanup in the Combo classes (Closed)
Patch Set: Review feedback Created 4 years, 1 month 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/fwl/core/cfwl_listbox.cpp ('k') | xfa/fwl/core/ifwl_combobox.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef XFA_FWL_CORE_IFWL_COMBOBOX_H_ 7 #ifndef XFA_FWL_CORE_IFWL_COMBOBOX_H_
8 #define XFA_FWL_CORE_IFWL_COMBOBOX_H_ 8 #define XFA_FWL_CORE_IFWL_COMBOBOX_H_
9 9
10 #include "xfa/fwl/core/ifwl_combolist.h"
10 #include "xfa/fwl/core/ifwl_form.h" 11 #include "xfa/fwl/core/ifwl_form.h"
11 #include "xfa/fwl/core/ifwl_listbox.h" 12 #include "xfa/fwl/core/ifwl_listbox.h"
12 #include "xfa/fxgraphics/cfx_graphics.h" 13 #include "xfa/fxgraphics/cfx_graphics.h"
13 14
14 class CFWL_WidgetProperties; 15 class CFWL_WidgetProperties;
15 class IFWL_ComboBox; 16 class IFWL_ComboBox;
16 class IFWL_ComboBoxProxy; 17 class IFWL_ComboBoxProxy;
17 class IFWL_ComboEdit; 18 class IFWL_ComboEdit;
18 class IFWL_ComboList;
19 class IFWL_FormProxy; 19 class IFWL_FormProxy;
20 class IFWL_ListBox; 20 class IFWL_ListBox;
21 class IFWL_Widget; 21 class IFWL_Widget;
22 22
23 #define FWL_STYLEEXT_CMB_DropList (0L << 0) 23 #define FWL_STYLEEXT_CMB_DropList (0L << 0)
24 #define FWL_STYLEEXT_CMB_DropDown (1L << 0) 24 #define FWL_STYLEEXT_CMB_DropDown (1L << 0)
25 #define FWL_STYLEEXT_CMB_Sort (1L << 1) 25 #define FWL_STYLEEXT_CMB_Sort (1L << 1)
26 #define FWL_STYLEEXT_CMB_ListDrag (1L << 2) 26 #define FWL_STYLEEXT_CMB_ListDrag (1L << 2)
27 #define FWL_STYLEEXT_CMB_OwnerDraw (1L << 3) 27 #define FWL_STYLEEXT_CMB_OwnerDraw (1L << 3)
28 #define FWL_STYLEEXT_CMB_EditHNear (0L << 4) 28 #define FWL_STYLEEXT_CMB_EditHNear (0L << 4)
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 void Update() override; 92 void Update() override;
93 FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override; 93 FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override;
94 void DrawWidget(CFX_Graphics* pGraphics, 94 void DrawWidget(CFX_Graphics* pGraphics,
95 const CFX_Matrix* pMatrix = nullptr) override; 95 const CFX_Matrix* pMatrix = nullptr) override;
96 void SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) override; 96 void SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) override;
97 void OnProcessMessage(CFWL_Message* pMessage) override; 97 void OnProcessMessage(CFWL_Message* pMessage) override;
98 void OnProcessEvent(CFWL_Event* pEvent) override; 98 void OnProcessEvent(CFWL_Event* pEvent) override;
99 void OnDrawWidget(CFX_Graphics* pGraphics, 99 void OnDrawWidget(CFX_Graphics* pGraphics,
100 const CFX_Matrix* pMatrix) override; 100 const CFX_Matrix* pMatrix) override;
101 101
102 int32_t GetCurSel(); 102 int32_t GetCurSel() const;
103 FWL_Error SetCurSel(int32_t iSel); 103 void SetCurSel(int32_t iSel);
104
104 void SetEditText(const CFX_WideString& wsText); 105 void SetEditText(const CFX_WideString& wsText);
105 int32_t GetEditTextLength() const; 106 void GetEditText(CFX_WideString& wsText,
106 FWL_Error GetEditText(CFX_WideString& wsText, 107 int32_t nStart = 0,
107 int32_t nStart = 0, 108 int32_t nCount = -1) const;
108 int32_t nCount = -1) const; 109
109 FWL_Error SetEditSelRange(int32_t nStart, int32_t nCount = -1); 110 void OpenDropDownList(bool bActivate);
110 int32_t GetEditSelRange(int32_t nIndex, int32_t& nStart); 111
111 int32_t GetEditLimit();
112 FWL_Error SetEditLimit(int32_t nLimit);
113 bool EditRedo(const IFDE_TxtEdtDoRecord* pRecord);
114 bool EditUndo(const IFDE_TxtEdtDoRecord* pRecord);
115 IFWL_ListBox* GetListBoxt();
116 bool AfterFocusShowDropList();
117 FWL_Error OpenDropDownList(bool bActivate);
118 bool EditCanUndo(); 112 bool EditCanUndo();
119 bool EditCanRedo(); 113 bool EditCanRedo();
120 bool EditUndo(); 114 bool EditUndo();
121 bool EditRedo(); 115 bool EditRedo();
122 bool EditCanCopy(); 116 bool EditCanCopy();
123 bool EditCanCut(); 117 bool EditCanCut();
124 bool EditCanSelectAll(); 118 bool EditCanSelectAll();
125 bool EditCopy(CFX_WideString& wsCopy); 119 bool EditCopy(CFX_WideString& wsCopy);
126 bool EditCut(CFX_WideString& wsCut); 120 bool EditCut(CFX_WideString& wsCut);
127 bool EditPaste(const CFX_WideString& wsPaste); 121 bool EditPaste(const CFX_WideString& wsPaste);
128 bool EditSelectAll(); 122 bool EditSelectAll();
129 bool EditDelete(); 123 bool EditDelete();
130 bool EditDeSelect(); 124 bool EditDeSelect();
131 FWL_Error GetBBox(CFX_RectF& rect); 125
126 void GetBBox(CFX_RectF& rect);
132 void EditModifyStylesEx(uint32_t dwStylesExAdded, uint32_t dwStylesExRemoved); 127 void EditModifyStylesEx(uint32_t dwStylesExAdded, uint32_t dwStylesExRemoved);
133 128
134 void DrawStretchHandler(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix); 129 void DrawStretchHandler(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix);
135 bool IsDropListShowed(); 130 bool IsDropListVisible();
131
136 void ShowDropList(bool bActivate); 132 void ShowDropList(bool bActivate);
137 133
138 IFWL_ComboEdit* GetComboEdit() const { return m_pEdit.get(); } 134 IFWL_ComboEdit* GetComboEdit() const { return m_pEdit.get(); }
135
139 void ProcessSelChanged(bool bLButtonUp); 136 void ProcessSelChanged(bool bLButtonUp);
140 int32_t GetCurrentSelection() const { return m_iCurSel; } 137 int32_t GetCurrentSelection() const { return m_iCurSel; }
141 138
142 protected: 139 private:
143 FX_FLOAT GetListHeight(); 140 FX_FLOAT GetListHeight();
144 bool IsDropDownStyle() const; 141 bool IsDropDownStyle() const {
142 return !!(m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CMB_DropDown);
143 }
145 void MatchEditText(); 144 void MatchEditText();
146 void SynchrEditText(int32_t iListItem); 145 void SyncEditText(int32_t iListItem);
147 void Layout(); 146 void Layout();
148 void ReSetTheme(); 147 void ResetTheme();
149 void ReSetEditAlignment(); 148 void ResetEditAlignment();
150 void ReSetListItemAlignment(); 149 void ResetListItemAlignment();
151 void InitProxyForm(); 150 void InitProxyForm();
152 void DisForm_InitComboList(); 151 void DisForm_InitComboList();
153 void DisForm_InitComboEdit(); 152 void DisForm_InitComboEdit();
154 void DisForm_ShowDropList(bool bActivate); 153 void DisForm_ShowDropList(bool bActivate);
155 bool DisForm_IsDropListShowed(); 154 bool DisForm_IsDropListVisible() const {
155 return !(m_pListBox->GetStates() & FWL_WGTSTATE_Invisible);
156 }
156 void DisForm_ModifyStylesEx(uint32_t dwStylesExAdded, 157 void DisForm_ModifyStylesEx(uint32_t dwStylesExAdded,
157 uint32_t dwStylesExRemoved); 158 uint32_t dwStylesExRemoved);
158 void DisForm_Update(); 159 void DisForm_Update();
159 FWL_WidgetHit DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy); 160 FWL_WidgetHit DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy);
160 void DisForm_DrawWidget(CFX_Graphics* pGraphics, 161 void DisForm_DrawWidget(CFX_Graphics* pGraphics,
161 const CFX_Matrix* pMatrix = nullptr); 162 const CFX_Matrix* pMatrix = nullptr);
162 FWL_Error DisForm_GetBBox(CFX_RectF& rect); 163 void DisForm_GetBBox(CFX_RectF& rect);
163 void DisForm_Layout(); 164 void DisForm_Layout();
165 void OnFocusChanged(CFWL_Message* pMsg, bool bSet = true);
166 void OnLButtonDown(CFWL_MsgMouse* pMsg);
167 void OnLButtonUp(CFWL_MsgMouse* pMsg);
168 void OnMouseMove(CFWL_MsgMouse* pMsg);
169 void OnMouseLeave(CFWL_MsgMouse* pMsg);
170 void OnKey(CFWL_MsgKey* pMsg);
171 void DoSubCtrlKey(CFWL_MsgKey* pMsg);
172 void DisForm_OnProcessMessage(CFWL_Message* pMessage);
173 void DisForm_OnLButtonDown(CFWL_MsgMouse* pMsg);
174 void DisForm_OnFocusChanged(CFWL_Message* pMsg, bool bSet = true);
175 void DisForm_OnKey(CFWL_MsgKey* pMsg);
164 176
165 CFX_RectF m_rtClient; 177 CFX_RectF m_rtClient;
166 CFX_RectF m_rtContent; 178 CFX_RectF m_rtContent;
167 CFX_RectF m_rtBtn; 179 CFX_RectF m_rtBtn;
168 CFX_RectF m_rtList; 180 CFX_RectF m_rtList;
169 CFX_RectF m_rtProxy; 181 CFX_RectF m_rtProxy;
170 CFX_RectF m_rtHandler; 182 CFX_RectF m_rtHandler;
171 std::unique_ptr<IFWL_ComboEdit> m_pEdit; 183 std::unique_ptr<IFWL_ComboEdit> m_pEdit;
172 std::unique_ptr<IFWL_ComboList> m_pListBox; 184 std::unique_ptr<IFWL_ComboList> m_pListBox;
173 IFWL_ComboBoxProxy* m_pComboBoxProxy; 185 IFWL_ComboBoxProxy* m_pComboBoxProxy;
174 bool m_bLButtonDown; 186 bool m_bLButtonDown;
175 bool m_bUpFormHandler; 187 bool m_bUpFormHandler;
176 int32_t m_iCurSel; 188 int32_t m_iCurSel;
177 int32_t m_iBtnState; 189 int32_t m_iBtnState;
178 FX_FLOAT m_fComboFormHandler; 190 FX_FLOAT m_fComboFormHandler;
179 FX_FLOAT m_fItemHeight; 191 FX_FLOAT m_fItemHeight;
180 bool m_bNeedShowList;
181
182 private:
183 void OnFocusChanged(CFWL_Message* pMsg, bool bSet = true);
184 void OnLButtonDown(CFWL_MsgMouse* pMsg);
185 void OnLButtonUp(CFWL_MsgMouse* pMsg);
186 void OnMouseMove(CFWL_MsgMouse* pMsg);
187 void OnMouseLeave(CFWL_MsgMouse* pMsg);
188 void OnKey(CFWL_MsgKey* pMsg);
189 void DoSubCtrlKey(CFWL_MsgKey* pMsg);
190 void DisForm_OnProcessMessage(CFWL_Message* pMessage);
191 void DisForm_OnLButtonDown(CFWL_MsgMouse* pMsg);
192 void DisForm_OnFocusChanged(CFWL_Message* pMsg, bool bSet = true);
193 void DisForm_OnKey(CFWL_MsgKey* pMsg);
194
195 }; 192 };
196 193
197 #endif // XFA_FWL_CORE_IFWL_COMBOBOX_H_ 194 #endif // XFA_FWL_CORE_IFWL_COMBOBOX_H_
OLDNEW
« no previous file with comments | « xfa/fwl/core/cfwl_listbox.cpp ('k') | xfa/fwl/core/ifwl_combobox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698