1717#ifndef __LIBBROWSER_H__
1818#define __LIBBROWSER_H__
1919
20+ // //////////////////////////////////////////////////////////////////////////////
2021// C++ Implementation Class API
2122
2223class MCBrowserRefCounted
@@ -82,16 +83,8 @@ struct MCBrowserRect
8283class MCBrowser : public MCBrowserRefCounted
8384{
8485public:
85- MCBrowser () : m_event_handler(nil), m_javascript_handler(nil)
86- {
87- }
88-
89- virtual ~MCBrowser ()
90- {
91- }
92-
93- void SetEventHandler (MCBrowserEventHandler *p_handler);
94- void SetJavaScriptHandler (MCBrowserJavaScriptHandler *p_handler);
86+ virtual void SetEventHandler (MCBrowserEventHandler *p_handler) = 0;
87+ virtual void SetJavaScriptHandler (MCBrowserJavaScriptHandler *p_handler) = 0;
9588
9689 virtual void *GetNativeLayer () = 0;
9790
@@ -108,29 +101,12 @@ class MCBrowser : public MCBrowserRefCounted
108101 virtual bool GoForward () = 0;
109102 virtual bool GoToURL (const char *p_url) = 0;
110103 virtual bool EvaluateJavaScript (const char *p_script, char *&r_result) = 0;
111-
112- protected:
113- void OnNavigationBegin (bool p_in_frame, const char *p_url);
114- void OnNavigationComplete (bool p_in_frame, const char *p_url);
115- void OnNavigationFailed (bool p_in_frame, const char *p_url, const char *p_error);
116- void OnDocumentLoadBegin (bool p_in_frame, const char *p_url);
117- void OnDocumentLoadComplete (bool p_in_frame, const char *p_url);
118- void OnDocumentLoadFailed (bool p_in_frame, const char *p_url, const char *p_error);
119-
120- void OnJavaScriptCall (const char *p_handler, MCBrowserListRef p_params);
121-
122- private:
123- MCBrowserEventHandler *m_event_handler;
124- MCBrowserJavaScriptHandler *m_javascript_handler;
125104};
126105
127106// Browser factory interface
128107class MCBrowserFactory : public MCBrowserRefCounted
129108{
130109public:
131- MCBrowserFactory () {}
132- virtual ~MCBrowserFactory () {}
133-
134110 virtual bool CreateBrowser (MCBrowser *&r_browser) = 0;
135111};
136112
@@ -148,6 +124,7 @@ class MCBrowserFactory : public MCBrowserRefCounted
148124# define MC_DLLEXPORT __attribute__ ((__visibility__(" default" )))
149125#endif
150126
127+ // //////////////////////////////////////////////////////////////////////////////
151128// C API
152129
153130extern " C"
@@ -156,12 +133,20 @@ extern "C"
156133MC_DLLEXPORT bool MCBrowserLibraryInitialize ();
157134MC_DLLEXPORT void MCBrowserLibraryFinalize ();
158135
159- typedef void *(MCBrowserAllocator)(size_t p_size);
160- typedef void (MCBrowserDeallocator)(void *p_mem);
136+ typedef bool (*MCBrowserAllocator)(size_t p_size, void *&r_mem);
137+ typedef void (*MCBrowserDeallocator)(void *p_mem);
138+ typedef bool (*MCBrowserReallocator)(void *p_mem, size_t p_new_size, void *&r_new_mem);
139+ typedef bool (*MCBrowserWaitFunction)(void );
161140
162141MC_DLLEXPORT void MCBrowserLibrarySetAllocator (MCBrowserAllocator p_alloc);
163142MC_DLLEXPORT void MCBrowserLibrarySetDeallocator (MCBrowserDeallocator p_dealloc);
143+ MC_DLLEXPORT void MCBrowserLibrarySetReallocator (MCBrowserReallocator p_dealloc);
144+ MC_DLLEXPORT void MCBrowserLibrarySetWaitFunction (MCBrowserWaitFunction p_wait);
164145
146+ typedef void (*MCBrowserRunloopCallback)(void *p_context);
147+
148+ MC_DLLEXPORT bool MCBrowserLibraryGetRunloopCallback (MCBrowserRunloopCallback &r_callback, void *&r_context);
149+
165150typedef struct __MCBrowserList *MCBrowserListRef;
166151enum MCBrowserValueType
167152{
@@ -241,4 +226,6 @@ MC_DLLEXPORT bool MCBrowserSetJavaScriptHandler(MCBrowserRef p_browser, MCBrowse
241226
242227}
243228
229+ // //////////////////////////////////////////////////////////////////////////////
230+
244231#endif // __LIBBROWSER_H__
0 commit comments