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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 return FWL_Error::Succeeded; | 144 return FWL_Error::Succeeded; |
145 } | 145 } |
146 FWL_Error CFWL_FormImp::GetClientRect(CFX_RectF& rect) { | 146 FWL_Error CFWL_FormImp::GetClientRect(CFX_RectF& rect) { |
147 if ((m_pProperties->m_dwStyles & FWL_WGTSTYLE_Caption) == 0) { | 147 if ((m_pProperties->m_dwStyles & FWL_WGTSTYLE_Caption) == 0) { |
148 rect = m_pProperties->m_rtWidget; | 148 rect = m_pProperties->m_rtWidget; |
149 rect.Offset(-rect.left, -rect.top); | 149 rect.Offset(-rect.left, -rect.top); |
150 return FWL_Error::Succeeded; | 150 return FWL_Error::Succeeded; |
151 } | 151 } |
152 #ifdef FWL_UseMacSystemBorder | 152 #ifdef FWL_UseMacSystemBorder |
153 rect = m_rtRelative; | 153 rect = m_rtRelative; |
154 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 154 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); |
155 if (!pWidgetMgr) | 155 if (!pWidgetMgr) |
156 return FWL_Error::Indefinite; | 156 return FWL_Error::Indefinite; |
157 | 157 |
158 rect.left = 0; | 158 rect.left = 0; |
159 rect.top = 0; | 159 rect.top = 0; |
160 return FWL_Error::Succeeded; | 160 return FWL_Error::Succeeded; |
161 #else | 161 #else |
162 FX_FLOAT x = 0; | 162 FX_FLOAT x = 0; |
163 FX_FLOAT y = 0; | 163 FX_FLOAT y = 0; |
164 FX_FLOAT t = 0; | 164 FX_FLOAT t = 0; |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 return m_pSubFocus; | 440 return m_pSubFocus; |
441 } | 441 } |
442 void CFWL_FormImp::SetSubFocus(CFWL_WidgetImp* pWidget) { | 442 void CFWL_FormImp::SetSubFocus(CFWL_WidgetImp* pWidget) { |
443 m_pSubFocus = pWidget; | 443 m_pSubFocus = pWidget; |
444 } | 444 } |
445 | 445 |
446 void CFWL_FormImp::ShowChildWidget(IFWL_Widget* pParent) { | 446 void CFWL_FormImp::ShowChildWidget(IFWL_Widget* pParent) { |
447 IFWL_App* pApp = FWL_GetApp(); | 447 IFWL_App* pApp = FWL_GetApp(); |
448 if (!pApp) | 448 if (!pApp) |
449 return; | 449 return; |
450 CFWL_WidgetMgr* pWidgetMgr = | 450 |
451 static_cast<CFWL_WidgetMgr*>(pApp->GetWidgetMgr()); | 451 CFWL_WidgetMgr* pWidgetMgr = pApp->GetWidgetMgr(); |
452 if (!pWidgetMgr) | 452 if (!pWidgetMgr) |
453 return; | 453 return; |
454 IFWL_Widget* pChild = | 454 |
455 pWidgetMgr->GetWidget(pParent, FWL_WGTRELATION_FirstChild); | 455 IFWL_Widget* pChild = pWidgetMgr->GetFirstChildWidget(pParent); |
456 while (pChild) { | 456 while (pChild) { |
457 ShowChildWidget(pChild); | 457 ShowChildWidget(pChild); |
458 pChild = pWidgetMgr->GetWidget(pChild, FWL_WGTRELATION_NextSibling); | 458 pChild = pWidgetMgr->GetNextSiblingWidget(pChild); |
459 } | 459 } |
460 } | 460 } |
461 | 461 |
462 void CFWL_FormImp::RemoveSysButtons() { | 462 void CFWL_FormImp::RemoveSysButtons() { |
463 m_rtCaption.Reset(); | 463 m_rtCaption.Reset(); |
464 delete m_pCloseBox; | 464 delete m_pCloseBox; |
465 m_pCloseBox = nullptr; | 465 m_pCloseBox = nullptr; |
466 delete m_pMinBox; | 466 delete m_pMinBox; |
467 m_pMinBox = nullptr; | 467 m_pMinBox = nullptr; |
468 delete m_pMaxBox; | 468 delete m_pMaxBox; |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 void CFWL_FormImp::GetEdgeRect(CFX_RectF& rtEdge) { | 609 void CFWL_FormImp::GetEdgeRect(CFX_RectF& rtEdge) { |
610 rtEdge = m_rtRelative; | 610 rtEdge = m_rtRelative; |
611 if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Border) { | 611 if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Border) { |
612 FX_FLOAT fCX = GetBorderSize(); | 612 FX_FLOAT fCX = GetBorderSize(); |
613 FX_FLOAT fCY = GetBorderSize(FALSE); | 613 FX_FLOAT fCY = GetBorderSize(FALSE); |
614 rtEdge.Deflate(fCX, m_rtCaption.Height(), fCX, fCY); | 614 rtEdge.Deflate(fCX, m_rtCaption.Height(), fCX, fCY); |
615 } | 615 } |
616 } | 616 } |
617 void CFWL_FormImp::SetWorkAreaRect() { | 617 void CFWL_FormImp::SetWorkAreaRect() { |
618 m_rtRestore = m_pProperties->m_rtWidget; | 618 m_rtRestore = m_pProperties->m_rtWidget; |
619 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 619 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); |
620 if (!pWidgetMgr) | 620 if (!pWidgetMgr) |
621 return; | 621 return; |
622 m_bSetMaximize = TRUE; | 622 m_bSetMaximize = TRUE; |
623 Repaint(&m_rtRelative); | 623 Repaint(&m_rtRelative); |
624 } | 624 } |
625 void CFWL_FormImp::SetCursor(FX_FLOAT fx, FX_FLOAT fy) {} | 625 void CFWL_FormImp::SetCursor(FX_FLOAT fx, FX_FLOAT fy) {} |
626 void CFWL_FormImp::Layout() { | 626 void CFWL_FormImp::Layout() { |
627 GetRelativeRect(m_rtRelative); | 627 GetRelativeRect(m_rtRelative); |
628 #ifndef FWL_UseMacSystemBorder | 628 #ifndef FWL_UseMacSystemBorder |
629 ReSetSysBtn(); | 629 ReSetSysBtn(); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
758 *static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::SmallIcon)); | 758 *static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::SmallIcon)); |
759 m_fBigIconSz = | 759 m_fBigIconSz = |
760 *static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::BigIcon)); | 760 *static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::BigIcon)); |
761 } | 761 } |
762 FX_BOOL CFWL_FormImp::HasIcon() { | 762 FX_BOOL CFWL_FormImp::HasIcon() { |
763 IFWL_FormDP* pData = | 763 IFWL_FormDP* pData = |
764 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); | 764 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); |
765 return !!pData->GetIcon(m_pInterface, FALSE); | 765 return !!pData->GetIcon(m_pInterface, FALSE); |
766 } | 766 } |
767 void CFWL_FormImp::UpdateIcon() { | 767 void CFWL_FormImp::UpdateIcon() { |
768 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 768 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); |
769 if (!pWidgetMgr) | 769 if (!pWidgetMgr) |
770 return; | 770 return; |
771 IFWL_FormDP* pData = | 771 IFWL_FormDP* pData = |
772 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); | 772 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); |
773 CFX_DIBitmap* pBigIcon = pData->GetIcon(m_pInterface, TRUE); | 773 CFX_DIBitmap* pBigIcon = pData->GetIcon(m_pInterface, TRUE); |
774 CFX_DIBitmap* pSmallIcon = pData->GetIcon(m_pInterface, FALSE); | 774 CFX_DIBitmap* pSmallIcon = pData->GetIcon(m_pInterface, FALSE); |
775 if (pBigIcon) | 775 if (pBigIcon) |
776 m_pBigIcon = pBigIcon; | 776 m_pBigIcon = pBigIcon; |
777 if (pSmallIcon) | 777 if (pSmallIcon) |
778 m_pSmallIcon = pSmallIcon; | 778 m_pSmallIcon = pSmallIcon; |
779 } | 779 } |
780 void CFWL_FormImp::UpdateCaption() { | 780 void CFWL_FormImp::UpdateCaption() { |
781 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | 781 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); |
782 if (!pWidgetMgr) | 782 if (!pWidgetMgr) |
783 return; | 783 return; |
784 IFWL_FormDP* pData = | 784 IFWL_FormDP* pData = |
785 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); | 785 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); |
786 if (!pData) | 786 if (!pData) |
787 return; | 787 return; |
788 CFX_WideString text; | 788 CFX_WideString text; |
789 pData->GetCaption(m_pInterface, text); | 789 pData->GetCaption(m_pInterface, text); |
790 } | 790 } |
791 void CFWL_FormImp::DoWidthLimit(FX_FLOAT& fLeft, | 791 void CFWL_FormImp::DoWidthLimit(FX_FLOAT& fLeft, |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
928 case FWL_MouseCommand::LeftButtonDblClk: { | 928 case FWL_MouseCommand::LeftButtonDblClk: { |
929 OnLButtonDblClk(pMsg); | 929 OnLButtonDblClk(pMsg); |
930 break; | 930 break; |
931 } | 931 } |
932 default: | 932 default: |
933 break; | 933 break; |
934 } | 934 } |
935 break; | 935 break; |
936 } | 936 } |
937 case CFWL_MessageType::Size: { | 937 case CFWL_MessageType::Size: { |
938 CFWL_WidgetMgr* pWidgetMgr = | 938 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); |
939 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); | |
940 if (!pWidgetMgr) | 939 if (!pWidgetMgr) |
941 return; | 940 return; |
942 | 941 |
943 pWidgetMgr->AddRedrawCounts(m_pOwner->m_pInterface); | 942 pWidgetMgr->AddRedrawCounts(m_pOwner->m_pInterface); |
944 if (!m_pOwner->m_bSetMaximize) | 943 if (!m_pOwner->m_bSetMaximize) |
945 break; | 944 break; |
946 | 945 |
947 m_pOwner->m_bSetMaximize = FALSE; | 946 m_pOwner->m_bSetMaximize = FALSE; |
948 CFWL_MsgSize* pMsg = static_cast<CFWL_MsgSize*>(pMessage); | 947 CFWL_MsgSize* pMsg = static_cast<CFWL_MsgSize*>(pMessage); |
949 m_pOwner->m_pProperties->m_rtWidget.left = 0; | 948 m_pOwner->m_pProperties->m_rtWidget.left = 0; |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1122 } | 1121 } |
1123 void CFWL_FormImpDelegate::OnWindowMove(CFWL_MsgWindowMove* pMsg) { | 1122 void CFWL_FormImpDelegate::OnWindowMove(CFWL_MsgWindowMove* pMsg) { |
1124 m_pOwner->m_pProperties->m_rtWidget.left = pMsg->m_fx; | 1123 m_pOwner->m_pProperties->m_rtWidget.left = pMsg->m_fx; |
1125 m_pOwner->m_pProperties->m_rtWidget.top = pMsg->m_fy; | 1124 m_pOwner->m_pProperties->m_rtWidget.top = pMsg->m_fy; |
1126 } | 1125 } |
1127 void CFWL_FormImpDelegate::OnClose(CFWL_MsgClose* pMsg) { | 1126 void CFWL_FormImpDelegate::OnClose(CFWL_MsgClose* pMsg) { |
1128 CFWL_EvtClose eClose; | 1127 CFWL_EvtClose eClose; |
1129 eClose.m_pSrcTarget = m_pOwner->m_pInterface; | 1128 eClose.m_pSrcTarget = m_pOwner->m_pInterface; |
1130 m_pOwner->DispatchEvent(&eClose); | 1129 m_pOwner->DispatchEvent(&eClose); |
1131 } | 1130 } |
OLD | NEW |