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

Unified Diff: xfa/fxfa/app/xfa_ffpushbutton.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « xfa/fxfa/app/xfa_ffpushbutton.h ('k') | xfa/fxfa/app/xfa_fftextedit.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: xfa/fxfa/app/xfa_ffpushbutton.cpp
diff --git a/xfa/fxfa/app/xfa_ffpushbutton.cpp b/xfa/fxfa/app/xfa_ffpushbutton.cpp
index e64858101117f21861ad3e2a87218a3867398825..d5ad72cf3ba18910798ad7f2db955f6dae4ca0d8 100644
--- a/xfa/fxfa/app/xfa_ffpushbutton.cpp
+++ b/xfa/fxfa/app/xfa_ffpushbutton.cpp
@@ -6,9 +6,11 @@
#include "xfa/fxfa/app/xfa_ffpushbutton.h"
+#include "third_party/base/ptr_util.h"
#include "xfa/fwl/core/cfwl_pushbutton.h"
#include "xfa/fwl/core/cfwl_widgetmgr.h"
#include "xfa/fwl/core/fwl_noteimp.h"
+#include "xfa/fxfa/app/cxfa_ffpushbuttondelegate.h"
#include "xfa/fxfa/app/xfa_fffield.h"
#include "xfa/fxfa/app/xfa_ffwidgetacc.h"
#include "xfa/fxfa/app/xfa_textlayout.h"
@@ -24,11 +26,12 @@ CXFA_FFPushButton::CXFA_FFPushButton(CXFA_FFPageView* pPageView,
m_pRolloverTextLayout(nullptr),
m_pDownTextLayout(nullptr),
m_pDownProvider(nullptr),
- m_pRollProvider(nullptr),
- m_pOldDelegate(nullptr) {}
+ m_pRollProvider(nullptr) {}
+
CXFA_FFPushButton::~CXFA_FFPushButton() {
CXFA_FFPushButton::UnloadWidget();
}
+
void CXFA_FFPushButton::RenderWidget(CFX_Graphics* pGS,
CFX_Matrix* pMatrix,
uint32_t dwStatus) {
@@ -55,8 +58,8 @@ FX_BOOL CXFA_FFPushButton::LoadWidget() {
CFWL_PushButton* pPushButton = new CFWL_PushButton(GetFWLApp());
pPushButton->Initialize();
- m_pOldDelegate = pPushButton->GetCurrentDelegate();
- pPushButton->SetCurrentDelegate(this);
+ pPushButton->SetDelegate(pdfium::MakeUnique<CXFA_FFPushButtonDelegate>(
+ pPushButton->ReleaseDelegate(), this));
m_pNormalWidget = pPushButton;
m_pNormalWidget->SetLayoutItem(this);
@@ -201,47 +204,3 @@ void CXFA_FFPushButton::RenderHighlightCaption(CFX_Graphics* pGS,
}
}
}
-
-void CXFA_FFPushButton::OnProcessMessage(CFWL_Message* pMessage) {
- m_pOldDelegate->OnProcessMessage(pMessage);
-}
-
-void CXFA_FFPushButton::OnProcessEvent(CFWL_Event* pEvent) {
- m_pOldDelegate->OnProcessEvent(pEvent);
- CXFA_FFField::OnProcessEvent(pEvent);
-}
-
-void CXFA_FFPushButton::OnDrawWidget(CFX_Graphics* pGraphics,
- const CFX_Matrix* pMatrix) {
- if (m_pNormalWidget->GetStylesEx() & XFA_FWL_PSBSTYLEEXT_HiliteInverted) {
- if ((m_pNormalWidget->GetStates() & FWL_STATE_PSB_Pressed) &&
- (m_pNormalWidget->GetStates() & FWL_STATE_PSB_Hovered)) {
- CFX_RectF rtFill;
- m_pNormalWidget->GetWidgetRect(rtFill);
- rtFill.left = rtFill.top = 0;
- FX_FLOAT fLineWith = GetLineWidth();
- rtFill.Deflate(fLineWith, fLineWith);
- CFX_Color cr(FXARGB_MAKE(128, 128, 255, 255));
- pGraphics->SetFillColor(&cr);
- CFX_Path path;
- path.Create();
- path.AddRectangle(rtFill.left, rtFill.top, rtFill.width, rtFill.height);
- pGraphics->FillPath(&path, FXFILL_WINDING, (CFX_Matrix*)pMatrix);
- }
- } else if (m_pNormalWidget->GetStylesEx() &
- XFA_FWL_PSBSTYLEEXT_HiliteOutLine) {
- if ((m_pNormalWidget->GetStates() & FWL_STATE_PSB_Pressed) &&
- (m_pNormalWidget->GetStates() & FWL_STATE_PSB_Hovered)) {
- FX_FLOAT fLineWidth = GetLineWidth();
- CFX_Color cr(FXARGB_MAKE(255, 128, 255, 255));
- pGraphics->SetStrokeColor(&cr);
- pGraphics->SetLineWidth(fLineWidth);
- CFX_Path path;
- path.Create();
- CFX_RectF rect;
- m_pNormalWidget->GetWidgetRect(rect);
- path.AddRectangle(0, 0, rect.width, rect.height);
- pGraphics->StrokePath(&path, (CFX_Matrix*)pMatrix);
- }
- }
-}
« no previous file with comments | « xfa/fxfa/app/xfa_ffpushbutton.h ('k') | xfa/fxfa/app/xfa_fftextedit.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698