OLD | NEW |
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/fwl_noteimp.h" | 7 #include "xfa/fwl/core/fwl_noteimp.h" |
8 | 8 |
9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
10 #include "xfa/fwl/basewidget/fwl_tooltipctrlimp.h" | 10 #include "xfa/fwl/basewidget/fwl_tooltipctrlimp.h" |
11 #include "xfa/fwl/basewidget/ifwl_tooltip.h" | 11 #include "xfa/fwl/basewidget/ifwl_tooltip.h" |
12 #include "xfa/fwl/core/cfwl_message.h" | 12 #include "xfa/fwl/core/cfwl_message.h" |
13 #include "xfa/fwl/core/fwl_appimp.h" | 13 #include "xfa/fwl/core/fwl_appimp.h" |
14 #include "xfa/fwl/core/fwl_formimp.h" | 14 #include "xfa/fwl/core/fwl_formimp.h" |
15 #include "xfa/fwl/core/fwl_panelimp.h" | 15 #include "xfa/fwl/core/fwl_panelimp.h" |
16 #include "xfa/fwl/core/fwl_targetimp.h" | 16 #include "xfa/fwl/core/fwl_targetimp.h" |
17 #include "xfa/fwl/core/fwl_threadimp.h" | 17 #include "xfa/fwl/core/fwl_threadimp.h" |
18 #include "xfa/fwl/core/fwl_widgetimp.h" | 18 #include "xfa/fwl/core/fwl_widgetimp.h" |
19 #include "xfa/fwl/core/fwl_widgetmgrimp.h" | 19 #include "xfa/fwl/core/fwl_widgetmgrimp.h" |
20 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h" | 20 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h" |
21 #include "xfa/fwl/core/ifwl_app.h" | 21 #include "xfa/fwl/core/ifwl_app.h" |
22 #include "xfa/fwl/core/ifwl_grid.h" | |
23 #include "xfa/fwl/core/ifwl_tooltiptarget.h" | 22 #include "xfa/fwl/core/ifwl_tooltiptarget.h" |
24 | 23 |
25 CFWL_NoteLoop::CFWL_NoteLoop(CFWL_WidgetImp* pForm) | 24 CFWL_NoteLoop::CFWL_NoteLoop(CFWL_WidgetImp* pForm) |
26 : m_pForm(pForm), m_bContinueModal(TRUE) {} | 25 : m_pForm(pForm), m_bContinueModal(TRUE) {} |
27 FX_BOOL CFWL_NoteLoop::PreProcessMessage(CFWL_Message* pMessage) { | 26 FX_BOOL CFWL_NoteLoop::PreProcessMessage(CFWL_Message* pMessage) { |
28 if (!m_pForm) { | 27 if (!m_pForm) { |
29 return FALSE; | 28 return FALSE; |
30 } | 29 } |
31 return TranslateAccelerator(pMessage); | 30 return TranslateAccelerator(pMessage); |
32 } | 31 } |
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
661 if (!DoMouseEx(pMsg, pMessageForm)) { | 660 if (!DoMouseEx(pMsg, pMessageForm)) { |
662 pMsg->m_pDstTarget = pMessageForm; | 661 pMsg->m_pDstTarget = pMessageForm; |
663 } | 662 } |
664 return TRUE; | 663 return TRUE; |
665 } | 664 } |
666 FX_BOOL CFWL_NoteDriver::DoWheel(CFWL_MsgMouseWheel* pMsg, | 665 FX_BOOL CFWL_NoteDriver::DoWheel(CFWL_MsgMouseWheel* pMsg, |
667 IFWL_Widget* pMessageForm) { | 666 IFWL_Widget* pMessageForm) { |
668 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 667 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); |
669 if (!pWidgetMgr) | 668 if (!pWidgetMgr) |
670 return FALSE; | 669 return FALSE; |
| 670 |
671 IFWL_Widget* pDst = | 671 IFWL_Widget* pDst = |
672 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy); | 672 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy); |
673 if (!pDst) | 673 if (!pDst) |
674 return FALSE; | 674 return FALSE; |
675 while (pDst && pDst->GetClassID() == FWL_CLASSHASH_Grid) { | 675 |
676 pDst = pDst->GetParent(); | |
677 } | |
678 pMessageForm->TransformTo(pDst, pMsg->m_fx, pMsg->m_fy); | 676 pMessageForm->TransformTo(pDst, pMsg->m_fx, pMsg->m_fy); |
679 pMsg->m_pDstTarget = pDst; | 677 pMsg->m_pDstTarget = pDst; |
680 return TRUE; | 678 return TRUE; |
681 } | 679 } |
682 FX_BOOL CFWL_NoteDriver::DoSize(CFWL_MsgSize* pMsg) { | 680 FX_BOOL CFWL_NoteDriver::DoSize(CFWL_MsgSize* pMsg) { |
683 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 681 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); |
684 if (!pWidgetMgr) | 682 if (!pWidgetMgr) |
685 return FALSE; | 683 return FALSE; |
686 pWidgetMgr->NotifySizeChanged(pMsg->m_pDstTarget, (FX_FLOAT)pMsg->m_iWidth, | 684 pWidgetMgr->NotifySizeChanged(pMsg->m_pDstTarget, (FX_FLOAT)pMsg->m_iWidth, |
687 (FX_FLOAT)pMsg->m_iHeight); | 685 (FX_FLOAT)pMsg->m_iHeight); |
(...skipping 11 matching lines...) Expand all Loading... |
699 IFWL_Widget* pMessageForm) { | 697 IFWL_Widget* pMessageForm) { |
700 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 698 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); |
701 if (!pWidgetMgr) | 699 if (!pWidgetMgr) |
702 return FALSE; | 700 return FALSE; |
703 IFWL_Widget* pTarget = NULL; | 701 IFWL_Widget* pTarget = NULL; |
704 if (m_pGrab) | 702 if (m_pGrab) |
705 pTarget = m_pGrab; | 703 pTarget = m_pGrab; |
706 if (!pTarget) { | 704 if (!pTarget) { |
707 pTarget = | 705 pTarget = |
708 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy); | 706 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy); |
709 while (pTarget && pTarget->GetClassID() == FWL_CLASSHASH_Grid) { | |
710 pTarget = pTarget->GetParent(); | |
711 } | |
712 } | 707 } |
713 if (pTarget) { | 708 if (pTarget) { |
714 if (pMessageForm != pTarget) { | 709 if (pMessageForm != pTarget) { |
715 pMessageForm->TransformTo(pTarget, pMsg->m_fx, pMsg->m_fy); | 710 pMessageForm->TransformTo(pTarget, pMsg->m_fx, pMsg->m_fy); |
716 } | 711 } |
717 } | 712 } |
718 if (!pTarget) | 713 if (!pTarget) |
719 return FALSE; | 714 return FALSE; |
720 pMsg->m_pDstTarget = pTarget; | 715 pMsg->m_pDstTarget = pTarget; |
721 return TRUE; | 716 return TRUE; |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1086 return NULL; | 1081 return NULL; |
1087 return widget->GetInterface(); | 1082 return widget->GetInterface(); |
1088 } | 1083 } |
1089 FWL_ERR FWL_SetHook(IFWL_NoteDriver* driver, | 1084 FWL_ERR FWL_SetHook(IFWL_NoteDriver* driver, |
1090 FWLMessageHookCallback callback, | 1085 FWLMessageHookCallback callback, |
1091 void* info) { | 1086 void* info) { |
1092 CFWL_NoteDriver* noteDriver = static_cast<CFWL_NoteDriver*>(driver); | 1087 CFWL_NoteDriver* noteDriver = static_cast<CFWL_NoteDriver*>(driver); |
1093 noteDriver->SetHook(callback, info); | 1088 noteDriver->SetHook(callback, info); |
1094 return FWL_ERR_Succeeded; | 1089 return FWL_ERR_Succeeded; |
1095 } | 1090 } |
OLD | NEW |