diff options
author | dsinclair <dsinclair@chromium.org> | 2016-11-23 16:03:10 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-11-23 16:03:10 -0800 |
commit | 0ce11eef157b791c661d7e82e1c5641605b9f03d (patch) | |
tree | e5166163947824e52c417b4a65c2c7d965c00dad /xfa/fwl/core/ifwl_combolist.cpp | |
parent | 2430b30088c3e3396ccf26a10d360d0553404bb0 (diff) | |
download | pdfium-0ce11eef157b791c661d7e82e1c5641605b9f03d.tar.xz |
Rename IFWL classes which do not have CFWL equivalents
This CL moves the IFWL classes that do not have CFWL class buddies to have the
CFWL name. This CL leaves the tree in a weird state of having CFWL be two
hierarchies, one of which is intertwined with the IFWL hierarchy. This should
be commited just before the CL to move the rest of IFWL to CFWL.
Review-Url: https://codereview.chromium.org/2525083002
Diffstat (limited to 'xfa/fwl/core/ifwl_combolist.cpp')
-rw-r--r-- | xfa/fwl/core/ifwl_combolist.cpp | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/xfa/fwl/core/ifwl_combolist.cpp b/xfa/fwl/core/ifwl_combolist.cpp deleted file mode 100644 index ed7732e0ed..0000000000 --- a/xfa/fwl/core/ifwl_combolist.cpp +++ /dev/null @@ -1,249 +0,0 @@ -// Copyright 2016 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fwl/core/ifwl_combolist.h" - -#include <memory> -#include <utility> - -#include "third_party/base/ptr_util.h" -#include "xfa/fwl/core/cfwl_msgkey.h" -#include "xfa/fwl/core/cfwl_msgkillfocus.h" -#include "xfa/fwl/core/cfwl_msgmouse.h" -#include "xfa/fwl/core/ifwl_combobox.h" -#include "xfa/fwl/core/ifwl_comboedit.h" -#include "xfa/fwl/core/ifwl_listbox.h" - -IFWL_ComboList::IFWL_ComboList( - const CFWL_App* app, - std::unique_ptr<CFWL_WidgetProperties> properties, - IFWL_Widget* pOuter) - : IFWL_ListBox(app, std::move(properties), pOuter), m_bNotifyOwner(true) { - ASSERT(pOuter); -} - -int32_t IFWL_ComboList::MatchItem(const CFX_WideString& wsMatch) { - if (wsMatch.IsEmpty()) - return -1; - - int32_t iCount = CountItems(this); - for (int32_t i = 0; i < iCount; i++) { - CFWL_ListItem* hItem = GetItem(this, i); - CFX_WideString wsText; - GetItemText(this, hItem, wsText); - FX_STRSIZE pos = wsText.Find(wsMatch.c_str()); - if (!pos) - return i; - } - return -1; -} - -void IFWL_ComboList::ChangeSelected(int32_t iSel) { - CFWL_ListItem* hItem = GetItem(this, iSel); - CFX_RectF rtInvalidate; - rtInvalidate.Reset(); - CFWL_ListItem* hOld = GetSelItem(0); - int32_t iOld = GetItemIndex(this, hOld); - if (iOld == iSel) - return; - if (iOld > -1) { - CFWL_ListItem* hItem = GetItem(this, iOld); - GetItemRect(this, hItem, rtInvalidate); - SetSelItem(hOld, false); - } - if (hItem) { - CFX_RectF rect; - CFWL_ListItem* hItem = GetItem(this, iSel); - GetItemRect(this, hItem, rect); - rtInvalidate.Union(rect); - CFWL_ListItem* hSel = GetItem(this, iSel); - SetSelItem(hSel, true); - } - if (!rtInvalidate.IsEmpty()) - Repaint(&rtInvalidate); -} - -void IFWL_ComboList::ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy) { - fx += m_pProperties->m_rtWidget.left, fy += m_pProperties->m_rtWidget.top; - IFWL_Widget* pOwner = GetOwner(); - if (!pOwner) - return; - pOwner->TransformTo(m_pOuter, fx, fy); -} - -void IFWL_ComboList::OnProcessMessage(CFWL_Message* pMessage) { - if (!pMessage) - return; - - CFWL_MessageType dwHashCode = pMessage->GetClassID(); - bool backDefault = true; - if (dwHashCode == CFWL_MessageType::SetFocus || - dwHashCode == CFWL_MessageType::KillFocus) { - OnDropListFocusChanged(pMessage, dwHashCode == CFWL_MessageType::SetFocus); - } else if (dwHashCode == CFWL_MessageType::Mouse) { - CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); - IFWL_ScrollBar* vertSB = GetVertScrollBar(); - if (IsShowScrollBar(true) && vertSB) { - CFX_RectF rect; - vertSB->GetWidgetRect(rect); - if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) { - pMsg->m_fx -= rect.left; - pMsg->m_fy -= rect.top; - vertSB->GetDelegate()->OnProcessMessage(pMsg); - return; - } - } - switch (pMsg->m_dwCmd) { - case FWL_MouseCommand::Move: { - backDefault = false; - OnDropListMouseMove(pMsg); - break; - } - case FWL_MouseCommand::LeftButtonDown: { - backDefault = false; - OnDropListLButtonDown(pMsg); - break; - } - case FWL_MouseCommand::LeftButtonUp: { - backDefault = false; - OnDropListLButtonUp(pMsg); - break; - } - default: - break; - } - } else if (dwHashCode == CFWL_MessageType::Key) { - backDefault = !OnDropListKey(static_cast<CFWL_MsgKey*>(pMessage)); - } - if (backDefault) - IFWL_ListBox::OnProcessMessage(pMessage); -} - -void IFWL_ComboList::OnDropListFocusChanged(CFWL_Message* pMsg, bool bSet) { - if (bSet) - return; - - CFWL_MsgKillFocus* pKill = static_cast<CFWL_MsgKillFocus*>(pMsg); - IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); - if (pKill->m_pSetFocus == m_pOuter || - pKill->m_pSetFocus == pOuter->GetComboEdit()) { - pOuter->ShowDropList(false); - } -} - -void IFWL_ComboList::OnDropListMouseMove(CFWL_MsgMouse* pMsg) { - if (GetRTClient().Contains(pMsg->m_fx, pMsg->m_fy)) { - if (m_bNotifyOwner) - m_bNotifyOwner = false; - - IFWL_ScrollBar* vertSB = GetVertScrollBar(); - if (IsShowScrollBar(true) && vertSB) { - CFX_RectF rect; - vertSB->GetWidgetRect(rect); - if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) - return; - } - - CFWL_ListItem* hItem = GetItemAtPoint(pMsg->m_fx, pMsg->m_fy); - if (!hItem) - return; - - ChangeSelected(GetItemIndex(this, hItem)); - } else if (m_bNotifyOwner) { - ClientToOuter(pMsg->m_fx, pMsg->m_fy); - IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); - pOuter->GetDelegate()->OnProcessMessage(pMsg); - } -} - -void IFWL_ComboList::OnDropListLButtonDown(CFWL_MsgMouse* pMsg) { - if (GetRTClient().Contains(pMsg->m_fx, pMsg->m_fy)) - return; - - IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); - pOuter->ShowDropList(false); -} - -void IFWL_ComboList::OnDropListLButtonUp(CFWL_MsgMouse* pMsg) { - IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); - if (m_bNotifyOwner) { - ClientToOuter(pMsg->m_fx, pMsg->m_fy); - pOuter->GetDelegate()->OnProcessMessage(pMsg); - return; - } - - IFWL_ScrollBar* vertSB = GetVertScrollBar(); - if (IsShowScrollBar(true) && vertSB) { - CFX_RectF rect; - vertSB->GetWidgetRect(rect); - if (rect.Contains(pMsg->m_fx, pMsg->m_fy)) - return; - } - pOuter->ShowDropList(false); - - CFWL_ListItem* hItem = GetItemAtPoint(pMsg->m_fx, pMsg->m_fy); - if (hItem) - pOuter->ProcessSelChanged(true); -} - -bool IFWL_ComboList::OnDropListKey(CFWL_MsgKey* pKey) { - IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); - bool bPropagate = false; - if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown) { - uint32_t dwKeyCode = pKey->m_dwKeyCode; - switch (dwKeyCode) { - case FWL_VKEY_Return: - case FWL_VKEY_Escape: { - pOuter->ShowDropList(false); - return true; - } - case FWL_VKEY_Up: - case FWL_VKEY_Down: { - OnDropListKeyDown(pKey); - pOuter->ProcessSelChanged(false); - return true; - } - default: { - bPropagate = true; - break; - } - } - } else if (pKey->m_dwCmd == FWL_KeyCommand::Char) { - bPropagate = true; - } - if (bPropagate) { - pKey->m_pDstTarget = m_pOuter; - pOuter->GetDelegate()->OnProcessMessage(pKey); - return true; - } - return false; -} - -void IFWL_ComboList::OnDropListKeyDown(CFWL_MsgKey* pKey) { - uint32_t dwKeyCode = pKey->m_dwKeyCode; - switch (dwKeyCode) { - case FWL_VKEY_Up: - case FWL_VKEY_Down: - case FWL_VKEY_Home: - case FWL_VKEY_End: { - IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter); - CFWL_ListItem* hItem = GetItem(this, pOuter->GetCurrentSelection()); - hItem = GetListItem(hItem, dwKeyCode); - if (!hItem) - break; - - SetSelection(hItem, hItem, true); - ScrollToVisible(hItem); - CFX_RectF rtInvalidate; - rtInvalidate.Set(0, 0, m_pProperties->m_rtWidget.width, - m_pProperties->m_rtWidget.height); - Repaint(&rtInvalidate); - break; - } - default: - break; - } -} |