X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fweb-view%2Fweb-view-impl.cpp;h=7fc2117235347591a6cc13924e55511000ac767d;hb=702cdc29b907688eef62afbc63f0edb9e2dfb7d2;hp=77b29ca078ebafccddbbc8e3c7a3eba8ddbd1151;hpb=17655f69059d8b9f766f350501b3f1ba5efb7231;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp index 77b29ca..7fc2117 100755 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp @@ -47,11 +47,10 @@ #include #include #include -#include #include #include -#include #include +#include namespace Dali { @@ -184,6 +183,7 @@ void WebView::OnInitialize() Actor self = Self(); self.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); + self.SetProperty(DevelActor::Property::TOUCH_FOCUSABLE, true); self.TouchedSignal().Connect(this, &WebView::OnTouchEvent); self.HoveredSignal().Connect(this, &WebView::OnHoverEvent); self.WheelEventSignal().Connect(this, &WebView::OnWheelEvent); @@ -204,6 +204,13 @@ void WebView::OnInitialize() mWebSettings = std::unique_ptr(new WebSettings(mWebEngine.GetSettings())); mWebBackForwardList = std::unique_ptr(new WebBackForwardList(mWebEngine.GetBackForwardList())); } + + self.SetProperty(DevelControl::Property::ACCESSIBILITY_ROLE, Dali::Accessibility::Role::FILLER); +} + +DevelControl::ControlAccessible* WebView::CreateAccessibleObject() +{ + return new WebViewAccessible(Self(), mWebEngine); } Dali::Toolkit::WebSettings* WebView::GetSettings() const @@ -634,7 +641,7 @@ Dali::Toolkit::ImageView WebView::CreateImageView(Dali::PixelData pixel) const return Dali::Toolkit::ImageView(); } - Dali::Toolkit::ImageUrl url = Dali::Toolkit::Image::GenerateUrl(pixel); + Dali::Toolkit::ImageUrl url = Dali::Toolkit::Image::GenerateUrl(pixel); Dali::Toolkit::ImageView imageView = Dali::Toolkit::ImageView::New(url.GetUrl()); imageView.SetProperty(Dali::Actor::Property::SIZE, Vector2(pixel.GetWidth(), pixel.GetHeight())); return imageView; @@ -717,6 +724,14 @@ void WebView::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEn } } +void WebView::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback) +{ + if(mWebEngine) + { + mWebEngine.RegisterNavigationPolicyDecidedCallback(callback); + } +} + void WebView::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { if(mWebEngine) @@ -777,9 +792,8 @@ void WebView::OnInitialFrameRendered() { mWebEngine.FrameRenderedSignal().Disconnect(this, &WebView::OnInitialFrameRendered); - Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource()); - const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture); - mVisual = Toolkit::VisualFactory::Get().CreateVisual({{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE}, {Toolkit::ImageVisual::Property::URL, nativeImageUrl}}); + Dali::Toolkit::ImageUrl nativeImageUrl = Dali::Toolkit::Image::GenerateUrl(mWebEngine.GetNativeImageSource()); + mVisual = Toolkit::VisualFactory::Get().CreateVisual({{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE}, {Toolkit::ImageVisual::Property::URL, nativeImageUrl.GetUrl()}}); if(mVisual) { @@ -1229,6 +1243,58 @@ bool WebView::SetVisibility(bool visible) return mWebEngine ? mWebEngine.SetVisibility(visible) : false; } +WebView::WebViewAccessible::WebViewAccessible(Dali::Actor self, Dali::WebEngine& webEngine) +: ControlAccessible(self), mRemoteChild{}, mWebEngine{webEngine} +{ + Dali::Accessibility::Bridge::EnabledSignal().Connect(this, &WebViewAccessible::OnAccessibilityEnabled); + Dali::Accessibility::Bridge::DisabledSignal().Connect(this, &WebViewAccessible::OnAccessibilityDisabled); + + if(Dali::Accessibility::IsUp()) + { + OnAccessibilityEnabled(); + } + else + { + OnAccessibilityDisabled(); + } +} + +void WebView::WebViewAccessible::DoGetChildren(std::vector& children) +{ + if(mRemoteChild.GetAddress()) + { + children.push_back(&mRemoteChild); + } +} + +void WebView::WebViewAccessible::OnAccessibilityEnabled() +{ + if(!mWebEngine) + { + return; + } + + mWebEngine.ActivateAccessibility(true); + SetRemoteChildAddress(mWebEngine.GetAccessibilityAddress()); +} + +void WebView::WebViewAccessible::OnAccessibilityDisabled() +{ + if(!mWebEngine) + { + return; + } + + SetRemoteChildAddress({}); + mWebEngine.ActivateAccessibility(false); +} + +void WebView::WebViewAccessible::SetRemoteChildAddress(Dali::Accessibility::Address address) +{ + mRemoteChild.SetAddress(std::move(address)); + OnChildrenChanged(); +} + #undef GET_ENUM_STRING #undef GET_ENUM_VALUE