X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fpopup%2Fpopup-impl.cpp;h=cf4e02c7268a3ba46f73e34bc4f04d386e99ffa6;hp=cc65de90ecd8f32f828dbb07852b38245820611a;hb=9c1f4310db72879676b5aca2875fbf67b97a4b0a;hpb=19b6edb066bc90ab6fd4ce93b9dc49b5224d7815 diff --git a/dali-toolkit/internal/controls/popup/popup-impl.cpp b/dali-toolkit/internal/controls/popup/popup-impl.cpp index cc65de9..cf4e02c 100644 --- a/dali-toolkit/internal/controls/popup/popup-impl.cpp +++ b/dali-toolkit/internal/controls/popup/popup-impl.cpp @@ -343,10 +343,10 @@ void Popup::OnInitialize() SetupTouch(); - DevelControl::AppendAccessibilityAttribute(self, "sub-role", "Alert"); + DevelControl::AppendAccessibilityAttribute(Toolkit::Control::DownCast(self), "sub-role", "Alert"); DevelControl::SetAccessibilityConstructor(self, [](Dali::Actor actor) { - return std::unique_ptr(new AccessibleImpl(actor, Dali::Accessibility::Role::DIALOG, true)); + return std::make_unique(actor, Dali::Accessibility::Role::DIALOG, true); }); } @@ -726,25 +726,16 @@ void Popup::SetDisplayState(Toolkit::Popup::DisplayState displayState) return; } - auto* accessible = Dali::Accessibility::Accessible::Get(Self()); - if(display) - { - Dali::Accessibility::Bridge::GetCurrentBridge()->AddPopup(accessible); - accessible->EmitStateChanged(Dali::Accessibility::State::SHOWING, 1, 0); - } - else - { - accessible->EmitStateChanged(Dali::Accessibility::State::SHOWING, 0, 0); - Dali::Accessibility::Bridge::GetCurrentBridge()->RemovePopup(accessible); - } - // Convert the bool state to the actual display state to use. - mDisplayState = display ? Toolkit::Popup::SHOWING : Toolkit::Popup::HIDING; + mDisplayState = display ? Toolkit::Popup::SHOWING : Toolkit::Popup::HIDING; + auto* accessible = Dali::Accessibility::Accessible::Get(Self()); if(display) { // Update the state to indicate the current intent. mDisplayState = Toolkit::Popup::SHOWING; + Dali::Accessibility::Bridge::GetCurrentBridge()->RegisterDefaultLabel(accessible); + accessible->EmitShowing(true); // We want the popup to have key input focus when it is displayed SetKeyInputFocus(); @@ -798,8 +789,9 @@ void Popup::SetDisplayState(Toolkit::Popup::DisplayState displayState) else // Not visible. { mDisplayState = Toolkit::Popup::HIDING; + Dali::Accessibility::Bridge::GetCurrentBridge()->UnregisterDefaultLabel(accessible); ClearKeyInputFocus(); - + accessible->EmitShowing(false); // Restore the keyboard focus when popup is hidden. if(mPreviousFocusedActor && mPreviousFocusedActor.GetProperty(Actor::Property::KEYBOARD_FOCUSABLE)) { @@ -2002,7 +1994,7 @@ void Popup::SetupTouch() } } -std::string Popup::AccessibleImpl::GetNameRaw() +std::string Popup::PopupAccessible::GetNameRaw() const { auto popup = Toolkit::Popup::DownCast(Self()); std::string title; @@ -2024,9 +2016,9 @@ std::string Popup::AccessibleImpl::GetNameRaw() return title; } -Dali::Accessibility::States Popup::AccessibleImpl::CalculateStates() +Dali::Accessibility::States Popup::PopupAccessible::CalculateStates() { - auto states = DevelControl::AccessibleImpl::CalculateStates(); + auto states = DevelControl::ControlAccessible::CalculateStates(); auto popup = Toolkit::Popup::DownCast(Self()); auto displayState = popup.GetProperty(Toolkit::Popup::Property::DISPLAY_STATE);