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

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

Issue 1928963004: Cleanup IFWL_Adapter interfaces. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 7 months 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
« no previous file with comments | « xfa/fwl/core/fwl_appimp.cpp ('k') | xfa/fwl/core/fwl_noteimp.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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"
11 #include "xfa/fwl/core/cfwl_message.h" 11 #include "xfa/fwl/core/cfwl_message.h"
12 #include "xfa/fwl/core/cfwl_themebackground.h" 12 #include "xfa/fwl/core/cfwl_themebackground.h"
13 #include "xfa/fwl/core/cfwl_themepart.h" 13 #include "xfa/fwl/core/cfwl_themepart.h"
14 #include "xfa/fwl/core/cfwl_themetext.h" 14 #include "xfa/fwl/core/cfwl_themetext.h"
15 #include "xfa/fwl/core/fwl_appimp.h" 15 #include "xfa/fwl/core/fwl_appimp.h"
16 #include "xfa/fwl/core/fwl_noteimp.h" 16 #include "xfa/fwl/core/fwl_noteimp.h"
17 #include "xfa/fwl/core/fwl_widgetimp.h" 17 #include "xfa/fwl/core/fwl_widgetimp.h"
18 #include "xfa/fwl/core/fwl_widgetmgrimp.h" 18 #include "xfa/fwl/core/fwl_widgetmgrimp.h"
19 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h"
20 #include "xfa/fwl/core/ifwl_app.h" 19 #include "xfa/fwl/core/ifwl_app.h"
21 #include "xfa/fwl/core/ifwl_themeprovider.h" 20 #include "xfa/fwl/core/ifwl_themeprovider.h"
22 #include "xfa/fwl/theme/cfwl_widgettp.h" 21 #include "xfa/fwl/theme/cfwl_widgettp.h"
23 22
24 namespace { 23 namespace {
25 24
26 const int kSystemButtonSize = 21; 25 const int kSystemButtonSize = 21;
27 const int kSystemButtonMargin = 5; 26 const int kSystemButtonMargin = 5;
28 const int kSystemButtonSpan = 2; 27 const int kSystemButtonSpan = 2;
29 28
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 if ((m_pProperties->m_dwStyles & FWL_WGTSTYLE_Caption) == 0) { 147 if ((m_pProperties->m_dwStyles & FWL_WGTSTYLE_Caption) == 0) {
149 rect = m_pProperties->m_rtWidget; 148 rect = m_pProperties->m_rtWidget;
150 rect.Offset(-rect.left, -rect.top); 149 rect.Offset(-rect.left, -rect.top);
151 return FWL_ERR_Succeeded; 150 return FWL_ERR_Succeeded;
152 } 151 }
153 #ifdef FWL_UseMacSystemBorder 152 #ifdef FWL_UseMacSystemBorder
154 rect = m_rtRelative; 153 rect = m_rtRelative;
155 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 154 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
156 if (!pWidgetMgr) 155 if (!pWidgetMgr)
157 return FWL_ERR_Indefinite; 156 return FWL_ERR_Indefinite;
158 IFWL_AdapterWidgetMgr* adapterWidgetMgr = pWidgetMgr->GetAdapterWidgetMgr(); 157
159 FX_FLOAT l, t, r, b; 158 rect.left = 0;
160 l = t = r = b = 0; 159 rect.top = 0;
161 adapterWidgetMgr->GetSystemBorder(l, t, r, b);
162 rect.Deflate(l, t, r, b);
163 rect.left = rect.top = 0;
164 return FWL_ERR_Succeeded; 160 return FWL_ERR_Succeeded;
165 #else 161 #else
166 FX_FLOAT x = 0; 162 FX_FLOAT x = 0;
167 FX_FLOAT y = 0; 163 FX_FLOAT y = 0;
168 FX_FLOAT t = 0; 164 FX_FLOAT t = 0;
169 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; 165 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider;
170 if (pTheme) { 166 if (pTheme) {
171 CFWL_ThemePart part; 167 CFWL_ThemePart part;
172 part.m_pWidget = m_pInterface; 168 part.m_pWidget = m_pInterface;
173 x = *static_cast<FX_FLOAT*>( 169 x = *static_cast<FX_FLOAT*>(
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 IFWL_App* pApp = FWL_GetApp(); 447 IFWL_App* pApp = FWL_GetApp();
452 if (!pApp) 448 if (!pApp)
453 return; 449 return;
454 CFWL_WidgetMgr* pWidgetMgr = 450 CFWL_WidgetMgr* pWidgetMgr =
455 static_cast<CFWL_WidgetMgr*>(pApp->GetWidgetMgr()); 451 static_cast<CFWL_WidgetMgr*>(pApp->GetWidgetMgr());
456 if (!pWidgetMgr) 452 if (!pWidgetMgr)
457 return; 453 return;
458 IFWL_Widget* pChild = 454 IFWL_Widget* pChild =
459 pWidgetMgr->GetWidget(pParent, FWL_WGTRELATION_FirstChild); 455 pWidgetMgr->GetWidget(pParent, FWL_WGTRELATION_FirstChild);
460 while (pChild) { 456 while (pChild) {
461 pWidgetMgr->ShowWidget_Native(pChild);
462 ShowChildWidget(pChild); 457 ShowChildWidget(pChild);
463 pChild = pWidgetMgr->GetWidget(pChild, FWL_WGTRELATION_NextSibling); 458 pChild = pWidgetMgr->GetWidget(pChild, FWL_WGTRELATION_NextSibling);
464 } 459 }
465 } 460 }
466 461
467 void CFWL_FormImp::RemoveSysButtons() { 462 void CFWL_FormImp::RemoveSysButtons() {
468 m_rtCaption.Reset(); 463 m_rtCaption.Reset();
469 delete m_pCloseBox; 464 delete m_pCloseBox;
470 m_pCloseBox = nullptr; 465 m_pCloseBox = nullptr;
471 delete m_pMinBox; 466 delete m_pMinBox;
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 FX_FLOAT fCY = GetBorderSize(FALSE); 613 FX_FLOAT fCY = GetBorderSize(FALSE);
619 rtEdge.Deflate(fCX, m_rtCaption.Height(), fCX, fCY); 614 rtEdge.Deflate(fCX, m_rtCaption.Height(), fCX, fCY);
620 } 615 }
621 } 616 }
622 void CFWL_FormImp::SetWorkAreaRect() { 617 void CFWL_FormImp::SetWorkAreaRect() {
623 m_rtRestore = m_pProperties->m_rtWidget; 618 m_rtRestore = m_pProperties->m_rtWidget;
624 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 619 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
625 if (!pWidgetMgr) 620 if (!pWidgetMgr)
626 return; 621 return;
627 m_bSetMaximize = TRUE; 622 m_bSetMaximize = TRUE;
628 pWidgetMgr->SetMaximize_Native(m_pInterface);
629 Repaint(&m_rtRelative); 623 Repaint(&m_rtRelative);
630 } 624 }
631 void CFWL_FormImp::SetCursor(FX_FLOAT fx, FX_FLOAT fy) {} 625 void CFWL_FormImp::SetCursor(FX_FLOAT fx, FX_FLOAT fy) {}
632 void CFWL_FormImp::Layout() { 626 void CFWL_FormImp::Layout() {
633 GetRelativeRect(m_rtRelative); 627 GetRelativeRect(m_rtRelative);
634 #ifndef FWL_UseMacSystemBorder 628 #ifndef FWL_UseMacSystemBorder
635 ReSetSysBtn(); 629 ReSetSysBtn();
636 #endif 630 #endif
637 } 631 }
638 void CFWL_FormImp::ReSetSysBtn() { 632 void CFWL_FormImp::ReSetSysBtn() {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 return !!pData->GetIcon(m_pInterface, FALSE); 765 return !!pData->GetIcon(m_pInterface, FALSE);
772 } 766 }
773 void CFWL_FormImp::UpdateIcon() { 767 void CFWL_FormImp::UpdateIcon() {
774 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 768 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
775 if (!pWidgetMgr) 769 if (!pWidgetMgr)
776 return; 770 return;
777 IFWL_FormDP* pData = 771 IFWL_FormDP* pData =
778 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); 772 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider);
779 CFX_DIBitmap* pBigIcon = pData->GetIcon(m_pInterface, TRUE); 773 CFX_DIBitmap* pBigIcon = pData->GetIcon(m_pInterface, TRUE);
780 CFX_DIBitmap* pSmallIcon = pData->GetIcon(m_pInterface, FALSE); 774 CFX_DIBitmap* pSmallIcon = pData->GetIcon(m_pInterface, FALSE);
781 if (pBigIcon && pBigIcon != m_pBigIcon) { 775 if (pBigIcon)
782 m_pBigIcon = pBigIcon; 776 m_pBigIcon = pBigIcon;
783 pWidgetMgr->SetWidgetIcon_Native(m_pInterface, m_pBigIcon, TRUE); 777 if (pSmallIcon)
784 }
785 if (pSmallIcon && pSmallIcon != m_pSmallIcon) {
786 m_pSmallIcon = pSmallIcon; 778 m_pSmallIcon = pSmallIcon;
787 pWidgetMgr->SetWidgetIcon_Native(m_pInterface, m_pBigIcon, FALSE);
788 }
789 } 779 }
790 void CFWL_FormImp::UpdateCaption() { 780 void CFWL_FormImp::UpdateCaption() {
791 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 781 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
792 if (!pWidgetMgr) 782 if (!pWidgetMgr)
793 return; 783 return;
794 IFWL_FormDP* pData = 784 IFWL_FormDP* pData =
795 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); 785 static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider);
796 if (!pData) 786 if (!pData)
797 return; 787 return;
798 CFX_WideString text; 788 CFX_WideString text;
799 pData->GetCaption(m_pInterface, text); 789 pData->GetCaption(m_pInterface, text);
800 pWidgetMgr->SetWidgetCaption_Native(m_pInterface, text.AsStringC());
801 } 790 }
802 void CFWL_FormImp::DoWidthLimit(FX_FLOAT& fLeft, 791 void CFWL_FormImp::DoWidthLimit(FX_FLOAT& fLeft,
803 FX_FLOAT& fWidth, 792 FX_FLOAT& fWidth,
804 FX_FLOAT fCurX, 793 FX_FLOAT fCurX,
805 FX_FLOAT fSpace, 794 FX_FLOAT fSpace,
806 FX_FLOAT fLimitMin, 795 FX_FLOAT fLimitMin,
807 FX_FLOAT fLimitMax, 796 FX_FLOAT fLimitMax,
808 FX_BOOL bLeft) { 797 FX_BOOL bLeft) {
809 FX_FLOAT fx = fCurX; 798 FX_FLOAT fx = fCurX;
810 FX_FLOAT fy = 0; 799 FX_FLOAT fy = 0;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 939 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
951 if (!pWidgetMgr) 940 if (!pWidgetMgr)
952 return 0; 941 return 0;
953 942
954 pWidgetMgr->AddRedrawCounts(m_pOwner->m_pInterface); 943 pWidgetMgr->AddRedrawCounts(m_pOwner->m_pInterface);
955 if (!m_pOwner->m_bSetMaximize) 944 if (!m_pOwner->m_bSetMaximize)
956 break; 945 break;
957 946
958 m_pOwner->m_bSetMaximize = FALSE; 947 m_pOwner->m_bSetMaximize = FALSE;
959 CFWL_MsgSize* pMsg = static_cast<CFWL_MsgSize*>(pMessage); 948 CFWL_MsgSize* pMsg = static_cast<CFWL_MsgSize*>(pMessage);
960 CFX_RectF rt; 949 m_pOwner->m_pProperties->m_rtWidget.left = 0;
961 pWidgetMgr->GetWidgetRect_Native(m_pOwner->m_pInterface, rt); 950 m_pOwner->m_pProperties->m_rtWidget.top = 0;
962 m_pOwner->m_pProperties->m_rtWidget.left = rt.left;
963 m_pOwner->m_pProperties->m_rtWidget.top = rt.top;
964 m_pOwner->m_pProperties->m_rtWidget.width = (FX_FLOAT)pMsg->m_iWidth; 951 m_pOwner->m_pProperties->m_rtWidget.width = (FX_FLOAT)pMsg->m_iWidth;
965 m_pOwner->m_pProperties->m_rtWidget.height = (FX_FLOAT)pMsg->m_iHeight; 952 m_pOwner->m_pProperties->m_rtWidget.height = (FX_FLOAT)pMsg->m_iHeight;
966 m_pOwner->Update(); 953 m_pOwner->Update();
967 break; 954 break;
968 } 955 }
969 case CFWL_MessageType::WindowMove: { 956 case CFWL_MessageType::WindowMove: {
970 OnWindowMove(static_cast<CFWL_MsgWindowMove*>(pMessage)); 957 OnWindowMove(static_cast<CFWL_MsgWindowMove*>(pMessage));
971 break; 958 break;
972 } 959 }
973 case CFWL_MessageType::Close: { 960 case CFWL_MessageType::Close: {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 if (pPressedBtn == m_pOwner->m_pMaxBox) { 1024 if (pPressedBtn == m_pOwner->m_pMaxBox) {
1038 if (m_pOwner->m_bMaximized) { 1025 if (m_pOwner->m_bMaximized) {
1039 m_pOwner->SetWidgetRect(m_pOwner->m_rtRestore); 1026 m_pOwner->SetWidgetRect(m_pOwner->m_rtRestore);
1040 m_pOwner->Update(); 1027 m_pOwner->Update();
1041 m_pOwner->Repaint(); 1028 m_pOwner->Repaint();
1042 } else { 1029 } else {
1043 m_pOwner->SetWorkAreaRect(); 1030 m_pOwner->SetWorkAreaRect();
1044 m_pOwner->Update(); 1031 m_pOwner->Update();
1045 } 1032 }
1046 m_pOwner->m_bMaximized = !m_pOwner->m_bMaximized; 1033 m_pOwner->m_bMaximized = !m_pOwner->m_bMaximized;
1047 } else if (pPressedBtn == m_pOwner->m_pMinBox) { 1034 } else if (pPressedBtn != m_pOwner->m_pMinBox) {
1048 CFWL_WidgetMgr* pWidgetMgr =
1049 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
1050 if (!pWidgetMgr)
1051 return;
1052 pWidgetMgr->SetMinimize_Native(m_pOwner->m_pInterface);
1053 } else {
1054 CFWL_EvtClose eClose; 1035 CFWL_EvtClose eClose;
1055 eClose.m_pSrcTarget = m_pOwner->m_pInterface; 1036 eClose.m_pSrcTarget = m_pOwner->m_pInterface;
1056 m_pOwner->DispatchEvent(&eClose); 1037 m_pOwner->DispatchEvent(&eClose);
1057 } 1038 }
1058 } 1039 }
1059 void CFWL_FormImpDelegate::OnMouseMove(CFWL_MsgMouse* pMsg) { 1040 void CFWL_FormImpDelegate::OnMouseMove(CFWL_MsgMouse* pMsg) {
1060 if (m_pOwner->m_bLButtonDown) { 1041 if (m_pOwner->m_bLButtonDown) {
1061 return; 1042 return;
1062 } 1043 }
1063 if ((m_pOwner->m_pProperties->m_dwStyles & FWL_WGTSTYLE_Border) && 1044 if ((m_pOwner->m_pProperties->m_dwStyles & FWL_WGTSTYLE_Border) &&
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 } 1127 }
1147 void CFWL_FormImpDelegate::OnWindowMove(CFWL_MsgWindowMove* pMsg) { 1128 void CFWL_FormImpDelegate::OnWindowMove(CFWL_MsgWindowMove* pMsg) {
1148 m_pOwner->m_pProperties->m_rtWidget.left = pMsg->m_fx; 1129 m_pOwner->m_pProperties->m_rtWidget.left = pMsg->m_fx;
1149 m_pOwner->m_pProperties->m_rtWidget.top = pMsg->m_fy; 1130 m_pOwner->m_pProperties->m_rtWidget.top = pMsg->m_fy;
1150 } 1131 }
1151 void CFWL_FormImpDelegate::OnClose(CFWL_MsgClose* pMsg) { 1132 void CFWL_FormImpDelegate::OnClose(CFWL_MsgClose* pMsg) {
1152 CFWL_EvtClose eClose; 1133 CFWL_EvtClose eClose;
1153 eClose.m_pSrcTarget = m_pOwner->m_pInterface; 1134 eClose.m_pSrcTarget = m_pOwner->m_pInterface;
1154 m_pOwner->DispatchEvent(&eClose); 1135 m_pOwner->DispatchEvent(&eClose);
1155 } 1136 }
OLDNEW
« no previous file with comments | « xfa/fwl/core/fwl_appimp.cpp ('k') | xfa/fwl/core/fwl_noteimp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698