Add ResourceReady for Control
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / controls / control-impl.cpp
index 271b826..6019285 100644 (file)
@@ -167,6 +167,12 @@ void Control::ClearBackground()
   RelayoutRequest();
 }
 
+void Control::SetResourceReady(bool relayoutRequest)
+{
+  Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(*this);
+  controlDataImpl.ResourceReady(relayoutRequest);
+}
+
 Toolkit::DevelControl::ControlAccessible* Control::GetAccessibleObject()
 {
   return mImpl->GetAccessibleObject();
@@ -450,6 +456,12 @@ void Control::OnInitialize()
 {
 }
 
+bool Control::IsResourceReady() const
+{
+  const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(*this);
+  return controlDataImpl.IsResourceReady();
+}
+
 void Control::OnStyleChange(Toolkit::StyleManager styleManager, StyleChange::Type change)
 {
   // By default the control is only interested in theme (not font) changes
@@ -584,6 +596,15 @@ void Control::OnPropertySet(Property::Index index, const Property::Value& proper
       GetAccessibleObject()->EmitVisible(Self().GetProperty<bool>(Actor::Property::VISIBLE));
       break;
     }
+    case DevelActor::Property::USER_INTERACTION_ENABLED:
+    {
+      const bool enabled = propertyValue.Get<bool>();
+      if (!enabled && Self() == Dali::Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor())
+      {
+        Dali::Toolkit::KeyboardFocusManager::Get().ClearFocus();
+      }
+      break;
+    }
   }
 }