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 FPDFSDK_INCLUDE_JAVASCRIPT_APP_H_ | 7 #ifndef FPDFSDK_INCLUDE_JAVASCRIPT_APP_H_ |
8 #define FPDFSDK_INCLUDE_JAVASCRIPT_APP_H_ | 8 #define FPDFSDK_INCLUDE_JAVASCRIPT_APP_H_ |
9 | 9 |
10 #include "JS_Define.h" | 10 #include "JS_Define.h" |
11 | 11 |
12 class CJS_Runtime; | 12 class CJS_Runtime; |
13 | 13 |
14 /* ---------------------------- TimerObj ---------------------------- */ | 14 /* ---------------------------- TimerObj ---------------------------- */ |
15 | 15 |
16 class CJS_Timer; | 16 class CJS_Timer; |
17 | 17 |
18 class TimerObj : public CJS_EmbedObj | 18 class TimerObj : public CJS_EmbedObj { |
19 { | 19 public: |
20 public: | 20 TimerObj(CJS_Object* pJSObject); |
21 » TimerObj(CJS_Object* pJSObject); | 21 virtual ~TimerObj(); |
22 » virtual ~TimerObj(); | |
23 | 22 |
24 public: | 23 public: |
25 » void» » » SetTimer(CJS_Timer* pTimer); | 24 void SetTimer(CJS_Timer* pTimer); |
26 » CJS_Timer*» » GetTimer() const; | 25 CJS_Timer* GetTimer() const; |
27 | 26 |
28 private: | 27 private: |
29 » CJS_Timer*» » m_pTimer; | 28 CJS_Timer* m_pTimer; |
30 }; | 29 }; |
31 | 30 |
32 class CJS_TimerObj : public CJS_Object | 31 class CJS_TimerObj : public CJS_Object { |
33 { | 32 public: |
34 public: | 33 CJS_TimerObj(JSFXObject pObject) : CJS_Object(pObject) {} |
35 » CJS_TimerObj(JSFXObject pObject) : CJS_Object(pObject) {} | 34 virtual ~CJS_TimerObj() {} |
36 » virtual ~CJS_TimerObj(){} | |
37 | 35 |
38 » DECLARE_JS_CLASS(CJS_TimerObj); | 36 DECLARE_JS_CLASS(CJS_TimerObj); |
39 }; | 37 }; |
40 | 38 |
41 | |
42 // struct APP_MENUITEM_ARRAY; | 39 // struct APP_MENUITEM_ARRAY; |
43 // | 40 // |
44 // struct APP_MENUITEM | 41 // struct APP_MENUITEM |
45 // { | 42 // { |
46 // » APP_MENUITEM() : oSubMenu(NULL), cName(L""), cReturn(L""), bMarked(false
), bEnabled(true) | 43 // » APP_MENUITEM() : oSubMenu(NULL), cName(L""), cReturn(L""), |
| 44 // bMarked(false), bEnabled(true) |
47 // { | 45 // { |
48 // } | 46 // } |
49 // CFX_WideString cName; | 47 // CFX_WideString cName; |
50 // CFX_WideString cReturn; | 48 // CFX_WideString cReturn; |
51 // APP_MENUITEM_ARRAY* oSubMenu; | 49 // APP_MENUITEM_ARRAY* oSubMenu; |
52 // bool bMarked; | 50 // bool bMarked; |
53 // bool bEnabled; | 51 // bool bEnabled; |
54 // }; | 52 // }; |
55 | 53 |
56 // struct APP_MENUITEM_ARRAY | 54 // struct APP_MENUITEM_ARRAY |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 // | 94 // |
97 // } | 95 // } |
98 // | 96 // |
99 // CFX_WideString cwMenuItemName; | 97 // CFX_WideString cwMenuItemName; |
100 // bool bSubMenu; | 98 // bool bSubMenu; |
101 // APP_MENU_ARRAY* SubMenuItems; | 99 // APP_MENU_ARRAY* SubMenuItems; |
102 // int iSize; | 100 // int iSize; |
103 // HMENU hMenu; | 101 // HMENU hMenu; |
104 // }; | 102 // }; |
105 | 103 |
106 class app : public CJS_EmbedObj | 104 class app : public CJS_EmbedObj { |
107 { | 105 public: |
108 public: | 106 app(CJS_Object* pJSObject); |
109 app(CJS_Object * pJSObject); | 107 virtual ~app(); |
110 virtual ~app(); | 108 |
111 | 109 public: |
112 public: | 110 FX_BOOL activeDocs(IFXJS_Context* cc, |
113 FX_BOOL activeDocs(IFXJS_Context
* cc, CJS_PropValue& vp, CFX_WideString& sError); | 111 CJS_PropValue& vp, |
114 FX_BOOL calculate(IFXJS_Context*
cc, CJS_PropValue& vp, CFX_WideString& sError); | 112 CFX_WideString& sError); |
115 FX_BOOL formsVersion(IFXJS_Conte
xt* cc, CJS_PropValue& vp, CFX_WideString& sError); | 113 FX_BOOL calculate(IFXJS_Context* cc, |
116 FX_BOOL fs(IFXJS_Context* cc, CJ
S_PropValue& vp, CFX_WideString& sError); | 114 CJS_PropValue& vp, |
117 FX_BOOL fullscreen(IFXJS_Context
* cc, CJS_PropValue& vp, CFX_WideString& sError); | 115 CFX_WideString& sError); |
118 FX_BOOL language(IFXJS_Context*
cc, CJS_PropValue& vp, CFX_WideString& sError); | 116 FX_BOOL formsVersion(IFXJS_Context* cc, |
119 FX_BOOL media(IFXJS_Context* cc,
CJS_PropValue& vp, CFX_WideString& sError); | 117 CJS_PropValue& vp, |
120 FX_BOOL platform(IFXJS_Context*
cc, CJS_PropValue& vp, CFX_WideString& sError); | 118 CFX_WideString& sError); |
121 FX_BOOL runtimeHighlight(IFXJS_C
ontext* cc, CJS_PropValue& vp, CFX_WideString& sError); | 119 FX_BOOL fs(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); |
122 FX_BOOL viewerType(IFXJS_Context
* cc, CJS_PropValue& vp, CFX_WideString& sError); | 120 FX_BOOL fullscreen(IFXJS_Context* cc, |
123 FX_BOOL viewerVariation(IFXJS_Co
ntext* cc, CJS_PropValue& vp, CFX_WideString& sError); | 121 CJS_PropValue& vp, |
124 FX_BOOL viewerVersion(IFXJS_Cont
ext* cc, CJS_PropValue& vp, CFX_WideString& sError); | 122 CFX_WideString& sError); |
125 | 123 FX_BOOL language(IFXJS_Context* cc, |
126 | 124 CJS_PropValue& vp, |
127 FX_BOOL alert(IFXJS_Context* cc,
const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 125 CFX_WideString& sError); |
128 FX_BOOL beep(IFXJS_Context* cc,
const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 126 FX_BOOL media(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); |
129 FX_BOOL browseForDoc(IFXJS_Conte
xt* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 127 FX_BOOL platform(IFXJS_Context* cc, |
130 FX_BOOL clearInterval(IFXJS_Cont
ext* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 128 CJS_PropValue& vp, |
131 FX_BOOL clearTimeOut(IFXJS_Conte
xt* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 129 CFX_WideString& sError); |
132 FX_BOOL execDialog(IFXJS_Context
* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 130 FX_BOOL runtimeHighlight(IFXJS_Context* cc, |
133 FX_BOOL execMenuItem(IFXJS_Conte
xt* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 131 CJS_PropValue& vp, |
134 FX_BOOL findComponent(IFXJS_Cont
ext* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 132 CFX_WideString& sError); |
135 FX_BOOL goBack(IFXJS_Context* cc
, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 133 FX_BOOL viewerType(IFXJS_Context* cc, |
136 FX_BOOL goForward(IFXJS_Context*
cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 134 CJS_PropValue& vp, |
137 FX_BOOL launchURL(IFXJS_Context*
cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 135 CFX_WideString& sError); |
138 FX_BOOL mailMsg(IFXJS_Context* c
c, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 136 FX_BOOL viewerVariation(IFXJS_Context* cc, |
139 FX_BOOL newFDF(IFXJS_Context* cc
, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 137 CJS_PropValue& vp, |
140 FX_BOOL newDoc(IFXJS_Context* cc
, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 138 CFX_WideString& sError); |
141 FX_BOOL openDoc(IFXJS_Context* c
c, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 139 FX_BOOL viewerVersion(IFXJS_Context* cc, |
142 FX_BOOL openFDF(IFXJS_Context* c
c, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 140 CJS_PropValue& vp, |
143 FX_BOOL popUpMenuEx(IFXJS_Contex
t* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 141 CFX_WideString& sError); |
144 FX_BOOL popUpMenu(IFXJS_Context*
cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 142 |
145 FX_BOOL response(IFXJS_Context*
cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 143 FX_BOOL alert(IFXJS_Context* cc, |
146 FX_BOOL setInterval(IFXJS_Contex
t* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 144 const CJS_Parameters& params, |
147 FX_BOOL setTimeOut(IFXJS_Context
* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); | 145 CJS_Value& vRet, |
148 | 146 CFX_WideString& sError); |
149 private: | 147 FX_BOOL beep(IFXJS_Context* cc, |
150 // FX_DWORD AppGetTickCount(); | 148 const CJS_Parameters& params, |
151 void TimerProc(CJS_Timer* pTi
mer); | 149 CJS_Value& vRet, |
152 void RunJsScript(CJS_Runtime
* pRuntime,const CFX_WideString & wsScript); | 150 CFX_WideString& sError); |
153 // void ParsePopupMenuObj(APP_ME
NUITEM * ppMenuItem,JSObject * pObj); | 151 FX_BOOL browseForDoc(IFXJS_Context* cc, |
154 // void DeleteMenuItems(APP_MENU
ITEM_ARRAY * pMenuItems); | 152 const CJS_Parameters& params, |
155 // void AddMenuItem(APP_MENUITEM
_ARRAY * pMenuItems, HMENU hMenu, MENUITEMINFO MenuItemInfo); | 153 CJS_Value& vRet, |
156 // void InitMenuItemInfo(MENUITE
MINFO& MenuItemInfo); | 154 CFX_WideString& sError); |
157 // void DestroyPopUpMenu(); | 155 FX_BOOL clearInterval(IFXJS_Context* cc, |
158 | 156 const CJS_Parameters& params, |
159 // void ParserMenuItem(APP_MENU*
pHead, const CJS_Parameters¶ms); | 157 CJS_Value& vRet, |
160 // void AddItemToMenu(APP_MENU*
pHead, HMENU hMenu, MENUITEMINFO MenuItemInfo); | 158 CFX_WideString& sError); |
161 // void DestroyMenuItems(APP_MEN
U* pHead); | 159 FX_BOOL clearTimeOut(IFXJS_Context* cc, |
162 | 160 const CJS_Parameters& params, |
163 public: | 161 CJS_Value& vRet, |
164 static CFX_WideString SysPathToPDFPath(const CFX_WideString& s
OldPath); | 162 CFX_WideString& sError); |
165 | 163 FX_BOOL execDialog(IFXJS_Context* cc, |
166 private: | 164 const CJS_Parameters& params, |
167 | 165 CJS_Value& vRet, |
168 bool m_bCalculate; | 166 CFX_WideString& sError); |
169 bool m_bRuntimeHighLight; | 167 FX_BOOL execMenuItem(IFXJS_Context* cc, |
170 | 168 const CJS_Parameters& params, |
171 CFX_ArrayTemplate<CJS_Timer*> m_aTimer; | 169 CJS_Value& vRet, |
172 // APP_MENU* m_pMenuHead; | 170 CFX_WideString& sError); |
173 | 171 FX_BOOL findComponent(IFXJS_Context* cc, |
174 public: | 172 const CJS_Parameters& params, |
175 // static CReader_App* s_App; | 173 CJS_Value& vRet, |
| 174 CFX_WideString& sError); |
| 175 FX_BOOL goBack(IFXJS_Context* cc, |
| 176 const CJS_Parameters& params, |
| 177 CJS_Value& vRet, |
| 178 CFX_WideString& sError); |
| 179 FX_BOOL goForward(IFXJS_Context* cc, |
| 180 const CJS_Parameters& params, |
| 181 CJS_Value& vRet, |
| 182 CFX_WideString& sError); |
| 183 FX_BOOL launchURL(IFXJS_Context* cc, |
| 184 const CJS_Parameters& params, |
| 185 CJS_Value& vRet, |
| 186 CFX_WideString& sError); |
| 187 FX_BOOL mailMsg(IFXJS_Context* cc, |
| 188 const CJS_Parameters& params, |
| 189 CJS_Value& vRet, |
| 190 CFX_WideString& sError); |
| 191 FX_BOOL newFDF(IFXJS_Context* cc, |
| 192 const CJS_Parameters& params, |
| 193 CJS_Value& vRet, |
| 194 CFX_WideString& sError); |
| 195 FX_BOOL newDoc(IFXJS_Context* cc, |
| 196 const CJS_Parameters& params, |
| 197 CJS_Value& vRet, |
| 198 CFX_WideString& sError); |
| 199 FX_BOOL openDoc(IFXJS_Context* cc, |
| 200 const CJS_Parameters& params, |
| 201 CJS_Value& vRet, |
| 202 CFX_WideString& sError); |
| 203 FX_BOOL openFDF(IFXJS_Context* cc, |
| 204 const CJS_Parameters& params, |
| 205 CJS_Value& vRet, |
| 206 CFX_WideString& sError); |
| 207 FX_BOOL popUpMenuEx(IFXJS_Context* cc, |
| 208 const CJS_Parameters& params, |
| 209 CJS_Value& vRet, |
| 210 CFX_WideString& sError); |
| 211 FX_BOOL popUpMenu(IFXJS_Context* cc, |
| 212 const CJS_Parameters& params, |
| 213 CJS_Value& vRet, |
| 214 CFX_WideString& sError); |
| 215 FX_BOOL response(IFXJS_Context* cc, |
| 216 const CJS_Parameters& params, |
| 217 CJS_Value& vRet, |
| 218 CFX_WideString& sError); |
| 219 FX_BOOL setInterval(IFXJS_Context* cc, |
| 220 const CJS_Parameters& params, |
| 221 CJS_Value& vRet, |
| 222 CFX_WideString& sError); |
| 223 FX_BOOL setTimeOut(IFXJS_Context* cc, |
| 224 const CJS_Parameters& params, |
| 225 CJS_Value& vRet, |
| 226 CFX_WideString& sError); |
| 227 |
| 228 private: |
| 229 // FX_DWORD AppGetTickCount(); |
| 230 void TimerProc(CJS_Timer* pTimer); |
| 231 void RunJsScript(CJS_Runtime* pRuntime, const CFX_WideString& wsScript); |
| 232 // void ParsePopupMenuObj(APP_ME
NUITEM * |
| 233 //ppMenuItem,JSObject * pObj); |
| 234 // void DeleteMenuItems(APP_MENU
ITEM_ARRAY * |
| 235 //pMenuItems); |
| 236 // void AddMenuItem(APP_MENUITEM
_ARRAY * pMenuItems, HMENU |
| 237 // hMenu, MENUITEMINFO MenuItemInfo); |
| 238 // void InitMenuItemInfo(MENUITE
MINFO& |
| 239 // MenuItemInfo); |
| 240 // void DestroyPopUpMenu(); |
| 241 |
| 242 // void ParserMenuItem(APP_MENU*
pHead, const |
| 243 // CJS_Parameters¶ms); |
| 244 // void AddItemToMenu(APP_MENU*
pHead, HMENU hMenu, |
| 245 // MENUITEMINFO MenuItemInfo); |
| 246 // void DestroyMenuItems(APP_MEN
U* |
| 247 // pHead); |
| 248 |
| 249 public: |
| 250 static CFX_WideString SysPathToPDFPath(const CFX_WideString& sOldPath); |
| 251 |
| 252 private: |
| 253 bool m_bCalculate; |
| 254 bool m_bRuntimeHighLight; |
| 255 |
| 256 CFX_ArrayTemplate<CJS_Timer*> m_aTimer; |
| 257 // APP_MENU* m_pMenuHead; |
| 258 |
| 259 public: |
| 260 // static CReader_App* s_App; |
176 }; | 261 }; |
177 | 262 |
178 class CJS_App : public CJS_Object | 263 class CJS_App : public CJS_Object { |
179 { | 264 public: |
180 public: | 265 CJS_App(JSFXObject pObject) : CJS_Object(pObject){}; |
181 » CJS_App(JSFXObject pObject) : CJS_Object(pObject) {}; | 266 virtual ~CJS_App(void){}; |
182 » virtual ~CJS_App(void){}; | 267 |
183 | 268 DECLARE_JS_CLASS(CJS_App); |
184 » DECLARE_JS_CLASS(CJS_App); | 269 |
185 | 270 JS_STATIC_PROP(activeDocs, app); |
186 » JS_STATIC_PROP(activeDocs, app); | 271 JS_STATIC_PROP(calculate, app); |
187 » JS_STATIC_PROP(calculate, app); | 272 JS_STATIC_PROP(formsVersion, app); |
188 » JS_STATIC_PROP(formsVersion, app); | 273 JS_STATIC_PROP(fs, app); |
189 » JS_STATIC_PROP(fs, app); | 274 JS_STATIC_PROP(fullscreen, app); |
190 » JS_STATIC_PROP(fullscreen, app); | 275 JS_STATIC_PROP(language, app); |
191 » JS_STATIC_PROP(language, app); | 276 JS_STATIC_PROP(media, app); |
192 » JS_STATIC_PROP(media, app); | 277 JS_STATIC_PROP(platform, app); |
193 » JS_STATIC_PROP(platform, app); | 278 JS_STATIC_PROP(runtimeHighlight, app); |
194 » JS_STATIC_PROP(runtimeHighlight, app); | 279 JS_STATIC_PROP(viewerType, app); |
195 » JS_STATIC_PROP(viewerType, app); | 280 JS_STATIC_PROP(viewerVariation, app); |
196 » JS_STATIC_PROP(viewerVariation, app); | 281 JS_STATIC_PROP(viewerVersion, app); |
197 » JS_STATIC_PROP(viewerVersion, app); | 282 |
198 | 283 JS_STATIC_METHOD(alert, app); |
199 » JS_STATIC_METHOD(alert, app); | 284 JS_STATIC_METHOD(beep, app); |
200 » JS_STATIC_METHOD(beep, app); | 285 JS_STATIC_METHOD(browseForDoc, app); |
201 » JS_STATIC_METHOD(browseForDoc, app); | 286 JS_STATIC_METHOD(clearInterval, app); |
202 » JS_STATIC_METHOD(clearInterval, app); | 287 JS_STATIC_METHOD(clearTimeOut, app); |
203 » JS_STATIC_METHOD(clearTimeOut, app); | 288 JS_STATIC_METHOD(execDialog, app); |
204 » JS_STATIC_METHOD(execDialog, app); | 289 JS_STATIC_METHOD(execMenuItem, app); |
205 » JS_STATIC_METHOD(execMenuItem, app); | 290 JS_STATIC_METHOD(findComponent, app); |
206 » JS_STATIC_METHOD(findComponent, app); | 291 JS_STATIC_METHOD(goBack, app); |
207 » JS_STATIC_METHOD(goBack, app); | 292 JS_STATIC_METHOD(goForward, app); |
208 » JS_STATIC_METHOD(goForward, app); | 293 JS_STATIC_METHOD(launchURL, app); |
209 » JS_STATIC_METHOD(launchURL, app); | 294 JS_STATIC_METHOD(mailMsg, app); |
210 » JS_STATIC_METHOD(mailMsg, app); | 295 JS_STATIC_METHOD(newFDF, app); |
211 » JS_STATIC_METHOD(newFDF, app); | 296 JS_STATIC_METHOD(newDoc, app); |
212 » JS_STATIC_METHOD(newDoc, app); | 297 JS_STATIC_METHOD(openDoc, app); |
213 » JS_STATIC_METHOD(openDoc, app); | 298 JS_STATIC_METHOD(openFDF, app); |
214 » JS_STATIC_METHOD(openFDF, app); | 299 JS_STATIC_METHOD(popUpMenuEx, app); |
215 » JS_STATIC_METHOD(popUpMenuEx, app); | 300 JS_STATIC_METHOD(popUpMenu, app); |
216 » JS_STATIC_METHOD(popUpMenu, app); | 301 JS_STATIC_METHOD(response, app); |
217 » JS_STATIC_METHOD(response, app); | 302 JS_STATIC_METHOD(setInterval, app); |
218 » JS_STATIC_METHOD(setInterval, app); | 303 JS_STATIC_METHOD(setTimeOut, app); |
219 » JS_STATIC_METHOD(setTimeOut, app); | |
220 | |
221 }; | 304 }; |
222 | 305 |
223 #endif // FPDFSDK_INCLUDE_JAVASCRIPT_APP_H_ | 306 #endif // FPDFSDK_INCLUDE_JAVASCRIPT_APP_H_ |
OLD | NEW |