aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/mb/xuibrowser.h
blob: 90989240c63e01a5f604e96145b8ac0c416d1a0d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#ifndef __XUIBROWSER_H
#define __XUIBROWSER_H

#include <api/skin/widgets/mb/minibrowserwnd.h>
#include <api/script/objcontroller.h>

#define MAIN_BROWSER_ATOM_NAME L"browser.main.object"
#define SCRIPTBROWSERWND_PARENT MiniBrowserWnd 

// -----------------------------------------------------------------------------------------------------
class ScriptBrowserWnd : public SCRIPTBROWSERWND_PARENT {
  
  public:

    ScriptBrowserWnd();
    virtual ~ScriptBrowserWnd();

    virtual void onSetVisible(int v);

    // XuiObject

    virtual int setXuiParam(int xuihandle, int xmlattributeid, const wchar_t *xmlattributename, const wchar_t *value);

    // MiniBrowserWnd
    int onBeforeNavigate(const wchar_t *url, int flags, const wchar_t *frame);
    void onDocumentComplete(const wchar_t *url);
	void onDocumentReady(const wchar_t *url);
	void onNavigateError(const wchar_t *url, int status);
		void onMediaLink(const wchar_t *url);
		void getDocumentTitle(wchar_t *str, size_t len);

    virtual int navigateUrl(const wchar_t *url);
	const wchar_t* messageToMaki(wchar_t* str1, wchar_t* str2, int i1, int i2, int i3);
	const wchar_t* messageToJS(const wchar_t* str1, const wchar_t* str2, int i1, int i2, int i3);

    // --

    void setUrl(const wchar_t *url);
    void setMainMB(int tf);
		void Scrape(); // benski> added Aug 17 2007

		void setCancelIEErrorPage(bool cancel);

protected:
	/*static */void CreateXMLParameters(int master_handle);
  private:

    enum {
      BROWSER_SETURL = 0,
      BROWSER_SETMAINMB,
      BROWSER_SETTARGETNAME,
      BROWSER_SETSCROLLBARS,
	  BROWSER_CANCELIEERRORPAGE,
    };
static XMLParamPair params[];
    int translateScrollbarFlag(const wchar_t *scrollbarflag);

    StringW defurl;
    int myxuihandle;
};

// -----------------------------------------------------------------------------------------------------
class BrowserScriptController : public ScriptObjectControllerI {
  public:

    virtual const wchar_t *getClassName() { return L"Browser"; }
    virtual const wchar_t *getAncestorClassName() { return L"GuiObject"; }
    virtual ScriptObjectController *getAncestorController() { return WASABI_API_MAKI->maki_getController(guiObjectGuid); }
    virtual int getNumFunctions();
    virtual const function_descriptor_struct *getExportedFunctions();
    virtual GUID getClassGuid() { return browserGuid; }
    virtual ScriptObject *instantiate();
    virtual void destroy(ScriptObject *o);
    virtual void *encapsulate(ScriptObject *o);
    virtual void deencapsulate(void *o);

  public:
    static scriptVar browser_navigateUrl(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar url);
    static scriptVar browser_back(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
    static scriptVar browser_forward(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
    static scriptVar browser_home(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
    static scriptVar browser_stop(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
    static scriptVar browser_refresh(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
		static scriptVar browser_scrape(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
    static scriptVar browser_setTargetName(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar name);
    static scriptVar browser_onDocumentComplete(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar url);
	static scriptVar browser_onDocumentReady(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar url);
	static scriptVar browser_onNavigateError(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar url, scriptVar status);
    static scriptVar browser_onBeforeNavigate(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar url, scriptVar flags, scriptVar framename);
	static scriptVar browser_messageToMaki(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar str1, scriptVar str2, scriptVar i1, scriptVar i2, scriptVar i3);
	static scriptVar browser_messageToJS(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar str1, scriptVar str2, scriptVar i1, scriptVar i2, scriptVar i3);
		static scriptVar browser_onMediaLink(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar url);
		static /*string*/ scriptVar browser_getDocumentTitle(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
		static scriptVar browser_setCancelIEErrorPage(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar cancel);
  private:

    static function_descriptor_struct exportedFunction[];
};

extern BrowserScriptController *browserController;

extern const wchar_t browserXuiObjectStr[];
extern char browserXuiSvcName[];
class BrowserXuiSvc : public XuiObjectSvc<ScriptBrowserWnd, browserXuiObjectStr, browserXuiSvcName> {};

#endif