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

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

Issue 2466273003: Change IFWL_Widget to store a single delegate. (Closed)
Patch Set: Fix Mac Created 4 years, 1 month 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/cfwl_widget.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/cfwl_widgetmgr.h" 7 #include "xfa/fwl/core/cfwl_widgetmgr.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_noteimp.h" 10 #include "xfa/fwl/core/fwl_noteimp.h"
(...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 pWidget->GetWidgetRect(clipCopy); 606 pWidget->GetWidgetRect(clipCopy);
607 clipCopy.left = clipCopy.top = 0; 607 clipCopy.left = clipCopy.top = 0;
608 if (bUseOffscreenDirect(pWidget)) { 608 if (bUseOffscreenDirect(pWidget)) {
609 DrawWidgetAfter(pWidget, pGraphics, clipCopy, pMatrix); 609 DrawWidgetAfter(pWidget, pGraphics, clipCopy, pMatrix);
610 return; 610 return;
611 } 611 }
612 CFX_RectF clipBounds; 612 CFX_RectF clipBounds;
613 613
614 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_ || \ 614 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_ || \
615 _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_ANDROID_ 615 _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_ANDROID_
616 pWidget->GetCurrentDelegate()->OnDrawWidget(pTemp, pMatrix); 616 pWidget->GetDelegate()->OnDrawWidget(pTemp, pMatrix);
617 pGraphics->GetClipRect(clipBounds); 617 pGraphics->GetClipRect(clipBounds);
618 clipCopy = clipBounds; 618 clipCopy = clipBounds;
619 #elif _FX_OS_ == _FX_MACOSX_ 619 #elif _FX_OS_ == _FX_MACOSX_
620 if (m_pWidgetMgr->IsFormDisabled()) { 620 if (m_pWidgetMgr->IsFormDisabled()) {
621 pWidget->GetCurrentDelegate()->OnDrawWidget(pTemp, pMatrix); 621 pWidget->GetDelegate()->OnDrawWidget(pTemp, pMatrix);
622 pGraphics->GetClipRect(clipBounds); 622 pGraphics->GetClipRect(clipBounds);
623 clipCopy = clipBounds; 623 clipCopy = clipBounds;
624 } else { 624 } else {
625 clipBounds.Set(pMatrix->a, pMatrix->b, pMatrix->c, pMatrix->d); 625 clipBounds.Set(pMatrix->a, pMatrix->b, pMatrix->c, pMatrix->d);
626 const_cast<CFX_Matrix*>(pMatrix)->SetIdentity(); // FIXME: const cast. 626 const_cast<CFX_Matrix*>(pMatrix)->SetIdentity(); // FIXME: const cast.
627 pWidget->GetCurrentDelegate()->OnDrawWidget(pTemp, pMatrix); 627 pWidget->GetDelegate()->OnDrawWidget(pTemp, pMatrix);
628 } 628 }
629 #endif // _FX_OS_ == _FX_MACOSX_ 629 #endif // _FX_OS_ == _FX_MACOSX_
630 630
631 if (!m_pWidgetMgr->IsFormDisabled()) { 631 if (!m_pWidgetMgr->IsFormDisabled()) {
632 CFX_RectF rtClient; 632 CFX_RectF rtClient;
633 pWidget->GetClientRect(rtClient); 633 pWidget->GetClientRect(rtClient);
634 clipBounds.Intersect(rtClient); 634 clipBounds.Intersect(rtClient);
635 } 635 }
636 if (!clipBounds.IsEmpty()) 636 if (!clipBounds.IsEmpty())
637 DrawChild(pWidget, clipBounds, pTemp, pMatrix); 637 DrawChild(pWidget, clipBounds, pTemp, pMatrix);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 widgetMatrix.TransformPoint(clipBounds.left, clipBounds.top); 671 widgetMatrix.TransformPoint(clipBounds.left, clipBounds.top);
672 clipBounds.Intersect(rtClip); 672 clipBounds.Intersect(rtClip);
673 if (clipBounds.IsEmpty()) 673 if (clipBounds.IsEmpty())
674 continue; 674 continue;
675 675
676 pGraphics->SaveGraphState(); 676 pGraphics->SaveGraphState();
677 pGraphics->SetClipRect(clipBounds); 677 pGraphics->SetClipRect(clipBounds);
678 } 678 }
679 widgetMatrix.Translate(rtWidget.left, rtWidget.top, TRUE); 679 widgetMatrix.Translate(rtWidget.left, rtWidget.top, TRUE);
680 680
681 if (IFWL_WidgetDelegate* pDelegate = child->GetCurrentDelegate()) { 681 if (IFWL_WidgetDelegate* pDelegate = child->GetDelegate()) {
682 if (m_pWidgetMgr->IsFormDisabled() || 682 if (m_pWidgetMgr->IsFormDisabled() ||
683 IsNeedRepaint(child, &widgetMatrix, rtClip)) { 683 IsNeedRepaint(child, &widgetMatrix, rtClip)) {
684 pDelegate->OnDrawWidget(pGraphics, &widgetMatrix); 684 pDelegate->OnDrawWidget(pGraphics, &widgetMatrix);
685 } 685 }
686 } 686 }
687 if (!bFormDisable) 687 if (!bFormDisable)
688 pGraphics->RestoreGraphState(); 688 pGraphics->RestoreGraphState();
689 689
690 DrawChild(child, clipBounds, pGraphics, 690 DrawChild(child, clipBounds, pGraphics,
691 bFormDisable ? &widgetMatrix : pMatrix); 691 bFormDisable ? &widgetMatrix : pMatrix);
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
861 pWidget(widget), 861 pWidget(widget),
862 iRedrawCounter(0) 862 iRedrawCounter(0)
863 #if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) 863 #if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_)
864 , 864 ,
865 bOutsideChanged(FALSE) 865 bOutsideChanged(FALSE)
866 #endif 866 #endif
867 { 867 {
868 } 868 }
869 869
870 CFWL_WidgetMgrItem::~CFWL_WidgetMgrItem() {} 870 CFWL_WidgetMgrItem::~CFWL_WidgetMgrItem() {}
OLDNEW
« no previous file with comments | « xfa/fwl/core/cfwl_widget.cpp ('k') | xfa/fwl/core/fwl_noteimp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698