- 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;
- Dali::Toolkit::WebView::WebViewScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
-
- std::unique_ptr<Dali::Toolkit::WebContext> mWebContext;
- std::unique_ptr<Dali::Toolkit::WebCookieManager> mWebCookieManager;
- std::unique_ptr<Dali::Toolkit::WebSettings> mWebSettings;
- std::unique_ptr<Dali::Toolkit::WebBackForwardList> mWebBackForwardList;
- Dali::Toolkit::ImageView mFaviconView;
+ /**
+ * @brief Enable/disable mouse events. The default is enabled.
+ *
+ * @param[in] enabled True if mouse events are enabled, false otherwise
+ */
+ void EnableMouseEvents(bool enabled);
+
+ /**
+ * @brief Enable/disable key events. The default is enabled.
+ *
+ * @param[in] enabled True if key events enabled, false otherwise
+ */
+ void EnableKeyEvents(bool enabled);
+
+ /**
+ * @brief Create image view by pixel data.
+ * @param[in] pixel Pixel data
+ * @return The new image view
+ */
+ Dali::Toolkit::ImageView CreateImageView(Dali::PixelData pixel) const;
+
+ /**
+ * @brief Signal occurs when the Web View has been touched.
+ * @param[in] actor The Actor Touched
+ * @param[in] touch The Touch Data.
+ * @return Whether to consume event or not.
+ */
+ bool OnTouchEvent(Actor actor, const Dali::TouchEvent& touch);
+
+ /**
+ * @brief Signal occurs when the Web View has been hovered.
+ * @param[in] actor The Actor Hovered
+ * @param[in] hover The Hover Data.
+ * @return Whether to consume event or not.
+ */
+ bool OnHoverEvent(Actor actor, const Dali::HoverEvent& hover);
+
+ /**
+ * @brief Signal occurs when the Web View receives wheel event.
+ * @param[in] actor The Actor that receives Wheel event.
+ * @param[in] wheel The Wheel Data.
+ * @return Whether to consume event or not.
+ */
+ bool OnWheelEvent(Actor actor, const Dali::WheelEvent& wheel);
+
+ /**
+ * @brief Callback function to be called when frame is rendered.
+ */
+ void OnFrameRendered();
+
+ /**
+ * @brief Callback function to be called when frame is rendered. This is to check initial buffer is ready.
+ */
+ void OnInitialFrameRendered();
+
+ /**
+ * @brief Callback function to be called when visibility is changed.
+ * @param[in] actor The actor, or child of actor, whose visibility has changed
+ * @param[in] isVisible Whether the actor is now visible or not
+ * @param[in] type, Whether the actor's visible property has changed or a parent's
+ */
+ void OnVisibilityChanged(Actor actor, bool isVisible, Dali::DevelActor::VisibilityChange::Type type);
+
+ /**
+ * @brief callback for screen shot captured.
+ * @param[in] pixel Pixel data of screen shot.
+ */
+ void OnScreenshotCaptured(Dali::PixelData pixel);
+
+protected:
+ class WebViewAccessible : public DevelControl::ControlAccessible
+ {
+ public:
+ WebViewAccessible() = delete;
+
+ WebViewAccessible(Dali::Actor self, Dali::WebEngine& webEngine);
+
+ protected:
+ /**
+ * @copydoc Dali::Accessibility::ActorAccessible::DoGetChildren()
+ */
+ void DoGetChildren(std::vector<Dali::Accessibility::Accessible*>& children) override;
+
+ private:
+ void OnAccessibilityEnabled();
+ void OnAccessibilityDisabled();
+ void SetRemoteChildAddress(Dali::Accessibility::Address address);
+
+ Dali::Accessibility::ProxyAccessible mRemoteChild;
+ Dali::WebEngine& mWebEngine;
+ };
+
+private:
+ Dali::Toolkit::Visual::Base mVisual;
+ Dali::Size mWebViewSize;
+ Dali::WebEngine mWebEngine;
+
+ std::unique_ptr<Dali::Toolkit::WebContext> mWebContext;
+ std::unique_ptr<Dali::Toolkit::WebCookieManager> mWebCookieManager;
+ std::unique_ptr<Dali::Toolkit::WebSettings> mWebSettings;
+ std::unique_ptr<Dali::Toolkit::WebBackForwardList> mWebBackForwardList;
+
+ Dali::PropertyNotification mPositionUpdateNotification;
+ Dali::PropertyNotification mSizeUpdateNotification;
+ Dali::PropertyNotification mScaleUpdateNotification;
+ Dali::Rect<int32_t> mWebViewArea;
+ bool mVideoHoleEnabled;
+ bool mMouseEventsEnabled;
+ bool mKeyEventsEnabled;
+
+ Dali::Toolkit::WebView::WebViewScreenshotCapturedCallback mScreenshotCapturedCallback;
+ Dali::WebEnginePlugin::WebEngineFrameRenderedCallback mFrameRenderedCallback;