X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fcontrols%2Fcontrol-accessible.cpp;h=85b3c6aae285d003758c52050b4fa8aa6fabc185;hp=21fc8e2bf4885b68e5a082092cab72b554e6fda3;hb=d386c8d8e05053cef41a20db9727065aee3d2bd4;hpb=70fdb1a1e8e2660c383079ae49bc94fbe14943d1 diff --git a/dali-toolkit/devel-api/controls/control-accessible.cpp b/dali-toolkit/devel-api/controls/control-accessible.cpp index 21fc8e2..85b3c6a 100644 --- a/dali-toolkit/devel-api/controls/control-accessible.cpp +++ b/dali-toolkit/devel-api/controls/control-accessible.cpp @@ -66,26 +66,21 @@ static Dali::Actor CreateHighlightIndicatorActor() } } // unnamed namespace -ControlAccessible::ControlAccessible(Dali::Actor self, Dali::Accessibility::Role role, bool modal) -: ActorAccessible(self), - mIsModal(modal) +ControlAccessible::ControlAccessible(Dali::Actor self) +: ActorAccessible(self) { - auto control = Dali::Toolkit::Control::DownCast(Self()); + auto control = Toolkit::Control::DownCast(self); Internal::Control& internalControl = Toolkit::Internal::GetImplementation(control); Internal::Control::Impl& controlImpl = Internal::Control::Impl::Get(internalControl); - if(controlImpl.mAccessibilityRole == Dali::Accessibility::Role::UNKNOWN) - { - controlImpl.mAccessibilityRole = role; - } - Self().PropertySetSignal().Connect(&controlImpl, [this, &controlImpl](Dali::Handle& handle, Dali::Property::Index index, Dali::Property::Value value) { + self.PropertySetSignal().Connect(&controlImpl, [this, &controlImpl](Dali::Handle& handle, Dali::Property::Index index, Dali::Property::Value value) { if(this->Self() != Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor()) { return; } - if(index == DevelControl::Property::ACCESSIBILITY_NAME || (index == GetNamePropertyIndex() && !controlImpl.mAccessibilityNameSet)) + if(index == DevelControl::Property::ACCESSIBILITY_NAME || (index == GetNamePropertyIndex() && controlImpl.mAccessibilityName.empty())) { if(controlImpl.mAccessibilityGetNameSignal.Empty()) { @@ -93,7 +88,7 @@ ControlAccessible::ControlAccessible(Dali::Actor self, Dali::Accessibility::Role } } - if(index == DevelControl::Property::ACCESSIBILITY_DESCRIPTION || (index == GetDescriptionPropertyIndex() && !controlImpl.mAccessibilityDescriptionSet)) + if(index == DevelControl::Property::ACCESSIBILITY_DESCRIPTION || (index == GetDescriptionPropertyIndex() && controlImpl.mAccessibilityDescription.empty())) { if(controlImpl.mAccessibilityGetDescriptionSignal.Empty()) { @@ -115,7 +110,7 @@ std::string ControlAccessible::GetName() const { controlImpl.mAccessibilityGetNameSignal.Emit(name); } - else if(controlImpl.mAccessibilityNameSet) + else if(!controlImpl.mAccessibilityName.empty()) { name = controlImpl.mAccessibilityName; } @@ -128,7 +123,7 @@ std::string ControlAccessible::GetName() const name = Self().GetProperty(Actor::Property::NAME); } - if(controlImpl.mAccessibilityTranslationDomainSet) + if(!controlImpl.mAccessibilityTranslationDomain.empty()) { return GetLocaleText(name, controlImpl.mAccessibilityTranslationDomain.c_str()); } @@ -153,7 +148,7 @@ std::string ControlAccessible::GetDescription() const { controlImpl.mAccessibilityGetDescriptionSignal.Emit(description); } - else if(controlImpl.mAccessibilityDescriptionSet) + else if(!controlImpl.mAccessibilityDescription.empty()) { description = controlImpl.mAccessibilityDescription; } @@ -161,7 +156,8 @@ std::string ControlAccessible::GetDescription() const { description = GetDescriptionRaw(); } - if(controlImpl.mAccessibilityTranslationDomainSet) + + if(!controlImpl.mAccessibilityTranslationDomain.empty()) { return GetLocaleText(description, controlImpl.mAccessibilityTranslationDomain.c_str()); } @@ -221,32 +217,22 @@ bool ControlAccessible::IsShowing() Dali::Accessibility::States ControlAccessible::CalculateStates() { - Dali::Actor self = Self(); - Dali::Accessibility::States state; - state[Dali::Accessibility::State::FOCUSABLE] = self.GetProperty(Actor::Property::KEYBOARD_FOCUSABLE); - state[Dali::Accessibility::State::FOCUSED] = Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor() == self; + using Dali::Accessibility::State; - if(self.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).GetType() == Dali::Property::NONE) - { - state[Dali::Accessibility::State::HIGHLIGHTABLE] = false; - } - else - { - state[Dali::Accessibility::State::HIGHLIGHTABLE] = self.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).Get(); - } + Dali::Actor self = Self(); + Dali::Accessibility::States states; - state[Dali::Accessibility::State::HIGHLIGHTED] = GetCurrentlyHighlightedActor() == self; - state[Dali::Accessibility::State::ENABLED] = true; - state[Dali::Accessibility::State::SENSITIVE] = true; - state[Dali::Accessibility::State::VISIBLE] = self.GetProperty(Actor::Property::VISIBLE); + states[State::FOCUSABLE] = self.GetProperty(Actor::Property::KEYBOARD_FOCUSABLE); + states[State::FOCUSED] = Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor() == self; + states[State::HIGHLIGHTABLE] = self.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE); + states[State::HIGHLIGHTED] = GetCurrentlyHighlightedActor() == self; + states[State::ENABLED] = true; + states[State::SENSITIVE] = true; + states[State::VISIBLE] = self.GetProperty(Actor::Property::VISIBLE); + states[State::SHOWING] = IsShowing(); + states[State::DEFUNCT] = !self.GetProperty(Dali::DevelActor::Property::CONNECTED_TO_SCENE).Get(); - if(mIsModal) - { - state[Dali::Accessibility::State::MODAL] = true; - } - state[Dali::Accessibility::State::SHOWING] = IsShowing(); - state[Dali::Accessibility::State::DEFUNCT] = !self.GetProperty(Dali::DevelActor::Property::CONNECTED_TO_SCENE).Get(); - return state; + return states; } Dali::Accessibility::States ControlAccessible::GetStates() @@ -347,10 +333,10 @@ bool ControlAccessible::GrabHighlight() // Clear the old highlight. if(oldHighlightedActor) { - auto oldHighlightObject = dynamic_cast(Internal::Control::Impl::GetAccessibilityObject(oldHighlightedActor)); - if(oldHighlightObject) + auto oldHighlightedObject = Dali::Accessibility::Component::DownCast(Accessible::Get(oldHighlightedActor)); + if(oldHighlightedObject) { - oldHighlightObject->ClearHighlight(); + oldHighlightedObject->ClearHighlight(); } } @@ -471,24 +457,7 @@ std::vector ControlAccessible::GetRelationSet() { auto control = Dali::Toolkit::Control::DownCast(Self()); - Internal::Control& internalControl = Toolkit::Internal::GetImplementation(control); - Internal::Control::Impl& controlImpl = Internal::Control::Impl::Get(internalControl); - - std::vector ret; - - for(auto& relation : controlImpl.mAccessibilityRelations) - { - auto& targets = relation.second; - - ret.emplace_back(Accessibility::Relation{relation.first, {}}); - - // Map every Accessible* to its Address - std::transform(targets.begin(), targets.end(), std::back_inserter(ret.back().targets), [](auto* x) { - return x->GetAddress(); - }); - } - - return ret; + return DevelControl::GetAccessibilityRelations(control); } bool ControlAccessible::ScrollToChild(Actor child)