1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
12 /* ---------------------------- TimerObj ---------------------------- */
16 class TimerObj : public CJS_EmbedObj
19 TimerObj(CJS_Object* pJSObject);
23 void SetTimer(CJS_Timer* pTimer);
24 CJS_Timer* GetTimer() const;
30 class CJS_TimerObj : public CJS_Object
33 CJS_TimerObj(JSFXObject pObject) : CJS_Object(pObject) {}
34 virtual ~CJS_TimerObj(){}
36 DECLARE_JS_CLASS(CJS_TimerObj);
40 // struct APP_MENUITEM_ARRAY;
42 // struct APP_MENUITEM
44 // APP_MENUITEM() : oSubMenu(NULL), cName(L""), cReturn(L""), bMarked(false), bEnabled(true)
47 // CFX_WideString cName;
48 // CFX_WideString cReturn;
49 // APP_MENUITEM_ARRAY* oSubMenu;
54 // struct APP_MENUITEM_ARRAY
56 // APP_MENUITEM_ARRAY() : m_hMenu(NULL), pContents(NULL), nSize(0)
60 // APP_MENUITEM * pContents;
66 // struct APP_MENU_ARRAY
73 // APP_MENU* pContent;
78 // APP_MENU():bSubMenu(false),
79 // SubMenuItems(NULL),
80 // cwMenuItemName(L""),
87 // APP_MENU(CFX_WideString &cwName):
88 // cwMenuItemName(cwName),
90 // SubMenuItems(NULL),
97 // CFX_WideString cwMenuItemName;
99 // APP_MENU_ARRAY* SubMenuItems;
104 class app : public CJS_EmbedObj
107 app(CJS_Object * pJSObject);
111 FX_BOOL activeDocs(OBJ_PROP_PARAMS);
112 FX_BOOL calculate(OBJ_PROP_PARAMS);
113 FX_BOOL formsVersion(OBJ_PROP_PARAMS);
114 FX_BOOL fs(OBJ_PROP_PARAMS);
115 FX_BOOL fullscreen(OBJ_PROP_PARAMS);
116 FX_BOOL language(OBJ_PROP_PARAMS);
117 FX_BOOL media(OBJ_PROP_PARAMS);
118 FX_BOOL platform(OBJ_PROP_PARAMS);
119 FX_BOOL runtimeHighlight(OBJ_PROP_PARAMS);
120 FX_BOOL viewerType(OBJ_PROP_PARAMS);
121 FX_BOOL viewerVariation(OBJ_PROP_PARAMS);
122 FX_BOOL viewerVersion(OBJ_PROP_PARAMS);
125 FX_BOOL alert(OBJ_METHOD_PARAMS);
126 FX_BOOL beep(OBJ_METHOD_PARAMS);
127 FX_BOOL browseForDoc(OBJ_METHOD_PARAMS);
128 FX_BOOL clearInterval(OBJ_METHOD_PARAMS);
129 FX_BOOL clearTimeOut(OBJ_METHOD_PARAMS);
130 FX_BOOL execDialog(OBJ_METHOD_PARAMS);
131 FX_BOOL execMenuItem(OBJ_METHOD_PARAMS);
132 FX_BOOL findComponent(OBJ_METHOD_PARAMS);
133 FX_BOOL goBack(OBJ_METHOD_PARAMS);
134 FX_BOOL goForward(OBJ_METHOD_PARAMS);
135 FX_BOOL launchURL(OBJ_METHOD_PARAMS);
136 FX_BOOL mailMsg(OBJ_METHOD_PARAMS);
137 FX_BOOL newFDF(OBJ_METHOD_PARAMS);
138 FX_BOOL newDoc(OBJ_METHOD_PARAMS);
139 FX_BOOL openDoc(OBJ_METHOD_PARAMS);
140 FX_BOOL openFDF(OBJ_METHOD_PARAMS);
141 FX_BOOL popUpMenuEx(OBJ_METHOD_PARAMS);
142 FX_BOOL popUpMenu(OBJ_METHOD_PARAMS);
143 FX_BOOL response(OBJ_METHOD_PARAMS);
144 FX_BOOL setInterval(OBJ_METHOD_PARAMS);
145 FX_BOOL setTimeOut(OBJ_METHOD_PARAMS);
148 // FX_DWORD AppGetTickCount();
149 void TimerProc(CJS_Timer* pTimer);
150 void RunJsScript(CJS_Runtime * pRuntime,const CFX_WideString & wsScript);
151 // void ParsePopupMenuObj(APP_MENUITEM * ppMenuItem,JSObject * pObj);
152 // void DeleteMenuItems(APP_MENUITEM_ARRAY * pMenuItems);
153 // void AddMenuItem(APP_MENUITEM_ARRAY * pMenuItems, HMENU hMenu, MENUITEMINFO MenuItemInfo);
154 // void InitMenuItemInfo(MENUITEMINFO& MenuItemInfo);
155 // void DestroyPopUpMenu();
157 // void ParserMenuItem(APP_MENU* pHead, const CJS_Parameters¶ms);
158 // void AddItemToMenu(APP_MENU* pHead, HMENU hMenu, MENUITEMINFO MenuItemInfo);
159 // void DestroyMenuItems(APP_MENU* pHead);
162 static CFX_WideString SysPathToPDFPath(const CFX_WideString& sOldPath);
163 static CFX_WideString PDFPathToSysPath(const CFX_WideString& sOldPath);
164 static CFX_WideString RelativePathToSysPath(const CFX_WideString& sOldPath, const CFX_WideString& sFilePath);
170 CJS_Runtime* m_pRuntime;
171 bool m_bRuntimeHighLight;
173 CFX_ArrayTemplate<CJS_Timer*> m_aTimer;
174 // APP_MENU* m_pMenuHead;
177 // static CReader_App* s_App;
180 class CJS_App : public CJS_Object
183 CJS_App(JSFXObject pObject) : CJS_Object(pObject) {};
184 virtual ~CJS_App(void){};
186 DECLARE_JS_CLASS(CJS_App);
188 JS_STATIC_PROP(activeDocs, app);
189 JS_STATIC_PROP(calculate, app);
190 JS_STATIC_PROP(formsVersion, app);
191 JS_STATIC_PROP(fs, app);
192 JS_STATIC_PROP(fullscreen, app);
193 JS_STATIC_PROP(language, app);
194 JS_STATIC_PROP(media, app);
195 JS_STATIC_PROP(platform, app);
196 JS_STATIC_PROP(runtimeHighlight, app);
197 JS_STATIC_PROP(viewerType, app);
198 JS_STATIC_PROP(viewerVariation, app);
199 JS_STATIC_PROP(viewerVersion, app);
201 JS_STATIC_METHOD(alert, app);
202 JS_STATIC_METHOD(beep, app);
203 JS_STATIC_METHOD(browseForDoc, app);
204 JS_STATIC_METHOD(clearInterval, app);
205 JS_STATIC_METHOD(clearTimeOut, app);
206 JS_STATIC_METHOD(execDialog, app);
207 JS_STATIC_METHOD(execMenuItem, app);
208 JS_STATIC_METHOD(findComponent, app);
209 JS_STATIC_METHOD(goBack, app);
210 JS_STATIC_METHOD(goForward, app);
211 JS_STATIC_METHOD(launchURL, app);
212 JS_STATIC_METHOD(mailMsg, app);
213 JS_STATIC_METHOD(newFDF, app);
214 JS_STATIC_METHOD(newDoc, app);
215 JS_STATIC_METHOD(openDoc, app);
216 JS_STATIC_METHOD(openFDF, app);
217 JS_STATIC_METHOD(popUpMenuEx, app);
218 JS_STATIC_METHOD(popUpMenu, app);
219 JS_STATIC_METHOD(response, app);
220 JS_STATIC_METHOD(setInterval, app);
221 JS_STATIC_METHOD(setTimeOut, app);