| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef _JS_OBJECT_H_ | 7 #ifndef _JS_OBJECT_H_ |
| 8 #define _JS_OBJECT_H_ | 8 #define _JS_OBJECT_H_ |
| 9 | 9 |
| 10 class CJS_Object; | 10 class CJS_Object; |
| 11 class CJS_Timer; | 11 class CJS_Timer; |
| 12 class CJS_Context; | 12 class CJS_Context; |
| 13 | 13 |
| 14 class CJS_EmbedObj : public CFX_Object | 14 class CJS_EmbedObj : public CFX_Object |
| 15 { | 15 { |
| 16 public: | 16 public: |
| 17 CJS_EmbedObj(CJS_Object* pJSObject); | 17 CJS_EmbedObj(CJS_Object* pJSObject); |
| 18 virtual ~CJS_EmbedObj(); | 18 virtual ~CJS_EmbedObj(); |
| 19 | 19 |
| 20 virtual void TimerProc(CJS_Timer* pTimer){}; | 20 virtual void TimerProc(CJS_Timer* pTimer){}; |
| 21 | 21 |
| 22 CJS_Timer* BeginTimer(CPDFDoc_Envir
onment * pApp, FX_UINT nElapse); | 22 CJS_Timer* BeginTimer(CPDFDoc_Envir
onment * pApp, FX_UINT nElapse); |
| 23 void EndTimer(CJS_Timer* pTim
er); | 23 void EndTimer(CJS_Timer* pTim
er); |
| 24 | 24 |
| 25 CJS_Object* GetJSObject(){return m_p
JSObject;}; | 25 CJS_Object* GetJSObject(){return m_p
JSObject;}; |
| 26 operator CJS_Object* (){return m_
pJSObject;}; | 26 operator CJS_Object* (){return m_
pJSObject;}; |
| 27 | 27 |
| 28 CPDFSDK_PageView * JSGetPageView(IFXJS_Context* cc)
; | 28 CPDFSDK_PageView * JSGetPageView(IFXJS_Context* cc)
; |
| 29 int MsgBox(CPDFDoc_E
nvironment * pApp, CPDFSDK_PageView* pPageView, FX_LPCWSTR swMsg, FX_LPCWSTR swT
itle = NULL, FX_UINT nType = 0, FX_UINT nIcon = 0); | 29 int MsgBox(CPDFDoc_E
nvironment * pApp, CPDFSDK_PageView* pPageView, FX_LPCWSTR swMsg, FX_LPCWSTR swT
itle = NULL, FX_UINT nType = 0, FX_UINT nIcon = 0); |
| 30 void Alert(CJS_Context* pCont
ext, FX_LPCWSTR swMsg); | 30 void Alert(CJS_Context* pCont
ext, FX_LPCWSTR swMsg); |
| 31 FX_BOOL IsSafeMode(IFXJS_Context
* cc); | |
| 32 | 31 |
| 33 protected: | 32 protected: |
| 34 | |
| 35 CJS_Object* m_pJSObject; | 33 CJS_Object* m_pJSObject; |
| 36 }; | 34 }; |
| 37 | 35 |
| 38 class CJS_Object : public CFX_Object | 36 class CJS_Object : public CFX_Object |
| 39 { | 37 { |
| 40 public: | 38 public: |
| 41 CJS_Object(JSFXObject pObject); | 39 CJS_Object(JSFXObject pObject); |
| 42 virtual ~CJS_Object(void); | 40 virtual ~CJS_Object(void); |
| 43 » | 41 |
| 44 void MakeWeak(); | 42 void MakeWeak(); |
| 45 | 43 |
| 46 virtual FX_BOOL IsType(FX_LPCSTR sClassName){ret
urn TRUE;}; | 44 virtual FX_BOOL IsType(FX_LPCSTR sClassName){ret
urn TRUE;}; |
| 47 virtual CFX_ByteString GetClassName(){return "";}; | 45 virtual CFX_ByteString GetClassName(){return "";}; |
| 48 | 46 |
| 49 virtual FX_BOOL InitInstance(IFXJS_Context* cc){
return TRUE;}; | 47 virtual FX_BOOL InitInstance(IFXJS_Context* cc){
return TRUE;}; |
| 50 virtual FX_BOOL ExitInstance(){return TRUE;}; | 48 virtual FX_BOOL ExitInstance(){return TRUE;}; |
| 51 | 49 |
| 52 operator JSFXObject () {return v8
::Local<v8::Object>::New(m_pIsolate, m_pObject);} | 50 operator JSFXObject () {return v8
::Local<v8::Object>::New(m_pIsolate, m_pObject);} |
| 53 operator CJS_EmbedObj* (){return
m_pEmbedObj;}; | 51 operator CJS_EmbedObj* (){return
m_pEmbedObj;}; |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 { | 132 { |
| 135 delete m_Array.GetAt(i); | 133 delete m_Array.GetAt(i); |
| 136 m_Array.RemoveAt(i); | 134 m_Array.RemoveAt(i); |
| 137 } | 135 } |
| 138 //To prevent potential fake memory leak reported by vc6. | 136 //To prevent potential fake memory leak reported by vc6. |
| 139 if(m_Array.GetSize() == 0) | 137 if(m_Array.GetSize() == 0) |
| 140 m_Array.RemoveAll(); | 138 m_Array.RemoveAll(); |
| 141 } | 139 } |
| 142 | 140 |
| 143 int Find(FX_UINT nIndex) | 141 int Find(FX_UINT nIndex) |
| 144 » {» » | 142 » { |
| 145 for (int i=0,sz=m_Array.GetSize(); i<sz; i++) | 143 for (int i=0,sz=m_Array.GetSize(); i<sz; i++) |
| 146 » » {» » » | 144 » » { |
| 147 if (JS_TIMER_MAP * pMap = m_Array.GetAt(i)) | 145 if (JS_TIMER_MAP * pMap = m_Array.GetAt(i)) |
| 148 { | 146 { |
| 149 if (pMap->nID == nIndex) | 147 if (pMap->nID == nIndex) |
| 150 return i; | 148 return i; |
| 151 } | 149 } |
| 152 } | 150 } |
| 153 | 151 |
| 154 return -1; | 152 return -1; |
| 155 } | 153 } |
| 156 | 154 |
| 157 CTimerMapArray m_Array; | 155 CTimerMapArray m_Array; |
| 158 }; | 156 }; |
| 159 | 157 |
| 160 JS_TIMER_MAPARRAY& GetTimeMap(); | 158 JS_TIMER_MAPARRAY& GetTimeMap(); |
| 161 | 159 |
| 162 class CJS_Runtime; | 160 class CJS_Runtime; |
| 163 | 161 |
| 164 class CJS_Timer | 162 class CJS_Timer |
| 165 { | 163 { |
| 166 public: | 164 public: |
| 167 CJS_Timer(CJS_EmbedObj * pObj, CPDFDoc_Environment* pApp): | 165 CJS_Timer(CJS_EmbedObj * pObj, CPDFDoc_Environment* pApp): |
| 168 » » m_nTimerID(0), | 166 » » m_nTimerID(0), |
| 169 » » m_pEmbedObj(pObj), | 167 » » m_pEmbedObj(pObj), |
| 170 m_bProcessing(FALSE), | 168 m_bProcessing(FALSE), |
| 171 m_dwStartTime(0), | 169 m_dwStartTime(0), |
| 172 m_dwTimeOut(0), | 170 m_dwTimeOut(0), |
| 173 m_dwElapse(0), | 171 m_dwElapse(0), |
| 174 m_pRuntime(NULL), | 172 m_pRuntime(NULL), |
| 175 m_nType(0), | 173 m_nType(0), |
| 176 m_pApp(pApp) | 174 m_pApp(pApp) |
| 177 { | 175 { |
| 178 } | 176 } |
| 179 » | 177 |
| 180 virtual ~CJS_Timer() | 178 virtual ~CJS_Timer() |
| 181 { | 179 { |
| 182 KillJSTimer(); | 180 KillJSTimer(); |
| 183 } | 181 } |
| 184 | 182 |
| 185 public: | 183 public: |
| 186 FX_UINT SetJSTimer(FX_UINT nElapse) | 184 FX_UINT SetJSTimer(FX_UINT nElapse) |
| 187 » {» | 185 » { |
| 188 if (m_nTimerID)KillJSTimer(); | 186 if (m_nTimerID)KillJSTimer(); |
| 189 IFX_SystemHandler* pHandler = m_pApp->GetSysHandler(); | 187 IFX_SystemHandler* pHandler = m_pApp->GetSysHandler(); |
| 190 m_nTimerID = pHandler->SetTimer(nElapse,TimerProc); | 188 m_nTimerID = pHandler->SetTimer(nElapse,TimerProc); |
| 191 GetTimeMap().SetAt(m_nTimerID,this); | 189 GetTimeMap().SetAt(m_nTimerID,this); |
| 192 m_dwElapse = nElapse; | 190 m_dwElapse = nElapse; |
| 193 return m_nTimerID; | 191 return m_nTimerID; |
| 194 }; | 192 }; |
| 195 | 193 |
| 196 void KillJSTimer() | 194 void KillJSTimer() |
| 197 { | 195 { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 | 234 |
| 237 FX_DWORD GetTimeOut() const | 235 FX_DWORD GetTimeOut() const |
| 238 { | 236 { |
| 239 return m_dwTimeOut; | 237 return m_dwTimeOut; |
| 240 } | 238 } |
| 241 | 239 |
| 242 void SetRuntime(CJS_Runtime* pRuntime) | 240 void SetRuntime(CJS_Runtime* pRuntime) |
| 243 { | 241 { |
| 244 m_pRuntime = pRuntime; | 242 m_pRuntime = pRuntime; |
| 245 } | 243 } |
| 246 » | 244 |
| 247 CJS_Runtime* GetRuntime() const | 245 CJS_Runtime* GetRuntime() const |
| 248 { | 246 { |
| 249 return m_pRuntime; | 247 return m_pRuntime; |
| 250 } | 248 } |
| 251 | 249 |
| 252 void SetJScript(const CFX_WideString& script) | 250 void SetJScript(const CFX_WideString& script) |
| 253 { | 251 { |
| 254 m_swJScript = script; | 252 m_swJScript = script; |
| 255 } | 253 } |
| 256 | 254 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 270 pTimer->m_bProcessing = FALSE; | 268 pTimer->m_bProcessing = FALSE; |
| 271 } | 269 } |
| 272 else | 270 else |
| 273 { | 271 { |
| 274 // TRACE(L"BUSY!\n"); | 272 // TRACE(L"BUSY!\n"); |
| 275 } | 273 } |
| 276 } | 274 } |
| 277 }; | 275 }; |
| 278 | 276 |
| 279 private: | 277 private: |
| 280 » FX_UINT»» » » » » » m_nTimerID;» | 278 » FX_UINT»» » » » » » m_nTimerID; |
| 281 CJS_EmbedObj* m_pEmbedObj; | 279 CJS_EmbedObj* m_pEmbedObj; |
| 282 FX_BOOL m_bProcessing; | 280 FX_BOOL m_bProcessing; |
| 283 | 281 |
| 284 //data | 282 //data |
| 285 FX_DWORD m_dwStartTime; | 283 FX_DWORD m_dwStartTime; |
| 286 FX_DWORD m_dwTimeOut; | 284 FX_DWORD m_dwTimeOut; |
| 287 FX_DWORD m_dwElapse; | 285 FX_DWORD m_dwElapse; |
| 288 CJS_Runtime* m_pRuntime; | 286 CJS_Runtime* m_pRuntime; |
| 289 CFX_WideString m_swJScript; | 287 CFX_WideString m_swJScript; |
| 290 int m_nType;
//0:Interval; 1:TimeOut | 288 int m_nType;
//0:Interval; 1:TimeOut |
| 291 | 289 |
| 292 CPDFDoc_Environment* m_pApp; | 290 CPDFDoc_Environment* m_pApp; |
| 293 }; | 291 }; |
| 294 #endif //_JS_OBJECT_H_ | 292 #endif //_JS_OBJECT_H_ |
| OLD | NEW |