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

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

Issue 2530993002: Cleanup FWL Event and Message code. (Closed)
Patch Set: Created 4 years 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
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/core/cfwl_combobox.h" 7 #include "xfa/fwl/core/cfwl_combobox.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
11 #include <utility> 11 #include <utility>
12 12
13 #include "third_party/base/ptr_util.h" 13 #include "third_party/base/ptr_util.h"
14 #include "xfa/fde/cfde_txtedtengine.h" 14 #include "xfa/fde/cfde_txtedtengine.h"
15 #include "xfa/fde/tto/fde_textout.h" 15 #include "xfa/fde/tto/fde_textout.h"
16 #include "xfa/fwl/core/cfwl_app.h" 16 #include "xfa/fwl/core/cfwl_app.h"
17 #include "xfa/fwl/core/cfwl_evteditchanged.h" 17 #include "xfa/fwl/core/cfwl_event.h"
18 #include "xfa/fwl/core/cfwl_evtpostdropdown.h"
19 #include "xfa/fwl/core/cfwl_evtpredropdown.h"
20 #include "xfa/fwl/core/cfwl_evtselectchanged.h" 18 #include "xfa/fwl/core/cfwl_evtselectchanged.h"
21 #include "xfa/fwl/core/cfwl_evttextchanged.h" 19 #include "xfa/fwl/core/cfwl_evttextchanged.h"
22 #include "xfa/fwl/core/cfwl_formproxy.h" 20 #include "xfa/fwl/core/cfwl_formproxy.h"
23 #include "xfa/fwl/core/cfwl_listbox.h" 21 #include "xfa/fwl/core/cfwl_listbox.h"
24 #include "xfa/fwl/core/cfwl_msgkey.h" 22 #include "xfa/fwl/core/cfwl_msgkey.h"
25 #include "xfa/fwl/core/cfwl_msgkillfocus.h" 23 #include "xfa/fwl/core/cfwl_msgkillfocus.h"
26 #include "xfa/fwl/core/cfwl_msgmouse.h" 24 #include "xfa/fwl/core/cfwl_msgmouse.h"
27 #include "xfa/fwl/core/cfwl_msgsetfocus.h" 25 #include "xfa/fwl/core/cfwl_msgsetfocus.h"
28 #include "xfa/fwl/core/cfwl_notedriver.h" 26 #include "xfa/fwl/core/cfwl_notedriver.h"
29 #include "xfa/fwl/core/cfwl_themebackground.h" 27 #include "xfa/fwl/core/cfwl_themebackground.h"
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 m_rtList.top = m_fComboFormHandler; 390 m_rtList.top = m_fComboFormHandler;
393 } else { 391 } else {
394 m_rtHandler.Set(0, m_rtList.height, m_rtList.width, m_fComboFormHandler); 392 m_rtHandler.Set(0, m_rtList.height, m_rtList.width, m_fComboFormHandler);
395 } 393 }
396 } 394 }
397 m_pComboBoxProxy->SetWidgetRect(m_rtProxy); 395 m_pComboBoxProxy->SetWidgetRect(m_rtProxy);
398 m_pComboBoxProxy->Update(); 396 m_pComboBoxProxy->Update();
399 m_pListBox->SetWidgetRect(m_rtList); 397 m_pListBox->SetWidgetRect(m_rtList);
400 m_pListBox->Update(); 398 m_pListBox->Update();
401 399
402 CFWL_EvtPreDropDown ev; 400 CFWL_Event ev(CFWL_EventType::PreDropDown);
403 ev.m_pSrcTarget = this; 401 ev.m_pSrcTarget = this;
404 DispatchEvent(&ev); 402 DispatchEvent(&ev);
405 403
406 m_fItemHeight = m_pListBox->GetItemHeight(); 404 m_fItemHeight = m_pListBox->GetItemHeight();
407 m_pListBox->SetFocus(true); 405 m_pListBox->SetFocus(true);
408 m_pComboBoxProxy->DoModal(); 406 m_pComboBoxProxy->DoModal();
409 m_pListBox->SetFocus(false); 407 m_pListBox->SetFocus(false);
410 } 408 }
411 409
412 void CFWL_ComboBox::MatchEditText() { 410 void CFWL_ComboBox::MatchEditText() {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 m_pEdit = 599 m_pEdit =
602 pdfium::MakeUnique<CFWL_ComboEdit>(m_pOwnerApp, std::move(prop), this); 600 pdfium::MakeUnique<CFWL_ComboEdit>(m_pOwnerApp, std::move(prop), this);
603 m_pEdit->SetOuter(this); 601 m_pEdit->SetOuter(this);
604 } 602 }
605 603
606 void CFWL_ComboBox::DisForm_ShowDropList(bool bActivate) { 604 void CFWL_ComboBox::DisForm_ShowDropList(bool bActivate) {
607 if (DisForm_IsDropListVisible() == bActivate) 605 if (DisForm_IsDropListVisible() == bActivate)
608 return; 606 return;
609 607
610 if (bActivate) { 608 if (bActivate) {
611 CFWL_EvtPreDropDown preEvent; 609 CFWL_Event preEvent(CFWL_EventType::PreDropDown);
612 preEvent.m_pSrcTarget = this; 610 preEvent.m_pSrcTarget = this;
613 DispatchEvent(&preEvent); 611 DispatchEvent(&preEvent);
614 612
615 CFWL_ComboList* pComboList = m_pListBox.get(); 613 CFWL_ComboList* pComboList = m_pListBox.get();
616 int32_t iItems = pComboList->CountItems(nullptr); 614 int32_t iItems = pComboList->CountItems(nullptr);
617 if (iItems < 1) 615 if (iItems < 1)
618 return; 616 return;
619 617
620 ResetListItemAlignment(); 618 ResetListItemAlignment();
621 pComboList->ChangeSelected(m_iCurSel); 619 pComboList->ChangeSelected(m_iCurSel);
(...skipping 13 matching lines...) Expand all
635 GetPopupPos(fPopupMin, fPopupMax, m_pProperties->m_rtWidget, rtList); 633 GetPopupPos(fPopupMin, fPopupMax, m_pProperties->m_rtWidget, rtList);
636 634
637 m_pListBox->SetWidgetRect(rtList); 635 m_pListBox->SetWidgetRect(rtList);
638 m_pListBox->Update(); 636 m_pListBox->Update();
639 } else { 637 } else {
640 SetFocus(true); 638 SetFocus(true);
641 } 639 }
642 640
643 m_pListBox->SetStates(FWL_WGTSTATE_Invisible, !bActivate); 641 m_pListBox->SetStates(FWL_WGTSTATE_Invisible, !bActivate);
644 if (bActivate) { 642 if (bActivate) {
645 CFWL_EvtPostDropDown postEvent; 643 CFWL_Event postEvent(CFWL_EventType::PostDropDown);
646 postEvent.m_pSrcTarget = this; 644 postEvent.m_pSrcTarget = this;
647 DispatchEvent(&postEvent); 645 DispatchEvent(&postEvent);
648 } 646 }
649 647
650 CFX_RectF rect; 648 CFX_RectF rect;
651 m_pListBox->GetWidgetRect(rect); 649 m_pListBox->GetWidgetRect(rect);
652 rect.Inflate(2, 2); 650 rect.Inflate(2, 2);
653 Repaint(&rect); 651 Repaint(&rect);
654 } 652 }
655 653
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 void CFWL_ComboBox::OnProcessEvent(CFWL_Event* pEvent) { 832 void CFWL_ComboBox::OnProcessEvent(CFWL_Event* pEvent) {
835 CFWL_EventType dwFlag = pEvent->GetClassID(); 833 CFWL_EventType dwFlag = pEvent->GetClassID();
836 if (dwFlag == CFWL_EventType::Scroll) { 834 if (dwFlag == CFWL_EventType::Scroll) {
837 CFWL_EvtScroll* pScrollEvent = static_cast<CFWL_EvtScroll*>(pEvent); 835 CFWL_EvtScroll* pScrollEvent = static_cast<CFWL_EvtScroll*>(pEvent);
838 CFWL_EvtScroll pScrollEv; 836 CFWL_EvtScroll pScrollEv;
839 pScrollEv.m_pSrcTarget = this; 837 pScrollEv.m_pSrcTarget = this;
840 pScrollEv.m_iScrollCode = pScrollEvent->m_iScrollCode; 838 pScrollEv.m_iScrollCode = pScrollEvent->m_iScrollCode;
841 pScrollEv.m_fPos = pScrollEvent->m_fPos; 839 pScrollEv.m_fPos = pScrollEvent->m_fPos;
842 DispatchEvent(&pScrollEv); 840 DispatchEvent(&pScrollEv);
843 } else if (dwFlag == CFWL_EventType::TextChanged) { 841 } else if (dwFlag == CFWL_EventType::TextChanged) {
844 CFWL_EvtEditChanged pTemp; 842 CFWL_Event pTemp(CFWL_EventType::EditChanged);
845 pTemp.m_pSrcTarget = this; 843 pTemp.m_pSrcTarget = this;
846 DispatchEvent(&pTemp); 844 DispatchEvent(&pTemp);
847 } 845 }
848 } 846 }
849 847
850 void CFWL_ComboBox::OnDrawWidget(CFX_Graphics* pGraphics, 848 void CFWL_ComboBox::OnDrawWidget(CFX_Graphics* pGraphics,
851 const CFX_Matrix* pMatrix) { 849 const CFX_Matrix* pMatrix) {
852 DrawWidget(pGraphics, pMatrix); 850 DrawWidget(pGraphics, pMatrix);
853 } 851 }
854 852
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 if (!IsDropListVisible() && 925 if (!IsDropListVisible() &&
928 !((m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled) == 926 !((m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled) ==
929 FWL_WGTSTATE_Disabled)) { 927 FWL_WGTSTATE_Disabled)) {
930 m_iBtnState = CFWL_PartState_Normal; 928 m_iBtnState = CFWL_PartState_Normal;
931 Repaint(&m_rtBtn); 929 Repaint(&m_rtBtn);
932 } 930 }
933 } 931 }
934 932
935 void CFWL_ComboBox::OnKey(CFWL_MsgKey* pMsg) { 933 void CFWL_ComboBox::OnKey(CFWL_MsgKey* pMsg) {
936 uint32_t dwKeyCode = pMsg->m_dwKeyCode; 934 uint32_t dwKeyCode = pMsg->m_dwKeyCode;
937 if (dwKeyCode == FWL_VKEY_Tab) { 935 if (dwKeyCode == FWL_VKEY_Tab)
938 DispatchKeyEvent(pMsg);
939 return; 936 return;
940 }
941 if (pMsg->m_pDstTarget == this) 937 if (pMsg->m_pDstTarget == this)
942 DoSubCtrlKey(pMsg); 938 DoSubCtrlKey(pMsg);
943 } 939 }
944 940
945 void CFWL_ComboBox::DoSubCtrlKey(CFWL_MsgKey* pMsg) { 941 void CFWL_ComboBox::DoSubCtrlKey(CFWL_MsgKey* pMsg) {
946 uint32_t dwKeyCode = pMsg->m_dwKeyCode; 942 uint32_t dwKeyCode = pMsg->m_dwKeyCode;
947 const bool bUp = dwKeyCode == FWL_VKEY_Up; 943 const bool bUp = dwKeyCode == FWL_VKEY_Up;
948 const bool bDown = dwKeyCode == FWL_VKEY_Down; 944 const bool bDown = dwKeyCode == FWL_VKEY_Down;
949 if (bUp || bDown) { 945 if (bUp || bDown) {
950 int32_t iCount = m_pListBox->CountItems(nullptr); 946 int32_t iCount = m_pListBox->CountItems(nullptr);
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 else 1103 else
1108 iCurSel++; 1104 iCurSel++;
1109 } 1105 }
1110 m_iCurSel = iCurSel; 1106 m_iCurSel = iCurSel;
1111 SyncEditText(m_iCurSel); 1107 SyncEditText(m_iCurSel);
1112 return; 1108 return;
1113 } 1109 }
1114 if (m_pEdit) 1110 if (m_pEdit)
1115 m_pEdit->GetDelegate()->OnProcessMessage(pMsg); 1111 m_pEdit->GetDelegate()->OnProcessMessage(pMsg);
1116 } 1112 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698