Index: xfa/fxfa/include/xfa_ffapp.h |
diff --git a/xfa/fxfa/include/xfa_ffapp.h b/xfa/fxfa/include/xfa_ffapp.h |
index 5780859a92831fc84ef157e4a0c309010fd78479..bc0d6dfb38db1b144821497bea0c6f27da3e397c 100644 |
--- a/xfa/fxfa/include/xfa_ffapp.h |
+++ b/xfa/fxfa/include/xfa_ffapp.h |
@@ -7,6 +7,8 @@ |
#ifndef XFA_FXFA_INCLUDE_XFA_FFAPP_H_ |
#define XFA_FXFA_INCLUDE_XFA_FFAPP_H_ |
+#include <memory> |
+ |
#include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h" |
#include "core/fpdfapi/fpdf_parser/include/cpdf_stream_acc.h" |
#include "xfa/fgas/font/fgas_font.h" |
@@ -40,36 +42,38 @@ class CXFA_FFApp { |
explicit CXFA_FFApp(IXFA_AppProvider* pProvider); |
~CXFA_FFApp(); |
- CXFA_FFDocHandler* GetDocHandler(); |
CXFA_FFDoc* CreateDoc(IXFA_DocProvider* pProvider, |
IFX_FileRead* pStream, |
FX_BOOL bTakeOverFile); |
CXFA_FFDoc* CreateDoc(IXFA_DocProvider* pProvider, CPDF_Document* pPDFDoc); |
- IXFA_AppProvider* GetAppProvider() { return m_pProvider; } |
void SetDefaultFontMgr(std::unique_ptr<CXFA_DefFontMgr> pFontMgr); |
+ CXFA_FFDocHandler* GetDocHandler(); |
CXFA_FWLAdapterWidgetMgr* GetWidgetMgr(CFWL_WidgetMgrDelegate* pDelegate); |
- IFWL_AdapterTimerMgr* GetTimerMgr(); |
- |
- CXFA_FontMgr* GetXFAFontMgr(); |
IFGAS_FontMgr* GetFDEFontMgr(); |
CXFA_FWLTheme* GetFWLTheme(); |
- CFWL_WidgetMgrDelegate* GetWidgetMgrDelegate() { |
+ |
+ IXFA_AppProvider* GetAppProvider() const { return m_pProvider; } |
+ IFWL_AdapterTimerMgr* GetTimerMgr() const; |
+ CXFA_FontMgr* GetXFAFontMgr() const; |
+ CFWL_WidgetMgrDelegate* GetWidgetMgrDelegate() const { |
return m_pWidgetMgrDelegate; |
} |
protected: |
- CXFA_FFDocHandler* m_pDocHandler; |
- IFWL_App* m_pFWLApp; |
- CXFA_FWLTheme* m_pFWLTheme; |
- IXFA_AppProvider* m_pProvider; |
- CXFA_FontMgr* m_pFontMgr; |
+ std::unique_ptr<CXFA_FFDocHandler> m_pDocHandler; |
+ IXFA_AppProvider* const m_pProvider; |
+ std::unique_ptr<CXFA_FontMgr> m_pFontMgr; |
#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ |
- CFX_FontSourceEnum_File* m_pFontSource; |
+ std::unique_ptr<CFX_FontSourceEnum_File> m_pFontSource; |
#endif |
- CXFA_FWLAdapterWidgetMgr* m_pAdapterWidgetMgr; |
- CFWL_WidgetMgrDelegate* m_pWidgetMgrDelegate; |
- IFGAS_FontMgr* m_pFDEFontMgr; |
+ std::unique_ptr<CXFA_FWLAdapterWidgetMgr> m_pAdapterWidgetMgr; |
+ CFWL_WidgetMgrDelegate* m_pWidgetMgrDelegate; // not owned. |
+ std::unique_ptr<IFGAS_FontMgr> m_pFDEFontMgr; |
+ // |m_pFWLApp| has to be released first, then |m_pFWLTheme| since the former |
+ // may refers to theme manager and the latter refers to font manager. |
+ std::unique_ptr<CXFA_FWLTheme> m_pFWLTheme; |
+ std::unique_ptr<IFWL_App> m_pFWLApp; |
}; |
#endif // XFA_FXFA_INCLUDE_XFA_FFAPP_H_ |