Chromium Code Reviews| Index: xfa/fwl/core/ifwl_widget.h |
| diff --git a/xfa/fwl/core/ifwl_widget.h b/xfa/fwl/core/ifwl_widget.h |
| index 264ff67513396f4474c17609028a0ed2c2e80e05..e00998c39e8540fc0094457ae5bcb9c4246914c7 100644 |
| --- a/xfa/fwl/core/ifwl_widget.h |
| +++ b/xfa/fwl/core/ifwl_widget.h |
| @@ -11,6 +11,7 @@ |
| #include "core/fxcrt/fx_coordinates.h" |
| #include "core/fxcrt/fx_system.h" |
| +#include "third_party/base/ptr_util.h" |
| #include "xfa/fwl/core/cfwl_event.h" |
| #include "xfa/fwl/core/cfwl_themepart.h" |
| #include "xfa/fwl/core/fwl_widgethit.h" |
| @@ -112,8 +113,13 @@ class IFWL_Widget { |
| virtual IFWL_ThemeProvider* GetThemeProvider(); |
| virtual FWL_Error SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); |
| - IFWL_WidgetDelegate* GetCurrentDelegate(); |
| - void SetCurrentDelegate(IFWL_WidgetDelegate* pDelegate); |
| + IFWL_WidgetDelegate* GetDelegate() const { return m_pDelegate.get(); } |
| + void SetDelegate(std::unique_ptr<IFWL_WidgetDelegate> delegate) { |
| + m_pDelegate = std::move(delegate); |
| + } |
| + std::unique_ptr<IFWL_WidgetDelegate> ReleaseDelegate() { |
| + return pdfium::WrapUnique<IFWL_WidgetDelegate>(m_pDelegate.release()); |
|
Tom Sepez
2016/11/01 20:54:04
nit: maybe return std::move(m_pDelegate);
|
| + } |
| const IFWL_App* GetOwnerApp() const; |
| @@ -201,15 +207,9 @@ class IFWL_Widget { |
| FX_BOOL IsParent(IFWL_Widget* pParent); |
| - void SetDelegate(std::unique_ptr<IFWL_WidgetDelegate> delegate) { |
| - m_pDelegate = std::move(delegate); |
| - } |
| - IFWL_WidgetDelegate* GetDelegate() const { return m_pDelegate.get(); } |
| - |
| const IFWL_App* const m_pOwnerApp; |
| CFWL_WidgetMgr* const m_pWidgetMgr; |
| std::unique_ptr<CFWL_WidgetImpProperties> m_pProperties; |
| - IFWL_WidgetDelegate* m_pCurDelegate; // Not owned. |
| IFWL_Widget* m_pOuter; |
| void* m_pLayoutItem; |
| CFWL_Widget* m_pAssociate; |