[AT-SPI] Implemented reading popup description
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / popup / popup-impl.cpp
index 8e18342..092569c 100644 (file)
@@ -43,6 +43,7 @@
 #include <dali-toolkit/public-api/visuals/visual-properties.h>
 #include <dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h>
 #include <dali-toolkit/internal/controls/control/control-data-impl.h>
 #include <dali-toolkit/public-api/visuals/visual-properties.h>
 #include <dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h>
 #include <dali-toolkit/internal/controls/control/control-data-impl.h>
+#include <dali-toolkit/dali-toolkit.h>
 
 using namespace Dali;
 
 
 using namespace Dali;
 
@@ -339,6 +340,8 @@ void Popup::OnInitialize()
 
   SetupTouch();
 
 
   SetupTouch();
 
+  DevelControl::AppendAccessibilityAttribute(self, "sub-role", "Alert");
+
   DevelControl::SetAccessibilityConstructor(self, [](Dali::Actor actor)
   {
     return std::unique_ptr<Dali::Accessibility::Accessible>(new AccessibleImpl(actor, Dali::Accessibility::Role::DIALOG, true));
   DevelControl::SetAccessibilityConstructor(self, [](Dali::Actor actor)
   {
     return std::unique_ptr<Dali::Accessibility::Accessible>(new AccessibleImpl(actor, Dali::Accessibility::Role::DIALOG, true));
@@ -1998,6 +2001,28 @@ void Popup::SetupTouch()
   }
 }
 
   }
 }
 
+std::string Popup::AccessibleImpl::GetNameRaw()
+{
+  auto popup = Toolkit::Popup::DownCast( self );
+  std::string title;
+  Actor popupTitle = popup.GetTitle();
+  if (popupTitle)
+  {
+    std::string titleText = popupTitle.GetProperty<std::string>(Toolkit::TextLabel::Property::TEXT);
+    title = titleText;
+  }
+  else
+  {
+    Actor popupContent = popup.GetContent();
+    if (popupContent)
+    {
+      std::string contentText = popupContent.GetProperty<std::string>(Toolkit::TextLabel::Property::TEXT);
+      title = contentText;
+    }
+  }
+  return title;
+}
+
 Dali::Accessibility::States Popup::AccessibleImpl::CalculateStates()
 {
   auto states = Control::Impl::AccessibleImpl::CalculateStates();
 Dali::Accessibility::States Popup::AccessibleImpl::CalculateStates()
 {
   auto states = Control::Impl::AccessibleImpl::CalculateStates();