evas_object_smart_callback_add( mWebView, "console,message",
&WebViewContainerForDali::OnConsoleMessage,
this );
+ evas_object_smart_callback_add( mWebView, "edge,left",
+ &WebViewContainerForDali::OnEdgeLeft,
+ &mClient );
+ evas_object_smart_callback_add( mWebView, "edge,right",
+ &WebViewContainerForDali::OnEdgeRight,
+ &mClient );
+ evas_object_smart_callback_add( mWebView, "edge,top",
+ &WebViewContainerForDali::OnEdgeTop,
+ &mClient );
+ evas_object_smart_callback_add( mWebView, "edge,bottom",
+ &WebViewContainerForDali::OnEdgeBottom,
+ &mClient );
evas_object_resize( mWebView, mWidth, mHeight );
evas_object_show( mWebView );
ewk_view_resume( mWebView );
}
+ void ScrollBy( int deltaX, int deltaY )
+ {
+ ewk_view_scroll_by( mWebView, deltaX, deltaY );
+ }
+
+ void SetScrollPosition( int x, int y )
+ {
+ ewk_view_scroll_set( mWebView, x, y );
+ }
+
+ void GetScrollPosition( int& x, int& y ) const
+ {
+ ewk_view_scroll_pos_get( mWebView, &x, &y );
+ }
+
+ void GetScrollSize( int& width, int& height ) const
+ {
+ ewk_view_scroll_size_get( mWebView, &width, &height );
+ }
+
+ void GetContentSize( int& width, int& height ) const
+ {
+ ewk_view_contents_size_get( mWebView, &width, &height );
+ }
+
void GoBack()
{
ewk_view_back( mWebView );
ewk_console_message_text_get( message ) );
}
+ static void OnEdgeLeft( void* data, Evas_Object*, void* )
+ {
+ auto client = static_cast<WebViewContainerClient*>( data );
+ client->ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge::LEFT );
+ }
+
+ static void OnEdgeRight( void* data, Evas_Object*, void* )
+ {
+ auto client = static_cast<WebViewContainerClient*>( data );
+ client->ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge::RIGHT );
+ }
+
+ static void OnEdgeTop( void* data, Evas_Object*, void* )
+ {
+ auto client = static_cast<WebViewContainerClient*>( data );
+ client->ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge::TOP );
+ }
+
+ static void OnEdgeBottom( void* data, Evas_Object*, void* )
+ {
+ auto client = static_cast<WebViewContainerClient*>( data );
+ client->ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
+ }
+
static void OnEvaluateJavaScript( Evas_Object* o, const char* result, void* data )
{
auto client = WebEngineManager::Get().FindContainerClient( o );
}
}
+void TizenWebEngineChromium::ScrollBy( int deltaX, int deltaY )
+{
+ if( mWebViewContainer )
+ {
+ mWebViewContainer->ScrollBy( deltaX, deltaY );
+ }
+}
+
+void TizenWebEngineChromium::SetScrollPosition( int x, int y )
+{
+ if( mWebViewContainer )
+ {
+ mWebViewContainer->SetScrollPosition( x, y );
+ }
+}
+
+void TizenWebEngineChromium::GetScrollPosition(int& x, int& y) const
+{
+ if( mWebViewContainer )
+ {
+ mWebViewContainer->GetScrollPosition( x, y );
+ }
+}
+
+void TizenWebEngineChromium::GetScrollSize( int& width, int& height ) const
+{
+ if( mWebViewContainer )
+ {
+ mWebViewContainer->GetScrollSize( width, height );
+ }
+}
+
+void TizenWebEngineChromium::GetContentSize( int& width, int& height ) const
+{
+ if( mWebViewContainer )
+ {
+ mWebViewContainer->GetContentSize( width, height );
+ }
+}
+
bool TizenWebEngineChromium::CanGoForward()
{
if( mWebViewContainer )
return mLoadErrorSignal;
}
+Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& TizenWebEngineChromium::ScrollEdgeReachedSignal()
+{
+ return mScrollEdgeReachedSignal;
+}
+
// WebViewContainerClient Interface
void TizenWebEngineChromium::UpdateImage( tbm_surface_h buffer )
{
mLoadErrorSignal.Emit( stdUrl, errorCode );
}
+void TizenWebEngineChromium::ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge edge )
+{
+ DALI_LOG_RELEASE_INFO( "#ScrollEdgeReached : %d\n", edge );
+ mScrollEdgeReachedSignal.Emit( edge );
+}
+
void TizenWebEngineChromium::RunJavaScriptEvaluationResultHandler( size_t key, const char* result )
{
auto handler = mJavaScriptEvaluationResultHandlers.find( key );
virtual void LoadError( const char* url, int errorCode ) = 0;
/**
+ * @brief Callback function to be called by WebViewContainer when scroll edge is reached.
+ * @param [in] e Scroll edge reached.
+ */
+ virtual void ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge edge ) = 0;
+
+ /**
* @brief Callback function to be called by WebViewContainer when it gets JavaScript evalution result.
* @param [in] key An unsigned integer representing the result handler
* @param [in] result Result string from JavaScript runtime
void Resume() override;
/**
+ * @copydoc Dali::WebEnginePlugin::ScrollBy()
+ */
+ void ScrollBy( int deltaX, int deltaY ) override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::SetScrollPosition()
+ */
+ void SetScrollPosition( int x, int y ) override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::GetScrollPosition()
+ */
+ void GetScrollPosition( int& x, int& y ) const override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::GetScrollSize()
+ */
+ void GetScrollSize( int& width, int& height ) const override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::GetContentSize()
+ */
+ void GetContentSize( int& width, int& height ) const override;
+
+ /**
* @copydoc Dali::WebEnginePlugin::CanGoForward()
*/
bool CanGoForward() override;
*/
Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() override;
+ /**
+ * @copydoc Dali::WebEnginePlugin::ScrollEdgeReachedSignal()
+ */
+ Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() override;
+
// WebViewContainerClient Interface
void LoadError( const char* url, int errorCode ) override;
/**
+ * @copydoc Dali::Plugin::WebViewContainerClient::ScrollEdgeReached()
+ */
+ void ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge edge ) override;
+
+ /**
* @copydoc Dali::Plugin::WebViewContainerClient::RunJavaScriptEvaluationResultHandler()
*/
void RunJavaScriptEvaluationResultHandler( size_t key, const char* result ) override;
Dali::WebEnginePlugin::WebEnginePageLoadSignalType mLoadFinishedSignal;
Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mLoadErrorSignal;
+ Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
+
std::unordered_map< size_t, JavaScriptCallback > mJavaScriptEvaluationResultHandlers;
std::unordered_map< std::string, JavaScriptCallback > mJavaScriptMessageHandlers;
};
void Resume() override;
/**
+ * @copydoc Dali::WebEnginePlugin::ScrollBy()
+ */
+ void ScrollBy( int deltaX, int deltaY ) override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::SetScrollPosition()
+ */
+ void SetScrollPosition( int x, int y ) override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::GetScrollPosition()
+ */
+ void GetScrollPosition( int& x, int& y ) const override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::GetScrollSize()
+ */
+ void GetScrollSize( int& width, int& height ) const override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::GetContentSize()
+ */
+ void GetContentSize( int& width, int& height ) const override;
+
+ /**
* @copydoc Dali::WebEnginePlugin::GoBack()
*/
void GoBack() override;
return mPageLoadErrorSignal;
}
+ /**
+ * @copydoc Dali::WebEnginePlugin::ScrollEdgeReachedSignal()
+ */
+ Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() override
+ {
+ return mScrollEdgeReachedSignal;
+ }
+
private:
void UpdateBuffer();
Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal;
Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal;
Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal;
+ Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
};
} // namespace Plugin