#include <dali/public-api/events/mouse-button.h>
#include <dali-toolkit/devel-api/controls/web-view/web-view.h>
+#include "web-view-signal-converter.h"
// add here SWIG version check
return jresult;
}
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_URL_get() {
+ return (int) Dali::Toolkit::WebView::Property::URL;
+}
+
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_CACHE_MODEL_get() {
+ return (int) Dali::Toolkit::WebView::Property::CACHE_MODEL;
+}
+
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_COOKIE_ACCEPT_POLICY_get() {
+ return (int) Dali::Toolkit::WebView::Property::COOKIE_ACCEPT_POLICY;
+}
+
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_USER_AGENT_get() {
+ return (int) Dali::Toolkit::WebView::Property::USER_AGENT;
+}
+
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_ENABLE_JAVASCRIPT_get() {
+ return (int) Dali::Toolkit::WebView::Property::ENABLE_JAVASCRIPT;
+}
+
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_LOAD_IMAGES_AUTOMATICALLY_get() {
+ return (int) Dali::Toolkit::WebView::Property::LOAD_IMAGES_AUTOMATICALLY;
+}
+
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_DEFAULT_TEXT_ENCODING_NAME_get() {
+ return (int) Dali::Toolkit::WebView::Property::DEFAULT_TEXT_ENCODING_NAME;
+}
+
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WebView_Property_DEFAULT_FONT_SIZE_get() {
+ return (int) Dali::Toolkit::WebView::Property::DEFAULT_FONT_SIZE;
+}
+
SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_LoadUrl(void * jarg1, char * jarg2) {
Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
std::string *arg2;
}
}
-SWIGEXPORT char * SWIGSTDCALL CSharp_Dali_WebView_GetUrl(void * jarg1) {
- char * jresult ;
- std::string result;
-
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_LoadHTMLString(void * jarg1, char * jarg2) {
Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
+ std::string *arg2;
arg1 = (Dali::Toolkit::WebView *)jarg1;
+ if (!jarg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0);
+ return;
+ }
+ std::string jarg2str = std::string(jarg2);
+ arg2 = &jarg2str;
{
try {
- result = arg1->GetUrl();
+ (arg1)->LoadHTMLString((std::string const &)*arg2);
} catch (std::out_of_range& e) {
{
- SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
+ SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
};
} catch (std::exception& e) {
{
- SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return 0;
+ SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return ;
};
} catch (Dali::DaliException e) {
{
- SWIG_CSharpException(SWIG_UnknownError, e.condition); return 0;
+ SWIG_CSharpException(SWIG_UnknownError, e.condition); return ;
};
} catch (...) {
{
- SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0;
+ SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ;
};
}
}
-
- jresult = SWIG_csharp_string_callback((&result)->c_str());
- return jresult;
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_LoadHTMLString(void * jarg1, char * jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_Reload(void * jarg1) {
Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
- std::string *arg2;
arg1 = (Dali::Toolkit::WebView *)jarg1;
- if (!jarg2) {
- SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0);
- return;
+ {
+ try {
+ (arg1)->Reload();
+ } catch (std::out_of_range& e) {
+ {
+ SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
+ };
+ } catch (std::exception& e) {
+ {
+ SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return ;
+ };
+ } catch (Dali::DaliException e) {
+ {
+ SWIG_CSharpException(SWIG_UnknownError, e.condition); return ;
+ };
+ } catch (...) {
+ {
+ SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ;
+ };
+ }
}
- std::string jarg2str = std::string(jarg2);
- arg2 = &jarg2str;
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_StopLoading(void * jarg1) {
+ Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
+
+ arg1 = (Dali::Toolkit::WebView *)jarg1;
{
try {
- (arg1)->LoadHTMLString((std::string const &)*arg2);
+ (arg1)->StopLoading();
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
}
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_Reload(void * jarg1) {
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_Suspend(void * jarg1) {
Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
arg1 = (Dali::Toolkit::WebView *)jarg1;
{
try {
- (arg1)->Reload();
+ (arg1)->Suspend();
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
}
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_StopLoading(void * jarg1) {
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_Resume(void * jarg1) {
Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
arg1 = (Dali::Toolkit::WebView *)jarg1;
{
try {
- (arg1)->StopLoading();
+ (arg1)->Resume();
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
return ret;
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_EvaluateJavaScript(void * jarg1, char * jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_EvaluateJavaScript(void * jarg1, char * jarg2, void* jarg3) {
Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
std::string *arg2;
}
std::string jarg2_str = std::string(jarg2);
arg2 = &jarg2_str;
+
+ void (*handler)(char*) = (void (*)(char*)) jarg3;
+
{
try {
- (arg1)->EvaluateJavaScript((std::string const &)*arg2);
+ (arg1)->EvaluateJavaScript((std::string const &)*arg2, [handler](const std::string& result) {
+ handler(SWIG_csharp_string_callback(result.c_str()));
+ });
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
}
}
-SWIGEXPORT Dali::Toolkit::Control * SWIGSTDCALL CSharp_Dali_WebView_SWIGUpcast(Dali::Toolkit::WebView *jarg1) {
- return (Dali::Toolkit::Control *)jarg1;
-}
-
-
-// Proxy class of WebViewSignal.
-// WebViewSignal has an argument of std::string type which is not supported at C# side.
-// The purpose of this class is to convert signal argument of string type safely.
-class WebViewSignalProxy : public ConnectionTracker
-{
-public:
- typedef Dali::Signal< void(Dali::Toolkit::WebView, const std::string&) > OriginalSignalType;
- typedef Dali::Signal< void(Dali::Toolkit::WebView, char*) > ProxySignalType;
- typedef void (*CallbackType)(Dali::Toolkit::WebView, char *);
-
- WebViewSignalProxy(OriginalSignalType* signal)
- : mSignalPtr(signal)
- {
- }
-
- void Connect(CallbackType csharpCallback)
- {
- if (mSignalPtr->Empty())
- {
- mSignalPtr->Connect(this, &WebViewSignalProxy::OnEmit);
- }
- mProxySignal.Connect(csharpCallback);
- }
-
- void Disconnect(CallbackType csharpCallback)
- {
- mProxySignal.Disconnect(csharpCallback);
- if (mProxySignal.Empty())
- {
- mSignalPtr->Disconnect(this, &WebViewSignalProxy::OnEmit);
- }
- }
-
- bool Empty()
- {
- return mProxySignal.Empty();
- }
-
- std::size_t GetConnectionCount()
- {
- return mProxySignal.GetConnectionCount();
- }
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_ClearCookies(void * jarg1) {
+ Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *) 0 ;
- void Emit(Dali::Toolkit::WebView& webview, char* url)
+ arg1 = (Dali::Toolkit::WebView *)jarg1;
{
- if (!mProxySignal.Empty())
- {
- mProxySignal.Emit(webview, url);
+ try {
+ (arg1)->ClearCookies();
+ } catch (std::out_of_range& e) {
+ {
+ SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
+ };
+ } catch (std::exception& e) {
+ {
+ SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return ;
+ };
+ } catch (Dali::DaliException e) {
+ {
+ SWIG_CSharpException(SWIG_UnknownError, e.condition); return ;
+ };
+ } catch (...) {
+ {
+ SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ;
+ };
}
}
+}
- void OnEmit(Dali::Toolkit::WebView webview, const std::string& url)
- {
- // Safe string conversion
- mProxySignal.Emit(webview, SWIG_csharp_string_callback(url.c_str()));
- }
-
-private:
- OriginalSignalType* mSignalPtr;
- ProxySignalType mProxySignal;
-};
+SWIGEXPORT Dali::Toolkit::Control * SWIGSTDCALL CSharp_Dali_WebView_SWIGUpcast(Dali::Toolkit::WebView *jarg1) {
+ return (Dali::Toolkit::Control *)jarg1;
+}
-SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_WebViewSignalProxy_PageLoadStarted(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_WebViewPageLoadSignal_PageLoadStarted(void * jarg1) {
Dali::Toolkit::WebView* webview = (Dali::Toolkit::WebView *) jarg1;
- WebViewSignalProxy* result = NULL;
+ SignalConverter::WebViewPageLoadSignal* result = NULL;
{
try {
- result = new WebViewSignalProxy(&webview->PageLoadStartedSignal());
+ result = new SignalConverter::WebViewPageLoadSignal(&webview->PageLoadStartedSignal());
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
return (void*) result;
}
-SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_WebViewSignalProxy_PageLoadFinished(void * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_WebViewPageLoadSignal_PageLoadFinished(void * jarg1) {
Dali::Toolkit::WebView* webview = (Dali::Toolkit::WebView *) jarg1;
- WebViewSignalProxy* result = NULL;
+ SignalConverter::WebViewPageLoadSignal* result = NULL;
{
try {
- result = new WebViewSignalProxy(&webview->PageLoadFinishedSignal());
+ result = new SignalConverter::WebViewPageLoadSignal(&webview->PageLoadFinishedSignal());
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
return (void*) result;
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_WebViewSignalProxy(void * jarg1)
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_WebViewPageLoadSignal(void * jarg1)
{
- WebViewSignalProxy* object = (WebViewSignalProxy*) jarg1;
+ SignalConverter::WebViewPageLoadSignal* object = (SignalConverter::WebViewPageLoadSignal*) jarg1;
{
try {
delete object;
}
}
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_WebViewSignalProxy_Empty(void * jarg1)
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebViewPageLoadSignal_Connect(void * jarg1, void * jarg2)
{
- bool result;
- WebViewSignalProxy* proxy = (WebViewSignalProxy*) jarg1;
+ SignalConverter::WebViewPageLoadSignal* proxy = (SignalConverter::WebViewPageLoadSignal*) jarg1;
+ SignalConverter::WebViewPageLoadSignal::CallbackType callback = (SignalConverter::WebViewPageLoadSignal::CallbackType) jarg2;
{
try {
- result = (bool)proxy->Empty();
+ proxy->Connect(callback);
} catch (std::out_of_range& e) {
{
- SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
+ SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
};
} catch (std::exception& e) {
{
- SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return 0;
+ SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return ;
};
} catch (Dali::DaliException e) {
{
- SWIG_CSharpException(SWIG_UnknownError, e.condition); return 0;
+ SWIG_CSharpException(SWIG_UnknownError, e.condition); return ;
};
} catch (...) {
{
- SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0;
+ SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ;
};
}
}
- return (unsigned int) result;
}
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Dali_WebViewSignalProxy_GetConnectionCount(void * jarg1)
-{
- std::size_t result;
- WebViewSignalProxy* arg1 = (WebViewSignalProxy*) jarg1;
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebViewPageLoadSignal_Disconnect(void * jarg1, void * jarg2) {
+ SignalConverter::WebViewPageLoadSignal* proxy = (SignalConverter::WebViewPageLoadSignal*) jarg1;
+ SignalConverter::WebViewPageLoadSignal::CallbackType callback = (SignalConverter::WebViewPageLoadSignal::CallbackType) jarg2;
{
try {
- result = arg1->GetConnectionCount();
+ proxy->Disconnect(callback);
+ } catch (std::out_of_range& e) {
+ {
+ SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
+ };
+ } catch (std::exception& e) {
+ {
+ SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return ;
+ };
+ } catch (Dali::DaliException e) {
+ {
+ SWIG_CSharpException(SWIG_UnknownError, e.condition); return ;
+ };
+ } catch (...) {
+ {
+ SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ;
+ };
+ }
+ }
+}
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_WebViewPageLoadErrorSignal_PageLoadError(void * jarg1) {
+ Dali::Toolkit::WebView* webview = (Dali::Toolkit::WebView *) jarg1;
+ SignalConverter::WebViewPageLoadErrorSignal* result = NULL;
+ {
+ try {
+ result = new SignalConverter::WebViewPageLoadErrorSignal(&webview->PageLoadErrorSignal());
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
};
}
}
- return (unsigned long) result;
+ return (void*) result;
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebViewSignalProxy_Connect(void * jarg1, void * jarg2)
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_WebViewPageLoadErrorSignal(void * jarg1)
{
- WebViewSignalProxy* proxy = (WebViewSignalProxy*) jarg1;
- WebViewSignalProxy::CallbackType callback = (WebViewSignalProxy::CallbackType) jarg2;
+ SignalConverter::WebViewPageLoadErrorSignal* object = (SignalConverter::WebViewPageLoadErrorSignal*) jarg1;
{
try {
- proxy->Connect(callback);
+ delete object;
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
}
}
-
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebViewSignalProxy_Disconnect(void * jarg1, void * jarg2) {
- WebViewSignalProxy* proxy = (WebViewSignalProxy*) jarg1;
- WebViewSignalProxy::CallbackType callback = (WebViewSignalProxy::CallbackType) jarg2;
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebViewPageLoadErrorSignal_Connect(void * jarg1, void * jarg2)
+{
+ SignalConverter::WebViewPageLoadErrorSignal* proxy = (SignalConverter::WebViewPageLoadErrorSignal*) jarg1;
+ SignalConverter::WebViewPageLoadErrorSignal::CallbackType callback = (SignalConverter::WebViewPageLoadErrorSignal::CallbackType) jarg2;
{
try {
- proxy->Disconnect(callback);
+ proxy->Connect(callback);
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebViewSignalProxy_Emit(void * jarg1, void * jarg2, char * jarg3) {
- if (!jarg2) {
- SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Toolkit::WebView & type is null", 0);
- return ;
- }
- if (!jarg3) {
- SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "jarg3 is null string", 0);
- return ;
- }
-
- WebViewSignalProxy* proxy = (WebViewSignalProxy*) jarg1;
- Dali::Toolkit::WebView* webview = (Dali::Toolkit::WebView*) jarg2;
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebViewPageLoadErrorSignal_Disconnect(void * jarg1, void * jarg2) {
+ SignalConverter::WebViewPageLoadErrorSignal* proxy = (SignalConverter::WebViewPageLoadErrorSignal*) jarg1;
+ SignalConverter::WebViewPageLoadErrorSignal::CallbackType callback = (SignalConverter::WebViewPageLoadErrorSignal::CallbackType) jarg2;
{
try {
- proxy->Emit(*webview, jarg3);
+ proxy->Disconnect(callback);
} catch (std::out_of_range& e) {
{
SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return ;
--- /dev/null
+#ifndef __DALI_CSHARP_BINDER_WEB_VIEW_SIGNAL_CONVERTER_H__
+#define __DALI_CSHARP_BINDER_WEB_VIEW_SIGNAL_CONVERTER_H__
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/signals/connection-tracker.h>
+#include <dali-toolkit/devel-api/controls/web-view/web-view.h>
+
+namespace SignalConverter
+{
+
+// Proxy class of WebViewPageLoadSignal.
+// WebViewPageLoadSignal has an argument of std::string type which is not supported at C# side.
+// The purpose of this class is to convert signal argument of string type safely.
+class WebViewPageLoadSignal : public Dali::ConnectionTracker
+{
+
+public:
+ typedef Dali::Signal< void(Dali::Toolkit::WebView, const std::string&) > NativeSignalType;
+ typedef Dali::Signal< void(Dali::Toolkit::WebView, char*) > ProxySignalType;
+ typedef void (*CallbackType)(Dali::Toolkit::WebView, char*);
+
+ WebViewPageLoadSignal( NativeSignalType* signal )
+ : mNativeSignalPtr( signal )
+ {
+ }
+
+ ~WebViewPageLoadSignal()
+ {
+ if( !mProxySignal.Empty() )
+ {
+ mNativeSignalPtr->Disconnect( this, &SignalConverter::WebViewPageLoadSignal::OnEmit );
+ }
+ }
+
+ void Connect( CallbackType csharpCallback )
+ {
+ if( mNativeSignalPtr->Empty())
+ {
+ mNativeSignalPtr->Connect( this, &SignalConverter::WebViewPageLoadSignal::OnEmit );
+ }
+ mProxySignal.Connect( csharpCallback );
+ }
+
+ void Disconnect( CallbackType csharpCallback )
+ {
+ mProxySignal.Disconnect( csharpCallback );
+ if( mProxySignal.Empty() )
+ {
+ mNativeSignalPtr->Disconnect( this, &SignalConverter::WebViewPageLoadSignal::OnEmit );
+ }
+ }
+
+ void OnEmit( Dali::Toolkit::WebView webview, const std::string& url )
+ {
+ // Safe string conversion
+ mProxySignal.Emit( webview, SWIG_csharp_string_callback( url.c_str() ) );
+ }
+
+private:
+
+ NativeSignalType* mNativeSignalPtr;
+ ProxySignalType mProxySignal;
+};
+
+// Proxy class of WebViewPageLoadErrorSignal.
+// WebViewPageLoadSignal has an argument of std::string type which is not supported at C# side.
+// The purpose of this class is to convert signal argument of string type safely.
+class WebViewPageLoadErrorSignal : public Dali::ConnectionTracker
+{
+public:
+ typedef Dali::Signal< void(Dali::Toolkit::WebView, const std::string&, Dali::Toolkit::WebView::LoadErrorCode) > NativeSignalType;
+ typedef Dali::Signal< void(Dali::Toolkit::WebView, char*, int) > ProxySignalType;
+ typedef void (*CallbackType)(Dali::Toolkit::WebView, char*, int);
+
+ WebViewPageLoadErrorSignal( NativeSignalType* signal )
+ : mNativeSignalPtr( signal )
+ {
+ }
+
+ ~WebViewPageLoadErrorSignal()
+ {
+ if( !mProxySignal.Empty() )
+ {
+ mNativeSignalPtr->Disconnect( this, &SignalConverter::WebViewPageLoadErrorSignal::OnEmit );
+ }
+ }
+
+ void Connect( CallbackType csharpCallback )
+ {
+ if( mNativeSignalPtr->Empty() )
+ {
+ mNativeSignalPtr->Connect( this, &SignalConverter::WebViewPageLoadErrorSignal::OnEmit );
+ }
+ mProxySignal.Connect( csharpCallback );
+ }
+
+ void Disconnect( CallbackType csharpCallback )
+ {
+ mProxySignal.Disconnect( csharpCallback );
+ if( mProxySignal.Empty() )
+ {
+ mNativeSignalPtr->Disconnect( this, &SignalConverter::WebViewPageLoadErrorSignal::OnEmit );
+ }
+ }
+
+ void OnEmit( Dali::Toolkit::WebView webview, const std::string& url, Dali::Toolkit::WebView::LoadErrorCode code )
+ {
+ // Safe string conversion
+ mProxySignal.Emit( webview, SWIG_csharp_string_callback( url.c_str() ), static_cast<int>( code ) );
+ }
+
+private:
+
+ NativeSignalType* mNativeSignalPtr;
+ ProxySignalType mProxySignal;
+};
+
+} // namespace SignalConverter
+
+#endif // __DALI_CSHARP_BINDER_WEB_VIEW_SIGNAL_CONVERTER_H__
\ No newline at end of file