1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved.
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file.
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _APP_H_
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _APP_H_
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CJS_Runtime;
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* ---------------------------- TimerObj ---------------------------- */
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CJS_Timer;
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass TimerObj : public CJS_EmbedObj
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	TimerObj(CJS_Object* pJSObject);
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual ~TimerObj();
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void			SetTimer(CJS_Timer* pTimer);
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CJS_Timer*		GetTimer() const;
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate:
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CJS_Timer*		m_pTimer;
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CJS_TimerObj : public CJS_Object
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CJS_TimerObj(JSFXObject pObject) : CJS_Object(pObject) {}
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual ~CJS_TimerObj(){}
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	DECLARE_JS_CLASS(CJS_TimerObj);
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// struct APP_MENUITEM_ARRAY;
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// struct APP_MENUITEM
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// {
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENUITEM() : oSubMenu(NULL), cName(L""), cReturn(L""), bMarked(false), bEnabled(true)
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	{
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	}
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	CFX_WideString cName;
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	CFX_WideString cReturn;
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENUITEM_ARRAY* oSubMenu;
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	bool bMarked;
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	bool bEnabled;
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// };
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// struct APP_MENUITEM_ARRAY
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// {
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENUITEM_ARRAY() : m_hMenu(NULL), pContents(NULL), nSize(0)
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	{
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	}
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENUITEM * pContents;
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	HMENU m_hMenu;
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	int	nSize;
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// };
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// struct APP_MENU;
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// struct APP_MENU_ARRAY
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// {
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENU_ARRAY():
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//     pContent(NULL)
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	{
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	}
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENU* pContent;
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// };
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// struct APP_MENU
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// {
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENU():bSubMenu(false),
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	SubMenuItems(NULL),
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	cwMenuItemName(L""),
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	hMenu(NULL),
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	iSize(0)
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	{
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	}
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENU(CFX_WideString &cwName):
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	cwMenuItemName(cwName),
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	bSubMenu(false),
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	SubMenuItems(NULL),
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	hMenu(NULL),
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	iSize(0)
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	{
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	}
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	CFX_WideString cwMenuItemName;
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	bool bSubMenu;
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	APP_MENU_ARRAY* SubMenuItems;
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	int iSize;
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	HMENU hMenu;
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// };
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass app : public CJS_EmbedObj
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	app(CJS_Object * pJSObject);
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual ~app();
109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						activeDocs(OBJ_PROP_PARAMS);
112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						calculate(OBJ_PROP_PARAMS);
113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						formsVersion(OBJ_PROP_PARAMS);
114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						fs(OBJ_PROP_PARAMS);
115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						fullscreen(OBJ_PROP_PARAMS);
116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						language(OBJ_PROP_PARAMS);
117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						media(OBJ_PROP_PARAMS);
118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						platform(OBJ_PROP_PARAMS);
119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						runtimeHighlight(OBJ_PROP_PARAMS);
120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						viewerType(OBJ_PROP_PARAMS);
121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						viewerVariation(OBJ_PROP_PARAMS);
122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						viewerVersion(OBJ_PROP_PARAMS);
123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						alert(OBJ_METHOD_PARAMS);
126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						beep(OBJ_METHOD_PARAMS);
127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						browseForDoc(OBJ_METHOD_PARAMS);
128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						clearInterval(OBJ_METHOD_PARAMS);
129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						clearTimeOut(OBJ_METHOD_PARAMS);
130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						execDialog(OBJ_METHOD_PARAMS);
131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						execMenuItem(OBJ_METHOD_PARAMS);
132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						findComponent(OBJ_METHOD_PARAMS);
133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						goBack(OBJ_METHOD_PARAMS);
134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						goForward(OBJ_METHOD_PARAMS);
135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						launchURL(OBJ_METHOD_PARAMS);
136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						mailMsg(OBJ_METHOD_PARAMS);
137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						newFDF(OBJ_METHOD_PARAMS);
138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						newDoc(OBJ_METHOD_PARAMS);
139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						openDoc(OBJ_METHOD_PARAMS);
140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						openFDF(OBJ_METHOD_PARAMS);
141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						popUpMenuEx(OBJ_METHOD_PARAMS);
142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						popUpMenu(OBJ_METHOD_PARAMS);
143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						response(OBJ_METHOD_PARAMS);
144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						setInterval(OBJ_METHOD_PARAMS);
145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL						setTimeOut(OBJ_METHOD_PARAMS);
146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate:
148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//	FX_DWORD					AppGetTickCount();
149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void						TimerProc(CJS_Timer* pTimer);
150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void						RunJsScript(CJS_Runtime * pRuntime,const CFX_WideString & wsScript);
151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//	void						ParsePopupMenuObj(APP_MENUITEM * ppMenuItem,JSObject * pObj);
152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//	void						DeleteMenuItems(APP_MENUITEM_ARRAY * pMenuItems);
153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	void						AddMenuItem(APP_MENUITEM_ARRAY * pMenuItems, HMENU hMenu, MENUITEMINFO MenuItemInfo);
154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	void						InitMenuItemInfo(MENUITEMINFO& MenuItemInfo);
155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	void						DestroyPopUpMenu();
156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	void						ParserMenuItem(APP_MENU* pHead, const CJS_Parameters&params);
158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	void						AddItemToMenu(APP_MENU* pHead, HMENU hMenu, MENUITEMINFO MenuItemInfo);
159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// 	void						DestroyMenuItems(APP_MENU* pHead);
160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	static CFX_WideString		SysPathToPDFPath(const CFX_WideString& sOldPath);
163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	static CFX_WideString		PDFPathToSysPath(const CFX_WideString& sOldPath);
164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	static CFX_WideString		RelativePathToSysPath(const CFX_WideString& sOldPath, const CFX_WideString& sFilePath);
165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate:
168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	bool						m_bCalculate;
170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CJS_Runtime*				m_pRuntime;
171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	bool						m_bRuntimeHighLight;
172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CFX_ArrayTemplate<CJS_Timer*>	m_aTimer;
174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//	APP_MENU*					m_pMenuHead;
175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//	static CReader_App* s_App;
178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CJS_App : public CJS_Object
181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CJS_App(JSFXObject  pObject) : CJS_Object(pObject) {};
184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual ~CJS_App(void){};
185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	DECLARE_JS_CLASS(CJS_App);
187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(activeDocs, app);
189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(calculate, app);
190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(formsVersion, app);
191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(fs, app);
192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(fullscreen, app);
193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(language, app);
194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(media, app);
195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(platform, app);
196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(runtimeHighlight, app);
197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(viewerType, app);
198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(viewerVariation, app);
199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_PROP(viewerVersion, app);
200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(alert, app);
202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(beep, app);
203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(browseForDoc, app);
204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(clearInterval, app);
205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(clearTimeOut, app);
206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(execDialog, app);
207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(execMenuItem, app);
208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(findComponent, app);
209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(goBack, app);
210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(goForward, app);
211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(launchURL, app);
212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(mailMsg, app);
213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(newFDF, app);
214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(newDoc, app);
215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(openDoc, app);
216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(openFDF, app);
217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(popUpMenuEx, app);
218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(popUpMenu, app);
219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(response, app);
220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(setInterval, app);
221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	JS_STATIC_METHOD(setTimeOut, app);
222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif //_APP_H_
226