Merge "[ATSPI] Hypertext and Hyperlink interface support - dbus glue-code" into devel...
[platform/core/uifw/dali-adaptor.git] / dali / internal / accessibility / bridge / accessible.cpp
index fb75de8..7d6010e 100644 (file)
@@ -59,6 +59,14 @@ std::vector<std::string> Accessible::GetInterfaces()
   {
     tmp.push_back(AtspiDbusInterfaceSelection);
   }
+  if(dynamic_cast<Hypertext*>(this))
+  {
+    tmp.push_back(AtspiDbusInterfaceHypertext);
+  }
+  if(dynamic_cast<Hyperlink*>(this))
+  {
+    tmp.push_back(AtspiDbusInterfaceHyperlink);
+  }
   return tmp;
 }
 
@@ -143,6 +151,15 @@ void Accessible::EmitTextCursorMoved(unsigned int cursorPosition)
     bridgeData->mBridge->EmitCursorMoved(this, cursorPosition);
   }
 }
+
+void Accessible::EmitMovedOutOfScreen(ScreenRelativeMoveType type)
+{
+  if(auto bridgeData = GetBridgeData())
+  {
+    bridgeData->mBridge->EmitMovedOutOfScreen(this, type);
+  }
+}
+
 void Accessible::Emit(WindowEvent event, unsigned int detail)
 {
   if(auto bridgeData = GetBridgeData())
@@ -182,7 +199,7 @@ std::shared_ptr<Bridge::Data> Accessible::GetBridgeData()
   if(!handle)
   {
     auto bridge = Bridge::GetCurrentBridge();
-    handle = bridge->mData;
+    handle      = bridge->mData;
   }
   return handle;
 }
@@ -228,13 +245,12 @@ void Accessible::NotifyAccessibilityStateChange(Dali::Accessibility::States stat
 {
   if(auto data = GetBridgeData())
   {
-    auto currentState = GetStates() & states;
-    for(auto i = 0u; i < currentState.size(); i++)
+    for(auto i = 0u; i < static_cast<unsigned int>(Dali::Accessibility::State::MAX_COUNT); i++)
     {
       auto index = static_cast<Dali::Accessibility::State>(i);
-      if(currentState[index])
+      if(states[index])
       {
-        data->mBridge->EmitStateChanged(this, index, 1, 0);
+        data->mBridge->EmitStateChanged(this, index, GetStates()[index], 0);
       }
     }