Home | History | Annotate | Download | only in app
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef XFA_FFAPP_H_
      8 #define XFA_FFAPP_H_
      9 
     10 class CXFA_FileRead : public IFX_FileRead {
     11  public:
     12   explicit CXFA_FileRead(const CFX_ArrayTemplate<CPDF_Stream*>& streams);
     13 
     14   virtual FX_FILESIZE GetSize();
     15   virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size);
     16 
     17   virtual void Release() { delete this; }
     18 
     19  protected:
     20   CFX_ObjectArray<CPDF_StreamAcc> m_Data;
     21 };
     22 class CXFA_FWLAdapterWidgetMgr;
     23 class CXFA_FWLTheme;
     24 class CXFA_FFDocHandler;
     25 class CXFA_FFMenuHandler;
     26 class CXFA_FontMgr;
     27 class CXFA_FFApp : public IXFA_App, public IFWL_AdapterNative {
     28  public:
     29   CXFA_FFApp(IXFA_AppProvider* pProvider);
     30   ~CXFA_FFApp() override;
     31 
     32   // IFXFA_App:
     33   IXFA_DocHandler* GetDocHandler() override;
     34   IXFA_Doc* CreateDoc(IXFA_DocProvider* pProvider,
     35                       IFX_FileRead* pStream,
     36                       FX_BOOL bTakeOverFile) override;
     37   IXFA_Doc* CreateDoc(IXFA_DocProvider* pProvider,
     38                       CPDF_Document* pPDFDoc) override;
     39   IXFA_AppProvider* GetAppProvider() override { return m_pProvider; }
     40   void SetDefaultFontMgr(IXFA_FontMgr* pFontMgr) override;
     41   IXFA_MenuHandler* GetMenuHandler() override;
     42 
     43   // IFWL_AdapterNative:
     44   IFWL_AdapterWidgetMgr* GetWidgetMgr(
     45       IFWL_WidgetMgrDelegate* pDelegate) override;
     46   IFWL_AdapterThreadMgr* GetThreadMgr() override;
     47   IFWL_AdapterTimerMgr* GetTimerMgr() override;
     48   IFWL_AdapterCursorMgr* GetCursorMgr() override;
     49   IFWL_AdapterMonitorMgr* GetMonitorMgr() override;
     50   IFWL_AdapterClipboardMgr* GetClipboardMgr() override;
     51 
     52   CXFA_FontMgr* GetXFAFontMgr();
     53   IFX_FontMgr* GetFDEFontMgr();
     54   CXFA_FWLTheme* GetFWLTheme();
     55   IFWL_WidgetMgrDelegate* GetWidgetMgrDelegate() {
     56     return m_pWidgetMgrDelegate;
     57   }
     58 
     59  protected:
     60   CXFA_FFDocHandler* m_pDocHandler;
     61   IFWL_App* m_pFWLApp;
     62   CXFA_FWLTheme* m_pFWLTheme;
     63   IXFA_AppProvider* m_pProvider;
     64   CXFA_FontMgr* m_pFontMgr;
     65 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
     66   IFX_FontSourceEnum* m_pFontSource;
     67 #endif
     68   CXFA_FWLAdapterWidgetMgr* m_pAdapterWidgetMgr;
     69   IFWL_WidgetMgrDelegate* m_pWidgetMgrDelegate;
     70   IFX_FontMgr* m_pFDEFontMgr;
     71   CXFA_FFMenuHandler* m_pMenuHandler;
     72   CFWL_SDAdapterThreadMgr* m_pAdapterThreadMgr;
     73 };
     74 
     75 #endif  // XFA_FFAPP_H_
     76