1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2014 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/cxfa_ffapp.h" 8*3ac0a46fSAndroid Build Coastguard Worker 9*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fwl/cfwl_notedriver.h" 10*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fwl/cfwl_widgetmgr.h" 11*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/cxfa_ffdoc.h" 12*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/cxfa_ffwidgethandler.h" 13*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/cxfa_fontmgr.h" 14*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/cxfa_fwladapterwidgetmgr.h" 15*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/cxfa_fwltheme.h" 16*3ac0a46fSAndroid Build Coastguard Worker CXFA_FFApp(CallbackIface * pProvider)17*3ac0a46fSAndroid Build Coastguard WorkerCXFA_FFApp::CXFA_FFApp(CallbackIface* pProvider) : m_pProvider(pProvider) { 18*3ac0a46fSAndroid Build Coastguard Worker // Ensure fully initialized before making objects based on |this|. 19*3ac0a46fSAndroid Build Coastguard Worker m_pXFAFontMgr = cppgc::MakeGarbageCollected<CXFA_FontMgr>( 20*3ac0a46fSAndroid Build Coastguard Worker GetHeap()->GetAllocationHandle()); 21*3ac0a46fSAndroid Build Coastguard Worker m_pFWLApp = cppgc::MakeGarbageCollected<CFWL_App>( 22*3ac0a46fSAndroid Build Coastguard Worker GetHeap()->GetAllocationHandle(), this); 23*3ac0a46fSAndroid Build Coastguard Worker } 24*3ac0a46fSAndroid Build Coastguard Worker 25*3ac0a46fSAndroid Build Coastguard Worker CXFA_FFApp::~CXFA_FFApp() = default; 26*3ac0a46fSAndroid Build Coastguard Worker Trace(cppgc::Visitor * visitor) const27*3ac0a46fSAndroid Build Coastguard Workervoid CXFA_FFApp::Trace(cppgc::Visitor* visitor) const { 28*3ac0a46fSAndroid Build Coastguard Worker visitor->Trace(m_pXFAFontMgr); 29*3ac0a46fSAndroid Build Coastguard Worker visitor->Trace(m_pAdapterWidgetMgr); 30*3ac0a46fSAndroid Build Coastguard Worker visitor->Trace(m_pFWLTheme); 31*3ac0a46fSAndroid Build Coastguard Worker visitor->Trace(m_pFWLApp); 32*3ac0a46fSAndroid Build Coastguard Worker } 33*3ac0a46fSAndroid Build Coastguard Worker LoadFWLTheme(CXFA_FFDoc * doc)34*3ac0a46fSAndroid Build Coastguard Workerbool CXFA_FFApp::LoadFWLTheme(CXFA_FFDoc* doc) { 35*3ac0a46fSAndroid Build Coastguard Worker auto* fwl_theme = cppgc::MakeGarbageCollected<CXFA_FWLTheme>( 36*3ac0a46fSAndroid Build Coastguard Worker GetHeap()->GetAllocationHandle(), GetHeap(), this); 37*3ac0a46fSAndroid Build Coastguard Worker if (!fwl_theme->LoadCalendarFont(doc)) 38*3ac0a46fSAndroid Build Coastguard Worker return false; 39*3ac0a46fSAndroid Build Coastguard Worker 40*3ac0a46fSAndroid Build Coastguard Worker m_pFWLTheme = fwl_theme; 41*3ac0a46fSAndroid Build Coastguard Worker return true; 42*3ac0a46fSAndroid Build Coastguard Worker } 43*3ac0a46fSAndroid Build Coastguard Worker GetWidgetMgrAdapter()44*3ac0a46fSAndroid Build Coastguard WorkerCFWL_WidgetMgr::AdapterIface* CXFA_FFApp::GetWidgetMgrAdapter() { 45*3ac0a46fSAndroid Build Coastguard Worker if (!m_pAdapterWidgetMgr) { 46*3ac0a46fSAndroid Build Coastguard Worker m_pAdapterWidgetMgr = cppgc::MakeGarbageCollected<CXFA_FWLAdapterWidgetMgr>( 47*3ac0a46fSAndroid Build Coastguard Worker GetHeap()->GetAllocationHandle()); 48*3ac0a46fSAndroid Build Coastguard Worker } 49*3ac0a46fSAndroid Build Coastguard Worker return m_pAdapterWidgetMgr; 50*3ac0a46fSAndroid Build Coastguard Worker } 51*3ac0a46fSAndroid Build Coastguard Worker GetTimerHandler()52*3ac0a46fSAndroid Build Coastguard WorkerCFX_Timer::HandlerIface* CXFA_FFApp::GetTimerHandler() { 53*3ac0a46fSAndroid Build Coastguard Worker return m_pProvider->GetTimerHandler(); 54*3ac0a46fSAndroid Build Coastguard Worker } 55*3ac0a46fSAndroid Build Coastguard Worker GetThemeProvider()56*3ac0a46fSAndroid Build Coastguard WorkerIFWL_ThemeProvider* CXFA_FFApp::GetThemeProvider() { 57*3ac0a46fSAndroid Build Coastguard Worker return m_pFWLTheme; 58*3ac0a46fSAndroid Build Coastguard Worker } 59*3ac0a46fSAndroid Build Coastguard Worker GetHeap()60*3ac0a46fSAndroid Build Coastguard Workercppgc::Heap* CXFA_FFApp::GetHeap() { 61*3ac0a46fSAndroid Build Coastguard Worker return m_pProvider->GetGCHeap(); 62*3ac0a46fSAndroid Build Coastguard Worker } 63