Index: fpdfsdk/include/javascript/JS_Object.h |
diff --git a/fpdfsdk/include/javascript/JS_Object.h b/fpdfsdk/include/javascript/JS_Object.h |
index 3898d184d1811031414ca004bcab99d16a37c606..fd63d98cbc1e6f1a0c0d78fb9f48a10211a2a1e4 100644 |
--- a/fpdfsdk/include/javascript/JS_Object.h |
+++ b/fpdfsdk/include/javascript/JS_Object.h |
@@ -7,8 +7,8 @@ |
#ifndef FPDFSDK_INCLUDE_JAVASCRIPT_JS_OBJECT_H_ |
#define FPDFSDK_INCLUDE_JAVASCRIPT_JS_OBJECT_H_ |
-#include "../fsdk_define.h" // For FX_UINT |
-#include "../fsdk_mgr.h" // For CPDFDoc_Environment |
+#include "../fsdk_define.h" // For FX_UINT |
+#include "../fsdk_mgr.h" // For CPDFDoc_Environment |
#include "../fx_systemhandler.h" // For IFX_SystemHandler |
#include "../jsapi/fxjs_v8.h" |
@@ -17,279 +17,228 @@ class CJS_Object; |
class CJS_Timer; |
class CJS_Context; |
-class CJS_EmbedObj |
-{ |
-public: |
- CJS_EmbedObj(CJS_Object* pJSObject); |
- virtual ~CJS_EmbedObj(); |
+class CJS_EmbedObj { |
+ public: |
+ CJS_EmbedObj(CJS_Object* pJSObject); |
+ virtual ~CJS_EmbedObj(); |
- virtual void TimerProc(CJS_Timer* pTimer){}; |
+ virtual void TimerProc(CJS_Timer* pTimer){}; |
- CJS_Timer* BeginTimer(CPDFDoc_Environment * pApp, FX_UINT nElapse); |
- void EndTimer(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;}; |
+ 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, const FX_WCHAR* swMsg, const FX_WCHAR* swTitle = NULL, FX_UINT nType = 0, FX_UINT nIcon = 0); |
- void Alert(CJS_Context* pContext, const FX_WCHAR* swMsg); |
+ CPDFSDK_PageView* JSGetPageView(IFXJS_Context* cc); |
+ int MsgBox(CPDFDoc_Environment* pApp, |
+ CPDFSDK_PageView* pPageView, |
+ const FX_WCHAR* swMsg, |
+ const FX_WCHAR* swTitle = NULL, |
+ FX_UINT nType = 0, |
+ FX_UINT nIcon = 0); |
+ void Alert(CJS_Context* pContext, const FX_WCHAR* swMsg); |
-protected: |
- CJS_Object* m_pJSObject; |
+ protected: |
+ CJS_Object* m_pJSObject; |
}; |
-class CJS_Object |
-{ |
-public: |
- CJS_Object(JSFXObject pObject); |
- virtual ~CJS_Object(void); |
+class CJS_Object { |
+ public: |
+ CJS_Object(JSFXObject pObject); |
+ virtual ~CJS_Object(void); |
- void MakeWeak(); |
- void Dispose(); |
+ void MakeWeak(); |
+ void Dispose(); |
- virtual FX_BOOL IsType(const FX_CHAR* sClassName){return TRUE;}; |
- virtual CFX_ByteString GetClassName(){return "";}; |
+ virtual FX_BOOL IsType(const FX_CHAR* sClassName) { return TRUE; }; |
+ virtual CFX_ByteString GetClassName() { return ""; }; |
- virtual FX_BOOL InitInstance(IFXJS_Context* cc){return TRUE;}; |
- virtual FX_BOOL ExitInstance(){return TRUE;}; |
+ 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;}; |
+ 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;}; |
+ 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, const FX_WCHAR* swMsg, const FX_WCHAR* swTitle = NULL, FX_UINT nType = 0,FX_UINT nIcon = 0); |
- static void Alert(CJS_Context* pContext, const FX_WCHAR* swMsg); |
+ static CPDFSDK_PageView* JSGetPageView(IFXJS_Context* cc); |
+ static int MsgBox(CPDFDoc_Environment* pApp, |
+ CPDFSDK_PageView* pPageView, |
+ const FX_WCHAR* swMsg, |
+ const FX_WCHAR* swTitle = NULL, |
+ FX_UINT nType = 0, |
+ FX_UINT nIcon = 0); |
+ static void Alert(CJS_Context* pContext, const FX_WCHAR* swMsg); |
- v8::Isolate* GetIsolate() {return m_pIsolate;} |
-protected: |
- CJS_EmbedObj * m_pEmbedObj; |
- v8::Global<v8::Object> m_pObject; |
- v8::Isolate* m_pIsolate; |
+ v8::Isolate* GetIsolate() { return m_pIsolate; } |
+ |
+ protected: |
+ CJS_EmbedObj* m_pEmbedObj; |
+ v8::Global<v8::Object> m_pObject; |
+ v8::Isolate* m_pIsolate; |
}; |
-struct JS_TIMER_MAP |
-{ |
- FX_UINT nID; |
- CJS_Timer * pTimer; |
+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; |
+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; |
}; |
JS_TIMER_MAPARRAY& GetTimeMap(); |
class CJS_Runtime; |
-class CJS_Timer |
-{ |
-public: |
- CJS_Timer(CJS_EmbedObj * pObj,CPDFDoc_Environment* pApp): |
- m_nTimerID(0), |
- m_pEmbedObj(pObj), |
- 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); |
- GetTimeMap().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); |
- GetTimeMap().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 = GetTimeMap().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; |
+class CJS_Timer { |
+ public: |
+ CJS_Timer(CJS_EmbedObj* pObj, CPDFDoc_Environment* pApp) |
+ : m_nTimerID(0), |
+ m_pEmbedObj(pObj), |
+ 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); |
+ GetTimeMap().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); |
+ GetTimeMap().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 = GetTimeMap().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 // FPDFSDK_INCLUDE_JAVASCRIPT_JS_OBJECT_H_ |