// Copyright 2014 PDFium Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style license that can be | |
// found in the LICENSE file. | |
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
#ifndef _FPDF_MODULE_ | |
#define _FPDF_MODULE_ | |
#ifndef _FXCRT_EXTENSION_ | |
#include "../fxcrt/fx_ext.h" | |
#endif | |
class CPDF_ModuleMgr; | |
class CPDF_PageModuleDef; | |
class CPDF_RenderModuleDef; | |
class CPDF_SecurityHandler; | |
class CCodec_ModuleMgr; | |
class CPDF_Dictionary; | |
class ICodec_JpegModule; | |
class ICodec_JpxModule; | |
class ICodec_FaxModule; | |
class ICodec_Jbig2Module; | |
class ICodec_IccModule; | |
class ICodec_FlateModule; | |
#define ADDIN_NAME_CJK "Eastern Asian Language Support" | |
#define ADDIN_NAME_DECODER "JPEG2000 and JBIG2 Image Decoders" | |
class CPDF_ModuleMgr : public CFX_Object | |
{ | |
public: | |
static void Create(); | |
static CPDF_ModuleMgr* Get(); | |
static void Destroy(); | |
void SetCodecModule(CCodec_ModuleMgr* pModule) | |
{ | |
m_pCodecModule = pModule; | |
} | |
CCodec_ModuleMgr* GetCodecModule() | |
{ | |
return m_pCodecModule; | |
} | |
void InitPageModule(); | |
void InitRenderModule(); | |
void SetModulePath(FX_LPCSTR module_name, FX_LPCSTR path); | |
CFX_ByteString GetModuleFilePath(FX_LPCSTR module_name, FX_LPCSTR name); | |
void SetDownloadCallback(FX_BOOL (*callback)(FX_LPCSTR module_name)); | |
FX_BOOL DownloadModule(FX_LPCSTR module_name); | |
void NotifyModuleAvailable(FX_LPCSTR module_name); | |
CPDF_RenderModuleDef* GetRenderModule() const | |
{ | |
return m_pRenderModule; | |
} | |
CPDF_PageModuleDef* GetPageModule() const | |
{ | |
return m_pPageModule; | |
} | |
void LoadEmbeddedGB1CMaps(); | |
void LoadEmbeddedCNS1CMaps(); | |
void LoadEmbeddedJapan1CMaps(); | |
void LoadEmbeddedKorea1CMaps(); | |
ICodec_FaxModule* GetFaxModule(); | |
ICodec_JpegModule* GetJpegModule(); | |
ICodec_JpxModule* GetJpxModule(); | |
ICodec_Jbig2Module* GetJbig2Module(); | |
ICodec_IccModule* GetIccModule(); | |
ICodec_FlateModule* GetFlateModule(); | |
void RegisterSecurityHandler(FX_LPCSTR name, CPDF_SecurityHandler * (*CreateHandler)(void* param), void* param); | |
CPDF_SecurityHandler* CreateSecurityHandler(FX_LPCSTR name); | |
void SetPrivateData(FX_LPVOID module_id, FX_LPVOID pData, PD_CALLBACK_FREEDATA callback); | |
FX_LPVOID GetPrivateData(FX_LPVOID module_id); | |
int m_FileBufSize; | |
protected: | |
CPDF_ModuleMgr(); | |
~CPDF_ModuleMgr(); | |
void Initialize(); | |
void InitModules(); | |
CCodec_ModuleMgr* m_pCodecModule; | |
CPDF_RenderModuleDef* m_pRenderModule; | |
CPDF_PageModuleDef* m_pPageModule; | |
FX_BOOL (*m_pDownloadCallback)(FX_LPCSTR module_name); | |
CFX_ByteString m_DefaultModulePath; | |
CFX_CMapByteStringToPtr m_ModulePathList; | |
CFX_MapByteStringToPtr m_SecurityHandlerMap; | |
CFX_PrivateData m_privateData; | |
}; | |
class CPDF_Document; | |
class CPDF_DocPageData; | |
class CPDF_FontGlobals; | |
class IPDF_FontMgr; | |
class IPDF_FontMapper; | |
class CPDF_ColorSpace; | |
class CPDF_PageModuleDef : public CFX_Object | |
{ | |
public: | |
virtual ~CPDF_PageModuleDef() {} | |
virtual CPDF_DocPageData* CreateDocData(CPDF_Document* pDoc) | |
{ | |
return NULL; | |
} | |
virtual void ReleaseDoc(CPDF_Document*) {} | |
virtual void ClearDoc(CPDF_Document*) {} | |
virtual CPDF_FontGlobals* GetFontGlobals() | |
{ | |
return NULL; | |
} | |
virtual void ClearStockFont(CPDF_Document* pDoc) {} | |
virtual void NotifyCJKAvailable() {} | |
virtual CPDF_ColorSpace* GetStockCS(int family) | |
{ | |
return NULL; | |
} | |
}; | |
class CPDF_PageObjects; | |
class CFX_AffineMatrix; | |
class CPDF_RenderOptions; | |
class CPDF_Page; | |
class CPDF_DocRenderData; | |
class CPDF_PageRenderCache; | |
class CFX_BitmapDevice; | |
class CPDF_Stream; | |
class CFX_DIBSource; | |
class CPDF_RenderConfig; | |
class CPDF_Image; | |
class CPDF_RenderModuleDef : public CFX_Object | |
{ | |
public: | |
virtual ~CPDF_RenderModuleDef() {} | |
virtual CPDF_DocRenderData* CreateDocData(CPDF_Document* pDoc) | |
{ | |
return NULL; | |
} | |
virtual void DestroyDocData(CPDF_DocRenderData*) {} | |
virtual void ClearDocData(CPDF_DocRenderData*) {} | |
virtual CPDF_DocRenderData* GetRenderData() | |
{ | |
return NULL; | |
} | |
virtual CPDF_PageRenderCache* CreatePageCache(CPDF_Page* pPage) | |
{ | |
return NULL; | |
} | |
virtual void DestroyPageCache(CPDF_PageRenderCache*) {} | |
virtual void NotifyDecoderAvailable() {} | |
virtual CPDF_RenderConfig* GetConfig() | |
{ | |
return NULL; | |
} | |
}; | |
#endif |