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

Side by Side Diff: xfa/fwl/basewidget/fwl_comboboximp.cpp

Issue 1901183002: Remove CFWL_Note. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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/fwl/basewidget/fwl_checkboximp.cpp ('k') | xfa/fwl/basewidget/fwl_datetimepickerimp.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 #include "xfa/fwl/basewidget/fwl_comboboximp.h" 7 #include "xfa/fwl/basewidget/fwl_comboboximp.h"
8 8
9 #include "xfa/fde/tto/fde_textout.h" 9 #include "xfa/fde/tto/fde_textout.h"
10 #include "xfa/fwl/basewidget/fwl_editimp.h" 10 #include "xfa/fwl/basewidget/fwl_editimp.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 } 134 }
135 135
136 CFWL_ComboEditImp::CFWL_ComboEditImp(const CFWL_WidgetImpProperties& properties, 136 CFWL_ComboEditImp::CFWL_ComboEditImp(const CFWL_WidgetImpProperties& properties,
137 IFWL_Widget* pOuter) 137 IFWL_Widget* pOuter)
138 : CFWL_EditImp(properties, pOuter) { 138 : CFWL_EditImp(properties, pOuter) {
139 m_pOuter = static_cast<CFWL_ComboBoxImp*>(pOuter->GetImpl()); 139 m_pOuter = static_cast<CFWL_ComboBoxImp*>(pOuter->GetImpl());
140 } 140 }
141 141
142 CFWL_ComboEditImpDelegate::CFWL_ComboEditImpDelegate(CFWL_ComboEditImp* pOwner) 142 CFWL_ComboEditImpDelegate::CFWL_ComboEditImpDelegate(CFWL_ComboEditImp* pOwner)
143 : CFWL_EditImpDelegate(pOwner), m_pOwner(pOwner) {} 143 : CFWL_EditImpDelegate(pOwner), m_pOwner(pOwner) {}
144
144 int32_t CFWL_ComboEditImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { 145 int32_t CFWL_ComboEditImpDelegate::OnProcessMessage(CFWL_Message* pMessage) {
145 if (!pMessage) 146 if (!pMessage)
146 return 0; 147 return 0;
147 uint32_t dwMsgCode = pMessage->GetClassID(); 148
148 FX_BOOL backDefault = TRUE; 149 FX_BOOL backDefault = TRUE;
149 switch (dwMsgCode) { 150 switch (pMessage->GetClassID()) {
150 case FWL_MSGHASH_SetFocus: 151 case CFWL_MessageType::SetFocus: {
151 case FWL_MSGHASH_KillFocus: { 152 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused;
152 if (dwMsgCode == FWL_MSGHASH_SetFocus) {
153 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused;
154 } else {
155 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused;
156 }
157 backDefault = FALSE; 153 backDefault = FALSE;
158 break; 154 break;
159 } 155 }
160 case FWL_MSGHASH_Mouse: { 156 case CFWL_MessageType::KillFocus: {
157 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused;
158 backDefault = FALSE;
159 break;
160 }
161 case CFWL_MessageType::Mouse: {
161 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); 162 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
162 if ((pMsg->m_dwCmd == FWL_MSGMOUSECMD_LButtonDown) && 163 if ((pMsg->m_dwCmd == FWL_MSGMOUSECMD_LButtonDown) &&
163 ((m_pOwner->m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) == 0)) { 164 ((m_pOwner->m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) == 0)) {
164 m_pOwner->SetSelected(); 165 m_pOwner->SetSelected();
165 m_pOwner->SetComboBoxFocus(TRUE); 166 m_pOwner->SetComboBoxFocus(TRUE);
166 } 167 }
167 break; 168 break;
168 } 169 }
169 default: {} 170 default:
171 break;
170 } 172 }
171 if (!backDefault) { 173 if (!backDefault)
172 return 1; 174 return 1;
173 }
174 return CFWL_EditImpDelegate::OnProcessMessage(pMessage); 175 return CFWL_EditImpDelegate::OnProcessMessage(pMessage);
175 } 176 }
177
176 void CFWL_ComboEditImp::ClearSelected() { 178 void CFWL_ComboEditImp::ClearSelected() {
177 ClearSelections(); 179 ClearSelections();
178 Repaint(&m_rtClient); 180 Repaint(&m_rtClient);
179 } 181 }
180 void CFWL_ComboEditImp::SetSelected() { 182 void CFWL_ComboEditImp::SetSelected() {
181 FlagFocus(TRUE); 183 FlagFocus(TRUE);
182 EndCaret(); 184 EndCaret();
183 AddSelRange(0); 185 AddSelRange(0);
184 } 186 }
185 void CFWL_ComboEditImp::EndCaret() { 187 void CFWL_ComboEditImp::EndCaret() {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 void CFWL_ComboListImp::ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy) { 276 void CFWL_ComboListImp::ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy) {
275 fx += m_pProperties->m_rtWidget.left, fy += m_pProperties->m_rtWidget.top; 277 fx += m_pProperties->m_rtWidget.left, fy += m_pProperties->m_rtWidget.top;
276 IFWL_Widget* pOwner = GetOwner(); 278 IFWL_Widget* pOwner = GetOwner();
277 if (!pOwner) 279 if (!pOwner)
278 return; 280 return;
279 pOwner->TransformTo(m_pOuter, fx, fy); 281 pOwner->TransformTo(m_pOuter, fx, fy);
280 } 282 }
281 void CFWL_ComboListImp::SetFocus(FX_BOOL bSet) { 283 void CFWL_ComboListImp::SetFocus(FX_BOOL bSet) {
282 CFWL_WidgetImp::SetFocus(bSet); 284 CFWL_WidgetImp::SetFocus(bSet);
283 } 285 }
286
284 CFWL_ComboListImpDelegate::CFWL_ComboListImpDelegate(CFWL_ComboListImp* pOwner) 287 CFWL_ComboListImpDelegate::CFWL_ComboListImpDelegate(CFWL_ComboListImp* pOwner)
285 : CFWL_ListBoxImpDelegate(pOwner), m_pOwner(pOwner) {} 288 : CFWL_ListBoxImpDelegate(pOwner), m_pOwner(pOwner) {}
289
286 int32_t CFWL_ComboListImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { 290 int32_t CFWL_ComboListImpDelegate::OnProcessMessage(CFWL_Message* pMessage) {
287 if (!pMessage) 291 if (!pMessage)
288 return 0; 292 return 0;
289 uint32_t dwHashCode = pMessage->GetClassID(); 293
294 CFWL_MessageType dwHashCode = pMessage->GetClassID();
290 FX_BOOL backDefault = TRUE; 295 FX_BOOL backDefault = TRUE;
291 if (dwHashCode == FWL_MSGHASH_SetFocus || 296 if (dwHashCode == CFWL_MessageType::SetFocus ||
292 dwHashCode == FWL_MSGHASH_KillFocus) { 297 dwHashCode == CFWL_MessageType::KillFocus) {
293 OnDropListFocusChanged(pMessage, dwHashCode == FWL_MSGHASH_SetFocus); 298 OnDropListFocusChanged(pMessage, dwHashCode == CFWL_MessageType::SetFocus);
294 } else if (dwHashCode == FWL_MSGHASH_Mouse) { 299 } else if (dwHashCode == CFWL_MessageType::Mouse) {
295 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); 300 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
296 if (m_pOwner->IsShowScrollBar(TRUE) && m_pOwner->m_pVertScrollBar) { 301 if (m_pOwner->IsShowScrollBar(TRUE) && m_pOwner->m_pVertScrollBar) {
297 CFX_RectF rect; 302 CFX_RectF rect;
298 m_pOwner->m_pVertScrollBar->GetWidgetRect(rect); 303 m_pOwner->m_pVertScrollBar->GetWidgetRect(rect);
299 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) { 304 if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) {
300 pMsg->m_fx -= rect.left; 305 pMsg->m_fx -= rect.left;
301 pMsg->m_fy -= rect.top; 306 pMsg->m_fy -= rect.top;
302 IFWL_WidgetDelegate* pDelegate = 307 IFWL_WidgetDelegate* pDelegate =
303 m_pOwner->m_pVertScrollBar->SetDelegate(NULL); 308 m_pOwner->m_pVertScrollBar->SetDelegate(NULL);
304 return pDelegate->OnProcessMessage(pMsg); 309 return pDelegate->OnProcessMessage(pMsg);
(...skipping 11 matching lines...) Expand all
316 OnDropListLButtonDown(pMsg); 321 OnDropListLButtonDown(pMsg);
317 break; 322 break;
318 } 323 }
319 case FWL_MSGMOUSECMD_LButtonUp: { 324 case FWL_MSGMOUSECMD_LButtonUp: {
320 backDefault = FALSE; 325 backDefault = FALSE;
321 OnDropListLButtonUp(pMsg); 326 OnDropListLButtonUp(pMsg);
322 break; 327 break;
323 } 328 }
324 default: {} 329 default: {}
325 } 330 }
326 } else if (dwHashCode == FWL_MSGHASH_Key) { 331 } else if (dwHashCode == CFWL_MessageType::Key) {
327 backDefault = !OnDropListKey(static_cast<CFWL_MsgKey*>(pMessage)); 332 backDefault = !OnDropListKey(static_cast<CFWL_MsgKey*>(pMessage));
328 } 333 }
329 if (!backDefault) { 334 if (!backDefault)
330 return 1; 335 return 1;
331 }
332 return CFWL_ListBoxImpDelegate::OnProcessMessage(pMessage); 336 return CFWL_ListBoxImpDelegate::OnProcessMessage(pMessage);
333 } 337 }
338
334 void CFWL_ComboListImpDelegate::OnDropListFocusChanged(CFWL_Message* pMsg, 339 void CFWL_ComboListImpDelegate::OnDropListFocusChanged(CFWL_Message* pMsg,
335 FX_BOOL bSet) { 340 FX_BOOL bSet) {
336 if (!bSet) { 341 if (!bSet) {
337 CFWL_MsgKillFocus* pKill = static_cast<CFWL_MsgKillFocus*>(pMsg); 342 CFWL_MsgKillFocus* pKill = static_cast<CFWL_MsgKillFocus*>(pMsg);
338 CFWL_ComboBoxImp* pOuter = 343 CFWL_ComboBoxImp* pOuter =
339 static_cast<CFWL_ComboBoxImp*>(m_pOwner->m_pOuter->GetImpl()); 344 static_cast<CFWL_ComboBoxImp*>(m_pOwner->m_pOuter->GetImpl());
340 if (pKill->m_pSetFocus == m_pOwner->m_pOuter || 345 if (pKill->m_pSetFocus == m_pOwner->m_pOuter ||
341 pKill->m_pSetFocus == pOuter->m_pEdit.get()) { 346 pKill->m_pSetFocus == pOuter->m_pEdit.get()) {
342 pOuter->ShowDropList(FALSE); 347 pOuter->ShowDropList(FALSE);
343 } 348 }
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after
1349 FWL_HLISTITEM hItem = pData->GetItem(m_pInterface, m_iCurSel); 1354 FWL_HLISTITEM hItem = pData->GetItem(m_pInterface, m_iCurSel);
1350 static_cast<CFWL_ComboListImp*>(m_pListBox->GetImpl()) 1355 static_cast<CFWL_ComboListImp*>(m_pListBox->GetImpl())
1351 ->GetItemText(hItem, wsText); 1356 ->GetItemText(hItem, wsText);
1352 m_pEdit->LockUpdate(); 1357 m_pEdit->LockUpdate();
1353 m_pEdit->SetText(wsText); 1358 m_pEdit->SetText(wsText);
1354 m_pEdit->UnlockUpdate(); 1359 m_pEdit->UnlockUpdate();
1355 } 1360 }
1356 m_pEdit->Update(); 1361 m_pEdit->Update();
1357 } 1362 }
1358 } 1363 }
1364
1359 CFWL_ComboBoxImpDelegate::CFWL_ComboBoxImpDelegate(CFWL_ComboBoxImp* pOwner) 1365 CFWL_ComboBoxImpDelegate::CFWL_ComboBoxImpDelegate(CFWL_ComboBoxImp* pOwner)
1360 : m_pOwner(pOwner) {} 1366 : m_pOwner(pOwner) {}
1367
1361 int32_t CFWL_ComboBoxImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { 1368 int32_t CFWL_ComboBoxImpDelegate::OnProcessMessage(CFWL_Message* pMessage) {
1362 if (m_pOwner->m_pWidgetMgr->IsFormDisabled()) { 1369 if (m_pOwner->m_pWidgetMgr->IsFormDisabled())
1363 return DisForm_OnProcessMessage(pMessage); 1370 return DisForm_OnProcessMessage(pMessage);
1364 } 1371
1365 if (!pMessage) 1372 if (!pMessage)
1366 return 0; 1373 return 0;
1367 uint32_t dwMsgCode = pMessage->GetClassID(); 1374
1368 FX_BOOL iRet = 1; 1375 FX_BOOL iRet = 1;
1369 switch (dwMsgCode) { 1376 switch (pMessage->GetClassID()) {
1370 case FWL_MSGHASH_SetFocus: 1377 case CFWL_MessageType::SetFocus: {
1371 case FWL_MSGHASH_KillFocus: { 1378 OnFocusChanged(pMessage, TRUE);
1372 OnFocusChanged(pMessage, dwMsgCode == FWL_MSGHASH_SetFocus);
1373 break; 1379 break;
1374 } 1380 }
1375 case FWL_MSGHASH_Mouse: { 1381 case CFWL_MessageType::KillFocus: {
1382 OnFocusChanged(pMessage, FALSE);
1383 break;
1384 }
1385 case CFWL_MessageType::Mouse: {
1376 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); 1386 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
1377 uint32_t dwCmd = pMsg->m_dwCmd; 1387 switch (pMsg->m_dwCmd) {
1378 switch (dwCmd) {
1379 case FWL_MSGMOUSECMD_LButtonDown: { 1388 case FWL_MSGMOUSECMD_LButtonDown: {
1380 OnLButtonDown(pMsg); 1389 OnLButtonDown(pMsg);
1381 break; 1390 break;
1382 } 1391 }
1383 case FWL_MSGMOUSECMD_LButtonUp: { 1392 case FWL_MSGMOUSECMD_LButtonUp: {
1384 OnLButtonUp(pMsg); 1393 OnLButtonUp(pMsg);
1385 break; 1394 break;
1386 } 1395 }
1387 case FWL_MSGMOUSECMD_MouseMove: { 1396 case FWL_MSGMOUSECMD_MouseMove: {
1388 OnMouseMove(pMsg); 1397 OnMouseMove(pMsg);
1389 break; 1398 break;
1390 } 1399 }
1391 case FWL_MSGMOUSECMD_MouseLeave: { 1400 case FWL_MSGMOUSECMD_MouseLeave: {
1392 OnMouseLeave(pMsg); 1401 OnMouseLeave(pMsg);
1393 break; 1402 break;
1394 } 1403 }
1395 default: {} 1404 default:
1405 break;
1396 } 1406 }
1397 break; 1407 break;
1398 } 1408 }
1399 case FWL_MSGHASH_Key: { 1409 case CFWL_MessageType::Key: {
1400 OnKey(static_cast<CFWL_MsgKey*>(pMessage)); 1410 OnKey(static_cast<CFWL_MsgKey*>(pMessage));
1401 break; 1411 break;
1402 } 1412 }
1403 default: { iRet = 0; } 1413 default: {
1414 iRet = 0;
1415 break;
1416 }
1404 } 1417 }
1418
1405 CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); 1419 CFWL_WidgetImpDelegate::OnProcessMessage(pMessage);
1406 return iRet; 1420 return iRet;
1407 } 1421 }
1422
1408 FWL_ERR CFWL_ComboBoxImpDelegate::OnProcessEvent(CFWL_Event* pEvent) { 1423 FWL_ERR CFWL_ComboBoxImpDelegate::OnProcessEvent(CFWL_Event* pEvent) {
1409 uint32_t dwFlag = pEvent->GetClassID(); 1424 CFWL_EventType dwFlag = pEvent->GetClassID();
1410 if (dwFlag == FWL_EVTHASH_LTB_DrawItem) { 1425 if (dwFlag == CFWL_EventType::DrawItem) {
1411 CFWL_EvtLtbDrawItem* pDrawItemEvent = 1426 CFWL_EvtLtbDrawItem* pDrawItemEvent =
1412 static_cast<CFWL_EvtLtbDrawItem*>(pEvent); 1427 static_cast<CFWL_EvtLtbDrawItem*>(pEvent);
1413 CFWL_EvtCmbDrawItem pTemp; 1428 CFWL_EvtCmbDrawItem pTemp;
1414 pTemp.m_pSrcTarget = m_pOwner->m_pInterface; 1429 pTemp.m_pSrcTarget = m_pOwner->m_pInterface;
1415 pTemp.m_pGraphics = pDrawItemEvent->m_pGraphics; 1430 pTemp.m_pGraphics = pDrawItemEvent->m_pGraphics;
1416 pTemp.m_index = pDrawItemEvent->m_index; 1431 pTemp.m_index = pDrawItemEvent->m_index;
1417 pTemp.m_rtItem = pDrawItemEvent->m_rect; 1432 pTemp.m_rtItem = pDrawItemEvent->m_rect;
1418 m_pOwner->DispatchEvent(&pTemp); 1433 m_pOwner->DispatchEvent(&pTemp);
1419 } else if (dwFlag == FWL_EVTHASH_Scroll) { 1434 } else if (dwFlag == CFWL_EventType::Scroll) {
1420 CFWL_EvtScroll* pScrollEvent = static_cast<CFWL_EvtScroll*>(pEvent); 1435 CFWL_EvtScroll* pScrollEvent = static_cast<CFWL_EvtScroll*>(pEvent);
1421 CFWL_EvtScroll pScrollEv; 1436 CFWL_EvtScroll pScrollEv;
1422 pScrollEv.m_pSrcTarget = m_pOwner->m_pInterface; 1437 pScrollEv.m_pSrcTarget = m_pOwner->m_pInterface;
1423 pScrollEv.m_iScrollCode = pScrollEvent->m_iScrollCode; 1438 pScrollEv.m_iScrollCode = pScrollEvent->m_iScrollCode;
1424 pScrollEv.m_fPos = pScrollEvent->m_fPos; 1439 pScrollEv.m_fPos = pScrollEvent->m_fPos;
1425 m_pOwner->DispatchEvent(&pScrollEv); 1440 m_pOwner->DispatchEvent(&pScrollEv);
1426 } else if (dwFlag == FWL_EVTHASH_EDT_TextChanged) { 1441 } else if (dwFlag == CFWL_EventType::TextChanged) {
1427 CFWL_EvtEdtTextChanged* pTextChangedEvent = 1442 CFWL_EvtEdtTextChanged* pTextChangedEvent =
1428 static_cast<CFWL_EvtEdtTextChanged*>(pEvent); 1443 static_cast<CFWL_EvtEdtTextChanged*>(pEvent);
1429 CFWL_EvtCmbEditChanged pTemp; 1444 CFWL_EvtCmbEditChanged pTemp;
1430 pTemp.m_pSrcTarget = m_pOwner->m_pInterface; 1445 pTemp.m_pSrcTarget = m_pOwner->m_pInterface;
1431 pTemp.wsInsert = pTextChangedEvent->wsInsert; 1446 pTemp.wsInsert = pTextChangedEvent->wsInsert;
1432 pTemp.wsDelete = pTextChangedEvent->wsDelete; 1447 pTemp.wsDelete = pTextChangedEvent->wsDelete;
1433 pTemp.nChangeType = pTextChangedEvent->nChangeType; 1448 pTemp.nChangeType = pTextChangedEvent->nChangeType;
1434 m_pOwner->DispatchEvent(&pTemp); 1449 m_pOwner->DispatchEvent(&pTemp);
1435 } 1450 }
1436 return FWL_ERR_Succeeded; 1451 return FWL_ERR_Succeeded;
1437 } 1452 }
1453
1438 FWL_ERR CFWL_ComboBoxImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, 1454 FWL_ERR CFWL_ComboBoxImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics,
1439 const CFX_Matrix* pMatrix) { 1455 const CFX_Matrix* pMatrix) {
1440 return m_pOwner->DrawWidget(pGraphics, pMatrix); 1456 return m_pOwner->DrawWidget(pGraphics, pMatrix);
1441 } 1457 }
1442 void CFWL_ComboBoxImpDelegate::OnFocusChanged(CFWL_Message* pMsg, 1458 void CFWL_ComboBoxImpDelegate::OnFocusChanged(CFWL_Message* pMsg,
1443 FX_BOOL bSet) { 1459 FX_BOOL bSet) {
1444 IFWL_Target* pDstTarget = pMsg->m_pDstTarget; 1460 IFWL_Target* pDstTarget = pMsg->m_pDstTarget;
1445 IFWL_Target* pSrcTarget = pMsg->m_pSrcTarget; 1461 IFWL_Target* pSrcTarget = pMsg->m_pSrcTarget;
1446 FX_BOOL bDropDown = m_pOwner->IsDropDownStyle(); 1462 FX_BOOL bDropDown = m_pOwner->IsDropDownStyle();
1447 if (bSet) { 1463 if (bSet) {
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 FX_BOOL bDropDown = m_pOwner->IsDropDownStyle(); 1595 FX_BOOL bDropDown = m_pOwner->IsDropDownStyle();
1580 if (bDropDown) { 1596 if (bDropDown) {
1581 IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL); 1597 IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL);
1582 pDelegate->OnProcessMessage(pMsg); 1598 pDelegate->OnProcessMessage(pMsg);
1583 } 1599 }
1584 } 1600 }
1585 int32_t CFWL_ComboBoxImpDelegate::DisForm_OnProcessMessage( 1601 int32_t CFWL_ComboBoxImpDelegate::DisForm_OnProcessMessage(
1586 CFWL_Message* pMessage) { 1602 CFWL_Message* pMessage) {
1587 if (!pMessage) 1603 if (!pMessage)
1588 return 0; 1604 return 0;
1589 uint32_t dwMsgCode = pMessage->GetClassID(); 1605
1590 FX_BOOL backDefault = TRUE; 1606 FX_BOOL backDefault = TRUE;
1591 switch (dwMsgCode) { 1607 switch (pMessage->GetClassID()) {
1592 case FWL_MSGHASH_SetFocus: 1608 case CFWL_MessageType::SetFocus: {
1593 case FWL_MSGHASH_KillFocus: {
1594 backDefault = FALSE; 1609 backDefault = FALSE;
1595 DisForm_OnFocusChanged(pMessage, dwMsgCode == FWL_MSGHASH_SetFocus); 1610 DisForm_OnFocusChanged(pMessage, TRUE);
1596 break; 1611 break;
1597 } 1612 }
1598 case FWL_MSGHASH_Mouse: { 1613 case CFWL_MessageType::KillFocus: {
1614 backDefault = FALSE;
1615 DisForm_OnFocusChanged(pMessage, FALSE);
1616 break;
1617 }
1618 case CFWL_MessageType::Mouse: {
1599 backDefault = FALSE; 1619 backDefault = FALSE;
1600 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); 1620 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
1601 uint32_t dwCmd = pMsg->m_dwCmd; 1621 switch (pMsg->m_dwCmd) {
1602 switch (dwCmd) {
1603 case FWL_MSGMOUSECMD_LButtonDown: { 1622 case FWL_MSGMOUSECMD_LButtonDown: {
1604 DisForm_OnLButtonDown(pMsg); 1623 DisForm_OnLButtonDown(pMsg);
1605 break; 1624 break;
1606 } 1625 }
1607 case FWL_MSGMOUSECMD_LButtonUp: { 1626 case FWL_MSGMOUSECMD_LButtonUp: {
1608 OnLButtonUp(pMsg); 1627 OnLButtonUp(pMsg);
1609 break; 1628 break;
1610 } 1629 }
1611 default: {} 1630 default:
1631 break;
1612 } 1632 }
1613 break; 1633 break;
1614 } 1634 }
1615 case FWL_MSGHASH_Key: { 1635 case CFWL_MessageType::Key: {
1616 backDefault = FALSE; 1636 backDefault = FALSE;
1617 CFWL_MsgKey* pKey = static_cast<CFWL_MsgKey*>(pMessage); 1637 CFWL_MsgKey* pKey = static_cast<CFWL_MsgKey*>(pMessage);
1618 if (pKey->m_dwCmd == FWL_MSGKEYCMD_KeyUp) { 1638 if (pKey->m_dwCmd == FWL_MSGKEYCMD_KeyUp)
1619 break; 1639 break;
1620 }
1621 if (m_pOwner->DisForm_IsDropListShowed() && 1640 if (m_pOwner->DisForm_IsDropListShowed() &&
1622 pKey->m_dwCmd == FWL_MSGKEYCMD_KeyDown) { 1641 pKey->m_dwCmd == FWL_MSGKEYCMD_KeyDown) {
1623 uint32_t dwKeyCode = pKey->m_dwKeyCode; 1642 FX_BOOL bListKey = pKey->m_dwKeyCode == FWL_VKEY_Up ||
1624 FX_BOOL bListKey = 1643 pKey->m_dwKeyCode == FWL_VKEY_Down ||
1625 dwKeyCode == FWL_VKEY_Up || dwKeyCode == FWL_VKEY_Down || 1644 pKey->m_dwKeyCode == FWL_VKEY_Return ||
1626 dwKeyCode == FWL_VKEY_Return || dwKeyCode == FWL_VKEY_Escape; 1645 pKey->m_dwKeyCode == FWL_VKEY_Escape;
1627 if (bListKey) { 1646 if (bListKey) {
1628 IFWL_WidgetDelegate* pDelegate = 1647 IFWL_WidgetDelegate* pDelegate =
1629 m_pOwner->m_pListBox->SetDelegate(NULL); 1648 m_pOwner->m_pListBox->SetDelegate(NULL);
1630 pDelegate->OnProcessMessage(pMessage); 1649 pDelegate->OnProcessMessage(pMessage);
1631 break; 1650 break;
1632 } 1651 }
1633 } 1652 }
1634 DisForm_OnKey(pKey); 1653 DisForm_OnKey(pKey);
1635 break; 1654 break;
1636 } 1655 }
1637 default: {} 1656 default:
1657 break;
1638 } 1658 }
1639 if (!backDefault) { 1659 if (!backDefault)
1640 return 1; 1660 return 1;
1641 }
1642 return CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); 1661 return CFWL_WidgetImpDelegate::OnProcessMessage(pMessage);
1643 } 1662 }
1663
1644 void CFWL_ComboBoxImpDelegate::DisForm_OnLButtonDown(CFWL_MsgMouse* pMsg) { 1664 void CFWL_ComboBoxImpDelegate::DisForm_OnLButtonDown(CFWL_MsgMouse* pMsg) {
1645 FX_BOOL bDropDown = m_pOwner->DisForm_IsDropListShowed(); 1665 FX_BOOL bDropDown = m_pOwner->DisForm_IsDropListShowed();
1646 CFX_RectF& rtBtn = bDropDown ? m_pOwner->m_rtBtn : m_pOwner->m_rtClient; 1666 CFX_RectF& rtBtn = bDropDown ? m_pOwner->m_rtBtn : m_pOwner->m_rtClient;
1647 FX_BOOL bClickBtn = rtBtn.Contains(pMsg->m_fx, pMsg->m_fy); 1667 FX_BOOL bClickBtn = rtBtn.Contains(pMsg->m_fx, pMsg->m_fy);
1648 if (bClickBtn) { 1668 if (bClickBtn) {
1649 if (m_pOwner->DisForm_IsDropListShowed()) { 1669 if (m_pOwner->DisForm_IsDropListShowed()) {
1650 m_pOwner->DisForm_ShowDropList(FALSE); 1670 m_pOwner->DisForm_ShowDropList(FALSE);
1651 return; 1671 return;
1652 } 1672 }
1653 { 1673 {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1717 } 1737 }
1718 m_pOwner->m_iCurSel = iCurSel; 1738 m_pOwner->m_iCurSel = iCurSel;
1719 m_pOwner->SynchrEditText(m_pOwner->m_iCurSel); 1739 m_pOwner->SynchrEditText(m_pOwner->m_iCurSel);
1720 return; 1740 return;
1721 } 1741 }
1722 if (m_pOwner->m_pEdit) { 1742 if (m_pOwner->m_pEdit) {
1723 IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL); 1743 IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL);
1724 pDelegate->OnProcessMessage(pMsg); 1744 pDelegate->OnProcessMessage(pMsg);
1725 } 1745 }
1726 } 1746 }
1747
1727 CFWL_ComboProxyImpDelegate::CFWL_ComboProxyImpDelegate( 1748 CFWL_ComboProxyImpDelegate::CFWL_ComboProxyImpDelegate(
1728 IFWL_Form* pForm, 1749 IFWL_Form* pForm,
1729 CFWL_ComboBoxImp* pComboBox) 1750 CFWL_ComboBoxImp* pComboBox)
1730 : m_bLButtonDown(FALSE), 1751 : m_bLButtonDown(FALSE),
1731 m_bLButtonUpSelf(FALSE), 1752 m_bLButtonUpSelf(FALSE),
1732 m_fStartPos(0), 1753 m_fStartPos(0),
1733 m_pForm(pForm), 1754 m_pForm(pForm),
1734 m_pComboBox(pComboBox) {} 1755 m_pComboBox(pComboBox) {}
1756
1735 int32_t CFWL_ComboProxyImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { 1757 int32_t CFWL_ComboProxyImpDelegate::OnProcessMessage(CFWL_Message* pMessage) {
1736 if (!pMessage) 1758 if (!pMessage)
1737 return 0; 1759 return 0;
1738 uint32_t dwMsgCode = pMessage->GetClassID(); 1760
1739 if (dwMsgCode == FWL_MSGHASH_Mouse) { 1761 switch (pMessage->GetClassID()) {
1740 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); 1762 case CFWL_MessageType::Mouse: {
1741 uint32_t dwCmd = pMsg->m_dwCmd; 1763 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
1742 switch (dwCmd) { 1764 switch (pMsg->m_dwCmd) {
1743 case FWL_MSGMOUSECMD_LButtonDown: { 1765 case FWL_MSGMOUSECMD_LButtonDown: {
1744 OnLButtonDown(pMsg); 1766 OnLButtonDown(pMsg);
1745 break; 1767 break;
1768 }
1769 case FWL_MSGMOUSECMD_LButtonUp: {
1770 OnLButtonUp(pMsg);
1771 break;
1772 }
1773 case FWL_MSGMOUSECMD_MouseMove: {
1774 OnMouseMove(pMsg);
1775 break;
1776 }
1777 default:
1778 break;
1746 } 1779 }
1747 case FWL_MSGMOUSECMD_LButtonUp: { 1780 break;
1748 OnLButtonUp(pMsg);
1749 break;
1750 }
1751 case FWL_MSGMOUSECMD_MouseMove: {
1752 OnMouseMove(pMsg);
1753 break;
1754 }
1755 default: {}
1756 } 1781 }
1757 } 1782 case CFWL_MessageType::Deactivate: {
1758 if (dwMsgCode == FWL_MSGHASH_Deactivate) { 1783 OnDeactive(static_cast<CFWL_MsgDeactivate*>(pMessage));
1759 OnDeactive(static_cast<CFWL_MsgDeactivate*>(pMessage)); 1784 break;
1760 } 1785 }
1761 if (dwMsgCode == FWL_MSGHASH_KillFocus || dwMsgCode == FWL_MSGHASH_SetFocus) { 1786 case CFWL_MessageType::KillFocus: {
1762 OnFocusChanged(static_cast<CFWL_MsgKillFocus*>(pMessage), 1787 OnFocusChanged(static_cast<CFWL_MsgKillFocus*>(pMessage), FALSE);
1763 dwMsgCode == FWL_MSGHASH_SetFocus); 1788 break;
1789 }
1790 case CFWL_MessageType::SetFocus: {
1791 OnFocusChanged(static_cast<CFWL_MsgKillFocus*>(pMessage), TRUE);
1792 break;
1793 }
1794 default:
1795 break;
1764 } 1796 }
1765 return CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); 1797 return CFWL_WidgetImpDelegate::OnProcessMessage(pMessage);
1766 } 1798 }
1799
1767 FWL_ERR CFWL_ComboProxyImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, 1800 FWL_ERR CFWL_ComboProxyImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics,
1768 const CFX_Matrix* pMatrix) { 1801 const CFX_Matrix* pMatrix) {
1769 m_pComboBox->DrawStretchHandler(pGraphics, pMatrix); 1802 m_pComboBox->DrawStretchHandler(pGraphics, pMatrix);
1770 return FWL_ERR_Succeeded; 1803 return FWL_ERR_Succeeded;
1771 } 1804 }
1772 void CFWL_ComboProxyImpDelegate::OnLButtonDown(CFWL_MsgMouse* pMsg) { 1805 void CFWL_ComboProxyImpDelegate::OnLButtonDown(CFWL_MsgMouse* pMsg) {
1773 IFWL_Thread* pThread = m_pForm->GetOwnerThread(); 1806 IFWL_Thread* pThread = m_pForm->GetOwnerThread();
1774 if (!pThread) 1807 if (!pThread)
1775 return; 1808 return;
1776 CFWL_NoteDriver* pDriver = 1809 CFWL_NoteDriver* pDriver =
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1812 m_pComboBox->ShowDropList(FALSE); 1845 m_pComboBox->ShowDropList(FALSE);
1813 } 1846 }
1814 void CFWL_ComboProxyImpDelegate::OnFocusChanged(CFWL_MsgKillFocus* pMsg, 1847 void CFWL_ComboProxyImpDelegate::OnFocusChanged(CFWL_MsgKillFocus* pMsg,
1815 FX_BOOL bSet) { 1848 FX_BOOL bSet) {
1816 if (!bSet) { 1849 if (!bSet) {
1817 if (pMsg->m_pSetFocus == NULL) { 1850 if (pMsg->m_pSetFocus == NULL) {
1818 m_pComboBox->ShowDropList(FALSE); 1851 m_pComboBox->ShowDropList(FALSE);
1819 } 1852 }
1820 } 1853 }
1821 } 1854 }
OLDNEW
« no previous file with comments | « xfa/fwl/basewidget/fwl_checkboximp.cpp ('k') | xfa/fwl/basewidget/fwl_datetimepickerimp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698