| 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_formimp.h" | 7 #include "xfa/fwl/core/fwl_formimp.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_formproxyimp.h" | 10 #include "xfa/fwl/basewidget/fwl_formproxyimp.h" |
| (...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 848 } else { | 848 } else { |
| 849 if (fTemp < fLimitMin && fHeight > fLimitMin) { | 849 if (fTemp < fLimitMin && fHeight > fLimitMin) { |
| 850 fTop += bTop ? (fHeight - fLimitMin) : 0; | 850 fTop += bTop ? (fHeight - fLimitMin) : 0; |
| 851 fHeight = fLimitMin; | 851 fHeight = fLimitMin; |
| 852 } else if (fTemp > fLimitMax && fHeight < fLimitMax) { | 852 } else if (fTemp > fLimitMax && fHeight < fLimitMax) { |
| 853 fTop -= bTop ? (fLimitMax - fHeight) : 0; | 853 fTop -= bTop ? (fLimitMax - fHeight) : 0; |
| 854 fHeight = fLimitMax; | 854 fHeight = fLimitMax; |
| 855 } | 855 } |
| 856 } | 856 } |
| 857 } | 857 } |
| 858 |
| 858 CFWL_FormImpDelegate::CFWL_FormImpDelegate(CFWL_FormImp* pOwner) | 859 CFWL_FormImpDelegate::CFWL_FormImpDelegate(CFWL_FormImp* pOwner) |
| 859 : m_pOwner(pOwner) {} | 860 : m_pOwner(pOwner) {} |
| 861 |
| 860 int32_t CFWL_FormImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { | 862 int32_t CFWL_FormImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { |
| 861 #ifdef FWL_UseMacSystemBorder | |
| 862 if (!pMessage) | 863 if (!pMessage) |
| 863 return 0; | 864 return 0; |
| 864 uint32_t dwMsgCode = pMessage->GetClassID(); | 865 |
| 866 CFWL_MessageType dwMsgCode = pMessage->GetClassID(); |
| 867 |
| 868 #ifdef FWL_UseMacSystemBorder |
| 869 |
| 865 switch (dwMsgCode) { | 870 switch (dwMsgCode) { |
| 866 case FWL_MSGHASH_Activate: { | 871 case CFWL_MessageType::Activate: { |
| 867 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Deactivated; | 872 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Deactivated; |
| 868 m_pOwner->Repaint(&m_pOwner->m_rtRelative); | 873 m_pOwner->Repaint(&m_pOwner->m_rtRelative); |
| 869 break; | 874 break; |
| 870 } | 875 } |
| 871 case FWL_MSGHASH_Deactivate: { | 876 case CFWL_MessageType::Deactivate: { |
| 872 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Deactivated; | 877 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Deactivated; |
| 873 m_pOwner->Repaint(&m_pOwner->m_rtRelative); | 878 m_pOwner->Repaint(&m_pOwner->m_rtRelative); |
| 874 break; | 879 break; |
| 875 } | 880 } |
| 876 } | 881 } |
| 877 return FWL_ERR_Succeeded; | 882 return FWL_ERR_Succeeded; |
| 878 #else | 883 #else |
| 879 if (!pMessage) | |
| 880 return 0; | |
| 881 uint32_t dwMsgCode = pMessage->GetClassID(); | |
| 882 int32_t iRet = 1; | 884 int32_t iRet = 1; |
| 883 switch (dwMsgCode) { | 885 switch (dwMsgCode) { |
| 884 case FWL_MSGHASH_Activate: { | 886 case CFWL_MessageType::Activate: { |
| 885 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Deactivated; | 887 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Deactivated; |
| 886 IFWL_Thread* pThread = m_pOwner->GetOwnerThread(); | 888 IFWL_Thread* pThread = m_pOwner->GetOwnerThread(); |
| 887 CFWL_NoteDriver* pDriver = | 889 CFWL_NoteDriver* pDriver = |
| 888 static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); | 890 static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); |
| 889 CFWL_WidgetImp* pSubFocusImp = m_pOwner->GetSubFocus(); | 891 CFWL_WidgetImp* pSubFocusImp = m_pOwner->GetSubFocus(); |
| 890 IFWL_Widget* pSubFocus = | 892 IFWL_Widget* pSubFocus = |
| 891 pSubFocusImp ? pSubFocusImp->GetInterface() : NULL; | 893 pSubFocusImp ? pSubFocusImp->GetInterface() : nullptr; |
| 892 if (pSubFocus && pSubFocus != pDriver->GetFocus()) { | 894 if (pSubFocus && pSubFocus != pDriver->GetFocus()) |
| 893 pDriver->SetFocus(pSubFocus); | 895 pDriver->SetFocus(pSubFocus); |
| 894 } | 896 |
| 895 m_pOwner->Repaint(&m_pOwner->m_rtRelative); | 897 m_pOwner->Repaint(&m_pOwner->m_rtRelative); |
| 896 break; | 898 break; |
| 897 } | 899 } |
| 898 case FWL_MSGHASH_Deactivate: { | 900 case CFWL_MessageType::Deactivate: { |
| 899 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Deactivated; | 901 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Deactivated; |
| 900 IFWL_Thread* pThread = m_pOwner->GetOwnerThread(); | 902 IFWL_Thread* pThread = m_pOwner->GetOwnerThread(); |
| 901 CFWL_NoteDriver* pDriver = | 903 CFWL_NoteDriver* pDriver = |
| 902 static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); | 904 static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); |
| 903 CFWL_WidgetImp* pSubFocusImp = m_pOwner->GetSubFocus(); | 905 CFWL_WidgetImp* pSubFocusImp = m_pOwner->GetSubFocus(); |
| 904 IFWL_Widget* pSubFocus = | 906 IFWL_Widget* pSubFocus = |
| 905 pSubFocusImp ? pSubFocusImp->GetInterface() : NULL; | 907 pSubFocusImp ? pSubFocusImp->GetInterface() : nullptr; |
| 906 if (pSubFocus) { | 908 if (pSubFocus) { |
| 907 if (pSubFocus == pDriver->GetFocus()) { | 909 if (pSubFocus == pDriver->GetFocus()) { |
| 908 pDriver->SetFocus(NULL); | 910 pDriver->SetFocus(nullptr); |
| 909 } else if (pSubFocus->GetStates() & FWL_WGTSTATE_Focused) { | 911 } else if (pSubFocus->GetStates() & FWL_WGTSTATE_Focused) { |
| 910 CFWL_MsgKillFocus ms; | 912 CFWL_MsgKillFocus ms; |
| 911 IFWL_WidgetDelegate* pDelegate = pSubFocus->SetDelegate(NULL); | 913 IFWL_WidgetDelegate* pDelegate = pSubFocus->SetDelegate(nullptr); |
| 912 if (pDelegate) { | 914 if (pDelegate) |
| 913 pDelegate->OnProcessMessage(&ms); | 915 pDelegate->OnProcessMessage(&ms); |
| 914 } | |
| 915 } | 916 } |
| 916 } | 917 } |
| 917 m_pOwner->Repaint(&m_pOwner->m_rtRelative); | 918 m_pOwner->Repaint(&m_pOwner->m_rtRelative); |
| 918 break; | 919 break; |
| 919 } | 920 } |
| 920 case FWL_MSGHASH_Mouse: { | 921 case CFWL_MessageType::Mouse: { |
| 921 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); | 922 CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage); |
| 922 switch (pMsg->m_dwCmd) { | 923 switch (pMsg->m_dwCmd) { |
| 923 case FWL_MSGMOUSECMD_LButtonDown: { | 924 case FWL_MSGMOUSECMD_LButtonDown: { |
| 924 OnLButtonDown(pMsg); | 925 OnLButtonDown(pMsg); |
| 925 break; | 926 break; |
| 926 } | 927 } |
| 927 case FWL_MSGMOUSECMD_LButtonUp: { | 928 case FWL_MSGMOUSECMD_LButtonUp: { |
| 928 OnLButtonUp(pMsg); | 929 OnLButtonUp(pMsg); |
| 929 break; | 930 break; |
| 930 } | 931 } |
| 931 case FWL_MSGMOUSECMD_MouseMove: { | 932 case FWL_MSGMOUSECMD_MouseMove: { |
| 932 OnMouseMove(pMsg); | 933 OnMouseMove(pMsg); |
| 933 break; | 934 break; |
| 934 } | 935 } |
| 935 case FWL_MSGMOUSECMD_MouseHover: { | 936 case FWL_MSGMOUSECMD_MouseHover: { |
| 936 OnMouseHover(pMsg); | 937 OnMouseHover(pMsg); |
| 937 break; | 938 break; |
| 938 } | 939 } |
| 939 case FWL_MSGMOUSECMD_MouseLeave: { | 940 case FWL_MSGMOUSECMD_MouseLeave: { |
| 940 OnMouseLeave(pMsg); | 941 OnMouseLeave(pMsg); |
| 941 break; | 942 break; |
| 942 } | 943 } |
| 943 case FWL_MSGMOUSECMD_LButtonDblClk: { | 944 case FWL_MSGMOUSECMD_LButtonDblClk: { |
| 944 OnLButtonDblClk(pMsg); | 945 OnLButtonDblClk(pMsg); |
| 945 break; | 946 break; |
| 946 } | 947 } |
| 947 } | 948 } |
| 948 break; | 949 break; |
| 949 } | 950 } |
| 950 case FWL_MSGHASH_Size: { | 951 case CFWL_MessageType::Size: { |
| 951 CFWL_WidgetMgr* pWidgetMgr = | 952 CFWL_WidgetMgr* pWidgetMgr = |
| 952 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 953 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); |
| 953 if (!pWidgetMgr) | 954 if (!pWidgetMgr) |
| 954 return 0; | 955 return 0; |
| 956 |
| 955 pWidgetMgr->AddRedrawCounts(m_pOwner->m_pInterface); | 957 pWidgetMgr->AddRedrawCounts(m_pOwner->m_pInterface); |
| 956 if (!m_pOwner->m_bSetMaximize) { | 958 if (!m_pOwner->m_bSetMaximize) |
| 957 break; | 959 break; |
| 958 } | 960 |
| 959 m_pOwner->m_bSetMaximize = FALSE; | 961 m_pOwner->m_bSetMaximize = FALSE; |
| 960 CFWL_MsgSize* pMsg = static_cast<CFWL_MsgSize*>(pMessage); | 962 CFWL_MsgSize* pMsg = static_cast<CFWL_MsgSize*>(pMessage); |
| 961 CFX_RectF rt; | 963 CFX_RectF rt; |
| 962 pWidgetMgr->GetWidgetRect_Native(m_pOwner->m_pInterface, rt); | 964 pWidgetMgr->GetWidgetRect_Native(m_pOwner->m_pInterface, rt); |
| 963 m_pOwner->m_pProperties->m_rtWidget.left = rt.left; | 965 m_pOwner->m_pProperties->m_rtWidget.left = rt.left; |
| 964 m_pOwner->m_pProperties->m_rtWidget.top = rt.top; | 966 m_pOwner->m_pProperties->m_rtWidget.top = rt.top; |
| 965 m_pOwner->m_pProperties->m_rtWidget.width = (FX_FLOAT)pMsg->m_iWidth; | 967 m_pOwner->m_pProperties->m_rtWidget.width = (FX_FLOAT)pMsg->m_iWidth; |
| 966 m_pOwner->m_pProperties->m_rtWidget.height = (FX_FLOAT)pMsg->m_iHeight; | 968 m_pOwner->m_pProperties->m_rtWidget.height = (FX_FLOAT)pMsg->m_iHeight; |
| 967 m_pOwner->Update(); | 969 m_pOwner->Update(); |
| 968 break; | 970 break; |
| 969 } | 971 } |
| 970 case FWL_MSGHASH_WindowMove: { | 972 case CFWL_MessageType::WindowMove: { |
| 971 OnWindowMove(static_cast<CFWL_MsgWindowMove*>(pMessage)); | 973 OnWindowMove(static_cast<CFWL_MsgWindowMove*>(pMessage)); |
| 972 break; | 974 break; |
| 973 } | 975 } |
| 974 case FWL_MSGHASH_Close: { | 976 case CFWL_MessageType::Close: { |
| 975 OnClose(static_cast<CFWL_MsgClose*>(pMessage)); | 977 OnClose(static_cast<CFWL_MsgClose*>(pMessage)); |
| 976 break; | 978 break; |
| 977 } | 979 } |
| 978 default: { iRet = 0; } | 980 default: { |
| 981 iRet = 0; |
| 982 break; |
| 983 } |
| 979 } | 984 } |
| 980 return iRet; | 985 return iRet; |
| 981 #endif | 986 #endif // FWL_UseMacSystemBorder |
| 982 } | 987 } |
| 988 |
| 983 FWL_ERR CFWL_FormImpDelegate::OnProcessEvent(CFWL_Event* pEvent) { | 989 FWL_ERR CFWL_FormImpDelegate::OnProcessEvent(CFWL_Event* pEvent) { |
| 984 if (!pEvent) | 990 if (!pEvent) |
| 985 return FWL_ERR_Indefinite; | 991 return FWL_ERR_Indefinite; |
| 986 if (pEvent->GetClassID() == FWL_EVTHASH_Close && | |
| 987 pEvent->m_pSrcTarget == m_pOwner->m_pInterface) { | |
| 988 } | |
| 989 return FWL_ERR_Succeeded; | 992 return FWL_ERR_Succeeded; |
| 990 } | 993 } |
| 994 |
| 991 FWL_ERR CFWL_FormImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, | 995 FWL_ERR CFWL_FormImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, |
| 992 const CFX_Matrix* pMatrix) { | 996 const CFX_Matrix* pMatrix) { |
| 993 return m_pOwner->DrawWidget(pGraphics, pMatrix); | 997 return m_pOwner->DrawWidget(pGraphics, pMatrix); |
| 994 } | 998 } |
| 995 void CFWL_FormImpDelegate::OnLButtonDown(CFWL_MsgMouse* pMsg) { | 999 void CFWL_FormImpDelegate::OnLButtonDown(CFWL_MsgMouse* pMsg) { |
| 996 m_pOwner->SetGrab(TRUE); | 1000 m_pOwner->SetGrab(TRUE); |
| 997 m_pOwner->m_bLButtonDown = TRUE; | 1001 m_pOwner->m_bLButtonDown = TRUE; |
| 998 m_pOwner->m_eResizeType = FORM_RESIZETYPE_None; | 1002 m_pOwner->m_eResizeType = FORM_RESIZETYPE_None; |
| 999 CFWL_SysBtn* pPressBtn = m_pOwner->GetSysBtnAtPoint(pMsg->m_fx, pMsg->m_fy); | 1003 CFWL_SysBtn* pPressBtn = m_pOwner->GetSysBtnAtPoint(pMsg->m_fx, pMsg->m_fy); |
| 1000 m_pOwner->m_iCaptureBtn = m_pOwner->GetSysBtnIndex(pPressBtn); | 1004 m_pOwner->m_iCaptureBtn = m_pOwner->GetSysBtnIndex(pPressBtn); |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1145 } | 1149 } |
| 1146 void CFWL_FormImpDelegate::OnWindowMove(CFWL_MsgWindowMove* pMsg) { | 1150 void CFWL_FormImpDelegate::OnWindowMove(CFWL_MsgWindowMove* pMsg) { |
| 1147 m_pOwner->m_pProperties->m_rtWidget.left = pMsg->m_fx; | 1151 m_pOwner->m_pProperties->m_rtWidget.left = pMsg->m_fx; |
| 1148 m_pOwner->m_pProperties->m_rtWidget.top = pMsg->m_fy; | 1152 m_pOwner->m_pProperties->m_rtWidget.top = pMsg->m_fy; |
| 1149 } | 1153 } |
| 1150 void CFWL_FormImpDelegate::OnClose(CFWL_MsgClose* pMsg) { | 1154 void CFWL_FormImpDelegate::OnClose(CFWL_MsgClose* pMsg) { |
| 1151 CFWL_EvtClose eClose; | 1155 CFWL_EvtClose eClose; |
| 1152 eClose.m_pSrcTarget = m_pOwner->m_pInterface; | 1156 eClose.m_pSrcTarget = m_pOwner->m_pInterface; |
| 1153 m_pOwner->DispatchEvent(&eClose); | 1157 m_pOwner->DispatchEvent(&eClose); |
| 1154 } | 1158 } |
| OLD | NEW |