X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fweb-view%2Fweb-view-impl.h;h=0205dd7bbd1f51eb83a48ef57b595c0f97602224;hb=refs%2Ftags%2Fsubmit%2Ftizen_6.0%2F20220915.012244;hp=11f7e1b365ae3980dabf923fe15732a0da06cf83;hpb=edeb1cc73b32e5c1afb42a9fb63df0108d322cc3;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.h b/dali-toolkit/internal/controls/web-view/web-view-impl.h old mode 100644 new mode 100755 index 11f7e1b..0205dd7 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.h +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.h @@ -19,13 +19,16 @@ */ // EXTERNAL INCLUDES +#include #include #include +#include // INTERNAL INCLUDES +#include #include #include -#include +#include namespace Dali { @@ -35,6 +38,10 @@ namespace Toolkit class KeyEvent; class TouchEvent; +class WebBackForwardList; +class WebContext; +class WebCookieManager; +class WebSettings; class WebView; namespace Internal @@ -48,6 +55,8 @@ protected: WebView( const std::string& locale, const std::string& timezoneId ); + WebView( int argc, char** argv ); + virtual ~WebView(); public: @@ -63,6 +72,38 @@ public: static Toolkit::WebView New( const std::string& locale, const std::string& timezoneId ); /** + * @brief Get settings of WebEngine. + */ + Dali::Toolkit::WebSettings* GetSettings() const; + + /** + * @brief Get context of WebEngine. + */ + Dali::Toolkit::WebContext* GetContext() const; + + /** + * @brief Get cookie manager of WebEngine. + */ + Dali::Toolkit::WebCookieManager* GetCookieManager() const; + + /** + * @brief Get WebBackForwardList of WebEngine. + */ + Dali::Toolkit::WebBackForwardList* GetBackForwardList() const; + + /** + * @copydoc Dali::Toolkit::WebView::New( int, char** ) + */ + static Toolkit::WebView New( int argc, char** argv ); + + /** + * @brief Get favicon of web page. + * + * @return Handle to a favicon + */ + Dali::Toolkit::ImageView GetFavicon() const; + + /** * @copydoc Dali::Toolkit::WebView::LoadUrl() */ void LoadUrl( const std::string& url ); @@ -70,7 +111,7 @@ public: /** * @copydoc Dali::WebEngine::LoadHTMLString() */ - void LoadHTMLString( const std::string& htmlString ); + void LoadHtmlString( const std::string& htmlString ); /** * @copydoc Dali::Toolkit::WebView::Reload() @@ -93,6 +134,11 @@ public: void Resume(); /** + * @copydoc Dali::Toolkit::WebView::ScrollBy() + */ + void ScrollBy( int deltaX, int deltaY ); + + /** * @copydoc Dali::Toolkit::WebView::CanGoForward() */ bool CanGoForward(); @@ -115,12 +161,17 @@ public: /** * @copydoc Dali::Toolkit::WebView::EvaluateJavaScript() */ - void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler ); + void EvaluateJavaScript( const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler ); /** * @copydoc Dali::Toolkit::WebView::AddJavaScriptMessageHandler() */ - void AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void( const std::string& ) > handler ); + void AddJavaScriptMessageHandler( const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler ); + + /** + * @brief Clears all tiles resources of Web. + */ + void ClearAllTilesResources(); /** * @copydoc Dali::Toolkit::WebView::ClearHistory() @@ -128,29 +179,39 @@ public: void ClearHistory(); /** - * @copydoc Dali::Toolkit::WebView::ClearCache() + * @copydoc Dali::Toolkit::WebView::SetTtsFocus() + */ + void SetTtsFocus(bool focused); + + /** + * @copydoc Dali::Toolkit::WebView::RegisterPageLoadStartedCallback() */ - void ClearCache(); + void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::Toolkit::WebView::ClearCookies() + * @copydoc Dali::Toolkit::WebView::RegisterPageLoadFinishedCallback() */ - void ClearCookies(); + void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::Toolkit::WebView::PageLoadStartedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterPageLoadErrorCallback() */ - Dali::Toolkit::WebView::WebViewPageLoadSignalType& PageLoadStartedSignal(); + void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback); /** - * @copydoc Dali::Toolkit::WebView::PageLoadFinishedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterScrollEdgeReachedCallback() */ - Dali::Toolkit::WebView::WebViewPageLoadSignalType& PageLoadFinishedSignal(); + void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback); /** - * @copydoc Dali::Toolkit::WebView::PageLoadErrorSignal() + * @copydoc Dali::Toolkit::WebView::RegisterNavigationPolicyDecidedCallback() */ - Dali::Toolkit::WebView::WebViewPageLoadErrorSignalType& PageLoadErrorSignal(); + void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback); + + /** + * @copydoc Dali::Toolkit::WebView::GetPlainTextAsynchronously() + */ + void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback); public: // Properties @@ -172,33 +233,17 @@ public: // Properties */ static Dali::Property::Value GetProperty( Dali::BaseObject* object, Dali::Property::Index propertyIndex ); - /** - * Connects a callback function with the object's signals. - * @param[in] object The object providing the signal. - * @param[in] tracker Used to disconnect the signal. - * @param[in] signalName The signal to connect to. - * @param[in] functor A newly allocated FunctorDelegate. - * @return True if the signal was connected. - * @post If a signal was connected, ownership of functor was passed to CallbackBase. Otherwise the c - */ - static bool DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor ); - private: // From Control /** * @copydoc Toolkit::Control::OnInitialize() */ - virtual void OnInitialize(); + void OnInitialize() override; /** * @copydoc Toolkit::Control::GetNaturalSize */ - virtual Vector3 GetNaturalSize(); - - /** - * @copydoc Toolkit::Control::OnRelayout() - */ - virtual void OnRelayout( const Vector2& size, RelayoutContainer& container ); + Vector3 GetNaturalSize() override; /** * Signal occurs when the Web View has been touched. @@ -211,138 +256,112 @@ private: // From Control /** * @copydoc Toolkit::Control::OnKeyEvent() */ - virtual bool OnKeyEvent( const Dali::KeyEvent& event ); - -private: - - // Undefined - WebView( const WebView& webView ); - - WebView& operator=( const WebView& webView ); - - /** - * @brief Get cache model option. The default isToolkit::WebView::CacheModel::DOCUMENT_VIEWER. - * @see Toolkit::WebView::CacheModel::Type - */ - Toolkit::WebView::CacheModel::Type GetCacheModel() const; + bool OnKeyEvent( const Dali::KeyEvent& event ) override; /** - * @brief Set cache model option. The default isToolkit::WebView::CacheModel::DOCUMENT_VIEWER. - * @param[in] cacheModel The cache model option - * @see Toolkit::WebView::CacheModel::Type + * @copydoc Toolkit::Control::OnKeyInputFocusGained() */ - void SetCacheModel( Toolkit::WebView::CacheModel::Type cacheModel ); + void OnKeyInputFocusGained() override; /** - * @brief Gets the cookie acceptance policy. The default is Toolkit::WebView::CookieAcceptPolicy::NO_THIRD_PARTY. - * @see Toolkit::WebView::CookieAcceptPolicy::Type + * @copydoc Toolkit::Control::OnKeyInputFocusLost() */ - Toolkit::WebView::CookieAcceptPolicy::Type GetCookieAcceptPolicy() const; + void OnKeyInputFocusLost() override; /** - * @brief Sets the cookie acceptance policy. The default is Toolkit::WebView::CookieAcceptPolicy::NO_THIRD_PARTY. - * @param[in] policy The cookie acceptance policy - * @see Toolkit::WebView::CookieAcceptPolicy::Type + * @copydoc Toolkit::Control::OnSceneConnection() */ - void SetCookieAcceptPolicy( Toolkit::WebView::CookieAcceptPolicy::Type policy ); + void OnSceneConnection( int depth ) override; - /** - * @brief Get user agent string. - * @return The string value of user agent - */ - const std::string& GetUserAgent() const; +private: - /** - * @brief Set user agent string. - * @param[in] userAgent The string value of user agent - */ - void SetUserAgent( const std::string& userAgent ); + // Undefined + WebView( const WebView& webView ); - /** - * @brief Returns whether JavaScript can be executable. The default is true. - * - * @return true if JavaScript executing is enabled, false otherwise - */ - bool IsJavaScriptEnabled() const; + WebView& operator=( const WebView& webView ); /** - * @brief Enables/disables JavaScript executing. The default is enabled. - * - * @param[in] enabled True if JavaScript executing is enabled, false otherwise + * @brief Sets an absolute scroll of the given view. + * @param[in] x The coordinate x of scroll + * @param[in] y The coordinate y of scroll */ - void EnableJavaScript( bool enabled ); + void SetScrollPosition( int x, int y ); /** - * @brief Returns whether images can be loaded automatically. The default is true. - * - * @return true if images are loaded automatically, false otherwise + * @brief Gets the current scroll position of the given view. + * @param[out] x The coordinate x of scroll + * @param[out] y The coordinate y of scroll */ - bool AreImagesAutomaticallyLoaded() const; + void GetScrollPosition( int& x, int& y ) const; /** - * @brief Enables/disables auto loading of images. The default is enabled. - * - * @param[in] automatic True if images are loaded automatically, false otherwise + * @brief Gets the possible scroll size of the given view. + * @param[out] width The width of scroll size + * @param[out] height The height of scroll size */ - void LoadImagesAutomatically( bool automatic ); + void GetScrollSize( int& width, int& height ) const; /** - * @brief Gets the default text encoding name (e.g. UTF-8). - * - * @return The default text encoding name + * @brief Gets the last known content's size. + * @param[out] width The width of content's size + * @param[out] height The height of content's size */ - const std::string& GetDefaultTextEncodingName() const; + void GetContentSize( int& width, int& height ) const; /** - * @brief Sets the default text encoding name (e.g. UTF-8). + * @brief Returns the title of the Web. * - * @param[in] defaultTextEncodingName The default text encoding name + * @return The title of web page */ - void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ); + std::string GetTitle() const; /** - * @brief Returns the default font size in pixel. The default value is 16. - * - * @return The default font size + * @brief Get user agent string. + * @return The string value of user agent */ - int GetDefaultFontSize() const; + const std::string& GetUserAgent() const; /** - * @brief Sets the default font size in pixel. The default value is 16. - * - * @param[in] defaultFontSize A new default font size to set + * @brief Set user agent string. + * @param[in] userAgent The string value of user agent */ - void SetDefaultFontSize( int defaultFontSize ); + void SetUserAgent( const std::string& userAgent ); /** - * @brief Callback function to be called when page load started. - * @param[in] url The url currently being loaded + * @brief Updates display area of web view. + * @param[in] source The soource triggers Notification. */ - void OnPageLoadStarted( const std::string& url ); + void UpdateDisplayArea( Dali::PropertyNotification& source ); /** - * @brief Callback function to be called when page load finished. - * @param[in] url The url currently being loaded + * @brief Enable/Disable video hole for video playing. + * @param[in] enabled True if video hole is enabled, false otherwise. */ - void OnPageLoadFinished( const std::string& url ); + void EnableVideoHole( bool enabled ); /** - * @brief Callback function to be called when there is an error in page loading. - * @param[in] url The url currently being loaded - * @param[in] errorCode The error code + * @brief Enable blend mode. + * @param[in] blendEnabled True if turn on blend mode, false otherwise. */ - void OnPageLoadError( const std::string& url, int errorCode ); + void EnableBlendMode( bool blendEnabled ); private: - std::string mUrl; - Dali::Toolkit::Visual::Base mVisual; - Dali::Size mWebViewSize; - Dali::WebEngine mWebEngine; - - Dali::Toolkit::WebView::WebViewPageLoadSignalType mPageLoadStartedSignal; - Dali::Toolkit::WebView::WebViewPageLoadSignalType mPageLoadFinishedSignal; - Dali::Toolkit::WebView::WebViewPageLoadErrorSignalType mPageLoadErrorSignal; + std::string mUrl; + Dali::Toolkit::Visual::Base mVisual; + Dali::Size mWebViewSize; + Dali::WebEngine mWebEngine; + + std::unique_ptr mWebContext; + std::unique_ptr mWebCookieManager; + std::unique_ptr mWebSettings; + std::unique_ptr mWebBackForwardList; + + Dali::PropertyNotification mPositionUpdateNotification; + Dali::PropertyNotification mSizeUpdateNotification; + Dali::PropertyNotification mScaleUpdateNotification; + bool mVideoHoleEnabled; + Dali::Rect< int > mWebViewArea; }; } // namespace Internal