[Tizen][ATSPI] Introduce GetNodeInfo interface
[platform/core/uifw/dali-adaptor.git] / dali / internal / accessibility / bridge / bridge-accessible.h
index d5f6c95..0f8533d 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_ACCESSIBILITY_BRIDGE_ACCESSIBLE_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,7 +25,9 @@
 #include <vector>
 
 // INTERNAL INCLUDES
-#include "bridge-base.h"
+#include <dali/devel-api/atspi-interfaces/accessible.h>
+#include <dali/devel-api/atspi-interfaces/component.h>
+#include <dali/internal/accessibility/bridge/bridge-base.h>
 
 /**
  * @brief The BridgeAccessible class is to correspond with Dali::Accessibility::Accessible.
@@ -43,6 +45,13 @@ protected:
    */
   void RegisterInterfaces();
 
+  /**
+   * @brief Returns the Accessible object of the currently executed DBus method call.
+   *
+   * @return The Accessible object
+   */
+  Dali::Accessibility::Accessible* FindSelf() const;
+
 public:
   /**
    * @brief Enumeration for NeighborSearchMode.
@@ -65,6 +74,7 @@ public:
     std::string,                      // localized name
     int32_t,                          // child count
     double,                           // current value
+    std::string,                      // formatted current value
     double,                           // minimum increment
     double,                           // maximum value
     double,                           // minimum value
@@ -82,7 +92,21 @@ public:
     Dali::Accessibility::Accessible*  // describedByObject
     >;
 
-  using Relation = std::tuple<uint32_t, std::vector<Dali::Accessibility::Address>>;
+  using NodeInfoType = DBus::ValueOrError<
+    std::string,                                    // role name
+    std::string,                                    // name
+    std::string,                                    // toolkit name
+    std::unordered_map<std::string, std::string>,   // attributes
+    Dali::Accessibility::States,                    // states
+    std::tuple<int32_t, int32_t, int32_t, int32_t>, // screen extents
+    std::tuple<int32_t, int32_t, int32_t, int32_t>, // window extents
+    double,                                         // current value
+    double,                                         // minimum increment
+    double,                                         // maximum value
+    double                                          // minimum value
+    >;
+
+  using Relation = std::tuple<uint32_t, std::vector<Dali::Accessibility::Accessible*>>;
 
   /**
    * @copydoc Dali::Accessibility::Accessible::GetChildCount()
@@ -145,9 +169,9 @@ public:
   DBus::ValueOrError<std::unordered_map<std::string, std::string>> GetAttributes();
 
   /**
-   * @copydoc Dali::Accessibility::Accessible::GetInterfaces()
+   * @copydoc Dali::Accessibility::Accessible::GetInterfacesAsStrings()
    */
-  DBus::ValueOrError<std::vector<std::string>> GetInterfaces();
+  DBus::ValueOrError<std::vector<std::string>> GetInterfacesAsStrings();
 
   /**
    * @brief Gets Accessible object on which surface lies the point with given coordinates.
@@ -198,6 +222,17 @@ public:
    */
   DBus::ValueOrError<std::vector<Relation>> GetRelationSet();
 
+  /**
+   * @copydoc Dali::Accessibility::Accessible::SetListenPostRender()
+   */
+  DBus::ValueOrError<void> SetListenPostRender(bool enabled);
+
+  /**
+   * @brief Gets Node information of the self object.
+   * @return Node information
+   */
+  NodeInfoType GetNodeInfo();
+
 private:
   /**
    * @brief Calculates Neighbor candidate object in root node.