diff options
author | John Abd-El-Malek <jabdelmalek@google.com> | 2014-05-23 17:28:10 -0700 |
---|---|---|
committer | John Abd-El-Malek <jabdelmalek@google.com> | 2014-05-23 17:41:56 -0700 |
commit | 3f3b45cc74b0499912409f766a595945dbbfc4c5 (patch) | |
tree | ec400b6965477b88ea7f0d335f7e5c52044c346c /fpdfsdk/include/javascript/JS_Object.h | |
parent | 6fe4aed948337175f6f7f81bb03c37b9c7f535da (diff) | |
download | pdfium-3f3b45cc74b0499912409f766a595945dbbfc4c5.tar.xz |
Convert all line endings to LF.
Diffstat (limited to 'fpdfsdk/include/javascript/JS_Object.h')
-rw-r--r-- | fpdfsdk/include/javascript/JS_Object.h | 576 |
1 files changed, 288 insertions, 288 deletions
diff --git a/fpdfsdk/include/javascript/JS_Object.h b/fpdfsdk/include/javascript/JS_Object.h index 8b91f8cd0d..f22da761fb 100644 --- a/fpdfsdk/include/javascript/JS_Object.h +++ b/fpdfsdk/include/javascript/JS_Object.h @@ -1,288 +1,288 @@ -// 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 _JS_OBJECT_H_
-#define _JS_OBJECT_H_
-
-class CJS_Object;
-class CJS_Timer;
-class CJS_Context;
-
-class CJS_EmbedObj : public CFX_Object
-{
-public:
- CJS_EmbedObj(CJS_Object* pJSObject);
- virtual ~CJS_EmbedObj();
-
- virtual void TimerProc(CJS_Timer* pTimer){};
-
- CJS_Timer* BeginTimer(CPDFDoc_Environment * pApp, FX_UINT nElapse);
- void EndTimer(CJS_Timer* pTimer);
-
- CJS_Object* GetJSObject(){return m_pJSObject;};
- operator CJS_Object* (){return m_pJSObject;};
-
- CPDFSDK_PageView * JSGetPageView(IFXJS_Context* cc);
- int MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView, FX_LPCWSTR swMsg, FX_LPCWSTR swTitle = NULL, FX_UINT nType = 0, FX_UINT nIcon = 0);
- void Alert(CJS_Context* pContext, FX_LPCWSTR swMsg);
- FX_BOOL IsSafeMode(IFXJS_Context* cc);
-
-protected:
-
- CJS_Object* m_pJSObject;
-};
-
-class CJS_Object : public CFX_Object
-{
-public:
- CJS_Object(JSFXObject pObject);
- virtual ~CJS_Object(void);
-
- void MakeWeak();
-
- virtual FX_BOOL IsType(FX_LPCSTR sClassName){return TRUE;};
- virtual CFX_ByteString GetClassName(){return "";};
-
- virtual FX_BOOL InitInstance(IFXJS_Context* cc){return TRUE;};
- virtual FX_BOOL ExitInstance(){return TRUE;};
-
- operator JSFXObject () {return v8::Local<v8::Object>::New(m_pIsolate, m_pObject);}
- operator CJS_EmbedObj* (){return m_pEmbedObj;};
-
- void SetEmbedObject(CJS_EmbedObj* pObj){m_pEmbedObj = pObj;};
- CJS_EmbedObj * GetEmbedObject(){return m_pEmbedObj;};
-
- static CPDFSDK_PageView * JSGetPageView(IFXJS_Context* cc);
- static int MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView, FX_LPCWSTR swMsg, FX_LPCWSTR swTitle = NULL, FX_UINT nType = 0,FX_UINT nIcon = 0);
- static void Alert(CJS_Context* pContext, FX_LPCWSTR swMsg);
-
- v8::Isolate* GetIsolate() {return m_pIsolate;}
-protected:
- CJS_EmbedObj * m_pEmbedObj;
- v8::Persistent<v8::Object> m_pObject;
- v8::Isolate* m_pIsolate;
-};
-
-struct JS_TIMER_MAP
-{
- FX_UINT nID;
- CJS_Timer * pTimer;
-};
-
-typedef CFX_ArrayTemplate<JS_TIMER_MAP*> CTimerMapArray;
-
-struct JS_TIMER_MAPARRAY
-{
-public:
- JS_TIMER_MAPARRAY()
- {
- }
-
- ~JS_TIMER_MAPARRAY()
- {
- Reset();
- }
-
- void Reset()
- {
- for (int i=0,sz=m_Array.GetSize(); i<sz; i++)
- delete m_Array.GetAt(i);
-
- m_Array.RemoveAll();
- }
-
- void SetAt(FX_UINT nIndex,CJS_Timer * pTimer)
- {
- int i = Find(nIndex);
-
- if (i>=0)
- {
- if (JS_TIMER_MAP * pMap = m_Array.GetAt(i))
- pMap->pTimer = pTimer;
- }
- else
- {
- if (JS_TIMER_MAP * pMap = new JS_TIMER_MAP)
- {
- pMap->nID = nIndex;
- pMap->pTimer = pTimer;
- m_Array.Add(pMap);
- }
- }
- }
-
- CJS_Timer * GetAt(FX_UINT nIndex)
- {
- int i = Find(nIndex);
-
- if (i>=0)
- {
- if (JS_TIMER_MAP * pMap = m_Array.GetAt(i))
- return pMap->pTimer;
- }
- return NULL;
- }
-
- void RemoveAt(FX_UINT nIndex)
- {
- int i = Find(nIndex);
-
- if (i>=0)
- {
- delete m_Array.GetAt(i);
- m_Array.RemoveAt(i);
- }
- //To prevent potential fake memory leak reported by vc6.
- if(m_Array.GetSize() == 0)
- m_Array.RemoveAll();
- }
-
- int Find(FX_UINT nIndex)
- {
- for (int i=0,sz=m_Array.GetSize(); i<sz; i++)
- {
- if (JS_TIMER_MAP * pMap = m_Array.GetAt(i))
- {
- if (pMap->nID == nIndex)
- return i;
- }
- }
-
- return -1;
- }
-
- CTimerMapArray m_Array;
-};
-
-static JS_TIMER_MAPARRAY m_sTimeMap;
-
-class CJS_Runtime;
-
-class CJS_Timer
-{
-public:
- CJS_Timer(CJS_EmbedObj * pObj,CPDFDoc_Environment* pApp): m_pEmbedObj(pObj),
- m_nTimerID(0),
- m_bProcessing(FALSE),
- m_dwStartTime(0),
- m_dwTimeOut(0),
- m_dwElapse(0),
- m_pRuntime(NULL),
- m_nType(0),
- m_pApp(pApp)
- {
- }
-
- virtual ~CJS_Timer()
- {
- KillJSTimer();
- }
-
-public:
- FX_UINT SetJSTimer(FX_UINT nElapse)
- {
- if (m_nTimerID)KillJSTimer();
- IFX_SystemHandler* pHandler = m_pApp->GetSysHandler();
- m_nTimerID = pHandler->SetTimer(nElapse,TimerProc);
- m_sTimeMap.SetAt(m_nTimerID,this);
- m_dwElapse = nElapse;
- return m_nTimerID;
- };
-
- void KillJSTimer()
- {
- if (m_nTimerID)
- {
- IFX_SystemHandler* pHandler = m_pApp->GetSysHandler();
- pHandler->KillTimer(m_nTimerID);
- m_sTimeMap.RemoveAt(m_nTimerID);
- m_nTimerID = 0;
- }
- };
-
- void SetType(int nType)
- {
- m_nType = nType;
- }
-
- int GetType() const
- {
- return m_nType;
- }
-
- void SetStartTime(FX_DWORD dwStartTime)
- {
- m_dwStartTime = dwStartTime;
- }
-
- FX_DWORD GetStartTime() const
- {
- return m_dwStartTime;
- }
-
- void SetTimeOut(FX_DWORD dwTimeOut)
- {
- m_dwTimeOut = dwTimeOut;
- }
-
- FX_DWORD GetTimeOut() const
- {
- return m_dwTimeOut;
- }
-
- void SetRuntime(CJS_Runtime* pRuntime)
- {
- m_pRuntime = pRuntime;
- }
-
- CJS_Runtime* GetRuntime() const
- {
- return m_pRuntime;
- }
-
- void SetJScript(const CFX_WideString& script)
- {
- m_swJScript = script;
- }
-
- CFX_WideString GetJScript() const
- {
- return m_swJScript;
- }
-
- static void TimerProc(int idEvent)
- {
- if (CJS_Timer * pTimer = m_sTimeMap.GetAt(idEvent))
- {
- if (!pTimer->m_bProcessing)
- {
- pTimer->m_bProcessing = TRUE;
- if (pTimer->m_pEmbedObj) pTimer->m_pEmbedObj->TimerProc(pTimer);
- pTimer->m_bProcessing = FALSE;
- }
- else
- {
- // TRACE(L"BUSY!\n");
- }
- }
- };
-
-private:
- FX_UINT m_nTimerID;
- CJS_EmbedObj* m_pEmbedObj;
- FX_BOOL m_bProcessing;
-
- //data
- FX_DWORD m_dwStartTime;
- FX_DWORD m_dwTimeOut;
- FX_DWORD m_dwElapse;
- CJS_Runtime* m_pRuntime;
- CFX_WideString m_swJScript;
- int m_nType; //0:Interval; 1:TimeOut
-
- CPDFDoc_Environment* m_pApp;
-};
-#endif //_JS_OBJECT_H_
+// 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 _JS_OBJECT_H_ +#define _JS_OBJECT_H_ + +class CJS_Object; +class CJS_Timer; +class CJS_Context; + +class CJS_EmbedObj : public CFX_Object +{ +public: + CJS_EmbedObj(CJS_Object* pJSObject); + virtual ~CJS_EmbedObj(); + + virtual void TimerProc(CJS_Timer* pTimer){}; + + CJS_Timer* BeginTimer(CPDFDoc_Environment * pApp, FX_UINT nElapse); + void EndTimer(CJS_Timer* pTimer); + + CJS_Object* GetJSObject(){return m_pJSObject;}; + operator CJS_Object* (){return m_pJSObject;}; + + CPDFSDK_PageView * JSGetPageView(IFXJS_Context* cc); + int MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView, FX_LPCWSTR swMsg, FX_LPCWSTR swTitle = NULL, FX_UINT nType = 0, FX_UINT nIcon = 0); + void Alert(CJS_Context* pContext, FX_LPCWSTR swMsg); + FX_BOOL IsSafeMode(IFXJS_Context* cc); + +protected: + + CJS_Object* m_pJSObject; +}; + +class CJS_Object : public CFX_Object +{ +public: + CJS_Object(JSFXObject pObject); + virtual ~CJS_Object(void); + + void MakeWeak(); + + virtual FX_BOOL IsType(FX_LPCSTR sClassName){return TRUE;}; + virtual CFX_ByteString GetClassName(){return "";}; + + virtual FX_BOOL InitInstance(IFXJS_Context* cc){return TRUE;}; + virtual FX_BOOL ExitInstance(){return TRUE;}; + + operator JSFXObject () {return v8::Local<v8::Object>::New(m_pIsolate, m_pObject);} + operator CJS_EmbedObj* (){return m_pEmbedObj;}; + + void SetEmbedObject(CJS_EmbedObj* pObj){m_pEmbedObj = pObj;}; + CJS_EmbedObj * GetEmbedObject(){return m_pEmbedObj;}; + + static CPDFSDK_PageView * JSGetPageView(IFXJS_Context* cc); + static int MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView, FX_LPCWSTR swMsg, FX_LPCWSTR swTitle = NULL, FX_UINT nType = 0,FX_UINT nIcon = 0); + static void Alert(CJS_Context* pContext, FX_LPCWSTR swMsg); + + v8::Isolate* GetIsolate() {return m_pIsolate;} +protected: + CJS_EmbedObj * m_pEmbedObj; + v8::Persistent<v8::Object> m_pObject; + v8::Isolate* m_pIsolate; +}; + +struct JS_TIMER_MAP +{ + FX_UINT nID; + CJS_Timer * pTimer; +}; + +typedef CFX_ArrayTemplate<JS_TIMER_MAP*> CTimerMapArray; + +struct JS_TIMER_MAPARRAY +{ +public: + JS_TIMER_MAPARRAY() + { + } + + ~JS_TIMER_MAPARRAY() + { + Reset(); + } + + void Reset() + { + for (int i=0,sz=m_Array.GetSize(); i<sz; i++) + delete m_Array.GetAt(i); + + m_Array.RemoveAll(); + } + + void SetAt(FX_UINT nIndex,CJS_Timer * pTimer) + { + int i = Find(nIndex); + + if (i>=0) + { + if (JS_TIMER_MAP * pMap = m_Array.GetAt(i)) + pMap->pTimer = pTimer; + } + else + { + if (JS_TIMER_MAP * pMap = new JS_TIMER_MAP) + { + pMap->nID = nIndex; + pMap->pTimer = pTimer; + m_Array.Add(pMap); + } + } + } + + CJS_Timer * GetAt(FX_UINT nIndex) + { + int i = Find(nIndex); + + if (i>=0) + { + if (JS_TIMER_MAP * pMap = m_Array.GetAt(i)) + return pMap->pTimer; + } + return NULL; + } + + void RemoveAt(FX_UINT nIndex) + { + int i = Find(nIndex); + + if (i>=0) + { + delete m_Array.GetAt(i); + m_Array.RemoveAt(i); + } + //To prevent potential fake memory leak reported by vc6. + if(m_Array.GetSize() == 0) + m_Array.RemoveAll(); + } + + int Find(FX_UINT nIndex) + { + for (int i=0,sz=m_Array.GetSize(); i<sz; i++) + { + if (JS_TIMER_MAP * pMap = m_Array.GetAt(i)) + { + if (pMap->nID == nIndex) + return i; + } + } + + return -1; + } + + CTimerMapArray m_Array; +}; + +static JS_TIMER_MAPARRAY m_sTimeMap; + +class CJS_Runtime; + +class CJS_Timer +{ +public: + CJS_Timer(CJS_EmbedObj * pObj,CPDFDoc_Environment* pApp): m_pEmbedObj(pObj), + m_nTimerID(0), + m_bProcessing(FALSE), + m_dwStartTime(0), + m_dwTimeOut(0), + m_dwElapse(0), + m_pRuntime(NULL), + m_nType(0), + m_pApp(pApp) + { + } + + virtual ~CJS_Timer() + { + KillJSTimer(); + } + +public: + FX_UINT SetJSTimer(FX_UINT nElapse) + { + if (m_nTimerID)KillJSTimer(); + IFX_SystemHandler* pHandler = m_pApp->GetSysHandler(); + m_nTimerID = pHandler->SetTimer(nElapse,TimerProc); + m_sTimeMap.SetAt(m_nTimerID,this); + m_dwElapse = nElapse; + return m_nTimerID; + }; + + void KillJSTimer() + { + if (m_nTimerID) + { + IFX_SystemHandler* pHandler = m_pApp->GetSysHandler(); + pHandler->KillTimer(m_nTimerID); + m_sTimeMap.RemoveAt(m_nTimerID); + m_nTimerID = 0; + } + }; + + void SetType(int nType) + { + m_nType = nType; + } + + int GetType() const + { + return m_nType; + } + + void SetStartTime(FX_DWORD dwStartTime) + { + m_dwStartTime = dwStartTime; + } + + FX_DWORD GetStartTime() const + { + return m_dwStartTime; + } + + void SetTimeOut(FX_DWORD dwTimeOut) + { + m_dwTimeOut = dwTimeOut; + } + + FX_DWORD GetTimeOut() const + { + return m_dwTimeOut; + } + + void SetRuntime(CJS_Runtime* pRuntime) + { + m_pRuntime = pRuntime; + } + + CJS_Runtime* GetRuntime() const + { + return m_pRuntime; + } + + void SetJScript(const CFX_WideString& script) + { + m_swJScript = script; + } + + CFX_WideString GetJScript() const + { + return m_swJScript; + } + + static void TimerProc(int idEvent) + { + if (CJS_Timer * pTimer = m_sTimeMap.GetAt(idEvent)) + { + if (!pTimer->m_bProcessing) + { + pTimer->m_bProcessing = TRUE; + if (pTimer->m_pEmbedObj) pTimer->m_pEmbedObj->TimerProc(pTimer); + pTimer->m_bProcessing = FALSE; + } + else + { + // TRACE(L"BUSY!\n"); + } + } + }; + +private: + FX_UINT m_nTimerID; + CJS_EmbedObj* m_pEmbedObj; + FX_BOOL m_bProcessing; + + //data + FX_DWORD m_dwStartTime; + FX_DWORD m_dwTimeOut; + FX_DWORD m_dwElapse; + CJS_Runtime* m_pRuntime; + CFX_WideString m_swJScript; + int m_nType; //0:Interval; 1:TimeOut + + CPDFDoc_Environment* m_pApp; +}; +#endif //_JS_OBJECT_H_ |