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

Side by Side Diff: xfa/fwl/core/ifwl_combolist.cpp

Issue 2467203003: Remove FX_BOOL from xfa. (Closed)
Patch Set: 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/ifwl_combolist.h ('k') | xfa/fwl/core/ifwl_datetimecalendar.h » ('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 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 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 #include "xfa/fwl/core/ifwl_combolist.h" 7 #include "xfa/fwl/core/ifwl_combolist.h"
8 8
9 #include "third_party/base/ptr_util.h" 9 #include "third_party/base/ptr_util.h"
10 #include "xfa/fwl/core/ifwl_combobox.h" 10 #include "xfa/fwl/core/ifwl_combobox.h"
11 #include "xfa/fwl/core/ifwl_comboedit.h" 11 #include "xfa/fwl/core/ifwl_comboedit.h"
12 12
13 IFWL_ComboList::IFWL_ComboList(const IFWL_App* app, 13 IFWL_ComboList::IFWL_ComboList(const IFWL_App* app,
14 const CFWL_WidgetImpProperties& properties, 14 const CFWL_WidgetImpProperties& properties,
15 IFWL_Widget* pOuter) 15 IFWL_Widget* pOuter)
16 : IFWL_ListBox(app, properties, pOuter), m_bNotifyOwner(TRUE) { 16 : IFWL_ListBox(app, properties, pOuter), m_bNotifyOwner(true) {
17 ASSERT(pOuter); 17 ASSERT(pOuter);
18 } 18 }
19 19
20 int32_t IFWL_ComboList::MatchItem(const CFX_WideString& wsMatch) { 20 int32_t IFWL_ComboList::MatchItem(const CFX_WideString& wsMatch) {
21 if (wsMatch.IsEmpty()) { 21 if (wsMatch.IsEmpty()) {
22 return -1; 22 return -1;
23 } 23 }
24 if (!m_pProperties->m_pDataProvider) 24 if (!m_pProperties->m_pDataProvider)
25 return -1; 25 return -1;
26 IFWL_ListBoxDP* pData = 26 IFWL_ListBoxDP* pData =
(...skipping 18 matching lines...) Expand all
45 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider); 45 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider);
46 IFWL_ListItem* hItem = pData->GetItem(this, iSel); 46 IFWL_ListItem* hItem = pData->GetItem(this, iSel);
47 CFX_RectF rtInvalidate; 47 CFX_RectF rtInvalidate;
48 rtInvalidate.Reset(); 48 rtInvalidate.Reset();
49 IFWL_ListItem* hOld = GetSelItem(0); 49 IFWL_ListItem* hOld = GetSelItem(0);
50 int32_t iOld = pData->GetItemIndex(this, hOld); 50 int32_t iOld = pData->GetItemIndex(this, hOld);
51 if (iOld == iSel) { 51 if (iOld == iSel) {
52 return; 52 return;
53 } else if (iOld > -1) { 53 } else if (iOld > -1) {
54 GetItemRect(iOld, rtInvalidate); 54 GetItemRect(iOld, rtInvalidate);
55 SetSelItem(hOld, FALSE); 55 SetSelItem(hOld, false);
56 } 56 }
57 if (hItem) { 57 if (hItem) {
58 CFX_RectF rect; 58 CFX_RectF rect;
59 GetItemRect(iSel, rect); 59 GetItemRect(iSel, rect);
60 rtInvalidate.Union(rect); 60 rtInvalidate.Union(rect);
61 IFWL_ListItem* hSel = pData->GetItem(this, iSel); 61 IFWL_ListItem* hSel = pData->GetItem(this, iSel);
62 SetSelItem(hSel, TRUE); 62 SetSelItem(hSel, true);
63 } 63 }
64 if (!rtInvalidate.IsEmpty()) { 64 if (!rtInvalidate.IsEmpty()) {
65 Repaint(&rtInvalidate); 65 Repaint(&rtInvalidate);
66 } 66 }
67 } 67 }
68 68
69 int32_t IFWL_ComboList::CountItems() { 69 int32_t IFWL_ComboList::CountItems() {
70 IFWL_ListBoxDP* pData = 70 IFWL_ListBoxDP* pData =
71 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider); 71 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider);
72 return pData ? pData->CountItems(this) : 0; 72 return pData ? pData->CountItems(this) : 0;
73 } 73 }
74 74
75 void IFWL_ComboList::GetItemRect(int32_t nIndex, CFX_RectF& rtItem) { 75 void IFWL_ComboList::GetItemRect(int32_t nIndex, CFX_RectF& rtItem) {
76 IFWL_ListBoxDP* pData = 76 IFWL_ListBoxDP* pData =
77 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider); 77 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider);
78 IFWL_ListItem* hItem = pData->GetItem(this, nIndex); 78 IFWL_ListItem* hItem = pData->GetItem(this, nIndex);
79 pData->GetItemRect(this, hItem, rtItem); 79 pData->GetItemRect(this, hItem, rtItem);
80 } 80 }
81 81
82 void IFWL_ComboList::ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy) { 82 void IFWL_ComboList::ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy) {
83 fx += m_pProperties->m_rtWidget.left, fy += m_pProperties->m_rtWidget.top; 83 fx += m_pProperties->m_rtWidget.left, fy += m_pProperties->m_rtWidget.top;
84 IFWL_Widget* pOwner = GetOwner(); 84 IFWL_Widget* pOwner = GetOwner();
85 if (!pOwner) 85 if (!pOwner)
86 return; 86 return;
87 pOwner->TransformTo(m_pOuter, fx, fy); 87 pOwner->TransformTo(m_pOuter, fx, fy);
88 } 88 }
89 89
90 void IFWL_ComboList::SetFocus(FX_BOOL bSet) { 90 void IFWL_ComboList::SetFocus(bool bSet) {
91 IFWL_Widget::SetFocus(bSet); 91 IFWL_Widget::SetFocus(bSet);
92 } 92 }
93 93
94 void IFWL_ComboList::OnProcessMessage(CFWL_Message* pMessage) { 94 void IFWL_ComboList::OnProcessMessage(CFWL_Message* pMessage) {
95 if (!pMessage) 95 if (!pMessage)
96 return; 96 return;
97 97
98 CFWL_MessageType dwHashCode = pMessage->GetClassID(); 98 CFWL_MessageType dwHashCode = pMessage->GetClassID();
99 FX_BOOL backDefault = TRUE; 99 bool backDefault = true;
100 if (dwHashCode == CFWL_MessageType::SetFocus || 100 if (dwHashCode == CFWL_MessageType::SetFocus ||
101 dwHashCode == CFWL_MessageType::KillFocus) { 101 dwHashCode == CFWL_MessageType::KillFocus) {
102 OnDropListFocusChanged(pMessage, dwHashCode == CFWL_MessageType::SetFocus); 102 OnDropListFocusChanged(pMessage, dwHashCode == CFWL_MessageType::SetFocus);
103 } else if (dwHashCode == CFWL_MessageType::Mouse) { 103 } else if (dwHashCode == CFWL_MessageType::Mouse) {
104 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); 104 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
105 if (IsShowScrollBar(TRUE) && m_pVertScrollBar) { 105 if (IsShowScrollBar(true) && m_pVertScrollBar) {
106 CFX_RectF rect; 106 CFX_RectF rect;
107 m_pVertScrollBar->GetWidgetRect(rect); 107 m_pVertScrollBar->GetWidgetRect(rect);
108 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) { 108 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) {
109 pMsg->m_fx -= rect.left; 109 pMsg->m_fx -= rect.left;
110 pMsg->m_fy -= rect.top; 110 pMsg->m_fy -= rect.top;
111 m_pVertScrollBar->GetDelegate()->OnProcessMessage(pMsg); 111 m_pVertScrollBar->GetDelegate()->OnProcessMessage(pMsg);
112 return; 112 return;
113 } 113 }
114 } 114 }
115 switch (pMsg->m_dwCmd) { 115 switch (pMsg->m_dwCmd) {
116 case FWL_MouseCommand::Move: { 116 case FWL_MouseCommand::Move: {
117 backDefault = FALSE; 117 backDefault = false;
118 OnDropListMouseMove(pMsg); 118 OnDropListMouseMove(pMsg);
119 break; 119 break;
120 } 120 }
121 case FWL_MouseCommand::LeftButtonDown: { 121 case FWL_MouseCommand::LeftButtonDown: {
122 backDefault = FALSE; 122 backDefault = false;
123 OnDropListLButtonDown(pMsg); 123 OnDropListLButtonDown(pMsg);
124 break; 124 break;
125 } 125 }
126 case FWL_MouseCommand::LeftButtonUp: { 126 case FWL_MouseCommand::LeftButtonUp: {
127 backDefault = FALSE; 127 backDefault = false;
128 OnDropListLButtonUp(pMsg); 128 OnDropListLButtonUp(pMsg);
129 break; 129 break;
130 } 130 }
131 default: 131 default:
132 break; 132 break;
133 } 133 }
134 } else if (dwHashCode == CFWL_MessageType::Key) { 134 } else if (dwHashCode == CFWL_MessageType::Key) {
135 backDefault = !OnDropListKey(static_cast<CFWL_MsgKey*>(pMessage)); 135 backDefault = !OnDropListKey(static_cast<CFWL_MsgKey*>(pMessage));
136 } 136 }
137 if (backDefault) 137 if (backDefault)
138 IFWL_ListBox::OnProcessMessage(pMessage); 138 IFWL_ListBox::OnProcessMessage(pMessage);
139 } 139 }
140 140
141 void IFWL_ComboList::OnDropListFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet) { 141 void IFWL_ComboList::OnDropListFocusChanged(CFWL_Message* pMsg, bool bSet) {
142 if (bSet) 142 if (bSet)
143 return; 143 return;
144 144
145 CFWL_MsgKillFocus* pKill = static_cast<CFWL_MsgKillFocus*>(pMsg); 145 CFWL_MsgKillFocus* pKill = static_cast<CFWL_MsgKillFocus*>(pMsg);
146 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); 146 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter);
147 if (pKill->m_pSetFocus == m_pOuter || 147 if (pKill->m_pSetFocus == m_pOuter ||
148 pKill->m_pSetFocus == pOuter->GetComboEdit()) { 148 pKill->m_pSetFocus == pOuter->GetComboEdit()) {
149 pOuter->ShowDropList(FALSE); 149 pOuter->ShowDropList(false);
150 } 150 }
151 } 151 }
152 152
153 int32_t IFWL_ComboList::OnDropListMouseMove(CFWL_MsgMouse* pMsg) { 153 int32_t IFWL_ComboList::OnDropListMouseMove(CFWL_MsgMouse* pMsg) {
154 if (m_rtClient.Contains(pMsg->m_fx, pMsg->m_fy)) { 154 if (m_rtClient.Contains(pMsg->m_fx, pMsg->m_fy)) {
155 if (m_bNotifyOwner) { 155 if (m_bNotifyOwner) {
156 m_bNotifyOwner = FALSE; 156 m_bNotifyOwner = false;
157 } 157 }
158 if (IsShowScrollBar(TRUE) && m_pVertScrollBar) { 158 if (IsShowScrollBar(true) && m_pVertScrollBar) {
159 CFX_RectF rect; 159 CFX_RectF rect;
160 m_pVertScrollBar->GetWidgetRect(rect); 160 m_pVertScrollBar->GetWidgetRect(rect);
161 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) { 161 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) {
162 return 1; 162 return 1;
163 } 163 }
164 } 164 }
165 IFWL_ListItem* hItem = GetItemAtPoint(pMsg->m_fx, pMsg->m_fy); 165 IFWL_ListItem* hItem = GetItemAtPoint(pMsg->m_fx, pMsg->m_fy);
166 if (hItem) { 166 if (hItem) {
167 if (!m_pProperties->m_pDataProvider) 167 if (!m_pProperties->m_pDataProvider)
168 return 0; 168 return 0;
(...skipping 12 matching lines...) Expand all
181 pOuter->GetDelegate()->OnProcessMessage(pMsg); 181 pOuter->GetDelegate()->OnProcessMessage(pMsg);
182 } 182 }
183 return 1; 183 return 1;
184 } 184 }
185 185
186 int32_t IFWL_ComboList::OnDropListLButtonDown(CFWL_MsgMouse* pMsg) { 186 int32_t IFWL_ComboList::OnDropListLButtonDown(CFWL_MsgMouse* pMsg) {
187 if (m_rtClient.Contains(pMsg->m_fx, pMsg->m_fy)) 187 if (m_rtClient.Contains(pMsg->m_fx, pMsg->m_fy))
188 return 0; 188 return 0;
189 189
190 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); 190 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter);
191 pOuter->ShowDropList(FALSE); 191 pOuter->ShowDropList(false);
192 return 1; 192 return 1;
193 } 193 }
194 194
195 int32_t IFWL_ComboList::OnDropListLButtonUp(CFWL_MsgMouse* pMsg) { 195 int32_t IFWL_ComboList::OnDropListLButtonUp(CFWL_MsgMouse* pMsg) {
196 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); 196 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter);
197 if (m_bNotifyOwner) { 197 if (m_bNotifyOwner) {
198 ClientToOuter(pMsg->m_fx, pMsg->m_fy); 198 ClientToOuter(pMsg->m_fx, pMsg->m_fy);
199 pOuter->GetDelegate()->OnProcessMessage(pMsg); 199 pOuter->GetDelegate()->OnProcessMessage(pMsg);
200 } else { 200 } else {
201 if (IsShowScrollBar(TRUE) && m_pVertScrollBar) { 201 if (IsShowScrollBar(true) && m_pVertScrollBar) {
202 CFX_RectF rect; 202 CFX_RectF rect;
203 m_pVertScrollBar->GetWidgetRect(rect); 203 m_pVertScrollBar->GetWidgetRect(rect);
204 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) { 204 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) {
205 return 1; 205 return 1;
206 } 206 }
207 } 207 }
208 pOuter->ShowDropList(FALSE); 208 pOuter->ShowDropList(false);
209 IFWL_ListItem* hItem = GetItemAtPoint(pMsg->m_fx, pMsg->m_fy); 209 IFWL_ListItem* hItem = GetItemAtPoint(pMsg->m_fx, pMsg->m_fy);
210 if (hItem) 210 if (hItem)
211 pOuter->ProcessSelChanged(TRUE); 211 pOuter->ProcessSelChanged(true);
212 } 212 }
213 return 1; 213 return 1;
214 } 214 }
215 215
216 int32_t IFWL_ComboList::OnDropListKey(CFWL_MsgKey* pKey) { 216 int32_t IFWL_ComboList::OnDropListKey(CFWL_MsgKey* pKey) {
217 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); 217 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter);
218 FX_BOOL bPropagate = FALSE; 218 bool bPropagate = false;
219 if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown) { 219 if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown) {
220 uint32_t dwKeyCode = pKey->m_dwKeyCode; 220 uint32_t dwKeyCode = pKey->m_dwKeyCode;
221 switch (dwKeyCode) { 221 switch (dwKeyCode) {
222 case FWL_VKEY_Return: 222 case FWL_VKEY_Return:
223 case FWL_VKEY_Escape: { 223 case FWL_VKEY_Escape: {
224 pOuter->ShowDropList(FALSE); 224 pOuter->ShowDropList(false);
225 return 1; 225 return 1;
226 } 226 }
227 case FWL_VKEY_Up: 227 case FWL_VKEY_Up:
228 case FWL_VKEY_Down: { 228 case FWL_VKEY_Down: {
229 OnDropListKeyDown(pKey); 229 OnDropListKeyDown(pKey);
230 pOuter->ProcessSelChanged(FALSE); 230 pOuter->ProcessSelChanged(false);
231 return 1; 231 return 1;
232 } 232 }
233 default: { bPropagate = TRUE; } 233 default: { bPropagate = true; }
234 } 234 }
235 } else if (pKey->m_dwCmd == FWL_KeyCommand::Char) { 235 } else if (pKey->m_dwCmd == FWL_KeyCommand::Char) {
236 bPropagate = TRUE; 236 bPropagate = true;
237 } 237 }
238 if (bPropagate) { 238 if (bPropagate) {
239 pKey->m_pDstTarget = m_pOuter; 239 pKey->m_pDstTarget = m_pOuter;
240 pOuter->GetDelegate()->OnProcessMessage(pKey); 240 pOuter->GetDelegate()->OnProcessMessage(pKey);
241 return 1; 241 return 1;
242 } 242 }
243 return 0; 243 return 0;
244 } 244 }
245 245
246 void IFWL_ComboList::OnDropListKeyDown(CFWL_MsgKey* pKey) { 246 void IFWL_ComboList::OnDropListKeyDown(CFWL_MsgKey* pKey) {
247 uint32_t dwKeyCode = pKey->m_dwKeyCode; 247 uint32_t dwKeyCode = pKey->m_dwKeyCode;
248 switch (dwKeyCode) { 248 switch (dwKeyCode) {
249 case FWL_VKEY_Up: 249 case FWL_VKEY_Up:
250 case FWL_VKEY_Down: 250 case FWL_VKEY_Down:
251 case FWL_VKEY_Home: 251 case FWL_VKEY_Home:
252 case FWL_VKEY_End: { 252 case FWL_VKEY_End: {
253 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); 253 IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter);
254 IFWL_ListBoxDP* pData = 254 IFWL_ListBoxDP* pData =
255 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider); 255 static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider);
256 IFWL_ListItem* hItem = 256 IFWL_ListItem* hItem =
257 pData->GetItem(this, pOuter->GetCurrentSelection()); 257 pData->GetItem(this, pOuter->GetCurrentSelection());
258 hItem = GetItem(hItem, dwKeyCode); 258 hItem = GetItem(hItem, dwKeyCode);
259 if (!hItem) { 259 if (!hItem) {
260 break; 260 break;
261 } 261 }
262 SetSelection(hItem, hItem, TRUE); 262 SetSelection(hItem, hItem, true);
263 ScrollToVisible(hItem); 263 ScrollToVisible(hItem);
264 CFX_RectF rtInvalidate; 264 CFX_RectF rtInvalidate;
265 rtInvalidate.Set(0, 0, m_pProperties->m_rtWidget.width, 265 rtInvalidate.Set(0, 0, m_pProperties->m_rtWidget.width,
266 m_pProperties->m_rtWidget.height); 266 m_pProperties->m_rtWidget.height);
267 Repaint(&rtInvalidate); 267 Repaint(&rtInvalidate);
268 break; 268 break;
269 } 269 }
270 default: 270 default:
271 break; 271 break;
272 } 272 }
273 } 273 }
OLDNEW
« no previous file with comments | « xfa/fwl/core/ifwl_combolist.h ('k') | xfa/fwl/core/ifwl_datetimecalendar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698