Index: xfa/src/fxfa/src/app/xfa_ffapp.cpp |
diff --git a/xfa/src/fxfa/src/app/xfa_ffapp.cpp b/xfa/src/fxfa/src/app/xfa_ffapp.cpp |
index 8fb614b8a3c61db275d92977ae0ecd7a483e3167..c9e791a3beeae64d2aa58c6694380d7f56df33e4 100644 |
--- a/xfa/src/fxfa/src/app/xfa_ffapp.cpp |
+++ b/xfa/src/fxfa/src/app/xfa_ffapp.cpp |
@@ -1,215 +1,215 @@ |
-// 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 |
- |
-#include <algorithm> |
- |
-#include "xfa/src/foxitlib.h" |
-#include "xfa/src/fxfa/src/common/xfa_common.h" |
-#include "xfa_ffdochandler.h" |
-#include "xfa_fwladapter.h" |
-#include "xfa_ffdoc.h" |
-#include "xfa_ffapp.h" |
-#include "xfa_fwltheme.h" |
-#include "xfa_fontmgr.h" |
-#include "xfa_ffwidgethandler.h" |
- |
-CXFA_FileRead::CXFA_FileRead(const CFX_ArrayTemplate<CPDF_Stream*>& streams) { |
- int32_t iCount = streams.GetSize(); |
- for (int32_t i = 0; i < iCount; i++) { |
- CPDF_StreamAcc& acc = m_Data.Add(); |
- acc.LoadAllData(streams[i]); |
- } |
-} |
-FX_FILESIZE CXFA_FileRead::GetSize() { |
- FX_DWORD dwSize = 0; |
- int32_t iCount = m_Data.GetSize(); |
- for (int32_t i = 0; i < iCount; i++) { |
- CPDF_StreamAcc& acc = m_Data[i]; |
- dwSize += acc.GetSize(); |
- } |
- return dwSize; |
-} |
-FX_BOOL CXFA_FileRead::ReadBlock(void* buffer, |
- FX_FILESIZE offset, |
- size_t size) { |
- int32_t iCount = m_Data.GetSize(); |
- int32_t index = 0; |
- while (index < iCount) { |
- CPDF_StreamAcc& acc = m_Data[index]; |
- FX_FILESIZE dwSize = acc.GetSize(); |
- if (offset < dwSize) { |
- break; |
- } |
- offset -= dwSize; |
- index++; |
- } |
- while (index < iCount) { |
- CPDF_StreamAcc& acc = m_Data[index]; |
- FX_DWORD dwSize = acc.GetSize(); |
- size_t dwRead = std::min(size, static_cast<size_t>(dwSize - offset)); |
- FXSYS_memcpy(buffer, acc.GetData() + offset, dwRead); |
- size -= dwRead; |
- if (size == 0) { |
- return TRUE; |
- } |
- buffer = (uint8_t*)buffer + dwRead; |
- offset = 0; |
- index++; |
- } |
- return FALSE; |
-} |
-// static |
-IXFA_App* IXFA_App::Create(IXFA_AppProvider* pProvider) { |
- return new CXFA_FFApp(pProvider); |
-} |
-// virtual |
-IXFA_App::~IXFA_App() {} |
-CXFA_FFApp::CXFA_FFApp(IXFA_AppProvider* pProvider) |
- : m_pDocHandler(nullptr), |
- m_pFWLTheme(nullptr), |
- m_pProvider(pProvider), |
- m_pFontMgr(nullptr), |
-#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ |
- m_pFontSource(nullptr), |
-#endif |
- m_pAdapterWidgetMgr(nullptr), |
- m_pWidgetMgrDelegate(nullptr), |
- m_pFDEFontMgr(nullptr), |
- m_pMenuHandler(nullptr), |
- m_pAdapterThreadMgr(nullptr) { |
- m_pFWLApp = IFWL_App::Create(this); |
- FWL_SetApp(m_pFWLApp); |
- m_pFWLApp->Initialize(); |
- IXFA_TimeZoneProvider::Create(); |
-} |
-CXFA_FFApp::~CXFA_FFApp() { |
- if (m_pDocHandler) { |
- delete m_pDocHandler; |
- } |
- if (m_pFWLApp) { |
- m_pFWLApp->Finalize(); |
- m_pFWLApp->Release(); |
- delete m_pFWLApp; |
- } |
- if (m_pFWLTheme) { |
- m_pFWLTheme->Release(); |
- } |
- if (m_pAdapterWidgetMgr) { |
- delete m_pAdapterWidgetMgr; |
- } |
- if (m_pAdapterThreadMgr) { |
- delete m_pAdapterThreadMgr; |
- m_pAdapterThreadMgr = NULL; |
- } |
- if (m_pMenuHandler) { |
- delete m_pMenuHandler; |
- m_pMenuHandler = NULL; |
- } |
- IXFA_TimeZoneProvider::Destroy(); |
- if (m_pFontMgr != NULL) { |
- delete m_pFontMgr; |
- m_pFontMgr = NULL; |
- } |
-#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ |
- if (m_pFontSource != NULL) { |
- m_pFontSource->Release(); |
- } |
-#endif |
- if (m_pFDEFontMgr) { |
- m_pFDEFontMgr->Release(); |
- } |
-} |
-IXFA_MenuHandler* CXFA_FFApp::GetMenuHandler() { |
- if (!m_pMenuHandler) { |
- m_pMenuHandler = new CXFA_FFMenuHandler; |
- } |
- return m_pMenuHandler; |
-} |
-IXFA_DocHandler* CXFA_FFApp::GetDocHandler() { |
- if (!m_pDocHandler) { |
- m_pDocHandler = new CXFA_FFDocHandler; |
- } |
- return m_pDocHandler; |
-} |
-IXFA_Doc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, |
- IFX_FileRead* pStream, |
- FX_BOOL bTakeOverFile) { |
- CXFA_FFDoc* pDoc = new CXFA_FFDoc(this, pProvider); |
- FX_BOOL bSuccess = pDoc->OpenDoc(pStream, bTakeOverFile); |
- if (!bSuccess) { |
- delete pDoc; |
- pDoc = NULL; |
- } |
- return pDoc; |
-} |
-IXFA_Doc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, |
- CPDF_Document* pPDFDoc) { |
- if (pPDFDoc == NULL) { |
- return NULL; |
- } |
- CXFA_FFDoc* pDoc = new CXFA_FFDoc(this, pProvider); |
- FX_BOOL bSuccess = pDoc->OpenDoc(pPDFDoc); |
- if (!bSuccess) { |
- delete pDoc; |
- pDoc = NULL; |
- } |
- return pDoc; |
-} |
- |
-void CXFA_FFApp::SetDefaultFontMgr(IXFA_FontMgr* pFontMgr) { |
- if (!m_pFontMgr) { |
- m_pFontMgr = new CXFA_FontMgr(); |
- } |
- m_pFontMgr->SetDefFontMgr(pFontMgr); |
-} |
-CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() { |
- return m_pFontMgr; |
-} |
-IFX_FontMgr* CXFA_FFApp::GetFDEFontMgr() { |
- if (!m_pFDEFontMgr) { |
-#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ |
- m_pFDEFontMgr = IFX_FontMgr::Create(FX_GetDefFontEnumerator()); |
-#else |
- m_pFontSource = FX_CreateDefaultFontSourceEnum(); |
- m_pFDEFontMgr = IFX_FontMgr::Create(m_pFontSource); |
-#endif |
- } |
- return m_pFDEFontMgr; |
-} |
-CXFA_FWLTheme* CXFA_FFApp::GetFWLTheme() { |
- if (!m_pFWLTheme) { |
- m_pFWLTheme = new CXFA_FWLTheme(this); |
- } |
- return m_pFWLTheme; |
-} |
-IFWL_AdapterWidgetMgr* CXFA_FFApp::GetWidgetMgr( |
- IFWL_WidgetMgrDelegate* pDelegate) { |
- if (!m_pAdapterWidgetMgr) { |
- m_pAdapterWidgetMgr = new CXFA_FWLAdapterWidgetMgr; |
- pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread | |
- FWL_WGTMGR_DisableForm); |
- m_pWidgetMgrDelegate = pDelegate; |
- } |
- return m_pAdapterWidgetMgr; |
-} |
-IFWL_AdapterThreadMgr* CXFA_FFApp::GetThreadMgr() { |
- if (!m_pAdapterThreadMgr) { |
- m_pAdapterThreadMgr = new CFWL_SDAdapterThreadMgr; |
- } |
- return m_pAdapterThreadMgr; |
-} |
-IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() { |
- return m_pProvider->GetTimerMgr(); |
-} |
-IFWL_AdapterCursorMgr* CXFA_FFApp::GetCursorMgr() { |
- return NULL; |
-} |
-IFWL_AdapterMonitorMgr* CXFA_FFApp::GetMonitorMgr() { |
- return NULL; |
-} |
-IFWL_AdapterClipboardMgr* CXFA_FFApp::GetClipboardMgr() { |
- return NULL; |
-} |
+// 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 |
+ |
+#include <algorithm> |
+ |
+#include "xfa/src/foxitlib.h" |
+#include "xfa/src/fxfa/src/common/xfa_common.h" |
+#include "xfa_ffdochandler.h" |
+#include "xfa_fwladapter.h" |
+#include "xfa_ffdoc.h" |
+#include "xfa_ffapp.h" |
+#include "xfa_fwltheme.h" |
+#include "xfa_fontmgr.h" |
+#include "xfa_ffwidgethandler.h" |
+ |
+CXFA_FileRead::CXFA_FileRead(const CFX_ArrayTemplate<CPDF_Stream*>& streams) { |
+ int32_t iCount = streams.GetSize(); |
+ for (int32_t i = 0; i < iCount; i++) { |
+ CPDF_StreamAcc& acc = m_Data.Add(); |
+ acc.LoadAllData(streams[i]); |
+ } |
+} |
+FX_FILESIZE CXFA_FileRead::GetSize() { |
+ FX_DWORD dwSize = 0; |
+ int32_t iCount = m_Data.GetSize(); |
+ for (int32_t i = 0; i < iCount; i++) { |
+ CPDF_StreamAcc& acc = m_Data[i]; |
+ dwSize += acc.GetSize(); |
+ } |
+ return dwSize; |
+} |
+FX_BOOL CXFA_FileRead::ReadBlock(void* buffer, |
+ FX_FILESIZE offset, |
+ size_t size) { |
+ int32_t iCount = m_Data.GetSize(); |
+ int32_t index = 0; |
+ while (index < iCount) { |
+ CPDF_StreamAcc& acc = m_Data[index]; |
+ FX_FILESIZE dwSize = acc.GetSize(); |
+ if (offset < dwSize) { |
+ break; |
+ } |
+ offset -= dwSize; |
+ index++; |
+ } |
+ while (index < iCount) { |
+ CPDF_StreamAcc& acc = m_Data[index]; |
+ FX_DWORD dwSize = acc.GetSize(); |
+ size_t dwRead = std::min(size, static_cast<size_t>(dwSize - offset)); |
+ FXSYS_memcpy(buffer, acc.GetData() + offset, dwRead); |
+ size -= dwRead; |
+ if (size == 0) { |
+ return TRUE; |
+ } |
+ buffer = (uint8_t*)buffer + dwRead; |
+ offset = 0; |
+ index++; |
+ } |
+ return FALSE; |
+} |
+// static |
+IXFA_App* IXFA_App::Create(IXFA_AppProvider* pProvider) { |
+ return new CXFA_FFApp(pProvider); |
+} |
+// virtual |
+IXFA_App::~IXFA_App() {} |
+CXFA_FFApp::CXFA_FFApp(IXFA_AppProvider* pProvider) |
+ : m_pDocHandler(nullptr), |
+ m_pFWLTheme(nullptr), |
+ m_pProvider(pProvider), |
+ m_pFontMgr(nullptr), |
+#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ |
+ m_pFontSource(nullptr), |
+#endif |
+ m_pAdapterWidgetMgr(nullptr), |
+ m_pWidgetMgrDelegate(nullptr), |
+ m_pFDEFontMgr(nullptr), |
+ m_pMenuHandler(nullptr), |
+ m_pAdapterThreadMgr(nullptr) { |
+ m_pFWLApp = IFWL_App::Create(this); |
+ FWL_SetApp(m_pFWLApp); |
+ m_pFWLApp->Initialize(); |
+ IXFA_TimeZoneProvider::Create(); |
+} |
+CXFA_FFApp::~CXFA_FFApp() { |
+ if (m_pDocHandler) { |
+ delete m_pDocHandler; |
+ } |
+ if (m_pFWLApp) { |
+ m_pFWLApp->Finalize(); |
+ m_pFWLApp->Release(); |
+ delete m_pFWLApp; |
+ } |
+ if (m_pFWLTheme) { |
+ m_pFWLTheme->Release(); |
+ } |
+ if (m_pAdapterWidgetMgr) { |
+ delete m_pAdapterWidgetMgr; |
+ } |
+ if (m_pAdapterThreadMgr) { |
+ delete m_pAdapterThreadMgr; |
+ m_pAdapterThreadMgr = NULL; |
+ } |
+ if (m_pMenuHandler) { |
+ delete m_pMenuHandler; |
+ m_pMenuHandler = NULL; |
+ } |
+ IXFA_TimeZoneProvider::Destroy(); |
+ if (m_pFontMgr != NULL) { |
+ delete m_pFontMgr; |
+ m_pFontMgr = NULL; |
+ } |
+#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ |
+ if (m_pFontSource != NULL) { |
+ m_pFontSource->Release(); |
+ } |
+#endif |
+ if (m_pFDEFontMgr) { |
+ m_pFDEFontMgr->Release(); |
+ } |
+} |
+IXFA_MenuHandler* CXFA_FFApp::GetMenuHandler() { |
+ if (!m_pMenuHandler) { |
+ m_pMenuHandler = new CXFA_FFMenuHandler; |
+ } |
+ return m_pMenuHandler; |
+} |
+IXFA_DocHandler* CXFA_FFApp::GetDocHandler() { |
+ if (!m_pDocHandler) { |
+ m_pDocHandler = new CXFA_FFDocHandler; |
+ } |
+ return m_pDocHandler; |
+} |
+IXFA_Doc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, |
+ IFX_FileRead* pStream, |
+ FX_BOOL bTakeOverFile) { |
+ CXFA_FFDoc* pDoc = new CXFA_FFDoc(this, pProvider); |
+ FX_BOOL bSuccess = pDoc->OpenDoc(pStream, bTakeOverFile); |
+ if (!bSuccess) { |
+ delete pDoc; |
+ pDoc = NULL; |
+ } |
+ return pDoc; |
+} |
+IXFA_Doc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, |
+ CPDF_Document* pPDFDoc) { |
+ if (pPDFDoc == NULL) { |
+ return NULL; |
+ } |
+ CXFA_FFDoc* pDoc = new CXFA_FFDoc(this, pProvider); |
+ FX_BOOL bSuccess = pDoc->OpenDoc(pPDFDoc); |
+ if (!bSuccess) { |
+ delete pDoc; |
+ pDoc = NULL; |
+ } |
+ return pDoc; |
+} |
+ |
+void CXFA_FFApp::SetDefaultFontMgr(IXFA_FontMgr* pFontMgr) { |
+ if (!m_pFontMgr) { |
+ m_pFontMgr = new CXFA_FontMgr(); |
+ } |
+ m_pFontMgr->SetDefFontMgr(pFontMgr); |
+} |
+CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() { |
+ return m_pFontMgr; |
+} |
+IFX_FontMgr* CXFA_FFApp::GetFDEFontMgr() { |
+ if (!m_pFDEFontMgr) { |
+#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ |
+ m_pFDEFontMgr = IFX_FontMgr::Create(FX_GetDefFontEnumerator()); |
+#else |
+ m_pFontSource = FX_CreateDefaultFontSourceEnum(); |
+ m_pFDEFontMgr = IFX_FontMgr::Create(m_pFontSource); |
+#endif |
+ } |
+ return m_pFDEFontMgr; |
+} |
+CXFA_FWLTheme* CXFA_FFApp::GetFWLTheme() { |
+ if (!m_pFWLTheme) { |
+ m_pFWLTheme = new CXFA_FWLTheme(this); |
+ } |
+ return m_pFWLTheme; |
+} |
+IFWL_AdapterWidgetMgr* CXFA_FFApp::GetWidgetMgr( |
+ IFWL_WidgetMgrDelegate* pDelegate) { |
+ if (!m_pAdapterWidgetMgr) { |
+ m_pAdapterWidgetMgr = new CXFA_FWLAdapterWidgetMgr; |
+ pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread | |
+ FWL_WGTMGR_DisableForm); |
+ m_pWidgetMgrDelegate = pDelegate; |
+ } |
+ return m_pAdapterWidgetMgr; |
+} |
+IFWL_AdapterThreadMgr* CXFA_FFApp::GetThreadMgr() { |
+ if (!m_pAdapterThreadMgr) { |
+ m_pAdapterThreadMgr = new CFWL_SDAdapterThreadMgr; |
+ } |
+ return m_pAdapterThreadMgr; |
+} |
+IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() { |
+ return m_pProvider->GetTimerMgr(); |
+} |
+IFWL_AdapterCursorMgr* CXFA_FFApp::GetCursorMgr() { |
+ return NULL; |
+} |
+IFWL_AdapterMonitorMgr* CXFA_FFApp::GetMonitorMgr() { |
+ return NULL; |
+} |
+IFWL_AdapterClipboardMgr* CXFA_FFApp::GetClipboardMgr() { |
+ return NULL; |
+} |