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

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

Issue 1938163002: More define cleanup. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: 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
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_widgetmgrimp.h" 7 #include "xfa/fwl/core/fwl_widgetmgrimp.h"
8 8
9 #include "xfa/fwl/core/cfwl_message.h" 9 #include "xfa/fwl/core/cfwl_message.h"
10 #include "xfa/fwl/core/fwl_appimp.h" 10 #include "xfa/fwl/core/fwl_appimp.h"
11 #include "xfa/fwl/core/fwl_noteimp.h" 11 #include "xfa/fwl/core/fwl_noteimp.h"
12 #include "xfa/fwl/core/fwl_widgetimp.h" 12 #include "xfa/fwl/core/fwl_widgetimp.h"
13 #include "xfa/fwl/core/ifwl_adapternative.h" 13 #include "xfa/fwl/core/ifwl_adapternative.h"
14 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h" 14 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h"
15 #include "xfa/fwl/core/ifwl_app.h" 15 #include "xfa/fwl/core/ifwl_app.h"
16 #include "xfa/fwl/core/ifwl_form.h" 16 #include "xfa/fwl/core/ifwl_form.h"
17 17
18 namespace {
19
20 const int kNeedRepaintHitPoints = 12;
21 const int kNeedRepaintHitPiece = 3;
22
23 struct FWL_NEEDREPAINTHITDATA {
24 CFX_PointF hitPoint;
25 FX_BOOL bNotNeedRepaint;
Tom Sepez 2016/05/02 21:45:39 can these be bools?
dsinclair 2016/05/03 13:58:16 Done.
26 FX_BOOL bNotContainByDirty;
27 };
28
29 } // namespace
30
18 FX_BOOL FWL_UseOffscreen(IFWL_Widget* pWidget) { 31 FX_BOOL FWL_UseOffscreen(IFWL_Widget* pWidget) {
19 #if (_FX_OS_ == _FX_MACOSX_) 32 #if (_FX_OS_ == _FX_MACOSX_)
20 return FALSE; 33 return FALSE;
21 #else 34 #else
22 return pWidget->GetStyles() & FWL_WGTSTYLE_Offscreen; 35 return pWidget->GetStyles() & FWL_WGTSTYLE_Offscreen;
23 #endif 36 #endif
24 } 37 }
25 IFWL_WidgetMgr* FWL_GetWidgetMgr() { 38 IFWL_WidgetMgr* FWL_GetWidgetMgr() {
26 IFWL_App* pApp = FWL_GetApp(); 39 IFWL_App* pApp = FWL_GetApp();
27 if (!pApp) 40 if (!pApp)
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 pGraphics->Transfer(pItem->pOffscreen, rtClip.left, rtClip.top, rtClip, 869 pGraphics->Transfer(pItem->pOffscreen, rtClip.left, rtClip.top, rtClip,
857 pMatrix); 870 pMatrix);
858 #ifdef _WIN32 871 #ifdef _WIN32
859 pItem->pOffscreen->ClearClip(); 872 pItem->pOffscreen->ClearClip();
860 #endif 873 #endif
861 } 874 }
862 CFWL_WidgetMgrItem* pItem = m_pWidgetMgr->GetWidgetMgrItem(pWidget); 875 CFWL_WidgetMgrItem* pItem = m_pWidgetMgr->GetWidgetMgrItem(pWidget);
863 pItem->iRedrawCounter = 0; 876 pItem->iRedrawCounter = 0;
864 } 877 }
865 878
866 #define FWL_NEEDREPAINTHIT_Point 12
867 #define FWL_NEEDREPAINTHIT_Piece 3
868 struct FWL_NEEDREPAINTHITDATA {
869 CFX_PointF hitPoint;
870 FX_BOOL bNotNeedRepaint;
871 FX_BOOL bNotContainByDirty;
872 };
873
874 FX_BOOL CFWL_WidgetMgrDelegate::IsNeedRepaint(IFWL_Widget* pWidget, 879 FX_BOOL CFWL_WidgetMgrDelegate::IsNeedRepaint(IFWL_Widget* pWidget,
875 CFX_Matrix* pMatrix, 880 CFX_Matrix* pMatrix,
876 const CFX_RectF& rtDirty) { 881 const CFX_RectF& rtDirty) {
877 CFWL_WidgetMgrItem* pItem = m_pWidgetMgr->GetWidgetMgrItem(pWidget); 882 CFWL_WidgetMgrItem* pItem = m_pWidgetMgr->GetWidgetMgrItem(pWidget);
878 if (pItem && pItem->iRedrawCounter > 0) { 883 if (pItem && pItem->iRedrawCounter > 0) {
879 pItem->iRedrawCounter = 0; 884 pItem->iRedrawCounter = 0;
880 return TRUE; 885 return TRUE;
881 } 886 }
882 CFX_RectF rtWidget; 887 CFX_RectF rtWidget;
883 pWidget->GetWidgetRect(rtWidget); 888 pWidget->GetWidgetRect(rtWidget);
(...skipping 17 matching lines...) Expand all
901 return TRUE; 906 return TRUE;
902 } 907 }
903 } 908 }
904 } 909 }
905 CFX_RectF rtChilds; 910 CFX_RectF rtChilds;
906 rtChilds.Empty(); 911 rtChilds.Empty();
907 FX_BOOL bChildIntersectWithDirty = FALSE; 912 FX_BOOL bChildIntersectWithDirty = FALSE;
908 FX_BOOL bOrginPtIntersectWidthChild = FALSE; 913 FX_BOOL bOrginPtIntersectWidthChild = FALSE;
909 FX_BOOL bOrginPtIntersectWidthDirty = 914 FX_BOOL bOrginPtIntersectWidthDirty =
910 rtDirty.Contains(rtWidget.left, rtWidget.top); 915 rtDirty.Contains(rtWidget.left, rtWidget.top);
911 static FWL_NEEDREPAINTHITDATA hitPoint[FWL_NEEDREPAINTHIT_Point]; 916 static FWL_NEEDREPAINTHITDATA hitPoint[kNeedRepaintHitPoints];
912 int32_t iSize = sizeof(FWL_NEEDREPAINTHITDATA); 917 int32_t iSize = sizeof(FWL_NEEDREPAINTHITDATA);
913 FXSYS_memset(hitPoint, 0, iSize); 918 FXSYS_memset(hitPoint, 0, iSize);
914 FX_FLOAT fxPiece = rtWidget.width / FWL_NEEDREPAINTHIT_Piece; 919 FX_FLOAT fxPiece = rtWidget.width / kNeedRepaintHitPiece;
915 FX_FLOAT fyPiece = rtWidget.height / FWL_NEEDREPAINTHIT_Piece; 920 FX_FLOAT fyPiece = rtWidget.height / kNeedRepaintHitPiece;
916 hitPoint[2].hitPoint.x = hitPoint[6].hitPoint.x = rtWidget.left; 921 hitPoint[2].hitPoint.x = hitPoint[6].hitPoint.x = rtWidget.left;
917 hitPoint[0].hitPoint.x = hitPoint[3].hitPoint.x = hitPoint[7].hitPoint.x = 922 hitPoint[0].hitPoint.x = hitPoint[3].hitPoint.x = hitPoint[7].hitPoint.x =
918 hitPoint[10].hitPoint.x = fxPiece + rtWidget.left; 923 hitPoint[10].hitPoint.x = fxPiece + rtWidget.left;
919 hitPoint[1].hitPoint.x = hitPoint[4].hitPoint.x = hitPoint[8].hitPoint.x = 924 hitPoint[1].hitPoint.x = hitPoint[4].hitPoint.x = hitPoint[8].hitPoint.x =
920 hitPoint[11].hitPoint.x = fxPiece * 2 + rtWidget.left; 925 hitPoint[11].hitPoint.x = fxPiece * 2 + rtWidget.left;
921 hitPoint[5].hitPoint.x = hitPoint[9].hitPoint.x = 926 hitPoint[5].hitPoint.x = hitPoint[9].hitPoint.x =
922 rtWidget.width + rtWidget.left; 927 rtWidget.width + rtWidget.left;
923 hitPoint[0].hitPoint.y = hitPoint[1].hitPoint.y = rtWidget.top; 928 hitPoint[0].hitPoint.y = hitPoint[1].hitPoint.y = rtWidget.top;
924 hitPoint[2].hitPoint.y = hitPoint[3].hitPoint.y = hitPoint[4].hitPoint.y = 929 hitPoint[2].hitPoint.y = hitPoint[3].hitPoint.y = hitPoint[4].hitPoint.y =
925 hitPoint[5].hitPoint.y = fyPiece + rtWidget.top; 930 hitPoint[5].hitPoint.y = fyPiece + rtWidget.top;
(...skipping 17 matching lines...) Expand all
943 bChildIntersectWithDirty = TRUE; 948 bChildIntersectWithDirty = TRUE;
944 } 949 }
945 if (bOrginPtIntersectWidthDirty && !bOrginPtIntersectWidthChild) { 950 if (bOrginPtIntersectWidthDirty && !bOrginPtIntersectWidthChild) {
946 bOrginPtIntersectWidthChild = rect.Contains(0, 0); 951 bOrginPtIntersectWidthChild = rect.Contains(0, 0);
947 } 952 }
948 if (rtChilds.IsEmpty()) { 953 if (rtChilds.IsEmpty()) {
949 rtChilds = rect; 954 rtChilds = rect;
950 } else if (!(pChild->GetStates() & FWL_WGTSTATE_Invisible)) { 955 } else if (!(pChild->GetStates() & FWL_WGTSTATE_Invisible)) {
951 rtChilds.Union(rect); 956 rtChilds.Union(rect);
952 } 957 }
953 for (int32_t i = 0; i < FWL_NEEDREPAINTHIT_Point; i++) { 958 for (int32_t i = 0; i < kNeedRepaintHitPoints; i++) {
954 if (hitPoint[i].bNotContainByDirty || hitPoint[i].bNotNeedRepaint) { 959 if (hitPoint[i].bNotContainByDirty || hitPoint[i].bNotNeedRepaint) {
955 continue; 960 continue;
956 } 961 }
957 if (!rtDirty.Contains(hitPoint[i].hitPoint)) { 962 if (!rtDirty.Contains(hitPoint[i].hitPoint)) {
958 hitPoint[i].bNotContainByDirty = TRUE; 963 hitPoint[i].bNotContainByDirty = TRUE;
959 continue; 964 continue;
960 } 965 }
961 if (r.Contains(hitPoint[i].hitPoint)) { 966 if (r.Contains(hitPoint[i].hitPoint)) {
962 hitPoint[i].bNotNeedRepaint = TRUE; 967 hitPoint[i].bNotNeedRepaint = TRUE;
963 } 968 }
964 } 969 }
965 } while ((pChild = FWL_GetWidgetMgr()->GetWidget( 970 } while ((pChild = FWL_GetWidgetMgr()->GetWidget(
966 pChild, FWL_WGTRELATION_NextSibling)) != NULL); 971 pChild, FWL_WGTRELATION_NextSibling)) != NULL);
967 if (!bChildIntersectWithDirty) { 972 if (!bChildIntersectWithDirty) {
968 return TRUE; 973 return TRUE;
969 } 974 }
970 if (bOrginPtIntersectWidthDirty && !bOrginPtIntersectWidthChild) { 975 if (bOrginPtIntersectWidthDirty && !bOrginPtIntersectWidthChild) {
971 return TRUE; 976 return TRUE;
972 } 977 }
973 if (rtChilds.IsEmpty()) { 978 if (rtChilds.IsEmpty()) {
974 return TRUE; 979 return TRUE;
975 } 980 }
976 int32_t repaintPoint = FWL_NEEDREPAINTHIT_Point; 981 int32_t repaintPoint = kNeedRepaintHitPoints;
977 for (int32_t i = 0; i < FWL_NEEDREPAINTHIT_Point; i++) { 982 for (int32_t i = 0; i < kNeedRepaintHitPoints; i++) {
978 if (hitPoint[i].bNotNeedRepaint) { 983 if (hitPoint[i].bNotNeedRepaint) {
979 repaintPoint--; 984 repaintPoint--;
980 } 985 }
981 } 986 }
982 if (repaintPoint > 0) { 987 if (repaintPoint > 0) {
983 return TRUE; 988 return TRUE;
984 } 989 }
985 pMatrix->TransformRect(rtChilds); 990 pMatrix->TransformRect(rtChilds);
986 if (rtChilds.Contains(rtDirty) || rtChilds.Contains(rtWidget)) { 991 if (rtChilds.Contains(rtDirty) || rtChilds.Contains(rtWidget)) {
987 return FALSE; 992 return FALSE;
(...skipping 12 matching lines...) Expand all
1000 CFX_RectF temp(m_pWidgetMgr->m_rtScreen); 1005 CFX_RectF temp(m_pWidgetMgr->m_rtScreen);
1001 temp.Deflate(50, 50); 1006 temp.Deflate(50, 50);
1002 if (!temp.Contains(r)) { 1007 if (!temp.Contains(r)) {
1003 return FALSE; 1008 return FALSE;
1004 } 1009 }
1005 pItem->bOutsideChanged = FALSE; 1010 pItem->bOutsideChanged = FALSE;
1006 } 1011 }
1007 #endif 1012 #endif
1008 return pItem->iRedrawCounter == 0; 1013 return pItem->iRedrawCounter == 0;
1009 } 1014 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698