X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fcontrol%2Fcontrol-data-impl.cpp;h=76de885aafe4b580efa0ee775cd48b1ecd9f44ce;hb=e4c8362431523550a745b190c67c0c8e3f25ac4d;hp=b967d14564a2e4bac14c797e148892d6450db81a;hpb=6a3d45983060c538604940d9adc383cd71bb7a73;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/control/control-data-impl.cpp b/dali-toolkit/internal/controls/control/control-data-impl.cpp index b967d14..76de885 100644 --- a/dali-toolkit/internal/controls/control/control-data-impl.cpp +++ b/dali-toolkit/internal/controls/control/control-data-impl.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -51,12 +52,12 @@ namespace { -const std::string READING_INFO_TYPE_NAME = "name"; -const std::string READING_INFO_TYPE_ROLE = "role"; -const std::string READING_INFO_TYPE_DESCRIPTION = "description"; -const std::string READING_INFO_TYPE_STATE = "state"; -const std::string READING_INFO_TYPE_ATTRIBUTE_NAME = "reading_info_type"; -const std::string READING_INFO_TYPE_SEPARATOR = "|"; +const char* READING_INFO_TYPE_NAME = "name"; +const char* READING_INFO_TYPE_ROLE = "role"; +const char* READING_INFO_TYPE_DESCRIPTION = "description"; +const char* READING_INFO_TYPE_STATE = "state"; +const char* READING_INFO_TYPE_ATTRIBUTE_NAME = "reading_info_type"; +const char* READING_INFO_TYPE_SEPARATOR = "|"; } // namespace namespace Dali @@ -580,11 +581,11 @@ void Control::Impl::CheckHighlightedObjectGeometry() } case Dali::Accessibility::ScreenRelativeMoveType::INSIDE: { - if(rect.width < 0 && accessibleRect.x != lastPosition.x) + if(rect.width < 0 && !Dali::Equals(accessibleRect.x, lastPosition.x)) { mAccessibilityLastScreenRelativeMoveType = (accessibleRect.x < lastPosition.x) ? Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT : Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT; } - if(rect.height < 0 && accessibleRect.y != lastPosition.y) + if(rect.height < 0 && !Dali::Equals(accessibleRect.y, lastPosition.y)) { mAccessibilityLastScreenRelativeMoveType = (accessibleRect.y < lastPosition.y) ? Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT : Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT; } @@ -909,6 +910,24 @@ void Control::Impl::StartObservingVisual(Toolkit::Visual::Base& visual) visualImpl.AddEventObserver(*this); } +void Control::Impl::ResourceReady(bool relayoutRequest) +{ + Actor self = mControlImpl.Self(); + // A visual is ready so control may need relayouting if staged + if(relayoutRequest && self.GetProperty(Actor::Property::CONNECTED_TO_SCENE)) + { + mControlImpl.RelayoutRequest(); + } + + // Emit signal if all enabled visuals registered by the control are ready or there are no visuals. + if(IsResourceReady()) + { + // Reset the flag + mNeedToEmitResourceReady = false; + EmitResourceReadySignal(); + } +} + // Called by a Visual when it's resource is ready void Control::Impl::ResourceReady(Visual::Base& object) { @@ -938,20 +957,8 @@ void Control::Impl::ResourceReady(Visual::Base& object) } } - // A visual is ready so control may need relayouting if staged - if(self.GetProperty(Actor::Property::CONNECTED_TO_SCENE)) - { - mControlImpl.RelayoutRequest(); - } - - // Emit signal if all enabled visuals registered by the control are ready. - if(IsResourceReady()) - { - // Reset the flag - mNeedToEmitResourceReady = false; - - EmitResourceReadySignal(); - } + // Called by a Visual when it's resource is ready + ResourceReady(true); } void Control::Impl::NotifyVisualEvent(Visual::Base& object, Property::Index signalId) @@ -1096,6 +1103,15 @@ void Control::Impl::DoAction(Dali::Property::Index visualIndex, Dali::Property:: } } +void Control::Impl::DoActionExtension(Dali::Property::Index visualIndex, Dali::Property::Index actionId, Dali::Any attributes) +{ + RegisteredVisualContainer::Iterator iter; + if(FindVisual(visualIndex, mVisuals, iter)) + { + Toolkit::GetImplementation((*iter)->visual).DoActionExtension(actionId, attributes); + } +} + void Control::Impl::AppendAccessibilityAttribute(const std::string& key, const std::string value) { Property::Value* checkedValue = mAccessibilityAttributes.Find(key);