diff options
Diffstat (limited to 'xfa/fwl')
-rw-r--r-- | xfa/fwl/cfwl_caret.cpp | 2 | ||||
-rw-r--r-- | xfa/fwl/cfwl_caret.h | 2 | ||||
-rw-r--r-- | xfa/fwl/cfwl_scrollbar.cpp | 3 | ||||
-rw-r--r-- | xfa/fwl/cfwl_spinbutton.cpp | 4 | ||||
-rw-r--r-- | xfa/fwl/cfwl_timer.cpp | 4 | ||||
-rw-r--r-- | xfa/fwl/cfwl_timer.h | 7 | ||||
-rw-r--r-- | xfa/fwl/cfwl_timerinfo.cpp | 6 | ||||
-rw-r--r-- | xfa/fwl/cfwl_timerinfo.h | 9 | ||||
-rw-r--r-- | xfa/fwl/cfwl_widget.h | 8 |
9 files changed, 27 insertions, 18 deletions
diff --git a/xfa/fwl/cfwl_caret.cpp b/xfa/fwl/cfwl_caret.cpp index a6ea9ddb56..21387a47f9 100644 --- a/xfa/fwl/cfwl_caret.cpp +++ b/xfa/fwl/cfwl_caret.cpp @@ -97,7 +97,7 @@ void CFWL_Caret::OnDrawWidget(CFX_Graphics* pGraphics, CFWL_Caret::Timer::Timer(CFWL_Caret* pCaret) : CFWL_Timer(pCaret) {} void CFWL_Caret::Timer::Run(CFWL_TimerInfo* pTimerInfo) { - CFWL_Caret* pCaret = static_cast<CFWL_Caret*>(m_pWidget); + CFWL_Caret* pCaret = static_cast<CFWL_Caret*>(m_pWidget.Get()); if (!(pCaret->GetStates() & FWL_STATE_CAT_HightLight)) pCaret->SetStates(FWL_STATE_CAT_HightLight); else diff --git a/xfa/fwl/cfwl_caret.h b/xfa/fwl/cfwl_caret.h index e0c07d301a..da0548c2bf 100644 --- a/xfa/fwl/cfwl_caret.h +++ b/xfa/fwl/cfwl_caret.h @@ -51,7 +51,7 @@ class CFWL_Caret : public CFWL_Widget { const CFX_Matrix* pMatrix); std::unique_ptr<CFWL_Caret::Timer> m_pTimer; - CFWL_TimerInfo* m_pTimerInfo; // not owned. + CFX_UnownedPtr<CFWL_TimerInfo> m_pTimerInfo; }; #endif // XFA_FWL_CFWL_CARET_H_ diff --git a/xfa/fwl/cfwl_scrollbar.cpp b/xfa/fwl/cfwl_scrollbar.cpp index 72797ed315..79e8b48115 100644 --- a/xfa/fwl/cfwl_scrollbar.cpp +++ b/xfa/fwl/cfwl_scrollbar.cpp @@ -485,8 +485,7 @@ void CFWL_ScrollBar::DoMouseHover(int32_t iItem, CFWL_ScrollBar::Timer::Timer(CFWL_ScrollBar* pToolTip) : CFWL_Timer(pToolTip) {} void CFWL_ScrollBar::Timer::Run(CFWL_TimerInfo* pTimerInfo) { - CFWL_ScrollBar* pButton = static_cast<CFWL_ScrollBar*>(m_pWidget); - + CFWL_ScrollBar* pButton = static_cast<CFWL_ScrollBar*>(m_pWidget.Get()); if (pButton->m_pTimerInfo) pButton->m_pTimerInfo->StopTimer(); diff --git a/xfa/fwl/cfwl_spinbutton.cpp b/xfa/fwl/cfwl_spinbutton.cpp index 6e58b69baf..65bd6cdd3a 100644 --- a/xfa/fwl/cfwl_spinbutton.cpp +++ b/xfa/fwl/cfwl_spinbutton.cpp @@ -336,7 +336,6 @@ void CFWL_SpinButton::OnKeyDown(CFWL_MessageKey* pMsg) { CFWL_Event wmPosChanged(CFWL_Event::Type::Click, this); DispatchEvent(&wmPosChanged); - RepaintRect(bUpEnable ? m_rtUpButton : m_rtDnButton); } @@ -344,8 +343,7 @@ CFWL_SpinButton::Timer::Timer(CFWL_SpinButton* pToolTip) : CFWL_Timer(pToolTip) {} void CFWL_SpinButton::Timer::Run(CFWL_TimerInfo* pTimerInfo) { - CFWL_SpinButton* pButton = static_cast<CFWL_SpinButton*>(m_pWidget); - + CFWL_SpinButton* pButton = static_cast<CFWL_SpinButton*>(m_pWidget.Get()); if (!pButton->m_pTimerInfo) return; diff --git a/xfa/fwl/cfwl_timer.cpp b/xfa/fwl/cfwl_timer.cpp index 0cd3b2b768..2734e49d78 100644 --- a/xfa/fwl/cfwl_timer.cpp +++ b/xfa/fwl/cfwl_timer.cpp @@ -12,6 +12,10 @@ #include "xfa/fwl/ifwl_adaptertimermgr.h" #include "xfa/fxfa/cxfa_ffapp.h" +CFWL_Timer::CFWL_Timer(CFWL_Widget* parent) : m_pWidget(parent) {} + +CFWL_Timer::~CFWL_Timer() {} + CFWL_TimerInfo* CFWL_Timer::StartTimer(uint32_t dwElapse, bool bImmediately) { const CFWL_App* pApp = m_pWidget->GetOwnerApp(); if (!pApp) diff --git a/xfa/fwl/cfwl_timer.h b/xfa/fwl/cfwl_timer.h index 6c9079acfe..93de009ed1 100644 --- a/xfa/fwl/cfwl_timer.h +++ b/xfa/fwl/cfwl_timer.h @@ -7,6 +7,7 @@ #ifndef XFA_FWL_CFWL_TIMER_H_ #define XFA_FWL_CFWL_TIMER_H_ +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_system.h" class CFWL_TimerInfo; @@ -14,14 +15,14 @@ class CFWL_Widget; class CFWL_Timer { public: - explicit CFWL_Timer(CFWL_Widget* parent) : m_pWidget(parent) {} - virtual ~CFWL_Timer() {} + explicit CFWL_Timer(CFWL_Widget* parent); + virtual ~CFWL_Timer(); virtual void Run(CFWL_TimerInfo* hTimer) = 0; CFWL_TimerInfo* StartTimer(uint32_t dwElapse, bool bImmediately); protected: - CFWL_Widget* m_pWidget; // Not owned. + CFX_UnownedPtr<CFWL_Widget> m_pWidget; }; #endif // XFA_FWL_CFWL_TIMER_H_ diff --git a/xfa/fwl/cfwl_timerinfo.cpp b/xfa/fwl/cfwl_timerinfo.cpp index 8c7aaebbbb..ee4746af3f 100644 --- a/xfa/fwl/cfwl_timerinfo.cpp +++ b/xfa/fwl/cfwl_timerinfo.cpp @@ -8,6 +8,12 @@ #include "xfa/fwl/ifwl_adaptertimermgr.h" +CFWL_TimerInfo::CFWL_TimerInfo(IFWL_AdapterTimerMgr* mgr) : m_pMgr(mgr) { + ASSERT(mgr); +} + +CFWL_TimerInfo::~CFWL_TimerInfo() {} + void CFWL_TimerInfo::StopTimer() { m_pMgr->Stop(this); } diff --git a/xfa/fwl/cfwl_timerinfo.h b/xfa/fwl/cfwl_timerinfo.h index a47fede60f..ae77ef5d59 100644 --- a/xfa/fwl/cfwl_timerinfo.h +++ b/xfa/fwl/cfwl_timerinfo.h @@ -7,21 +7,20 @@ #ifndef XFA_FWL_CFWL_TIMERINFO_H_ #define XFA_FWL_CFWL_TIMERINFO_H_ +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_system.h" class IFWL_AdapterTimerMgr; class CFWL_TimerInfo { public: - explicit CFWL_TimerInfo(IFWL_AdapterTimerMgr* mgr) : m_pMgr(mgr) { - ASSERT(mgr); - } - virtual ~CFWL_TimerInfo() {} + explicit CFWL_TimerInfo(IFWL_AdapterTimerMgr* mgr); + virtual ~CFWL_TimerInfo(); void StopTimer(); private: - IFWL_AdapterTimerMgr* m_pMgr; // Not owned. + CFX_UnownedPtr<IFWL_AdapterTimerMgr> m_pMgr; }; #endif // XFA_FWL_CFWL_TIMERINFO_H_ diff --git a/xfa/fwl/cfwl_widget.h b/xfa/fwl/cfwl_widget.h index b556e7a424..dd8fb5654b 100644 --- a/xfa/fwl/cfwl_widget.h +++ b/xfa/fwl/cfwl_widget.h @@ -6,8 +6,10 @@ #ifndef XFA_FWL_CFWL_WIDGET_H_ #define XFA_FWL_CFWL_WIDGET_H_ + #include <memory> +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/fx_system.h" #include "xfa/fwl/cfwl_event.h" @@ -96,10 +98,10 @@ class CFWL_Widget : public IFWL_WidgetDelegate { void SetDelegate(IFWL_WidgetDelegate* delegate) { m_pDelegate = delegate; } IFWL_WidgetDelegate* GetDelegate() { - return m_pDelegate ? m_pDelegate : this; + return m_pDelegate ? m_pDelegate.Get() : this; } const IFWL_WidgetDelegate* GetDelegate() const { - return m_pDelegate ? m_pDelegate : this; + return m_pDelegate ? m_pDelegate.Get() : this; } const CFWL_App* GetOwnerApp() const { return m_pOwnerApp; } @@ -182,7 +184,7 @@ class CFWL_Widget : public IFWL_WidgetDelegate { CXFA_FFWidget* m_pLayoutItem; uint32_t m_nEventKey; - IFWL_WidgetDelegate* m_pDelegate; // Not owned. + CFX_UnownedPtr<IFWL_WidgetDelegate> m_pDelegate; }; #endif // XFA_FWL_CFWL_WIDGET_H_ |